隨著比特幣刊棕、以太坊等數(shù)字貨幣的暴漲个曙,?數(shù)字貨幣的底層技術(shù)锈嫩,?區(qū)塊鏈技術(shù)?,開(kāi)始進(jìn)入大眾的視野垦搬。姚勁波說(shuō):區(qū)塊鏈有可能和互聯(lián)網(wǎng)一樣偉大呼寸。區(qū)塊鏈技術(shù)比傳統(tǒng)互聯(lián)網(wǎng)技術(shù)好在哪里?它的實(shí)現(xiàn)原理優(yōu)是什么呢猴贰?筆者希望通過(guò)本文对雪,解答大家心中的疑問(wèn)。
信任問(wèn)題
信息在互聯(lián)網(wǎng)上的復(fù)制和傳播成本近乎為零米绕,這讓大家可以很輕易地發(fā)布和獲取信息瑟捣。但是資產(chǎn)和信息是不一樣的馋艺,資產(chǎn)本應(yīng)是不應(yīng)該被隨意復(fù)制的。如果人民幣可以被隨意復(fù)制迈套,那么人人都是億萬(wàn)富翁了 :-)捐祠。
現(xiàn)在的互聯(lián)網(wǎng)和金融技術(shù),通過(guò)搭建中心化服務(wù)器桑李,解決了資產(chǎn)傳播的問(wèn)題踱蛀,但是成本居高不下。原因在于贵白,當(dāng)今的金融市場(chǎng)是建立在不同的服務(wù)提供商組成的龐大網(wǎng)絡(luò)上的率拒。在這個(gè)龐大的網(wǎng)絡(luò)中,存在著各種互相孤立的數(shù)據(jù)系統(tǒng)及運(yùn)作體系禁荒,這極大地影響了金融市場(chǎng)效率的進(jìn)一步提升猬膨。在 2012 年歐洲央行的一份報(bào)告中,估計(jì)除了每個(gè)人都支付的直接費(fèi)用外圈浇,間接成本高達(dá) GDP 的 1%寥掐,大概每年 1300 億歐元。在世界銀行的報(bào)告中磷蜀,跨國(guó)匯款的成本接近 8%召耘。[1]
金融機(jī)構(gòu)之間不能夠無(wú)條件地信任對(duì)方,造成了金融領(lǐng)域數(shù)據(jù)孤島的現(xiàn)象褐隆,進(jìn)而導(dǎo)致了數(shù)字資產(chǎn)在互聯(lián)網(wǎng)上流通成本居高不下污它。如果金融機(jī)構(gòu)能夠相互信任,那么所有的資產(chǎn)數(shù)據(jù)就可以在互聯(lián)網(wǎng)上自由流通了庶弃,也就不存在數(shù)據(jù)孤島的現(xiàn)象了衫贬,進(jìn)而降低數(shù)字資產(chǎn)的流通費(fèi)用。從道德上對(duì)信用的呼吁很難落到實(shí)處歇攻,有沒(méi)有解決信任問(wèn)題的技術(shù)手段呢固惯?區(qū)塊鏈技術(shù)的出現(xiàn)為解決信任問(wèn)題帶來(lái)了一絲曙光。現(xiàn)在區(qū)塊鏈技術(shù)正在缴守,除金融領(lǐng)域外的更多領(lǐng)域中進(jìn)行應(yīng)用葬毫,解決著這些領(lǐng)域內(nèi)的信任問(wèn)題。
信任機(jī)器
利用區(qū)塊鏈技術(shù)屡穗,可以創(chuàng)造出一種信任機(jī)器[2]贴捡。?比特幣系統(tǒng)就是?基于區(qū)塊鏈的記賬機(jī)器;?以太坊就是?基于區(qū)塊鏈的智能合約機(jī)器等等村砂。而?信任秘訣在于區(qū)塊鏈的加密烂斋、公開(kāi)且不可篡改的特性?:
加密
區(qū)塊鏈技術(shù)是以密碼學(xué)和數(shù)學(xué)為基礎(chǔ)的,這是信任的根本。包括汛骂,橢圓曲線(xiàn)數(shù)字簽名算法罕模、非對(duì)稱(chēng)加密、哈希函數(shù)香缺、梅克爾樹(shù)等等手销。這些算法是密碼學(xué)歇僧、數(shù)學(xué)上公認(rèn)的窮宇宙之力都難以破解的算法图张。區(qū)塊鏈上的數(shù)據(jù)是公開(kāi)的,但這并不意味著你的秘密诈悍,可以被任何人知曉祸轮。利用這些加密算法可以保障你的數(shù)字權(quán)益,比如你的上網(wǎng)隱私侥钳,你的網(wǎng)絡(luò)文章的所有權(quán)适袜,還有你的數(shù)字錢(qián)包里的 Token。
公開(kāi)
公開(kāi)是贏得信任的最好手段舷夺】嘟矗基于區(qū)塊鏈技術(shù)的系統(tǒng)的規(guī)則(程序)和數(shù)據(jù)都是公開(kāi)的。任何參與方?都?可以通過(guò)運(yùn)行區(qū)塊鏈?的?程序的方式加入進(jìn)來(lái)给猾,進(jìn)而對(duì)數(shù)據(jù)進(jìn)行驗(yàn)證疫萤。從程序可靠性的角度出發(fā),信任既可以建立在一個(gè)黑盒程序之上敢伸,又可以建立在一個(gè)開(kāi)源的程序之上扯饶。從交易雙方的角度看,信任既可以建立在一個(gè)值得被信賴(lài)的第三方之上池颈,又可以建立在自己親自驗(yàn)證的基礎(chǔ)之上尾序。?在自己能驗(yàn)證,也能依靠第三方進(jìn)行驗(yàn)證情況下躯砰,自己驗(yàn)證更可靠?每币;如果自己不能驗(yàn)證,那就只能選擇一個(gè)值得被信賴(lài)的第三方琢歇。區(qū)塊鏈提供了一個(gè)更公開(kāi)兰怠、更透明且?能夠自己親自驗(yàn)證?的機(jī)制,因此基于區(qū)塊鏈技術(shù)的系統(tǒng)比黑盒和第三方更容易贏得大家的信任矿微。
不可篡改
區(qū)塊鏈技術(shù)不可篡改的特性痕慢,是數(shù)字資產(chǎn)不可復(fù)制的基礎(chǔ)。技術(shù)上來(lái)說(shuō)涌矢,我們可以對(duì)任何的數(shù)據(jù)進(jìn)行:增掖举、刪、改娜庇、查塔次。但是在基于區(qū)塊鏈技術(shù)的系統(tǒng)上方篮,刪、改的操作的可行性幾乎為零励负。
核心原理
加密技術(shù)是在區(qū)塊鏈出現(xiàn)之前已有的技術(shù)藕溅,本文不詳細(xì)展開(kāi)。區(qū)塊鏈的最大創(chuàng)新继榆,在于公開(kāi)且不可篡改巾表。本文接下來(lái)會(huì)剖析區(qū)塊鏈的核心原理,幫助大家理解為什么它是公開(kāi)且不可篡改的略吨。
狀態(tài)機(jī)
我們先從最簡(jiǎn)單的區(qū)塊鏈記賬機(jī)器開(kāi)始集币,比如以太坊系統(tǒng)(比特幣系統(tǒng)的原理稍微繞一些,但本質(zhì)一樣)翠忠,實(shí)際上就是多個(gè)節(jié)點(diǎn)維護(hù)同?一個(gè)?賬本鞠苟。記賬機(jī)器會(huì)在賬本上記錄每筆交易的信息。通過(guò)?初始時(shí)各個(gè)賬戶(hù)的余額和?已記錄的信息秽之,就可以推斷出任意時(shí)刻的各個(gè)賬戶(hù)的余額当娱。?也就是說(shuō)區(qū)塊鏈記賬機(jī)器完成記賬功能的基本原理是:狀態(tài)機(jī)?[3]。舉個(gè)例子:在 state1 時(shí)考榨,A B 都有 100跨细;A 發(fā)起了一筆交易,支付 100 給 B董虱,而這筆交易會(huì)被區(qū)塊鏈系統(tǒng)記錄下來(lái)扼鞋。我們可以通過(guò) state1 的賬戶(hù)余額和區(qū)塊鏈上的交易記錄,計(jì)算出 state2 時(shí) A B 的賬戶(hù)余額:A 有 50愤诱,B 有 150云头。同理只要我們知道初始化的狀態(tài)(?Genesis?),并將使用區(qū)塊鏈系統(tǒng)記錄每筆交易淫半,就可以算出任意時(shí)刻的任意賬戶(hù)的余額了溃槐。
雙重支付
在區(qū)塊鏈技術(shù)出來(lái)之前,一直沒(méi)有很好的方法解決去中心化記賬過(guò)程中遇到的雙重支付的問(wèn)題科吭。中心化記賬指的是昏滴,一個(gè)節(jié)點(diǎn)(比如一臺(tái)計(jì)算機(jī))維護(hù)一個(gè)賬本;去中心化記賬指的是对人,多個(gè)節(jié)點(diǎn)維護(hù)同一套賬本谣殊。
顧名思義,?雙重支付就是同一筆錢(qián)可用于兩次?支付?牺弄。具體的說(shuō)姻几,就是在同一時(shí)間點(diǎn),A 將 100 元,既支付給 B蛇捌,又支付給 C抚恒。如果出現(xiàn)這種情況,A 就相當(dāng)于把 100 元錢(qián)络拌,當(dāng)做 200 元錢(qián)來(lái)花了俭驮。但 B ,C 和記賬機(jī)構(gòu)三者之一就會(huì)因此遭受 100 元的損失春贸。在中心化的記賬系統(tǒng)中混萝,雙重支付的事情顯然是不可能的。因?yàn)闊o(wú)論這兩筆交易是否同時(shí)進(jìn)行祥诽,中心化的記賬系統(tǒng)處理這兩筆交易一定會(huì)有一個(gè)先后順序譬圣。?中心化的記賬系統(tǒng)?會(huì)先處理第一筆交易,并在 A 的賬戶(hù)中扣除 100 元雄坪,再處理第二筆交易,如果此時(shí) A 的賬戶(hù)中沒(méi)有余額屯蹦,第二筆交易就會(huì)失敗维哈。
在去中心化的記賬系統(tǒng)中,會(huì)有多個(gè)記錄交易信息的節(jié)點(diǎn)登澜。在上述例子中阔挠,去中心化的記賬系統(tǒng)中的一些節(jié)點(diǎn)會(huì)先收到 B 的交易信息;另一些節(jié)點(diǎn)會(huì)先收到 C 的這筆交易信息脑蠕。在去中心化的記賬系統(tǒng)中购撼,所有節(jié)點(diǎn)都是平等的。不存在一個(gè)統(tǒng)籌的節(jié)點(diǎn)谴仙,來(lái)決定是先處理 B 的交易還是先處理 C 交易迂求。這就產(chǎn)生了去中心化記賬系統(tǒng)中雙重支付的問(wèn)題。
解決去中心化記賬系統(tǒng)的雙重支付問(wèn)題晃跺,可以分成兩步來(lái)討論:第一步揩局,確定交易信息的先后順序;第二步掀虎,需要一個(gè)共識(shí)機(jī)制凌盯,來(lái)保證所有節(jié)點(diǎn)都認(rèn)可這個(gè)順序。
第一步烹玉,確認(rèn)順序的原理很簡(jiǎn)單驰怎,就是給交易排序。?確定交易順序的數(shù)據(jù)結(jié)構(gòu)就是區(qū)塊鏈?二打∠丶桑“區(qū)塊鏈?”中的“區(qū)塊”,指的是在同一段時(shí)間內(nèi)的交易信息及相關(guān)數(shù)據(jù)的集合∏奂希“鏈”就是把區(qū)塊按產(chǎn)生的先后順序連接在一起衅疙。
共識(shí)機(jī)制
共識(shí)機(jī)制是區(qū)塊鏈系統(tǒng)上獨(dú)立節(jié)點(diǎn)們通過(guò)遵守一套相同的規(guī)則,自發(fā)地對(duì)區(qū)塊的先后順序達(dá)成共識(shí)鸳慈。這套規(guī)則可以簡(jiǎn)單的描述為以下 3 步[4]饱溢。
所有節(jié)點(diǎn)質(zhì)押成本(如:算力)競(jìng)爭(zhēng)記賬權(quán),由勝利者產(chǎn)出并廣播區(qū)塊(記賬信息),并獲得收益(如吱涉,比特幣)獎(jiǎng)勵(lì)赖瞒。
每個(gè)節(jié)點(diǎn)獨(dú)立的對(duì)新區(qū)塊進(jìn)行驗(yàn)證,并組裝進(jìn)區(qū)塊鏈肋杖。
每個(gè)節(jié)點(diǎn)對(duì)區(qū)塊鏈進(jìn)行獨(dú)立選擇,選擇長(zhǎng)度最長(zhǎng)的區(qū)塊鏈挖函。
這個(gè)規(guī)則是如何讓獨(dú)立節(jié)點(diǎn)們自發(fā)地參與到區(qū)塊鏈系統(tǒng)的記賬之中呢状植?又是如何規(guī)避節(jié)點(diǎn)搗亂的問(wèn)題呢?
第 1 步怨喘,保障了每個(gè)節(jié)點(diǎn)都會(huì)出于“自私”的目的津畸,“誠(chéng)實(shí)”地參與到區(qū)塊鏈系統(tǒng)中來(lái)”亓“自私”指的是肉拓,節(jié)點(diǎn)都是為利潤(rùn)(收益 - 成本)而來(lái)∈崆欤“誠(chéng)實(shí)”指的是暖途,遵循區(qū)塊鏈的共識(shí)機(jī)制。但是有利潤(rùn)就會(huì)有作弊膏执,如何防止作弊呢驻售?這就要依靠后面兩步。
第 2 步?胧后,保障了每個(gè)節(jié)點(diǎn)都可以對(duì)競(jìng)爭(zhēng)勝出的節(jié)點(diǎn)的記賬信息進(jìn)行校驗(yàn)芋浮。即便有“搗亂”節(jié)點(diǎn)搶到了記賬權(quán),并記了假賬壳快,其他節(jié)點(diǎn)纸巷,包括你的節(jié)點(diǎn),都可以通過(guò)驗(yàn)證得知是否作假眶痰。區(qū)塊(賬本)做不了假瘤旨,那么有沒(méi)有可能在鏈(順序)上作假呢?也就是通過(guò)顛倒交易的先后順序竖伯,進(jìn)行雙重支付存哲。
第 3 步?因宇,保障了?顛倒交易的先后順序在經(jīng)濟(jì)上是不可行的。?既然每個(gè)誠(chéng)實(shí)的節(jié)點(diǎn)都選擇的是最長(zhǎng)的鏈祟偷,那么搗亂節(jié)點(diǎn)能不能制造一個(gè)最長(zhǎng)的鏈呢察滑??當(dāng)搗亂鏈的長(zhǎng)度,超過(guò)誠(chéng)實(shí)鏈的長(zhǎng)度的時(shí)候修肠,整個(gè)交易的順序就被顛倒過(guò)來(lái)了?贺辰。在區(qū)塊鏈上,父節(jié)點(diǎn)只能有一個(gè)嵌施,但是子節(jié)點(diǎn)可以有多個(gè)饲化,多個(gè)子節(jié)點(diǎn)就會(huì)有分叉,稱(chēng)為 Fork吗伤。 搗亂節(jié)點(diǎn)可以在某個(gè)節(jié)點(diǎn) Fork 原先的鏈吃靠,再用比誠(chéng)實(shí)節(jié)點(diǎn)更快的速度,制造出一個(gè)最長(zhǎng)?搗亂?鏈足淆。這有沒(méi)有可能呢巢块?答案是,在技術(shù)上是有可能的缸浦,但是經(jīng)濟(jì)上是沒(méi)有可能的夕冲。
假設(shè)有人用大筆資金買(mǎi)通現(xiàn)有的節(jié)點(diǎn),幫助他弄出一個(gè)最長(zhǎng)搗亂鏈裂逐,來(lái)超過(guò)現(xiàn)有的最長(zhǎng)誠(chéng)實(shí)鏈。這個(gè)搗亂的土豪要花多少資金呢泣栈?我們不妨拿比特幣系統(tǒng)來(lái)算一筆簡(jiǎn)單的帳(雖然不完全正確卜高,但可以說(shuō)明為什么經(jīng)濟(jì)上不可能)。買(mǎi)通 51% 的節(jié)點(diǎn)才能在制造區(qū)塊的速度上南片,超過(guò)剩余 49% 的誠(chéng)實(shí)節(jié)點(diǎn)掺涛。假使搗亂節(jié)點(diǎn)只要制造 6 個(gè)節(jié)點(diǎn)即可成功搗亂,制造 6個(gè)搗亂節(jié)點(diǎn)需要 60*?60s疼进。?也就是說(shuō)薪缆,搗亂的土豪至少要支付 51% 的節(jié)點(diǎn)在 1 個(gè)小時(shí)內(nèi)所花費(fèi)的算力成本。這些算力對(duì)應(yīng)的電費(fèi)有多高呢伞广?在我寫(xiě)文章時(shí)拣帽,比特幣系統(tǒng)的全球算力為 9211434 TH/s;1 TH/s 算力大概要消耗 0.15 度電嚼锄,每度電 0.32 元减拭。?這個(gè)搗亂的土豪至少?需要?付出 8 億人民幣。?這就是區(qū)塊鏈上的數(shù)據(jù)只能增区丑、查拧粪,不能刪修陡、改的根本原因,太貴了可霎!
51%* 921143 *0.15* 0.32 *60 * 60 = 811785256
總結(jié)
區(qū)塊鏈技術(shù)的本質(zhì)是通過(guò)公開(kāi)的魄鸦、加密的不可篡改的技術(shù)手段,為解決多方信任問(wèn)題提供了一個(gè)方案⊙⒗剩現(xiàn)在區(qū)塊鏈技術(shù)離可大規(guī)模應(yīng)用拾因,還有很長(zhǎng)的一段路要走。其中最關(guān)鍵原因是每秒確認(rèn)交易的筆數(shù)太少斯棒、確認(rèn)交易的時(shí)間又太長(zhǎng)[5]盾致。但是,換個(gè)角度思考一下荣暮,問(wèn)題即機(jī)會(huì)⊥ハВ現(xiàn)在的區(qū)塊鏈就像 98 年的互聯(lián)網(wǎng),未來(lái)充滿(mǎn)挑戰(zhàn)穗酥,也充滿(mǎn)希望护赊。
參考文章:
中國(guó)區(qū)塊鏈技術(shù)和應(yīng)用發(fā)展白皮書(shū)?
http://www.199it.com/archives/526865.html?
經(jīng)濟(jì)學(xué)人《The trust machine》?
https://www.economist.com/news/leaders/21677198-technology-behind-bitcoin-could-transform-how-economy-works-trust-machine?
How does Ethereum work, anyway??
https://medium.com/@preethikasireddy/how-does-ethereum-work-anyway-22d1df506369?
喬延宏譯?《精通比特幣(?第二版?)》?
http://book.8btc.com/books/6/masterbitcoin2cn/_book/cn-preface.html?
Fundamental challenges with public blockchains?
https://medium.com/@preethikasireddy/fundamental-challenges-with-public-blockchains-253c800e9428?