除了某種信念——即一個國家不信守自己的負(fù)債義務(wù)是這個國家的恥辱之外,沒有任何東西能充分地加強(qiáng)貨幣當(dāng)局的力量侧甫,使之抵御種種要求創(chuàng)造廉價貨幣的壓力珊佣。——哈耶克
人們早已習(xí)慣了國家對貨幣的壟斷權(quán)力披粟,甚至將其視作天經(jīng)地義咒锻、不可置疑的信條。其實(shí)從歷史的維度來看守屉,國家擁有鑄幣權(quán)也就300多年時間惑艇。
哈耶克在晚年寫下《貨幣的非國家化》后,似乎走得太遠(yuǎn)拇泛、太偏激滨巴,而“主流經(jīng)濟(jì)學(xué)家”和“銀行家”們不會把它當(dāng)真。
不過俺叭,哈耶克恐怕沒有想到的是恭取,人們會在互聯(lián)網(wǎng)上展開他所說的多元貨幣競爭的實(shí)驗(yàn)。現(xiàn)在熄守,我們創(chuàng)造了比特幣以及各種各樣的虛擬貨幣蜈垮,比特幣出來之后,哈耶克的理論就不再是空中樓閣裕照。以區(qū)塊鏈技術(shù)為底層的加密貨幣發(fā)行已經(jīng)衍生出了一種奇特的“挖礦經(jīng)濟(jì)學(xué)”攒发。這是哈耶克口中典型的自由經(jīng)濟(jì),在挖礦這種純工作量認(rèn)證機(jī)制下晋南,規(guī)則確定而且公平惠猿,你有多少算力,在一定時間內(nèi)就能挖出多少貨幣负间。貨幣私有化已經(jīng)不再是夢想紊扬。
目前的區(qū)塊鏈技術(shù)對于大部分人來說是有一定門檻的,那么唉擂,普通開發(fā)者是否有機(jī)會搭建自己的區(qū)塊鏈網(wǎng)絡(luò)餐屎,發(fā)行自己的數(shù)字貨幣呢??答案是有的。
知名加密數(shù)字貨幣的技術(shù)體系
我們先來了解一下目前幾種知名的加密數(shù)字貨幣的技術(shù)體系:
1.比特幣:?比特幣技術(shù)玩祟,??符號為BTC,??共識算法為PoW,工作量證明算法中使用SHA-256加密算法腹缩,發(fā)行方式為挖礦。比特幣總量恒定2100萬空扎,??區(qū)塊時間10分鐘藏鹊,開發(fā)語言C++。
2.以太幣:?以太坊技術(shù)转锈,??符號為ETC/ETH?(不同分叉)盘寡,共識算法為PoW,使用的工作量證明算法叫Ethash?(Dagger-Hashimoto算法的改良版本),發(fā)行方式為挖礦撮慨,支持在樹莓派上運(yùn)行節(jié)點(diǎn)竿痰。??以太幣(ETH)?作為推動以太坊平臺上分布式應(yīng)用的加密燃料脆粥,將會通過挖礦的形式,每年以不變的數(shù)量發(fā)行影涉。每年發(fā)行的數(shù)量是預(yù)售以太幣總量的0.3倍变隔,通脹率每年遞減,??最新ETH區(qū)塊時間16秒蟹倾,開發(fā)語言GO匣缘。
3.比特股:比特股技術(shù),核心賬本采用石墨稀技術(shù)鲜棠,符號為BTS,共識算法為DPoS,??貨幣總量為37億肌厨。以預(yù)挖礦方式發(fā)布??(初始的比特股BTS由兩部分組成,一部分由PTS持有者轉(zhuǎn)股而來豁陆,另一部分由挖掘產(chǎn)生柑爸,并且整套系統(tǒng)還在不斷地為持有BTS的投資者分紅),比特股通過定期出售分發(fā)初始貨幣献联,Counterparty利用燒毀證明(POB)?發(fā)行貨幣竖配,??BTS除了作為交易費(fèi)用和激勵機(jī)制外,也是資產(chǎn)交易的重要抵押物里逆。區(qū)塊時間3秒进胯,開發(fā)語言C++。
加密數(shù)字貨幣其實(shí)還有很多種原押,如火幣胁镐、萊特幣、門羅幣等诸衔。
加密數(shù)字貨幣的基礎(chǔ)架構(gòu)
1.信任基礎(chǔ)
貨幣的核心基礎(chǔ)是信任盯漂,這里有基于實(shí)物的信任,如黃金笨农,不過更多的是基于國家背書的信任就缆。只有保證了貨幣的價值穩(wěn)定和價值存儲能力,才能使貨幣獲得人們的信任谒亦。
2.安全性
在虛擬和數(shù)字時代竭宰,??除了解決信任問題以外,??網(wǎng)絡(luò)安全是數(shù)字貨幣的另外一個關(guān)鍵因素份招。比特幣之前的任何貨幣切揭,無論是物理實(shí)體黃金,還是電子化的法幣锁摔,都不存在網(wǎng)絡(luò)安全的問題廓旬,但黑客攻擊和破解、技術(shù)壟斷這些不穩(wěn)定安全因素卻極大制約著數(shù)字貨幣的發(fā)展谐腰。因此孕豹,數(shù)字貨幣對金融安全提出了更高的要求涩盾,一方面,數(shù)字貨幣去中心化的特性淡化了中心化管理和機(jī)構(gòu)監(jiān)管巩步,出了問題不容易剎車和糾正(如The?DAO事件的處理);?另一方面旁赊,區(qū)塊鏈和數(shù)字貨幣這類創(chuàng)新金融體系尚未經(jīng)歷過多少風(fēng)雨桦踊,在應(yīng)對大數(shù)據(jù)沖擊椅野、黑客破壞、網(wǎng)絡(luò)攻擊等方面力不從心籍胯。
3.整體構(gòu)想
加密數(shù)字貨幣的目標(biāo)就是要建立一個去中心化的自運(yùn)行經(jīng)濟(jì)系統(tǒng)竟闪,其應(yīng)具備可流通性、可存儲性杖狼、可離線交易性炼蛤、可控匿名性、不可偽造性蝶涩、不可重復(fù)交易性理朋、不可篡改性七個特性。
(1)?數(shù)字貨幣賬本
加密數(shù)字貨幣的技術(shù)基礎(chǔ)區(qū)塊鏈绿聘,具有不可篡改性嗽上,所有的賬本都是公開透明的且具有可追溯性,這能基本解決數(shù)字貨幣流通中的技術(shù)問題熄攘。
(2)?共識機(jī)制的選擇
在數(shù)字貨幣的真正落地和運(yùn)行上兽愤,數(shù)字貨幣對信任和網(wǎng)絡(luò)安全兩個最關(guān)鍵的核心因素有著更高的要求。將這兩個因素具體到加密數(shù)字貨幣的技術(shù)基礎(chǔ)體系中挪圾,就是支撐這個系統(tǒng)的發(fā)行和維護(hù)網(wǎng)絡(luò)安全的共識機(jī)制浅萧。其中共識機(jī)制有很多種,如PoW,PoS,DPoS等哲思,它們各有利弊洼畅。POW有高耗能和51%攻擊的風(fēng)險,而POS和預(yù)挖礦的方式會導(dǎo)致大量的幣保留在創(chuàng)始人和少數(shù)人之中棚赔,信用基礎(chǔ)不夠牢固帝簇,流動性不確定,因此往往會采取綜合的機(jī)制忆嗜。目前就有很多研究認(rèn)為己儒,采用“工作量證明機(jī)制PoW+權(quán)益證明機(jī)制PoS/DPoS"的幣,才是最為完美的捆毫。
而采用哪種共識機(jī)制策略闪湾,將在很大程度上決定一個數(shù)字貨幣發(fā)展的前景空間。
搭建加密數(shù)字貨幣的技術(shù)平臺
了解幾種知名的加密數(shù)字貨幣的技術(shù)體系后绩卤,我們來談?wù)勅绾伟l(fā)行自己的數(shù)字貨幣途样。
目前大致有兩條技術(shù)路線可以選擇江醇,一個是自己通過搭建區(qū)塊鏈平臺去構(gòu)建自己原生的數(shù)字貨幣,另一種方式是基于現(xiàn)有的區(qū)塊鏈公網(wǎng)去創(chuàng)建數(shù)字資產(chǎn)和數(shù)字貨幣何暇。
1.構(gòu)建自己原生的數(shù)字貨幣
從比特幣和各個競爭幣(山寨幣)?中大家可以看到陶夜,這些數(shù)字貨幣采用的技術(shù)體系不外乎就是比特幣、Ripple裆站、比特股和未來幣等条辟,或者采用這些技術(shù)體系的改進(jìn)或分支版本。這些原生數(shù)字貨幣的用途主要包括:?交易和支付宏胯、匯兌手段羽嫡、抵押手段、激勵機(jī)制肩袍、權(quán)益證明和資源控制等杭棵,另外還有不同區(qū)塊鏈體系自身帶有一些特性的擴(kuò)展。
就主流區(qū)塊鏈開源技術(shù)體系來看氛赐,比較推薦的是比特幣或其分支魂爪、Ripple、未來幣艰管、比特股滓侍、以太坊五種技術(shù)架構(gòu)。如果你單純只想做貨幣業(yè)務(wù)蛙婴,不考慮以后其他衍生產(chǎn)品和業(yè)務(wù)擴(kuò)展粗井,??更推薦比特幣、未來幣和Ripple街图。每套技術(shù)體系的代碼可以根據(jù)GitHub上公開的源碼進(jìn)行修改浇衬,從而制作出屬于自己的加密數(shù)字貨幣。
比如餐济,??我們可以基于比特幣開源碼來制作自己的數(shù)字貨幣耘擂,制作流程如下:
(1)?安裝編譯環(huán)境QT和MinGW,msys。
①msys是一個在windows平臺模擬shell的程序絮姆。開發(fā)者可以在windows上安裝以下內(nèi)容:
From?MinGW?installation?manager->All?packages->?MSYS
選中以下安裝包msys-base-bin,msys-autoconf-bin?,msys-automake-bin,msys-libtool-bin.
點(diǎn)apply?changes開始安裝醉冤。
需要注意的是,確保不要安裝msys-gcc和msys-w32api,因?yàn)檫@兩個包會和我們的編譯系統(tǒng)發(fā)生沖突篙悯。
②安裝MinGW-builds蚁阳。
下載并解壓縮i686-4.8.2-release-posix-dwarf-rt_v3-rev3.7到C盤根目錄C:注意目錄結(jié)構(gòu)松却。
③設(shè)置PATH環(huán)境變量昂芜,將C:mingw32in;添加到第一個。
④在命令行模式下輸入gcc-v會得到以下內(nèi)容:
至此逮矛,你的開發(fā)環(huán)境已經(jīng)搭建好了。
(2)?下載bitcoin引用的外部庫定血,把它們?nèi)糠旁贑:deps目錄下赔癌。
①安裝OpenSSL,進(jìn)入啟動MinGwshell,比如目錄:(C:MinGWmsys.0msys.bat)?運(yùn)行這個msys.bat,就會啟動一個shell環(huán)境,提符是$澜沟。
輸入命令:
等待幾分鐘后灾票,就把openssl編譯好了。
②下載Berkeley?DB,??訪問:http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz?我們推薦使用4.8版本茫虽。
同樣在msys?shell環(huán)境下輸入以下命令:
等待編譯刊苍。
③安裝Boost,下載地址:http://sourceforge.net/projects/boost/files/boost/1.55.0/。msys命令:
④安裝miniupnpc到cd? ? C:depsminupnpc:
⑤下載protoc和libprotobuf:
⑥qrencode:
⑦安裝好Qt 5庫班缰。
在window命令行輸入:
(3)下載Bitcoin0.9.1贤壁,在msys shell下輸入以下命令行:
這樣悼枢,你就可以得到了編譯好的bitcoin-cli.exe、bitcoind.exe和bitcoin-qt.exe,擁有屬于自己的數(shù)字貨幣脾拆。
前期很多山寨幣馒索,就是這個套路:?基于比特幣的技術(shù)體系,這里修改些文字名船,那里調(diào)整一些參數(shù)绰上。但其實(shí)很多人并不理解整個體系和原理,甚至沒有閱讀主要的代碼渠驼,在大家都成為老司機(jī)后蜈块,開發(fā)者會在開發(fā)新的幣種時考慮一些微創(chuàng)新,在共識算法和加密算法中作一些調(diào)整和優(yōu)化迷扇,創(chuàng)新為自己的新算法百揭。
其實(shí),數(shù)字貨幣也是一種互聯(lián)網(wǎng)產(chǎn)品蜓席,且屬于一個比較復(fù)雜的技術(shù)體系器一,即使你是基于別人的成熟代碼進(jìn)行修改,也需要不斷地進(jìn)行迭代更新和維護(hù)厨内∑盹酰縱然只是簡單的版本跟隨,也要投入技術(shù)力量去跟進(jìn)雏胃,??因此之前提到的只是入門的嘗試请毛,真正要維護(hù)你的數(shù)字貨幣,還得好好去閱讀代碼瞭亮,了解整個架構(gòu)和原理方仿,根據(jù)你的業(yè)務(wù)和新幣特性去不斷優(yōu)化和調(diào)整。
當(dāng)然,現(xiàn)在這些簡單套路都走不通了兼丰,現(xiàn)在要發(fā)行新的數(shù)字貨幣玻孟,要么就是你的算法真有獨(dú)有優(yōu)勢和特點(diǎn),要么就是基于數(shù)字貨幣下的垂直業(yè)務(wù)和游戲規(guī)則鳍征,有很好的模式(比如電競幣或文化幣)黍翎,否則大家很難去關(guān)注和擁護(hù)你的新幣。
2.基于現(xiàn)有的區(qū)塊鏈公網(wǎng)去創(chuàng)建數(shù)字資產(chǎn)和數(shù)字貨幣
就主流區(qū)塊鏈開源技術(shù)體系來看艳丛,除了Factom外匣掸,基本上其他的技術(shù)體系都可以用來創(chuàng)建數(shù)字資產(chǎn),也就是支持加密數(shù)字貨幣的創(chuàng)建氮双。
比如碰酝,我們可以基于以太坊智能合約來創(chuàng)建屬于自己的數(shù)字貨幣或代幣。也許你經(jīng)炒鞑睿看到ERC20和代幣一同出現(xiàn)送爸,ERC20是以太坊定義的一個代幣標(biāo)準(zhǔn),給出我們在創(chuàng)建代幣的時候必須要遵守的協(xié)議暖释,如指定代幣名稱袭厂、總量、實(shí)現(xiàn)代幣交易函數(shù)等球匕,開發(fā)者只有遵循了這些協(xié)議才能被以太坊錢包支持纹磺。其接口如下:
簡單說明一下:
name?:??代幣名稱。
symbol:?代幣符號亮曹。
decimals:?代幣小數(shù)點(diǎn)位數(shù)橄杨,代幣的最小單位,18表示我們可以擁有0.000000000000000001單位個代幣照卦。
totalSupply(?):?發(fā)行代幣總量式矫。
balanceOf(?):?查看對應(yīng)賬號的代幣余額。
transfer(?):?實(shí)現(xiàn)代幣交易窄瘟,用于給用戶發(fā)送代幣(從我們的賬戶里)
transferFrom(?):?實(shí)現(xiàn)代幣用戶之間的交易衷佃。
allowance(?):?控制代幣的交易,如可交易賬號及資產(chǎn)蹄葱。
approve(?):?允許用戶可花費(fèi)的代幣數(shù)氏义。
編寫代幣合約代碼:
本文選擇了以太坊的測試網(wǎng)絡(luò)Ropsten,如果你沒有余額購買,以太坊的Mist測試網(wǎng)絡(luò)后可以送一些測試以太幣給你图云,配置好之后惯悠,瀏覽器打開RemixSolidity?IDE,復(fù)制以上源碼粘貼上,在右側(cè)選項參考選擇進(jìn)行相關(guān)設(shè)置竣况,??注意Environment和Account和MetaMask保持一致克婶,然后選擇合約Token?ERC20,??填入你想要的發(fā)行量、名稱及代號,就可以創(chuàng)建合約了情萤。
這時MetaMask會彈出一個交易確認(rèn)框鸭蛙,點(diǎn)SUBMIT。待合約部署交易確認(rèn)之后筋岛,復(fù)制合約地址娶视。打開Metamask界面,切換到TOKENS,點(diǎn)添加合約睁宰,出現(xiàn)對話框后填入剛剛復(fù)制的地址肪获,點(diǎn)ADD,這時你就成功創(chuàng)建屬于自己的數(shù)字貨幣了。
3柒傻、兩種加密貨幣發(fā)行方案的比較
兩種方案都可以成功創(chuàng)建屬于自己的區(qū)塊鏈貨幣孝赫,方案二基于以太坊智能合約的優(yōu)點(diǎn)是比較靈活和強(qiáng)大。開發(fā)者基本可以任意編寫自己的數(shù)字貨幣及其衍生的業(yè)務(wù)體系红符,缺點(diǎn)是其中的幣種運(yùn)行和流通交易青柄,需要消耗原生數(shù)字貨幣(Gas費(fèi)用),這是值得考慮的违孝。比特股部分刹前,數(shù)字資產(chǎn)的發(fā)行和管理功能很齊全,但也會一定程度局限在比特股平臺中雌桑,且也需要交易費(fèi)用(Gas費(fèi)用)。
基于平臺的優(yōu)點(diǎn)是簡單易用和免費(fèi)使用(無Gas費(fèi)用)祖今,缺點(diǎn)是提供接口的功能不夠豐富校坑。同時方案二基于已有區(qū)塊鏈公網(wǎng)的數(shù)字資產(chǎn)搭建,在方便的同時千诬,好處是不需要類似方案一那樣耍目,一定要考慮組建自己的節(jié)點(diǎn)群,但缺點(diǎn)是一定程度限制在各個區(qū)塊鏈體系框架中??(其實(shí)大部分情況下已經(jīng)能滿足你的需求了)徐绑,且區(qū)塊性能會受到公網(wǎng)的性能制約邪驮,需要考慮一些區(qū)塊鏈公網(wǎng)的停止維護(hù)或硬分叉的風(fēng)險。
結(jié)語:個人即貨幣傲茄,你相信嗎?
從貨幣發(fā)行和控制的角度看毅访,比特幣有它的美好之處:??作為記賬單位,??最終流通的比特幣將總是略少于2100萬個盘榨,并可劃分為更小的單位;?作為記賬系統(tǒng)喻粹,比特幣實(shí)現(xiàn)了不由中央發(fā)行機(jī)構(gòu)發(fā)行新錢、維護(hù)交易的目標(biāo)草巡,在每筆交易前守呜,錢幣的有效性都必須經(jīng)過檢驗(yàn)確認(rèn),由數(shù)字加密算法保證交易安全,交易記錄由全體網(wǎng)絡(luò)計算機(jī)收錄維護(hù)查乒。
可以說弥喉,??比特幣與任何一個國家發(fā)行的紙質(zhì)貨幣并無區(qū)別,只不過使用比特幣的這個國家的領(lǐng)土是互聯(lián)網(wǎng)玛迄,它的國民是相信比特幣的信用價值并愿意使用它的人們档桃。至于它是否能像哈耶克設(shè)想的那樣成為優(yōu)良貨幣,??這只有上帝知道憔晒,它至少提供了一種可能藻肄,而我們也多了一種選擇。
但比特幣真的就能成為未來貨幣??它昂貴的手續(xù)費(fèi)拒担,它轉(zhuǎn)賬時間的局限嘹屯,它社區(qū)不可調(diào)和的矛盾,它算力的中心化从撼,因?yàn)樯刀鲃有允芟拗莸埽际潜忍貛懦蔀榛ヂ?lián)網(wǎng)未來貨幣的強(qiáng)大阻力。
而且低零,如果私人真能發(fā)行貨幣婆翔,誰來控制貪婪的人性。而人性掏婶,正是比特幣世界里最危險的一環(huán)啃奴。? 就算技術(shù)上可行,倫理學(xué)雄妥、社會學(xué)最蕾、哲學(xué)這些能過得了關(guān)嗎?