1 貨幣的演變——從貝殼到比特幣
當(dāng)社會(huì)分工產(chǎn)生之后,人類(lèi)就產(chǎn)生了商品交換的需求。在貨幣被發(fā)明之前掸掸,人類(lèi)是以以物換物的方式進(jìn)行的。但顯然以物換物存在著商品價(jià)值無(wú)法精確衡量蹭秋,效率低下的問(wèn)題扰付。試想一下,老王扛著一只羊走了一公里山路到老張家里想換幾只雞好過(guò)年仁讨,但是換6只雞老王覺(jué)得虧羽莺,換7只老張又不干。于是人類(lèi)發(fā)明了貨幣洞豁,作為一般等價(jià)物盐固,貨幣可以對(duì)商品價(jià)值進(jìn)行精確度量,利于提高商品交換的效率丈挟,老王也再也不用扛著羊走山路了刁卜,拿著貨幣去買(mǎi)就好。但是最早的貨幣是實(shí)物貨幣曙咽,也就是貝殼长酗、金、銀桐绒、銅這些東西夺脾。能充當(dāng)實(shí)物貨幣的東西都具有一定的稀缺性,即一般人不是那么容易就能搜尋或挖掘到很多的茉继,存量有限咧叭。后來(lái)隨著社會(huì)經(jīng)濟(jì)的發(fā)展,交易越來(lái)越頻繁烁竭,人們發(fā)現(xiàn)實(shí)物貨幣也存在著很多的弊端菲茬。比如易損耗,保存派撕、攜帶都很不方便婉弹、不安全。于是紙幣就被發(fā)明出來(lái)了终吼。紙幣最早在我國(guó)北宋年間就出現(xiàn)了镀赌,被稱(chēng)為“交子”,由官方發(fā)行际跪。相較于實(shí)物貨幣本身具有收藏價(jià)值商佛,紙質(zhì)貨幣本身只是一張紙喉钢,并沒(méi)有什么價(jià)值,它的價(jià)值完全依賴(lài)于發(fā)行該紙幣的政府的信用良姆。因?yàn)槿藗冾A(yù)期拿著這張紙是可以從政府那里換到金子銀子的肠虽。看上去這并沒(méi)有什么問(wèn)題玛追,但是一旦政府失信税课,紙幣也就形同廢紙。政府失信的事在歷史不是沒(méi)有發(fā)生過(guò)痊剖,比如清朝國(guó)庫(kù)存銀緊張時(shí)韩玩,民眾手里的銀票就只能打折換銀子,再比如民國(guó)后期邢笙,政府瘋狂印刷金圓券啸如,物價(jià)飛漲侍匙,民眾手里的紙幣飛速貶值氮惯。政府在法定貨幣上的失信相當(dāng)于掠奪了民眾手里的財(cái)富。
現(xiàn)代社會(huì)想暗,是不是所有的財(cái)富都需要印刷成紙幣在社會(huì)上流通呢妇汗?也不是,紙幣所代表的財(cái)富只占社會(huì)總財(cái)富很小的一部分说莫,國(guó)家發(fā)行紙幣的總量只要滿(mǎn)足市場(chǎng)交易的需要即可杨箭,大部分財(cái)富是以數(shù)字貨幣的形式存在,每個(gè)人的財(cái)富只是一串?dāng)?shù)字储狭,這些數(shù)字統(tǒng)統(tǒng)記錄在銀行的賬本上互婿,當(dāng)然銀行的賬本現(xiàn)在表現(xiàn)就是計(jì)算機(jī)里的數(shù)據(jù)庫(kù)。在這種情況下辽狈,假設(shè)小李從蘇寧買(mǎi)了臺(tái)價(jià)值3000元的空調(diào)慈参,收銀的時(shí)候只要將小李的銀行賬戶(hù)余額C(小李)-3000,再將蘇寧的銀行賬戶(hù)余額C(蘇寧)+3000就可以了刮萌。當(dāng)然現(xiàn)在也可能需要支付寶或者銀聯(lián)等第三方支付提供商做中介完成這筆交易驮配。銀行在修改余額即賬本數(shù)據(jù)的時(shí)候,需要做一些檢查着茸,首先需要小李提供賬戶(hù)密碼壮锻,用以證明小李對(duì)賬戶(hù)余額具有使用權(quán),接著銀行還要檢查小李的賬戶(hù)余額是否大于等于3000涮阔,如果余額不足返回交易失敗提示猜绣。整個(gè)交易過(guò)程中,銀行作為第三方機(jī)構(gòu)敬特,獨(dú)立完成了這次交易支付途事。由于我們國(guó)家的國(guó)有銀行有政府做信用背書(shū)验懊,所以小李和蘇寧都選擇相信銀行不會(huì)有欺詐行為。但是不是就完全沒(méi)有風(fēng)險(xiǎn)了呢尸变?并不是义图。即使銀行不會(huì)主觀上產(chǎn)生欺詐的想法,但同樣存在記賬錯(cuò)誤召烂,或是外來(lái)惡意攻擊的風(fēng)險(xiǎn)碱工。一旦銀行的賬本數(shù)據(jù)發(fā)生錯(cuò)誤或被惡意篡改,小李和蘇寧將沒(méi)有辦法證明自己所擁有的準(zhǔn)確的財(cái)富奏夫。
2009年怕篷,中本聰在網(wǎng)上發(fā)表了比特幣白皮書(shū)《比特幣:?個(gè)點(diǎn)對(duì)點(diǎn)的電子現(xiàn)金系統(tǒng)》,宣告了比特幣的誕生酗昼。由于刻意隱藏廊谓,至今沒(méi)有人知道中本聰?shù)恼鎸?shí)身份,但是比特幣確是一個(gè)天才式的創(chuàng)造麻削。比特幣參考了在它之前被發(fā)明的數(shù)十種加密數(shù)字貨幣所取得的成果蒸痹,這些貨幣由于各種原因都失敗了,一個(gè)主要的原因是無(wú)法解決“雙重支付”問(wèn)題呛哟,所謂“雙重支付”是指同一筆貨幣被重復(fù)支付給不同的賬戶(hù)叠荠。中本聰認(rèn)為之前的加密數(shù)字貨幣之所以失敗,主要是因?yàn)樗鼈兌疾煌潭壬洗嬖谝粋€(gè)中心機(jī)構(gòu)扫责,一旦這個(gè)中心機(jī)構(gòu)失效榛鼎,整個(gè)加密貨幣系統(tǒng)就崩潰了。所以比特幣被設(shè)計(jì)成一個(gè)去中心化的系統(tǒng)鳖孤,它運(yùn)用分布式賬本和特有的共識(shí)機(jī)制解決了“雙重支付”問(wèn)題者娱。
2 比特幣與區(qū)塊鏈的基本原理
2.1 比特幣簡(jiǎn)介
之前已經(jīng)介紹過(guò),數(shù)字貨幣的本質(zhì)就是一個(gè)賬本苏揣。當(dāng)有交易發(fā)生黄鳍,資金所有權(quán)發(fā)生轉(zhuǎn)移(或稱(chēng)價(jià)值轉(zhuǎn)移),就通過(guò)在這個(gè)賬本上記賬來(lái)體現(xiàn)腿准。傳統(tǒng)貨幣金融系統(tǒng)际起,央行承擔(dān)貨幣發(fā)行的職責(zé),商業(yè)銀行承擔(dān)放貸和吸儲(chǔ)的職責(zé)吐葱,每筆交易記錄街望、每個(gè)賬戶(hù)余額都存在銀行的賬本上,銀行此時(shí)是作為一個(gè)中心機(jī)構(gòu)弟跑。比特幣系統(tǒng)完全運(yùn)行在互聯(lián)網(wǎng)上灾前,并沒(méi)有一個(gè)中心機(jī)構(gòu)替用戶(hù)保存賬本。相反孟辑,每一個(gè)持有比特幣哎甲、運(yùn)用比特幣完成交易的節(jié)點(diǎn)(完全節(jié)點(diǎn))都會(huì)在本地保存一份賬本蔫敲,并從網(wǎng)絡(luò)上接收新的交易數(shù)據(jù)對(duì)自己的賬本進(jìn)行更新。所以說(shuō)炭玫,不同于傳統(tǒng)貨幣交易賬本由銀行私密保存奈嘿,比特幣的賬本是公開(kāi)的,分布式存儲(chǔ)在每一個(gè)參與交易的節(jié)點(diǎn)上吞加。
比特幣系統(tǒng)是一種P2P網(wǎng)絡(luò)系統(tǒng)裙犹,網(wǎng)絡(luò)中并不存在任何中心節(jié)點(diǎn),所有P2P網(wǎng)絡(luò)中的節(jié)點(diǎn)地位都是相等的衔憨,每個(gè)節(jié)點(diǎn)從網(wǎng)絡(luò)接收資源和服務(wù)的同時(shí)也向網(wǎng)絡(luò)中的其它節(jié)點(diǎn)提供資源和服務(wù)叶圃。想加入比特幣網(wǎng)絡(luò)也很簡(jiǎn)單,從比特幣官方網(wǎng)站下載比特幣客戶(hù)端并安裝到自己的計(jì)算機(jī)践图,保證本地存儲(chǔ)系統(tǒng)有足夠的空間來(lái)存儲(chǔ)公共賬本數(shù)據(jù)掺冠,運(yùn)行比特幣客戶(hù)端并聯(lián)入互聯(lián)網(wǎng),客戶(hù)端端口會(huì)自動(dòng)連接到若干現(xiàn)有節(jié)點(diǎn)码党,此時(shí)這臺(tái)計(jì)算機(jī)就可以作為比特幣網(wǎng)絡(luò)中的一個(gè)節(jié)點(diǎn)存在了德崭。初始加入的比特幣節(jié)點(diǎn)可以從其它節(jié)點(diǎn)接收賬本數(shù)據(jù)并保存下來(lái)。比特幣網(wǎng)絡(luò)中的節(jié)點(diǎn)時(shí)時(shí)刻刻都是在動(dòng)態(tài)變化的闽瓢,一個(gè)節(jié)點(diǎn)可以隨時(shí)選擇退出接癌,重新加入時(shí)只需要連接其它節(jié)點(diǎn)并接收它離開(kāi)期間新增的交易數(shù)據(jù)就可以心赶。
雖然每個(gè)節(jié)點(diǎn)都保存有比特幣交易賬本扣讼,但為了保持所有賬本副本的一致性,每筆交易只能安排一個(gè)節(jié)點(diǎn)記賬缨叫,其它節(jié)點(diǎn)同步新增的交易數(shù)據(jù)椭符。那到底哪個(gè)節(jié)點(diǎn)擁有記賬的資格呢?比特幣系統(tǒng)采用了競(jìng)爭(zhēng)記賬的機(jī)制耻姥。所有節(jié)點(diǎn)共同參與一個(gè)解方程大賽销钝,由于這個(gè)方程解空間巨大且無(wú)任何求解的規(guī)律可言,每個(gè)參與競(jìng)賽的節(jié)點(diǎn)只能采用隨機(jī)嘗試的辦法搜索方程的解琐簇。這樣一來(lái)蒸健,解方程大賽就變成了對(duì)各節(jié)點(diǎn)計(jì)算機(jī)運(yùn)算能力的一場(chǎng)考驗(yàn),擁有最強(qiáng)大運(yùn)算能力的節(jié)點(diǎn)顯然可能更快找到解婉商。一旦某個(gè)節(jié)點(diǎn)率先找到一個(gè)滿(mǎn)足要求的解似忧,它就搶到了本次競(jìng)賽的記賬權(quán)。這樣的解方程競(jìng)賽大約每10分鐘在全網(wǎng)舉行一次丈秩,搶到記賬權(quán)的節(jié)點(diǎn)迅速將過(guò)去10分鐘全網(wǎng)發(fā)生的交易數(shù)據(jù)記錄到一個(gè)新的區(qū)塊(區(qū)塊鏈的基本單位盯捌,可以看成是一個(gè)具有特定數(shù)據(jù)結(jié)構(gòu)的文件),并將這個(gè)區(qū)塊馬上向全網(wǎng)分發(fā)蘑秽,網(wǎng)上的其它節(jié)點(diǎn)接收到這個(gè)區(qū)塊時(shí)饺著,它就意識(shí)到本次解方程大賽已經(jīng)結(jié)束了箫攀,進(jìn)而馬上停止本輪的解方程競(jìng)賽,同時(shí)開(kāi)始下一輪解方程大賽幼衰。
比特幣交易的過(guò)程完全是匿名的靴跛。比特幣客戶(hù)端有錢(qián)包的功能,比特幣錢(qián)包并不存儲(chǔ)貨幣渡嚣,存儲(chǔ)的是地址和私鑰汤求。根據(jù)非對(duì)稱(chēng)加密的原理,一對(duì)非對(duì)稱(chēng)密鑰分為公鑰和私鑰严拒,私鑰私密保存扬绪,公鑰可以公開(kāi)出來(lái),其它節(jié)點(diǎn)想給當(dāng)前節(jié)點(diǎn)加密發(fā)送消息時(shí)裤唠,可以用公鑰對(duì)消息進(jìn)行加密挤牛,只有擁有私鑰的節(jié)點(diǎn)才能對(duì)消息解密,這樣就保證了信息傳輸不會(huì)被泄漏种蘸。在比特幣網(wǎng)絡(luò)墓赴,每個(gè)節(jié)點(diǎn)的私鑰由錢(qián)包加密存儲(chǔ),用戶(hù)也可以備份成其他形式存儲(chǔ)航瞭。公鑰經(jīng)雙Hash運(yùn)算得到的字符串诫硕,被稱(chēng)為地址,其實(shí)就是另一種形式的公鑰刊侯。一個(gè)比特幣地址和它對(duì)應(yīng)的私鑰就可以看成一個(gè)賬戶(hù)章办,地址可以看做用戶(hù)名,私鑰看做賬戶(hù)密碼滨彻。擁有私鑰的人就擁有這個(gè)地址上的所有資金藕届。比特幣的賬本數(shù)據(jù)中并不存在賬戶(hù)余額的概念。事實(shí)上賬本數(shù)據(jù)中如果用余額字段來(lái)表示每個(gè)節(jié)點(diǎn)擁有的資產(chǎn)亭饵,那么余額字段的數(shù)據(jù)是很容易被惡意篡改的休偶。既然沒(méi)有余額數(shù)據(jù),那么交易時(shí)就沒(méi)有辦法通過(guò)對(duì)相關(guān)節(jié)點(diǎn)余額字段的修改實(shí)現(xiàn)辜羊。事實(shí)上踏兜,比特幣交易中“花費(fèi)”的是在交易中生成的“未使用的交易輸出(UTXO)”。每一筆交易轉(zhuǎn)賬相當(dāng)于將一筆錢(qián)注冊(cè)到新的地址上八秃。比特幣地址并沒(méi)有余額碱妆,有的是遍布在賬本里所有注冊(cè)在這個(gè)地址上的UTXO。相當(dāng)于這個(gè)地址所擁有的資金分布在一筆筆交易記錄中喜德。比特幣客戶(hù)端顯示的賬戶(hù)余額其實(shí)是對(duì)賬本數(shù)據(jù)中隸屬于當(dāng)前節(jié)點(diǎn)的UTXO逐一統(tǒng)計(jì)得到的結(jié)果山橄。
2.2 比特幣交易
比特幣將貨幣、交易、賬本全都變成了一種數(shù)據(jù)結(jié)構(gòu)航棱,所以看一下一筆交易的數(shù)據(jù)結(jié)構(gòu)你會(huì)更理解睡雇。
如表2-1所示,一筆交易可以包含多個(gè)輸入并形成多個(gè)輸出饮醇。尚未被“花費(fèi)”的交易輸出即UTXO(unspent transaction output)它抱,所謂“花費(fèi)”指將這筆錢(qián)注冊(cè)到其它地址(資金所有權(quán)轉(zhuǎn)移)。時(shí)間戳標(biāo)記這筆交易發(fā)生的時(shí)間朴艰。再來(lái)看一下交易輸出(表2-2)和輸入(表2-3)的數(shù)據(jù)結(jié)構(gòu)观蓄。
交易輸出的數(shù)據(jù)結(jié)構(gòu)很簡(jiǎn)單,主要就是資金總量和鎖定腳本祠墅。資金總量表明了轉(zhuǎn)賬了多少錢(qián)侮穿。鎖定腳本其實(shí)表明了這筆錢(qián)的所有權(quán)。鎖定腳本里包含的最重要的內(nèi)容是轉(zhuǎn)賬的目標(biāo)地址毁嗦,之前我們也介紹過(guò)亲茅,比特幣地址其實(shí)就是公鑰轉(zhuǎn)換得到的。交易輸出里包含了目標(biāo)地址相當(dāng)于用公鑰給這筆錢(qián)(交易輸出)上了一把鎖狗准,只有唯一那個(gè)有對(duì)應(yīng)鑰匙(私鑰)的用戶(hù)才可以使用它克锣。
交易輸入的數(shù)據(jù)結(jié)構(gòu)如表2-3,主要包括指向UTXO的指針和解鎖腳本腔长。注意到袭祟,比特幣賬本里只有交易輸出才記錄了資金,交易輸入只是使用資金時(shí)用的那把鑰匙捞附。其中指向UTXO的指針字段表明要“花費(fèi)”哪個(gè)UTXO巾乳。解鎖腳本包含了用戶(hù)的私鑰,正確的私鑰可以解密UTXO鎖定腳本中的公鑰加密故俐。解鎖腳本和鎖定腳本一起運(yùn)行就可以正確使用UTXO完成交易了想鹰。
現(xiàn)在小李從蘇寧購(gòu)買(mǎi)了一臺(tái)空調(diào)紊婉,需要支付0.15比特幣药版,小李的比特幣客戶(hù)端里的錢(qián)包模塊會(huì)從所有注冊(cè)在小李地址上的UTXO中選出一個(gè)數(shù)額最合適的,假設(shè)最合適的UTXO的面值是0.2比特幣∮骼纾現(xiàn)在槽片,小李的錢(qián)包就會(huì)創(chuàng)建一筆新的交易,輸入就是面值0.2比特幣的UTXO肢础,生成一筆0.15比特幣的輸出(一個(gè)UTXO)还栓,輸出鎖定腳本包含蘇寧的地址。與此同時(shí)生成一筆地址為自己的輸出0.04比特幣(另一個(gè)UTXO)传轰,也就是找零剩盒。但是這里0.2-0.15-0.04=0.01,剩余的0.01比特幣作為交易費(fèi)用慨蛙,用來(lái)獎(jiǎng)勵(lì)承擔(dān)記賬工作的節(jié)點(diǎn)辽聊,贏得記賬權(quán)的節(jié)點(diǎn)會(huì)自動(dòng)收集的纪挎。
2.2.1 交易周期
一筆比特幣交易的生命周期從它被創(chuàng)建的那一刻開(kāi)始,節(jié)點(diǎn)會(huì)將這筆交易在比特幣網(wǎng)絡(luò)上廣播跟匆,收到這筆交易數(shù)據(jù)的節(jié)點(diǎn)會(huì)對(duì)交易有效性進(jìn)行獨(dú)立檢驗(yàn)异袄。檢驗(yàn)內(nèi)容包括語(yǔ)法和數(shù)據(jù)格式是否有誤、交易輸入和輸出是否為空等等玛臂。通過(guò)獨(dú)立驗(yàn)證的交易會(huì)被放入節(jié)點(diǎn)自己的交易池烤蜕,同時(shí)繼續(xù)向其它節(jié)點(diǎn)廣播,沒(méi)有通過(guò)檢驗(yàn)的交易直接被拒絕并不再?gòu)V播迹冤。等到這筆交易被網(wǎng)絡(luò)上的大部分節(jié)點(diǎn)驗(yàn)證讽营,可能耗時(shí)不到一秒鐘,交易會(huì)最終被一個(gè)挖礦節(jié)點(diǎn)驗(yàn)證并記錄到區(qū)塊鏈上一個(gè)還記錄有很多其他交易的區(qū)塊上(挖礦節(jié)點(diǎn):參與解方程大賽并取得當(dāng)次記賬權(quán)的節(jié)點(diǎn))泡徙。此時(shí)這筆交易的交易輸出(UTXO)還不能被使用斑匪,等到區(qū)塊鏈中在這個(gè)區(qū)塊之上又生成足夠多的區(qū)塊,交易才成為區(qū)塊鏈總賬簿的一部分锋勺,這時(shí)交易輸出UTXO就可以被新的資金擁有者在下一筆交易中使用了蚀瘸,這樣就進(jìn)入下一個(gè)交易周期了。
2.3 比特幣網(wǎng)絡(luò)與節(jié)點(diǎn)
比特幣運(yùn)行在互聯(lián)網(wǎng)上并采用P2P協(xié)議庶橱,P2P網(wǎng)絡(luò)又稱(chēng)對(duì)等網(wǎng)絡(luò)贮勃,網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)的地位都是相等的。比特幣設(shè)計(jì)的核心原則是去中心化苏章,采用P2P網(wǎng)絡(luò)很好的體現(xiàn)了這個(gè)核心原則寂嘉。雖然比特幣網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)的地位相等,但不同節(jié)點(diǎn)的功能還是不一樣的枫绅。但是泉孩,任何節(jié)點(diǎn)都包含四個(gè)基本功能中的一個(gè)或者多個(gè):錢(qián)包、礦工并淋、完整區(qū)塊鏈寓搬、網(wǎng)絡(luò)路由節(jié)點(diǎn)。
所有節(jié)點(diǎn)都是網(wǎng)絡(luò)路由節(jié)點(diǎn)县耽,可以對(duì)新創(chuàng)建的交易和區(qū)塊進(jìn)行驗(yàn)證换团,對(duì)通過(guò)驗(yàn)證的交易和區(qū)塊進(jìn)行轉(zhuǎn)發(fā)绞呈。
一個(gè)具備全部四個(gè)功能的節(jié)點(diǎn)被稱(chēng)為全節(jié)點(diǎn)镊叁。全節(jié)點(diǎn)在本地存儲(chǔ)完整的區(qū)塊鏈數(shù)據(jù)(賬本)渴邦,可以獨(dú)立的對(duì)交易和區(qū)塊數(shù)據(jù)進(jìn)行驗(yàn)證而不需要依賴(lài)于其他節(jié)點(diǎn)。
全節(jié)點(diǎn)同時(shí)具備挖礦功能澎剥,即參加算力競(jìng)賽(解方程大賽)來(lái)贏得記賬權(quán)的能力锡溯。之所以稱(chēng)競(jìng)爭(zhēng)記賬權(quán)的行為為“挖礦”。這是為了類(lèi)比于傳統(tǒng)實(shí)物貨幣(金、銀)的挖掘開(kāi)采行為祭饭。每個(gè)在算力競(jìng)賽中獲勝的節(jié)點(diǎn)能夠獲得一定數(shù)量的比特幣做獎(jiǎng)勵(lì)涌乳,目前是12.5個(gè)比特幣,獎(jiǎng)勵(lì)的數(shù)量大約每4年會(huì)減少一半甜癞。除全節(jié)點(diǎn)之外夕晓,也有單獨(dú)的挖礦節(jié)點(diǎn)。
全節(jié)點(diǎn)同時(shí)具備錢(qián)包功能悠咱。錢(qián)包是用來(lái)生成并保存地址和私鑰蒸辆,同時(shí)創(chuàng)建交易的模塊。
相比于全節(jié)點(diǎn)析既,有些節(jié)點(diǎn)只存儲(chǔ)了部分區(qū)塊鏈數(shù)據(jù)躬贡,它通過(guò)“簡(jiǎn)易支付驗(yàn)證(SPV)”的方式來(lái)完成交易驗(yàn)證,稱(chēng)為SPV節(jié)點(diǎn)或輕量級(jí)節(jié)點(diǎn)眼坏。SPV節(jié)點(diǎn)一般具備網(wǎng)絡(luò)路由節(jié)點(diǎn)和錢(qián)包功能拂玻。為了讓智能手機(jī)這種資源有限的終端具備比特幣交易的能力,SPV節(jié)點(diǎn)現(xiàn)在越來(lái)越普遍宰译。
2.4 比特幣區(qū)塊鏈
區(qū)塊鏈的英文名字 Block Chain 更容易理解檐蚜。Block其實(shí)是一個(gè)常用的數(shù)據(jù)量大小的度量單位。比如在Linux/Unix系統(tǒng)里有一個(gè)數(shù)據(jù)塊(Data Block)的概念沿侈,數(shù)據(jù)塊是文件系統(tǒng)讀寫(xiě)的最小單元闯第,在Linux/Unix系統(tǒng)中是512個(gè)字節(jié),一個(gè)文件所占大小就是數(shù)據(jù)塊的整數(shù)倍缀拭。又比如在Google分布式文件系統(tǒng)HDFS中咳短,也有一個(gè)塊(Block)的概念,也是數(shù)據(jù)存儲(chǔ)的一個(gè)基本單元蛛淋,不同之處在于HDFS為了提高大數(shù)據(jù)的效率和集群的吞吐量咙好,將一個(gè)塊的大小設(shè)置成64MB。所以區(qū)塊鏈里的“區(qū)塊”也是指一個(gè)數(shù)據(jù)單元褐荷,而“鏈”其實(shí)就是將很多數(shù)據(jù)單元(區(qū)塊)一個(gè)個(gè)串聯(lián)起來(lái)勾效,就像一個(gè)鏈表。但是鏈表是通過(guò)指針將數(shù)據(jù)串聯(lián)起來(lái)的诚卸,而區(qū)塊鏈?zhǔn)峭ㄟ^(guò)在每個(gè)區(qū)塊中存儲(chǔ)前一個(gè)區(qū)塊的唯一標(biāo)識(shí)符來(lái)鏈接的葵第。具體可以看區(qū)塊和區(qū)塊頭的數(shù)據(jù)結(jié)構(gòu)。
一個(gè)區(qū)塊主要分為兩部分:區(qū)塊頭和交易數(shù)據(jù)合溺。區(qū)塊頭里記錄的是這個(gè)區(qū)塊的元數(shù)據(jù),具體見(jiàn)區(qū)塊頭數(shù)據(jù)結(jié)構(gòu)表2-5缀台。交易數(shù)據(jù)部分記錄了從上一個(gè)區(qū)塊被挖出到當(dāng)前區(qū)塊被挖出的約10分鐘時(shí)間內(nèi)棠赛,全網(wǎng)發(fā)生的所有比特幣交易。比特幣系統(tǒng)中一個(gè)區(qū)塊大小并沒(méi)有嚴(yán)格限制,區(qū)塊頭的大小固定是80個(gè)字節(jié)睛约,平均每個(gè)交易至少是250個(gè)字節(jié)鼎俘,而平均每個(gè)區(qū)塊至少包含超過(guò)500個(gè)交易。交易的數(shù)據(jù)結(jié)構(gòu)之前已經(jīng)介紹過(guò)辩涝,下面來(lái)看一下區(qū)塊頭的數(shù)據(jù)結(jié)構(gòu)贸伐。
?“父區(qū)塊哈希值”字段存儲(chǔ)了前一個(gè)區(qū)塊數(shù)據(jù)的Hash值,嚴(yán)格來(lái)說(shuō)怔揩,并不是整個(gè)區(qū)塊數(shù)據(jù)的Hash值捉邢,而是區(qū)塊頭數(shù)據(jù)的Hash值。其實(shí)是運(yùn)用SHA256算法對(duì)區(qū)塊頭數(shù)據(jù)做兩次Hash運(yùn)算得出的商膊。由于每個(gè)區(qū)塊頭數(shù)據(jù)具有唯一性伏伐,它的Hash值基本可以作為區(qū)塊的主標(biāo)識(shí)符。所以將前一個(gè)區(qū)塊(父區(qū)塊)的標(biāo)識(shí)符存在當(dāng)前區(qū)塊的區(qū)塊頭里晕拆,也就相當(dāng)于將這兩個(gè)區(qū)塊連接了起來(lái)藐翎。
“Merkle根”字段相當(dāng)于是區(qū)塊內(nèi)所有交易數(shù)據(jù)的一個(gè)數(shù)字指紋,要得到Merkle根先要?jiǎng)?chuàng)建一棵Merkle樹(shù)实幕。假設(shè)現(xiàn)在有A吝镣,B,C昆庇,D四筆交易赤惊,創(chuàng)建的Merkle樹(shù)圖2-2。
Merkle樹(shù)是自底向上創(chuàng)建的掂为,是一種Hash二叉樹(shù)裕膀。首先將交易數(shù)據(jù)輸入SHA256算法得到每筆交易的Hash值Ha、Hb勇哗、Hc昼扛、Hd,這四個(gè)Hash值作為葉子節(jié)點(diǎn)欲诺,將葉子節(jié)點(diǎn)Hash值兩兩連接起來(lái)繼續(xù)輸入SHA256算法可以得到上一層節(jié)點(diǎn)的Hash值抄谐,計(jì)算示例如下。如果葉子節(jié)點(diǎn)個(gè)數(shù)為奇數(shù)扰法,將最后一個(gè)節(jié)點(diǎn)復(fù)制一份蛹含。
Ha=SHA256(SHA256(交易A))
Hab=SHA256(SHA256(Ha+Hb))
如此循環(huán)進(jìn)行,直到只剩一個(gè)節(jié)點(diǎn)塞颁,也就是Merkle樹(shù)根浦箱∥ⅲ考慮到SHA256算法的特性,Merkle根可以看成是所有交易數(shù)據(jù)的一個(gè)歸納酷窥,也可以看成是所有交易數(shù)據(jù)的數(shù)字指紋咽安,因?yàn)榧词谷我饨灰讛?shù)據(jù)被微小篡改,它生成的Hash值也會(huì)有很大變化蓬推,而葉子節(jié)點(diǎn)Hash值的變化妆棒,又會(huì)影響從該葉子節(jié)點(diǎn)連接到Merkle根的路徑上所有節(jié)點(diǎn)Hash值的變化,最終使Merkle根產(chǎn)生很大的變化沸伏。因此Merkle根可以唯一標(biāo)識(shí)一批交易數(shù)據(jù)糕珊,也可以驗(yàn)證一批交易數(shù)據(jù)是否被篡改過(guò)。由于SHA256算法輸出固定是32個(gè)字節(jié)馋评,所以Merkle樹(shù)中所有節(jié)點(diǎn)包括Merkle樹(shù)根的值都固定是32個(gè)字節(jié)放接。Merkle樹(shù)在比特幣系統(tǒng)中的一個(gè)主要用處是可以高效的驗(yàn)證一筆交易是否存在于區(qū)塊中。假設(shè)某區(qū)塊記錄了N筆交易留特,利用Merkle樹(shù)可以最多計(jì)算2*log2(N)次就可以判斷一筆交易是否存在于這個(gè)區(qū)塊中纠脾。
區(qū)塊頭數(shù)據(jù)結(jié)構(gòu)中的“難度目標(biāo)”字段是用來(lái)動(dòng)態(tài)調(diào)節(jié)挖礦難度的,約兩周時(shí)間會(huì)調(diào)整一次蜕青,為了保證能夠在大概在10分鐘左右的時(shí)間挖出一個(gè)區(qū)塊(解出方程)苟蹈。Nonce字段也是在挖礦(解方程大賽)時(shí)用到的,Nonce字段的值作為方程未知變量的一部分右核,不斷修改Nonce字段值以獲得滿(mǎn)足難度目標(biāo)的解慧脱。
區(qū)塊鏈就是就是將包含交易信息的區(qū)塊從后往前依次連接起來(lái)的數(shù)據(jù)結(jié)構(gòu)。它可以存儲(chǔ)在文件系統(tǒng)贺喝,也可以存儲(chǔ)在一個(gè)簡(jiǎn)單數(shù)據(jù)庫(kù)菱鸥。區(qū)塊鏈可以被視為一個(gè)垂直的棧,第一個(gè)區(qū)塊(創(chuàng)世區(qū)塊)作為棧的底部躏鱼,后續(xù)創(chuàng)建的區(qū)塊依次向上疊加氮采,這樣就可以用一些術(shù)語(yǔ),“高度”來(lái)表示當(dāng)前區(qū)塊離第一個(gè)區(qū)塊之間的距離染苛,用“頂部”表示最新生成的區(qū)塊鹊漠,用“深度”表示當(dāng)前區(qū)塊距離頂部區(qū)塊的距離。
每個(gè)區(qū)塊的區(qū)塊頭數(shù)據(jù)經(jīng)SHA256算法得到區(qū)塊Hash值茶行,每個(gè)區(qū)塊的區(qū)塊Hash值并不存在于自身數(shù)據(jù)當(dāng)中躯概,而是在創(chuàng)建它的子區(qū)塊(棧內(nèi)上一層區(qū)塊)時(shí)臨時(shí)計(jì)算得出并存儲(chǔ)在子區(qū)塊“父區(qū)塊哈希值”字段中。由于區(qū)塊Hash值可以在區(qū)塊鏈中唯一識(shí)別出一個(gè)區(qū)塊畔师,因此通過(guò)“父區(qū)塊哈希值”就可以引用前一個(gè)區(qū)塊娶靡。這樣就通過(guò)“父區(qū)塊哈希值”字段將每個(gè)區(qū)塊依次鏈接起來(lái)形成了一條一直可以追溯到首區(qū)塊(創(chuàng)世區(qū)塊)的鏈條,見(jiàn)圖2-3茉唉。每個(gè)區(qū)塊都只有一個(gè)父區(qū)塊固蛾,但可能存在多個(gè)子區(qū)塊结执,這被稱(chēng)為“區(qū)塊鏈分叉”度陆。這種情況只在兩個(gè)礦工幾乎同時(shí)挖掘出新區(qū)塊時(shí)才可能出現(xiàn)艾凯,但也只是暫時(shí)存在,很快區(qū)塊鏈系統(tǒng)就會(huì)選出工作量最大的鏈條作為主鏈懂傀。
區(qū)塊哈希值雖然只是區(qū)塊頭數(shù)據(jù)的Hash值,但是區(qū)塊頭中包含的Merkle根字段是對(duì)所有交易數(shù)據(jù)的一個(gè)概括蹬蚁。上面介紹過(guò)恃泪,任何對(duì)交易數(shù)據(jù)的微篡改都會(huì)導(dǎo)致Merkle根發(fā)生很大變化,進(jìn)而導(dǎo)致區(qū)塊哈希值也發(fā)生變化犀斋。由于子區(qū)塊會(huì)存儲(chǔ)父區(qū)塊的區(qū)塊哈希值贝乎,所以如果父區(qū)塊任意數(shù)據(jù)有變動(dòng),就會(huì)導(dǎo)致子區(qū)塊數(shù)據(jù)產(chǎn)生變動(dòng)叽粹,而子區(qū)塊數(shù)據(jù)變動(dòng)又會(huì)導(dǎo)致孫區(qū)塊值發(fā)生變動(dòng)览效,等等以此類(lèi)推。很明顯虫几,對(duì)區(qū)塊鏈中任意區(qū)塊數(shù)據(jù)的篡改都會(huì)導(dǎo)致它后續(xù)所有區(qū)塊的數(shù)據(jù)發(fā)生變動(dòng)锤灿,除非將后續(xù)所有區(qū)塊都重新生成,否則無(wú)法修改區(qū)塊鏈中的數(shù)據(jù)辆脸。而重新生成區(qū)塊面臨著巨大的工作量(解出每個(gè)區(qū)塊中的方程)但校,當(dāng)區(qū)塊的“深度”到達(dá)6時(shí),由于巨大的工作量導(dǎo)致實(shí)際上想篡改這個(gè)區(qū)塊的數(shù)據(jù)已經(jīng)變得不可能啡氢。這種區(qū)塊鏈歷史數(shù)據(jù)不可更改的特性是區(qū)塊鏈可信的一個(gè)關(guān)鍵原因状囱。同時(shí),這也是比特幣安全性的一個(gè)關(guān)鍵原因倘是。
2.5 比特幣挖礦
將比特幣網(wǎng)絡(luò)中節(jié)點(diǎn)之間競(jìng)爭(zhēng)記賬權(quán)的行為稱(chēng)為“挖礦”亭枷。“挖礦”是比特幣系統(tǒng)中一個(gè)非常聰明的設(shè)計(jì)辨绊,它同時(shí)實(shí)現(xiàn)了三個(gè)目標(biāo):
(1)一種激勵(lì)機(jī)制奶栖,使得比特幣節(jié)點(diǎn)有動(dòng)力去記錄交易數(shù)據(jù)。
(2)實(shí)現(xiàn)了新幣發(fā)行门坷。
(3)通過(guò)工作量證明算法(解方程大賽)使得區(qū)塊鏈歷史數(shù)據(jù)實(shí)際上不可更改宣鄙。
之前說(shuō)節(jié)點(diǎn)之間競(jìng)爭(zhēng)記賬權(quán)其實(shí)是在參加每10分鐘一場(chǎng)在全網(wǎng)舉行的解方程大賽。每場(chǎng)競(jìng)賽的獲勝者將獲得本輪記賬權(quán)默蚌,有權(quán)創(chuàng)建一個(gè)新區(qū)塊并將前10分鐘全網(wǎng)發(fā)生的比特幣交易記錄到新區(qū)塊冻晤。解方程大賽的規(guī)則被一個(gè)稱(chēng)為“工作量證明(Proof of Work)”的算法所定義。工作量證明算法定義每輪競(jìng)賽中所有挖礦節(jié)點(diǎn)獨(dú)立求解一道包含Hash函數(shù)的方程绸吸,誰(shuí)先求出滿(mǎn)足難度目標(biāo)的解鼻弧,誰(shuí)就獲勝设江。
什么方程?Hash(區(qū)塊頭數(shù)據(jù))=滿(mǎn)足難度目標(biāo)的哈希值攘轩。
其實(shí)就是通過(guò)不斷修改區(qū)塊頭中的Nonce字段值(通常是遞增1)叉存,使得區(qū)塊頭哈希值滿(mǎn)足難度目標(biāo)。難度目標(biāo)就是區(qū)塊頭“難度目標(biāo)”字段值度帮。這個(gè)難度目標(biāo)字段值通常類(lèi)似于:哈希函數(shù)的輸出值十六進(jìn)制表示以0開(kāi)頭歼捏。從概率角度看,平均隨機(jī)嘗試16次可以得到一個(gè)滿(mǎn)足難度目標(biāo)的解(十六進(jìn)制數(shù)字取值0到F)笨篷。從數(shù)字角度看瞳秽,要找一個(gè)輸出小于0x10000000......0的輸入。顯然率翅,這個(gè)字段的值可以看成一個(gè)難度閾值练俐。如果將難度閾值繼續(xù)降低,要找到一個(gè)滿(mǎn)足要求的解會(huì)變得越來(lái)越困難冕臭。2014年的時(shí)候腺晾,一個(gè)礦工平均要嘗試10^15次才能找到一個(gè)合適的Nonce使得區(qū)塊頭信息哈希值足夠小。這幾年隨著計(jì)算機(jī)運(yùn)算能力的快速進(jìn)步浴韭,挖礦設(shè)備越來(lái)越專(zhuān)業(yè)丘喻,難度閾值也設(shè)置的越來(lái)越小,才能保證全網(wǎng)10分鐘左右挖出一個(gè)新區(qū)塊念颈。難度目標(biāo)的調(diào)整是依據(jù)最新的2016個(gè)區(qū)塊(約兩周時(shí)間)與20160分鐘的比較得出的泉粉。
挖礦過(guò)程中,每次嘗試雖然是Nonce值遞增榴芳,但其實(shí)是在隨機(jī)嘗試嗡靡。這是由哈希函數(shù)的三個(gè)性質(zhì)決定的:
(1)不可逆。不可能根據(jù)哈希函數(shù)的輸出值反推出輸入值窟感。
(2)抗碰撞讨彼。兩個(gè)不同的輸入值得到相同哈希輸出的可能性極低。
(3)高靈敏柿祈。當(dāng)輸入有微小變化時(shí)哈希值輸出都會(huì)產(chǎn)生巨大的變化哈误。
以上三個(gè)性質(zhì)保證在搜索解時(shí),沒(méi)有辦法用前面的前一步經(jīng)驗(yàn)來(lái)指導(dǎo)后續(xù)的搜索躏嚎,只能一直處于隨機(jī)搜索的狀態(tài)蜜自。這保證了想?yún)⑴c挖礦或者說(shuō)在工作量證明中獲勝的節(jié)點(diǎn)唯一的選擇就是不斷提高自己的算力,而沒(méi)有任何其它的“捷徑”卢佣,而這點(diǎn)正是區(qū)塊鏈安全性的基石重荠。
挖礦是比特幣系統(tǒng)運(yùn)行的核心環(huán)節(jié),但是參與挖礦的節(jié)點(diǎn)需要投入大量的資源虚茶,包括挖礦設(shè)備和電力消耗戈鲁。顯然如果沒(méi)有激勵(lì)機(jī)制仇参,節(jié)點(diǎn)是沒(méi)有動(dòng)力去挖礦的。比特幣的設(shè)計(jì)是婆殿,節(jié)點(diǎn)挖出一個(gè)新區(qū)塊以后诈乒,它記錄的第一筆交易并不是從全網(wǎng)接收到的交易,而是自己創(chuàng)建的一筆特殊交易——?jiǎng)?chuàng)幣交易或者稱(chēng)coinbase交易鸣皂。假設(shè)A節(jié)點(diǎn)挖出了一個(gè)新區(qū)塊抓谴,它創(chuàng)建的創(chuàng)幣交易內(nèi)容類(lèi)似于“向A節(jié)點(diǎn)的地址支付12.5個(gè)比特幣”暮蹂。這12.5個(gè)全新的比特幣是之前不存在于區(qū)塊鏈賬本中的增量寞缝,也是作為對(duì)挖礦節(jié)點(diǎn)的獎(jiǎng)勵(lì)。創(chuàng)幣交易的特殊在于不消耗UTXO仰泻,即沒(méi)有交易輸入只有交易輸出荆陆。所以給挖出新區(qū)塊的節(jié)點(diǎn)的獎(jiǎng)勵(lì)包括兩部分:新幣獎(jiǎng)勵(lì)和交易費(fèi)用。目前礦工獲得的主要收益還是新幣獎(jiǎng)勵(lì)為主集侯,交易費(fèi)用占比還比較小被啼。
可以看出,挖礦設(shè)計(jì)的高明之處在于它不僅是一種激勵(lì)記賬的機(jī)制棠枉,同時(shí)解決了加密數(shù)字貨幣新幣發(fā)行的難題浓体。從2009年1月每個(gè)區(qū)塊獎(jiǎng)勵(lì)50個(gè)比特幣開(kāi)始,每四年獎(jiǎng)勵(lì)的比特幣數(shù)量減少一半(準(zhǔn)確地說(shuō)是210,000個(gè)區(qū)塊)辈讶,直到2100萬(wàn)比特幣全部發(fā)行完畢(大約2140年)命浴,目前每個(gè)新區(qū)塊獎(jiǎng)勵(lì)12.5個(gè)比特幣〖可以看出生闲,比特幣是一種總量有限的緊縮貨幣。
2.6 去中心化共識(shí)機(jī)制
一種貨幣體系很重要的組成部分就是要有一份所有參與者一致信任的賬本月幌。這在傳統(tǒng)貨幣體系中很容易實(shí)現(xiàn)碍讯,銀行作為貨幣體系的中心結(jié)構(gòu),保存這樣一份賬本并在新交易發(fā)生時(shí)維持對(duì)賬本的更新扯躺。但比特幣網(wǎng)絡(luò)是由分布在互聯(lián)網(wǎng)上的數(shù)以萬(wàn)計(jì)的節(jié)點(diǎn)組成捉兴,并沒(méi)有中心機(jī)構(gòu)來(lái)保存賬本,那么那么多節(jié)點(diǎn)之間如何形成一份一致認(rèn)可的賬本录语?中本聰?shù)囊粋€(gè)主要?jiǎng)?chuàng)新就在于設(shè)計(jì)了一種去中心化共識(shí)機(jī)制倍啥,解決了古老的“拜占庭將軍難題”,即如何在不可信的環(huán)境中在異步節(jié)點(diǎn)之間達(dá)成共識(shí)钦无。共識(shí)是網(wǎng)絡(luò)中數(shù)以萬(wàn)計(jì)的獨(dú)立節(jié)點(diǎn)遵守了簡(jiǎn)單的規(guī)則逗栽,獨(dú)立異步地交互形成的產(chǎn)物,主要包括以下四個(gè)方面:
(1)每個(gè)節(jié)點(diǎn)對(duì)接收到的交易的有效性進(jìn)行獨(dú)立檢驗(yàn)
(2)每個(gè)節(jié)點(diǎn)通過(guò)工作量證明算法競(jìng)爭(zhēng)記賬權(quán)并對(duì)近期的交易獨(dú)立打包記錄到新區(qū)塊
(3)每個(gè)節(jié)點(diǎn)對(duì)接收到的新區(qū)塊進(jìn)行獨(dú)立檢驗(yàn)并組裝到區(qū)塊鏈
(4)每個(gè)節(jié)點(diǎn)獨(dú)立地選擇區(qū)塊鏈失暂,在工作量證明機(jī)制下選擇累計(jì)工作量最大的區(qū)塊鏈
節(jié)點(diǎn)對(duì)交易數(shù)據(jù)的獨(dú)立檢驗(yàn)所遵循的規(guī)則都是統(tǒng)一規(guī)定好的彼宠,可能的詐騙鳄虱、錯(cuò)誤等無(wú)效交易無(wú)法在網(wǎng)絡(luò)中繼續(xù)傳播。
工作量證明算法一方面實(shí)現(xiàn)了比特幣賬本不會(huì)被中心節(jié)點(diǎn)所控制凭峡,另一方面實(shí)現(xiàn)區(qū)塊鏈歷史數(shù)據(jù)實(shí)際不可更改拙已。這兩點(diǎn)之前已經(jīng)介紹過(guò)。
每個(gè)完全節(jié)點(diǎn)獨(dú)立保存并更新區(qū)塊鏈摧冀。所以當(dāng)節(jié)點(diǎn)從網(wǎng)絡(luò)接收到一個(gè)新區(qū)塊時(shí)倍踪,它要檢驗(yàn)并決定是否組裝到本地的區(qū)塊鏈上。檢驗(yàn)的內(nèi)容包括:
(1)區(qū)塊的數(shù)據(jù)結(jié)構(gòu)語(yǔ)法上有效
(2)區(qū)塊頭的哈希值小于目標(biāo)難度(確認(rèn)包含足夠的工作量證明)
(3)第?個(gè)交易(有且只有第?個(gè))是創(chuàng)幣交易
(4)使用檢查清單驗(yàn)證區(qū)塊內(nèi)的交易并確保它們的有效性索昂。
建车。。椒惨。缤至。。康谆。
每個(gè)節(jié)點(diǎn)對(duì)每個(gè)新區(qū)塊的獨(dú)立檢驗(yàn)確保了礦工無(wú)法欺詐领斥。假設(shè)一個(gè)欺詐礦工創(chuàng)建一筆交易向自己支付一大筆比特幣。接收到這個(gè)區(qū)塊的節(jié)點(diǎn)基于相同的檢驗(yàn)規(guī)則將很快能發(fā)現(xiàn)沃暗,從而選擇拒絕這個(gè)新區(qū)塊月洛,這樣這個(gè)欺詐礦工不僅不會(huì)得到額外的錢(qián),反而會(huì)浪費(fèi)挖礦耗費(fèi)的大量投入孽锥。
去中心化共識(shí)會(huì)遇到的一個(gè)情況就是區(qū)塊鏈“分叉”嚼黔。當(dāng)兩個(gè)節(jié)點(diǎn)幾乎同時(shí)挖出新區(qū)塊時(shí)。由于互相都沒(méi)有收到對(duì)方的新區(qū)塊忱叭,所以它們會(huì)將自己挖出的新區(qū)塊廣播出去隔崎。網(wǎng)絡(luò)上的其它節(jié)點(diǎn)就可能在幾乎同時(shí)接收到兩個(gè)新區(qū)塊,而且都可以有效的組裝到現(xiàn)有區(qū)塊鏈上韵丑。這個(gè)時(shí)候節(jié)點(diǎn)會(huì)把兩個(gè)區(qū)塊都保存下來(lái)爵卒,形成區(qū)塊鏈的兩條分叉∧斐梗“分叉”只是暫時(shí)現(xiàn)象钓株,解決辦法就是看這兩條分叉誰(shuí)的工作量累計(jì)的更快,節(jié)點(diǎn)獨(dú)立地選擇累計(jì)工作量最大的鏈作為主鏈陌僵。當(dāng)所有節(jié)點(diǎn)都獨(dú)立選擇最長(zhǎng)的鏈作為區(qū)塊鏈主鏈時(shí)轴合,很快全網(wǎng)節(jié)點(diǎn)就會(huì)重新達(dá)成共識(shí)。
去中心化共識(shí)唯一的隱患是可能遭受“共識(shí)攻擊”碗短,典型的是“51%攻擊”受葛。之前介紹過(guò),工作量證明算法使得區(qū)塊鏈歷史數(shù)據(jù)實(shí)際上不可更改,因?yàn)閰^(qū)塊的生成需要巨大的工作量总滩,背后需要巨大的算力支撐纲堵。但是一旦網(wǎng)絡(luò)中有超過(guò)一半的算力被攻擊者掌控,它就可能篡改交易數(shù)據(jù)闰渔。針對(duì)記錄目標(biāo)交易的區(qū)塊席函,攻擊者重新構(gòu)造一個(gè)新區(qū)塊,并故意與之形成分叉冈涧,在新區(qū)塊中茂附,攻擊者可以重新生成一筆與目標(biāo)交易數(shù)額相等但支付地址不同的交易,如果支付地址改為自己掌握的節(jié)點(diǎn)地址就可以把這筆錢(qián)轉(zhuǎn)給自己督弓。在后續(xù)的累計(jì)工作量競(jìng)賽中营曼,攻擊者利用自己掌握的超過(guò)一半算力獲勝,進(jìn)而使得故意分叉的鏈條成為全網(wǎng)的主鏈咽筋,最終實(shí)現(xiàn)交易欺詐溶推。所以為了保證大額交易安全,建議在大宗商品交易用比特幣支付時(shí)奸攻,接收方要等到記錄此交易的區(qū)塊深度超過(guò)6時(shí),再進(jìn)行商品交付虱痕。
3 區(qū)塊鏈的應(yīng)用與發(fā)展
區(qū)塊鏈?zhǔn)潜忍貛诺牡讓蛹夹g(shù)之一睹耐,比特幣是區(qū)塊鏈的一個(gè)應(yīng)用,也是目前為止區(qū)塊鏈最成功的應(yīng)用部翘。在比特幣里硝训,區(qū)塊鏈被看成是一個(gè)分布式的公開(kāi)賬本。區(qū)塊鏈可以存儲(chǔ)賬本新思,當(dāng)然也可以存儲(chǔ)其它數(shù)據(jù)窖梁,比如合約、證書(shū)夹囚、法律文件等等纵刘,所以本質(zhì)上區(qū)塊鏈?zhǔn)且粋€(gè)分布式數(shù)據(jù)庫(kù),可以應(yīng)用在很多領(lǐng)域荸哟。但是并不是說(shuō)區(qū)塊鏈只是一個(gè)數(shù)據(jù)庫(kù)假哎,相反區(qū)塊鏈數(shù)據(jù)存儲(chǔ)成flat file和Google的LevelDB數(shù)據(jù)庫(kù),都不是區(qū)塊鏈的創(chuàng)新點(diǎn)鞍历。區(qū)塊鏈的核心創(chuàng)新點(diǎn)是去中心化共識(shí)機(jī)制舵抹。區(qū)塊鏈為了實(shí)現(xiàn)去中心化共識(shí)機(jī)制用到了很多的技術(shù),包括P2P協(xié)議劣砍、非對(duì)稱(chēng)加密技術(shù)惧蛹、哈希加密技術(shù)、時(shí)間戳、Merkle樹(shù)香嗓、UTXO爵政、工作量證明算法(PoW)等。所以陶缺,可以將區(qū)塊鏈技術(shù)看成是一個(gè)技術(shù)集合钾挟。
區(qū)塊鏈脫胎于比特幣,早期大家的關(guān)注點(diǎn)主要是以比特幣為代表的加密數(shù)字貨幣饱岸,這兩年大家越來(lái)越關(guān)注區(qū)塊鏈技術(shù)在各個(gè)領(lǐng)域的應(yīng)用掺出。很多人認(rèn)為,區(qū)塊鏈的現(xiàn)狀就像早期的互聯(lián)網(wǎng)苫费,區(qū)塊鏈技術(shù)給人類(lèi)社會(huì)帶來(lái)的影響將不亞于互聯(lián)網(wǎng)汤锨。所以我們講區(qū)塊鏈不僅僅是指比特幣里的區(qū)塊鏈技術(shù),還包括很多在它之上的創(chuàng)新和發(fā)展百框。
比特幣的區(qū)塊鏈技術(shù)在應(yīng)用時(shí)存在的四個(gè)主要問(wèn)題是:
(1)腳本語(yǔ)言太復(fù)雜闲礼,開(kāi)發(fā)難度大。
(2)生態(tài)系統(tǒng)基礎(chǔ)比較差铐维。既沒(méi)有完善的開(kāi)發(fā)工具柬泽,也沒(méi)有文檔和教程。
(3)腳本語(yǔ)言并非圖靈完備嫁蛇。圖靈完備指一切可計(jì)算的問(wèn)題都可以用該語(yǔ)言描述并計(jì)算锨并。由于沒(méi)有圖靈完備,限制了比特幣腳本語(yǔ)言的用途睬棚,沒(méi)有辦法開(kāi)發(fā)更高級(jí)的應(yīng)用第煮,例如沒(méi)有辦法實(shí)現(xiàn)去中心化的交易所。
(4)比特幣區(qū)塊鏈協(xié)議的擴(kuò)展性不足抑党。比特幣系統(tǒng)中只有一種符號(hào)——比特幣包警,沒(méi)有辦法用戶(hù)自定義其它的符號(hào),比如公司的股票底靠、債券等害晦,這使比特幣失去了在其它領(lǐng)域應(yīng)用的可能性。
(5)工作量證明算法耗費(fèi)耗費(fèi)大量的設(shè)備和電力資源苛骨。
2013年一位叫做 Vitalik Buterin 的俄羅斯少年發(fā)表了以太坊白皮書(shū)——《以太坊:下一代智能合約和去中心化應(yīng)用平臺(tái)》篱瞎。以太坊解決了比特幣區(qū)塊鏈擴(kuò)展性不足,智能記錄交易不能記錄其它數(shù)據(jù)的問(wèn)題痒芝。此外俐筋,以太坊通過(guò)其豐富的編程語(yǔ)言和完善的開(kāi)發(fā)工具,解決了針對(duì)開(kāi)發(fā)者不友好的問(wèn)題严衬,它讓任何人都能很輕松的在以太坊上建立新的協(xié)議和智能合約澄者。目前,以太坊已經(jīng)成為應(yīng)用最廣泛的區(qū)塊鏈技術(shù)。
除以太坊之外粱挡,還有很多的區(qū)塊鏈項(xiàng)目出現(xiàn)赠幕。這里將目前有影響力的區(qū)塊鏈項(xiàng)目做一個(gè)分類(lèi),大致可以分為四類(lèi):數(shù)字資產(chǎn)询筏;智能合約平臺(tái)榕堰;全球支付與結(jié)算;平臺(tái)類(lèi)的應(yīng)用服務(wù)嫌套。
3.1 數(shù)字資產(chǎn)
數(shù)字資產(chǎn)分為一般數(shù)字資產(chǎn)和主打匿名應(yīng)用的匿名數(shù)字資產(chǎn)逆屡。
一般數(shù)字資產(chǎn)包括比特幣冲杀、萊特幣巩那、新經(jīng)幣(NEM)沛膳,Decred痪署,狗狗幣Dogecoin等。以比特幣為代表它們要解決的就是跨中心情況下的支付問(wèn)題可免。跟比特幣比較起來(lái)捂寿,其它代幣原理類(lèi)似酌畜,但針對(duì)自己的使用場(chǎng)景有一些改進(jìn)帚稠。
萊特幣的交易確認(rèn)時(shí)間是2.5分鐘谣旁,也就是每2.5分鐘有一個(gè)區(qū)塊被挖出,相較于比特幣的10分鐘翁锡,確認(rèn)時(shí)間大大縮短蔓挖,交易效率更高。
新經(jīng)幣的共識(shí)機(jī)制是重要性證明(Proof of Importance)馆衔,根據(jù)交易量、活躍度等維度而不僅僅是根據(jù)工作量來(lái)決定區(qū)塊鏈的記賬權(quán)怨绣。
Decred強(qiáng)調(diào)社區(qū)投入角溃、公開(kāi)治理以及可持續(xù)挖礦。它的特點(diǎn)是共識(shí)機(jī)制采用工作量證明PoW和權(quán)益證明PoS結(jié)合的方式篮撑。相比于工作量證明算法减细,權(quán)益證明算法不要求挖礦節(jié)點(diǎn)完成大量的計(jì)算工作,而是節(jié)點(diǎn)能夠?qū)σ欢〝?shù)量的錢(qián)展示所有權(quán)赢笨。權(quán)益證明由于不需要挖礦未蝌,避免了類(lèi)似工作量證明算法消耗大量設(shè)備和電力的問(wèn)題,所以受到廣泛關(guān)注茧妒。
狗狗幣是結(jié)合Doge文化發(fā)展起來(lái)的萧吠,有自己獨(dú)特的社區(qū)文化,具有交易便捷桐筏、轉(zhuǎn)賬速度快纸型、確認(rèn)時(shí)間短等特點(diǎn),在小費(fèi)、慈善等場(chǎng)景應(yīng)用的活躍度很高狰腌。
匿名數(shù)字資產(chǎn)要解決的是如何在保護(hù)隱私的情況下完成支付的問(wèn)題除破。我們知道比特幣匿名機(jī)制在于你無(wú)法知道比特幣地址背后所有者的真實(shí)身份,但是比特幣區(qū)塊鏈?zhǔn)枪_(kāi)賬本琼腔,每個(gè)地址的交易數(shù)據(jù)都是完全公開(kāi)的瑰枫。尤其是當(dāng)用戶(hù)在比特幣交易網(wǎng)站注冊(cè)時(shí),往往會(huì)填寫(xiě)身份信息丹莲,這樣就可能暴露用戶(hù)身份信息光坝。匿名數(shù)字資產(chǎn)比較知名的有達(dá)世幣Dash、門(mén)羅幣Monero以及采用零知識(shí)證明的零幣Zcash等圾笨。
達(dá)世幣的匿名性通過(guò)“混幣”的機(jī)制實(shí)現(xiàn)教馆。原理是先將不同人的幣先混在一起,再將各自擁有的份額拿回去擂达,這樣就無(wú)法知道轉(zhuǎn)賬人了土铺。
門(mén)羅幣采用“環(huán)形簽名”的機(jī)制實(shí)現(xiàn)匿名。網(wǎng)絡(luò)首先將轉(zhuǎn)賬者的密鑰對(duì)和另外一個(gè)密鑰對(duì)集合混在一起得到一個(gè)新集合板鬓,然后用集合中的私鑰逐一簽名悲敷。其它節(jié)點(diǎn)用公鑰解密的時(shí)候就不確定到底哪個(gè)簽名是轉(zhuǎn)賬者的簽名。
零幣特色是采用了零知識(shí)證明機(jī)制實(shí)現(xiàn)匿名俭令。原理類(lèi)似于我們?nèi)胱【频陼r(shí)后德,不需要向前臺(tái)提供全部個(gè)人身份信息,而是公安系統(tǒng)提供一個(gè)接口抄腔,我們把信息提供給公安系統(tǒng)的接口瓢湃,公安系統(tǒng)驗(yàn)證身份之后返回結(jié)果就可以了。這樣就實(shí)現(xiàn)了對(duì)酒店前臺(tái)的匿名效果赫蛇。
目前绵患,全球數(shù)字資產(chǎn)超過(guò)1000種,充當(dāng)?shù)亩际且话阖泿诺墓δ芪蛟牛糜诮灰字Ц堵潋D壳耙灿龅綉?yīng)用場(chǎng)景有限、自身價(jià)值波動(dòng)過(guò)大等問(wèn)題暂幼。
3.2 智能合約平臺(tái)
智能合約就是在區(qū)塊鏈上運(yùn)行的計(jì)算機(jī)程序筏勒。當(dāng)滿(mǎn)足程序中預(yù)先設(shè)定的觸發(fā)條件時(shí),智能合約自動(dòng)執(zhí)行旺嬉。觸發(fā)條件可以是時(shí)間管行、事件或者交易等。由于區(qū)塊鏈歷史數(shù)據(jù)的不可更改特性鹰服,智能合約一旦在區(qū)塊鏈上注冊(cè)之后病瞳,就不能更改揽咕,無(wú)法違約。例如套菜,房屋租賃合同協(xié)議的智能合約亲善,注冊(cè)之后,當(dāng)業(yè)主收到定金時(shí)會(huì)觸發(fā)執(zhí)行逗柴,自動(dòng)將房屋的鑰匙密鑰發(fā)送到房客的賬戶(hù)蛹头。到了租金交付時(shí)間,合約會(huì)自動(dòng)從房客的賬戶(hù)向業(yè)主轉(zhuǎn)賬預(yù)先商定的租金戏溺。
再舉一個(gè)智能合約應(yīng)用在航班延誤險(xiǎn)的例子渣蜗。我們經(jīng)常坐飛機(jī)會(huì)買(mǎi)飛機(jī)延誤險(xiǎn),但是真的延誤之后旷祸,你還要打電話(huà)咨詢(xún)耕拷、在線(xiàn)下開(kāi)證明、找保險(xiǎn)公司托享,才能執(zhí)行完你的飛機(jī)延誤險(xiǎn)賠付骚烧。如果有智能合約,在區(qū)塊鏈上注冊(cè)好合約以后闰围,連接到航班數(shù)據(jù)赃绊,就能確保航空公司在航班延誤之后自動(dòng)給你賠付了。
比特幣區(qū)塊鏈可以看做區(qū)塊鏈1.0羡榴。但比特幣區(qū)塊鏈因?yàn)椴皇菆D靈完備的碧查。圖靈完備是指一切可計(jì)算的問(wèn)題都能計(jì)算,這樣的虛擬機(jī)或者編程語(yǔ)言就是圖靈完備的校仑。比特幣區(qū)塊鏈不能支持所有種類(lèi)的計(jì)算忠售,無(wú)法為賬戶(hù)取款額度提供精細(xì)的控制,缺少更豐富的狀態(tài)記錄迄沫,導(dǎo)致比特幣區(qū)塊鏈的擴(kuò)展性比較差档痪,不能應(yīng)用在除比特幣以外的其它應(yīng)用上,無(wú)法支持復(fù)雜的智能合約邢滑。
智能合約的區(qū)塊鏈平臺(tái)被稱(chēng)為區(qū)塊鏈2.0,代表項(xiàng)目是以太坊愿汰。針對(duì)比特幣區(qū)塊鏈擴(kuò)展性差困后、缺少圖靈完備等特點(diǎn),以太坊建立了一個(gè)可編程衬廷、圖靈完備的區(qū)塊鏈平臺(tái)摇予。在這個(gè)平臺(tái)上,你可以通過(guò)編寫(xiě)簡(jiǎn)單的程序方便的實(shí)現(xiàn)數(shù)字資產(chǎn)的生產(chǎn)吗跋,對(duì)鏈上運(yùn)行的各類(lèi)數(shù)字資產(chǎn)的精確控制侧戴,比如這個(gè)資產(chǎn)是待支付還是被鎖定還是有額度限制宁昭、和其他資產(chǎn)的自動(dòng)兌換等等。同時(shí)酗宋,你也可以開(kāi)發(fā)很多的智能合約积仗,來(lái)實(shí)現(xiàn)非區(qū)塊鏈資產(chǎn)的功能,比如投票蜕猫、對(duì)賭寂曹、條件合同等。因?yàn)橐С种悄芎霞s回右,以太坊上有兩類(lèi)賬戶(hù)地址隆圆。一種是普通賬戶(hù),和比特幣賬戶(hù)地址差不多翔烁,一種是合約賬戶(hù)渺氧,主要用于智能合約。簡(jiǎn)單點(diǎn)說(shuō)蹬屹,以太坊就是區(qū)塊鏈加智能合約侣背。
由于以太坊有著強(qiáng)大的可擴(kuò)展性和完善的生態(tài)支持,在區(qū)塊鏈的應(yīng)用開(kāi)發(fā)上哩治,很多開(kāi)發(fā)者和企業(yè)都選擇了以太坊區(qū)塊鏈作為他們的底層技術(shù)平臺(tái)秃踩。
接觸過(guò)以太坊的人都知道,除了以太坊之外业筏,還有一個(gè)以太坊經(jīng)典憔杨,那么這兩者是什么關(guān)系呢?2016年7月份蒜胖,由于以太坊網(wǎng)絡(luò)上消别,價(jià)值6000萬(wàn)美元的以太幣(以太坊網(wǎng)絡(luò)上使用的代幣)被黑客盜取,為了追回被盜資金台谢,以太坊創(chuàng)始人Vitalik組織并主導(dǎo)了一次硬分叉寻狂,通過(guò)在新的鏈上改寫(xiě)了被黑客篡改的交易記錄實(shí)現(xiàn)資金追回。這次硬分叉將以太坊區(qū)塊鏈分成了兩條區(qū)塊鏈朋沮,由Vitalik主導(dǎo)蛇券、接受升級(jí)的區(qū)塊鏈稱(chēng)為以太坊,它的代幣簡(jiǎn)稱(chēng)ETH(Ethereum樊拓,ETH)纠亚,不接受這次升級(jí)的區(qū)塊鏈稱(chēng)為以太坊經(jīng)典,它的代幣簡(jiǎn)稱(chēng)ETC(Ethereum Classic筋夏,ETC)蒂胞。
以太幣是以太坊網(wǎng)絡(luò)上使用的代幣,是以太坊內(nèi)置的區(qū)塊鏈資產(chǎn)条篷,類(lèi)似比特幣骗随。但是以太幣的主要目的并不是交易支付蛤织,而是用于支付智能合約運(yùn)行的費(fèi)用。智能合約的運(yùn)行需要付費(fèi)鸿染,相當(dāng)于設(shè)定了一個(gè)門(mén)檻指蚜,這個(gè)門(mén)檻對(duì)于真的想做應(yīng)用的用戶(hù)來(lái)說(shuō)比較低,但對(duì)于大量運(yùn)行垃圾智能合約項(xiàng)目和攻擊者來(lái)說(shuō)就是比較大的負(fù)擔(dān)牡昆,因此可以有效防止惡意攻擊姚炕,確保區(qū)塊鏈的穩(wěn)定安全。
3.3 全球支付與結(jié)算
目前用于全球支付與結(jié)算的區(qū)塊鏈項(xiàng)目較為成功的是Ripple和Tether丢烘。以Ripple為例來(lái)介紹一下柱宦。
瑞波Ripple是目前區(qū)塊鏈金融領(lǐng)域比較成功的項(xiàng)目之一,支持全球不同網(wǎng)絡(luò)播瞳、不同幣種之間即時(shí)掸刊、低成本的國(guó)際支付。銀行等機(jī)構(gòu)用戶(hù)都可以利用瑞波在不同網(wǎng)絡(luò)之間發(fā)送實(shí)時(shí)的國(guó)際付款赢乓。與其他區(qū)塊鏈項(xiàng)目都由開(kāi)發(fā)者組織進(jìn)行維護(hù)相比忧侧,瑞波的運(yùn)行維護(hù)全都由一家叫Ripple Labs的公司負(fù)責(zé)。瑞波公司是一家組織嚴(yán)格牌芋,完全按照法律法規(guī)注冊(cè)的公司蚓炬,并且獲得了很多大公司、投資機(jī)構(gòu)躺屁、銀行的投資肯夏,包括Google、埃森哲犀暑、渣打銀行等驯击。這種特點(diǎn)也與瑞波公司的目標(biāo)客戶(hù)有關(guān)。瑞波區(qū)塊鏈不向個(gè)人開(kāi)發(fā)者開(kāi)放耐亏,主要面向機(jī)構(gòu)客戶(hù)特別是銀行徊都、支付機(jī)構(gòu)等,支持機(jī)構(gòu)客戶(hù)實(shí)現(xiàn)快速广辰、低成本的跨境匯款暇矫。瑞波公司大量與銀行等支付機(jī)構(gòu)合作,推動(dòng)瑞波的應(yīng)用落地择吊。例如2017年7月袱耽,日本和泰國(guó)之間首個(gè)基于瑞波區(qū)塊鏈的即時(shí)匯款服務(wù)正式開(kāi)始。這項(xiàng)區(qū)塊鏈服務(wù)能實(shí)現(xiàn)個(gè)人資金從日元到泰銖的轉(zhuǎn)移干发,經(jīng)過(guò)2至5秒就能存到收款方的賬戶(hù)上,而現(xiàn)在兩國(guó)之間常規(guī)的匯款都需要花上兩個(gè)工作日的時(shí)間史翘。
瑞波區(qū)塊鏈實(shí)現(xiàn)跨境支付主要通過(guò)內(nèi)置的代幣瑞波幣作為中介來(lái)實(shí)現(xiàn)枉长,瑞波幣可以?xún)稉Q多種法幣冀续。瑞波幣的發(fā)行并不是通過(guò)挖礦來(lái)實(shí)現(xiàn)的,而是通過(guò)業(yè)務(wù)開(kāi)發(fā)交易來(lái)分發(fā)瑞波幣必峰,獎(jiǎng)勵(lì)那些更小差價(jià)的流動(dòng)性提供商洪唐,另外向那些有興趣投資瑞波幣的機(jī)構(gòu)銷(xiāo)售瑞波幣。如果沒(méi)有挖礦吼蚁,瑞波幣是如何實(shí)現(xiàn)交易確認(rèn)和記賬的呢凭需?答案是協(xié)議共識(shí)機(jī)制。不同于工作量證明算法需要網(wǎng)絡(luò)上巨大的算力維持肝匆,瑞波區(qū)塊鏈將網(wǎng)絡(luò)上的節(jié)點(diǎn)分為普通節(jié)點(diǎn)和驗(yàn)證節(jié)點(diǎn)粒蜈,協(xié)議共識(shí)機(jī)制規(guī)定一筆交易只需要驗(yàn)證節(jié)點(diǎn)的投票就能完成驗(yàn)證和確認(rèn)。因此瑞波交易確認(rèn)的時(shí)間非常短旗国。
瑞波幣被人詬病的一點(diǎn)是它的中心化運(yùn)作枯怖,即由瑞波公司完全負(fù)責(zé)。而且能曾,瑞波公司目前持有約三分之二的瑞波幣度硝,完全有能力操縱瑞波幣的價(jià)格,這也是瑞波的一個(gè)隱患寿冕。當(dāng)然蕊程,瑞波公司也一再發(fā)表聲明,等瑞波發(fā)展成熟之后驼唱,會(huì)逐漸退出中心化團(tuán)隊(duì)的影響藻茂,比如去掉驗(yàn)證節(jié)點(diǎn),使瑞波真正成為一個(gè)去中心化的區(qū)塊鏈網(wǎng)絡(luò)曙蒸。
3.4 平臺(tái)類(lèi)應(yīng)用
平臺(tái)類(lèi)應(yīng)用大多是基于以太坊設(shè)計(jì)并運(yùn)行的區(qū)塊鏈項(xiàng)目捌治,可以看出以太坊的可擴(kuò)展性,即通過(guò)編程可以在它上面實(shí)現(xiàn)很多應(yīng)用纽窟。這里介紹三個(gè)平臺(tái)類(lèi)應(yīng)用:市場(chǎng)預(yù)測(cè)平臺(tái)Augur肖油,計(jì)算資源交易平臺(tái)Golem,數(shù)字代幣化平臺(tái)DigixDAO臂港。
市場(chǎng)預(yù)測(cè)平臺(tái)Augur是以太坊上的第一個(gè)應(yīng)用森枪。用戶(hù)基于數(shù)據(jù)對(duì)未來(lái)事件的結(jié)果進(jìn)行預(yù)測(cè),預(yù)測(cè)正確的用戶(hù)會(huì)獲得獎(jiǎng)勵(lì)审孽,預(yù)測(cè)錯(cuò)誤的用戶(hù)會(huì)失去“投注”县袱。用戶(hù)參與預(yù)測(cè)之前,先要“下注”佑力,即進(jìn)行資金充值式散,Augur會(huì)將錢(qián)存進(jìn)智能合約中,等到結(jié)果出來(lái)之后打颤,合約自動(dòng)執(zhí)行暴拄,可以有效防止用戶(hù)賴(lài)賬和中心節(jié)點(diǎn)作弊風(fēng)險(xiǎn)漓滔。任何用戶(hù)都可以創(chuàng)建一個(gè)市場(chǎng)問(wèn)題或者選擇參與某個(gè)市場(chǎng)問(wèn)題。事件結(jié)果來(lái)自于所有持有代幣的人共同決定乖篷。注意Augur的代幣叫REP响驴,并不是以太幣,用戶(hù)可以用以太幣購(gòu)買(mǎi)REP撕蔼。
計(jì)算交易平臺(tái)Golem允許用戶(hù)通過(guò)網(wǎng)絡(luò)交易計(jì)算資源豁鲤,可以把它看做是目前共享經(jīng)濟(jì)的一個(gè)案例。兩類(lèi)用戶(hù):一類(lèi)為算力資源賣(mài)家鲸沮,另一類(lèi)為買(mǎi)家琳骡。買(mǎi)家創(chuàng)建任務(wù)并將任務(wù)上傳到網(wǎng)絡(luò)。Golem的代幣是GNT诉探,用于買(mǎi)方購(gòu)買(mǎi)算力時(shí)支付酬勞日熬。
數(shù)字代幣化平臺(tái)DigixDAO是一個(gè)基于以太坊區(qū)塊鏈構(gòu)建的資產(chǎn)代幣化平臺(tái)。DigixDAO的一大貢獻(xiàn)是在區(qū)塊鏈虛擬資產(chǎn)和黃金之類(lèi)的實(shí)物資產(chǎn)之間建立了一種對(duì)應(yīng)關(guān)系肾胯,為實(shí)物資產(chǎn)的代幣化和文檔化提供了思路竖席,為之后其它實(shí)體資產(chǎn)上鏈提供了一個(gè)范例。DigixDAO中的名詞“上鏈”敬肚,也就是實(shí)物資產(chǎn)上到區(qū)塊鏈上毕荐,變成區(qū)塊鏈資產(chǎn)。上鏈顯然是區(qū)塊鏈項(xiàng)目能夠與其它領(lǐng)域結(jié)合艳馒、落地到真實(shí)場(chǎng)景的必經(jīng)步驟憎亚。那DigixDAO是如何將實(shí)體資產(chǎn)上鏈的呢?主要是設(shè)計(jì)了一個(gè)證明資產(chǎn)存在和所有權(quán)的制度弄慰,并且證明記錄會(huì)通過(guò)星際文件系統(tǒng)(目標(biāo)取代HTTP協(xié)議的P2P分布式文件系統(tǒng))和以太坊永久性地發(fā)布和保護(hù)第美。DigixDAO獨(dú)創(chuàng)了PoA資產(chǎn)證明(Proof of Assets, PoA)。
可以通過(guò)DigixDAO的鑄幣來(lái)認(rèn)識(shí)PoA陆爽。比如現(xiàn)在要對(duì)黃金上鏈什往,一克黃金的價(jià)值,由黃金供應(yīng)商慌闭、托管商别威、審計(jì)商之類(lèi)的“監(jiān)管鏈”參與者通過(guò)連續(xù)數(shù)字簽名進(jìn)行認(rèn)證,將這一克黃金的信息注冊(cè)成資產(chǎn)證明(PoA)資產(chǎn)卡驴剔,永久性地上傳到去中心化數(shù)據(jù)庫(kù)中省古。PoA卡被保存在以太坊錢(qián)包里,當(dāng)PoA資產(chǎn)卡被發(fā)送到鑄幣智能合約時(shí)丧失,DigixDAO的代幣DGX就生成了豺妓。每個(gè)DGX代幣代表1克被倫敦金銀市場(chǎng)協(xié)會(huì)認(rèn)可的金條黃金。這就是DigixDAO的鑄幣過(guò)程。
4 總結(jié)
區(qū)塊鏈技術(shù)的核心是它能解決去中心化條件下的信任問(wèn)題科侈。并不是所有的行業(yè)都適合應(yīng)用區(qū)塊鏈载佳,區(qū)塊鏈也不能包治百病。非常適合區(qū)塊鏈技術(shù)應(yīng)用的領(lǐng)域有以下特征:(1)目前沒(méi)有一個(gè)信任中心臀栈;(2)建立一個(gè)信任中心的成本非常高;(3)需要有顯示映射機(jī)制保障實(shí)施挠乳。
由于很多消耗了大量時(shí)間和資源成本的社會(huì)機(jī)制权薯,都是為了在參與方之間建立信任關(guān)系,而區(qū)塊鏈可以讓人們?cè)谙嗷o(wú)信任的情況下睡扬,無(wú)地域限制地進(jìn)行大規(guī)模協(xié)作盟蚣。顯然,區(qū)塊鏈給社會(huì)帶來(lái)了一種新的提升效率和降低成本的技術(shù)手段卖怜。目前屎开,雖然大家對(duì)以比特幣為代表的加密數(shù)字貨幣的未來(lái)看法不一,但對(duì)區(qū)塊鏈的未來(lái)大家卻一致看好马靠,認(rèn)為區(qū)塊鏈?zhǔn)且豁?xiàng)革命性的技術(shù)奄抽。
目前區(qū)塊鏈在各行業(yè)的應(yīng)用已經(jīng)逐步展開(kāi),重點(diǎn)應(yīng)用領(lǐng)域如圖4-1所示甩鳄。在具體的行業(yè)應(yīng)用中逞度,區(qū)塊鏈能產(chǎn)生明顯效益的地方在于優(yōu)化業(yè)務(wù)流程、降低運(yùn)營(yíng)成本妙啃、提升協(xié)作效率档泽。