摘要:區(qū)塊鏈技術(shù)比傳統(tǒng)互聯(lián)網(wǎng)技術(shù)好在哪里它的實現(xiàn)原理優(yōu)是什么呢筆者希望通過本文,解答大家心中的疑問。也就是說區(qū)塊鏈記賬機(jī)器完成記賬功能的基本原理是狀態(tài)機(jī)??偨Y(jié)區(qū)塊鏈技術(shù)的本質(zhì)是通過公開的加密的不可篡改的技術(shù)手段,為解決多方信任問題提供了一個方案。
隨著比特幣、以太坊等數(shù)字貨幣的暴漲,數(shù)字貨幣的底層技術(shù),區(qū)塊鏈技術(shù),開始進(jìn)入大眾的視野。姚勁波說:區(qū)塊鏈有可能和互聯(lián)網(wǎng)一樣偉大。區(qū)塊鏈技術(shù)比傳統(tǒng)互聯(lián)網(wǎng)技術(shù)好在哪里?它的實現(xiàn)原理優(yōu)是什么呢?筆者希望通過本文,解答大家心中的疑問。
信任問題信息在互聯(lián)網(wǎng)上的復(fù)制和傳播成本近乎為零,這讓大家可以很輕易地發(fā)布和獲取信息。但是資產(chǎn)和信息是不一樣的,資產(chǎn)本應(yīng)是不應(yīng)該被隨意復(fù)制的。如果人民幣可以被隨意復(fù)制,那么人人都是億萬富翁了 :-)。
現(xiàn)在的互聯(lián)網(wǎng)和金融技術(shù),通過搭建中心化服務(wù)器,解決了資產(chǎn)傳播的問題,但是成本居高不下。原因在于,當(dāng)今的金融市場是建立在不同的服務(wù)提供商組成的龐大網(wǎng)絡(luò)上的。在這個龐大的網(wǎng)絡(luò)中,存在著各種互相孤立的數(shù)據(jù)系統(tǒng)及運作體系,這極大地影響了金融市場效率的進(jìn)一步提升。在 2012 年歐洲央行的一份報告中,估計除了每個人都支付的直接費用外,間接成本高達(dá) GDP 的 1%,大概每年 1300 億歐元。在世界銀行的報告中,跨國匯款的成本接近 8%。[1]
金融機(jī)構(gòu)之間不能夠無條件地信任對方,造成了金融領(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)的流通費用。從道德上對信用的呼吁很難落到實處,有沒有解決信任問題的技術(shù)手段呢?區(qū)塊鏈技術(shù)的出現(xiàn)為解決信任問題帶來了一絲曙光?,F(xiàn)在區(qū)塊鏈技術(shù)正在,除金融領(lǐng)域外的更多領(lǐng)域中進(jìn)行應(yīng)用,解決著這些領(lǐng)域內(nèi)的信任問題。
信任機(jī)器利用區(qū)塊鏈技術(shù),可以創(chuàng)造出一種信任機(jī)器[2]。比特幣系統(tǒng)就是基于區(qū)塊鏈的記賬機(jī)器;以太坊就是基于區(qū)塊鏈的智能合約機(jī)器等等。而信任秘訣在于區(qū)塊鏈的加密、公開且不可篡改的特性:
加密區(qū)塊鏈技術(shù)是以密碼學(xué)和數(shù)學(xué)為基礎(chǔ)的,這是信任的根本。包括,橢圓曲線數(shù)字簽名算法、非對稱加密、哈希函數(shù)、梅克爾樹等等。這些算法是密碼學(xué)、數(shù)學(xué)上公認(rèn)的窮宇宙之力都難以破解的算法。區(qū)塊鏈上的數(shù)據(jù)是公開的,但這并不意味著你的秘密,可以被任何人知曉。利用這些加密算法可以保障你的數(shù)字權(quán)益,比如你的上網(wǎng)隱私,你的網(wǎng)絡(luò)文章的所有權(quán),還有你的數(shù)字錢包里的 Token。
公開公開是贏得信任的最好手段。基于區(qū)塊鏈技術(shù)的系統(tǒng)的規(guī)則(程序)和數(shù)據(jù)都是公開的。任何參與方都可以通過運行區(qū)塊鏈的程序的方式加入進(jìn)來,進(jìn)而對數(shù)據(jù)進(jìn)行驗證。從程序可靠性的角度出發(fā),信任既可以建立在一個黑盒程序之上,又可以建立在一個開源的程序之上。從交易雙方的角度看,信任既可以建立在一個值得被信賴的第三方之上,又可以建立在自己親自驗證的基礎(chǔ)之上。在自己能驗證,也能依靠第三方進(jìn)行驗證情況下,自己驗證更可靠;如果自己不能驗證,那就只能選擇一個值得被信賴的第三方。區(qū)塊鏈提供了一個更公開、更透明且能夠自己親自驗證的機(jī)制,因此基于區(qū)塊鏈技術(shù)的系統(tǒng)比黑盒和第三方更容易贏得大家的信任。
不可篡改區(qū)塊鏈技術(shù)不可篡改的特性,是數(shù)字資產(chǎn)不可復(fù)制的基礎(chǔ)。技術(shù)上來說,我們可以對任何的數(shù)據(jù)進(jìn)行:增、刪、改、查。但是在基于區(qū)塊鏈技術(shù)的系統(tǒng)上,刪、改的操作的可行性幾乎為零。
核心原理加密技術(shù)是在區(qū)塊鏈出現(xiàn)之前已有的技術(shù),本文不詳細(xì)展開。區(qū)塊鏈的最大創(chuàng)新,在于公開且不可篡改。本文接下來會剖析區(qū)塊鏈的核心原理,幫助大家理解為什么它是公開且不可篡改的。
狀態(tài)機(jī)我們先從最簡單的區(qū)塊鏈記賬機(jī)器開始,比如以太坊系統(tǒng)(比特幣系統(tǒng)的原理稍微繞一些,但本質(zhì)一樣),實際上就是多個節(jié)點維護(hù)同一個賬本。記賬機(jī)器會在賬本上記錄每筆交易的信息。通過初始時各個賬戶的余額和已記錄的信息,就可以推斷出任意時刻的各個賬戶的余額。也就是說區(qū)塊鏈記賬機(jī)器完成記賬功能的基本原理是:狀態(tài)機(jī)[3]。舉個例子:在 state1 時,A B 都有 100;A 發(fā)起了一筆交易,支付 100 給 B,而這筆交易會被區(qū)塊鏈系統(tǒng)記錄下來。我們可以通過 state1 的賬戶余額和區(qū)塊鏈上的交易記錄,計算出 state2 時 A B 的賬戶余額:A 有 50,B 有 150。同理只要我們知道初始化的狀態(tài)(Genesis),并將使用區(qū)塊鏈系統(tǒng)記錄每筆交易,就可以算出任意時刻的任意賬戶的余額了。
雙重支付在區(qū)塊鏈技術(shù)出來之前,一直沒有很好的方法解決去中心化記賬過程中遇到的雙重支付的問題。中心化記賬指的是,一個節(jié)點(比如一臺計算機(jī))維護(hù)一個賬本;去中心化記賬指的是,多個節(jié)點維護(hù)同一套賬本。
顧名思義,雙重支付就是同一筆錢可用于兩次支付。具體的說,就是在同一時間點,A 將 100 元,既支付給 B,又支付給 C。如果出現(xiàn)這種情況,A 就相當(dāng)于把 100 元錢,當(dāng)做 200 元錢來花了。但 B ,C 和記賬機(jī)構(gòu)三者之一就會因此遭受 100 元的損失。在中心化的記賬系統(tǒng)中,雙重支付的事情顯然是不可能的。因為無論這兩筆交易是否同時進(jìn)行,中心化的記賬系統(tǒng)處理這兩筆交易一定會有一個先后順序。中心化的記賬系統(tǒng)會先處理第一筆交易,并在 A 的賬戶中扣除 100 元,再處理第二筆交易,如果此時 A 的賬戶中沒有余額,第二筆交易就會失敗。
在去中心化的記賬系統(tǒng)中,會有多個記錄交易信息的節(jié)點。在上述例子中,去中心化的記賬系統(tǒng)中的一些節(jié)點會先收到 B 的交易信息;另一些節(jié)點會先收到 C 的這筆交易信息。在去中心化的記賬系統(tǒng)中,所有節(jié)點都是平等的。不存在一個統(tǒng)籌的節(jié)點,來決定是先處理 B 的交易還是先處理 C 交易。這就產(chǎn)生了去中心化記賬系統(tǒng)中雙重支付的問題。
解決去中心化記賬系統(tǒng)的雙重支付問題,可以分成兩步來討論:第一步,確定交易信息的先后順序;第二步,需要一個共識機(jī)制,來保證所有節(jié)點都認(rèn)可這個順序。
第一步,確認(rèn)順序的原理很簡單,就是給交易排序。確定交易順序的數(shù)據(jù)結(jié)構(gòu)就是區(qū)塊鏈?!皡^(qū)塊鏈”中的“區(qū)塊”,指的是在同一段時間內(nèi)的交易信息及相關(guān)數(shù)據(jù)的集合?!版湣本褪前褏^(qū)塊按產(chǎn)生的先后順序連接在一起。
共識機(jī)制共識機(jī)制是區(qū)塊鏈系統(tǒng)上獨立節(jié)點們通過遵守一套相同的規(guī)則,自發(fā)地對區(qū)塊的先后順序達(dá)成共識。這套規(guī)則可以簡單的描述為以下 3 步[4]。
所有節(jié)點質(zhì)押成本(如:算力)競爭記賬權(quán),由勝利者產(chǎn)出并廣播區(qū)塊(記賬信息),并獲得收益(如,比特幣)獎勵。
每個節(jié)點獨立的對新區(qū)塊進(jìn)行驗證,并組裝進(jìn)區(qū)塊鏈。
每個節(jié)點對區(qū)塊鏈進(jìn)行獨立選擇,選擇長度最長的區(qū)塊鏈。
這個規(guī)則是如何讓獨立節(jié)點們自發(fā)地參與到區(qū)塊鏈系統(tǒng)的記賬之中呢?又是如何規(guī)避節(jié)點搗亂的問題呢?
第 1 步,保障了每個節(jié)點都會出于“自私”的目的,“誠實”地參與到區(qū)塊鏈系統(tǒng)中來?!白运健敝傅氖?,節(jié)點都是為利潤(收益 - 成本)而來?!罢\實”指的是,遵循區(qū)塊鏈的共識機(jī)制。但是有利潤就會有作弊,如何防止作弊呢?這就要依靠后面兩步。
第 2 步,保障了每個節(jié)點都可以對競爭勝出的節(jié)點的記賬信息進(jìn)行校驗。即便有“搗亂”節(jié)點搶到了記賬權(quán),并記了假賬,其他節(jié)點,包括你的節(jié)點,都可以通過驗證得知是否作假。區(qū)塊(賬本)做不了假,那么有沒有可能在鏈(順序)上作假呢?也就是通過顛倒交易的先后順序,進(jìn)行雙重支付。
第 3 步,保障了顛倒交易的先后順序在經(jīng)濟(jì)上是不可行的。既然每個誠實的節(jié)點都選擇的是最長的鏈,那么搗亂節(jié)點能不能制造一個最長的鏈呢?當(dāng)搗亂鏈的長度,超過誠實鏈的長度的時候,整個交易的順序就被顛倒過來了。在區(qū)塊鏈上,父節(jié)點只能有一個,但是子節(jié)點可以有多個,多個子節(jié)點就會有分叉,稱為 Fork。 搗亂節(jié)點可以在某個節(jié)點 Fork 原先的鏈,再用比誠實節(jié)點更快的速度,制造出一個最長搗亂鏈。這有沒有可能呢?答案是,在技術(shù)上是有可能的,但是經(jīng)濟(jì)上是沒有可能的。
總結(jié)區(qū)塊鏈技術(shù)的本質(zhì)是通過公開的、加密的不可篡改的技術(shù)手段,為解決多方信任問題提供了一個方案。現(xiàn)在區(qū)塊鏈技術(shù)離可大規(guī)模應(yīng)用,還有很長的一段路要走。其中最關(guān)鍵原因是每秒確認(rèn)交易的筆數(shù)太少、確認(rèn)交易的時間又太長[5]。但是,換個角度思考一下,問題即機(jī)會?,F(xiàn)在的區(qū)塊鏈就像 98 年的互聯(lián)網(wǎng),未來充滿挑戰(zhàn),也充滿希望。
本文首發(fā)于 58無線技術(shù) 公眾號
本文由【區(qū)塊鏈研習(xí)社】優(yōu)質(zhì)內(nèi)容計劃支持,更多關(guān)于區(qū)塊鏈的深度好文,請點擊【區(qū)塊鏈研習(xí)社】簡書專欄:http://www.jianshu.com/c/b17f...
參考文章:
中國區(qū)塊鏈技術(shù)和應(yīng)用發(fā)展白皮書
http://www.199it.com/archives...
經(jīng)濟(jì)學(xué)人《The trust machine》
https://www.economist.com/new...
How does Ethereum work, anyway?
https://medium.com/@preethika...
喬延宏譯《精通比特幣(第二版)》
http://book.8btc.com/books/6/...
Fundamental challenges with public blockchains
https://medium.com/@preethika...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/23969.html
摘要:戴嘉樂去年月參與了的眾籌,從而了解到技術(shù),獨立開發(fā)了兩款基于的開源應(yīng)用,一個是與有關(guān)的系統(tǒng),另一個是相關(guān)的地理位置檢索系統(tǒng)?,F(xiàn)在支持的數(shù)據(jù)結(jié)構(gòu),支持比特幣以太坊的區(qū)塊數(shù)據(jù)。 戴嘉樂是前百度高級研發(fā)工程師,ipfser.org&巴比特專欄作者。戴嘉樂去年8月參與了FileCoin的眾籌,從而了解到IPFS技術(shù),獨立開發(fā)了兩款基于IPFS的開源應(yīng)用,一個是與IPFS有關(guān)的wiki系統(tǒng),另一...
摘要:比特幣是第一個區(qū)塊鏈應(yīng)用,同時也是最著名的應(yīng)用之一,它所使用的共識機(jī)制就是。區(qū)塊鏈系統(tǒng)的參與者鎖定他們在該區(qū)塊鏈上持有的虛擬資產(chǎn)或,他們會簽署消息以達(dá)成一致意見。 一.POW(Proof Of Work) Proof Of Work,也就是工作量證明。工作量證明系統(tǒng)(或者說協(xié)議、函數(shù)),是一種應(yīng)對拒絕服務(wù)攻擊和其他服務(wù)濫用的經(jīng)濟(jì)對策。它要求發(fā)起者進(jìn)行一定量的運算,也就意味著需要消耗計算...
摘要:課程概述本課程適合希望開發(fā)自己的專有區(qū)塊鏈的語言工程師,課程內(nèi)容如下第一章課程簡介簡單介紹的定位特點以及對于開發(fā)者而言與以太坊的區(qū)別。課程地址區(qū)塊鏈開發(fā)詳解 簡介 tendermint是一個開源的完整的區(qū)塊鏈實現(xiàn),可以用于公鏈或聯(lián)盟鏈,其官方定位 是面向開發(fā)者的區(qū)塊鏈共識引擎: showImg(https://segmentfault.com/img/remote/1460000016...
摘要:對于區(qū)塊鏈和傳統(tǒng)數(shù)據(jù)技術(shù),我認(rèn)為區(qū)塊鏈技術(shù)的未來發(fā)展,主題是融合。同時數(shù)據(jù)庫在日志中更會包括事務(wù)控制等企業(yè)級能力,是區(qū)塊鏈數(shù)據(jù)結(jié)構(gòu)所不具備的。因此,從安全策略上數(shù)據(jù)庫比當(dāng)前的區(qū)塊鏈完善很多。 原文地址:https://www.admin5.com/articl... 作為一個數(shù)據(jù)庫行業(yè)的老兵,我看到在區(qū)塊鏈技術(shù)的熱潮下,傳統(tǒng)的IT技術(shù)同學(xué)們保持了十分理性,甚至是排斥的態(tài)度。其實不管是熱...
閱讀 2077·2021-09-22 15:43
閱讀 8759·2021-09-22 15:07
閱讀 1092·2021-09-03 10:28
閱讀 2067·2021-08-19 10:57
閱讀 1079·2020-01-08 12:18
閱讀 2985·2019-08-29 15:09
閱讀 1537·2019-08-29 14:05
閱讀 1649·2019-08-29 13:57