區塊鏈是信任的機器,區塊鏈是最核心的特性是去中心化,去中心化的特性離不開工作量證明,可能具體的說法不一樣,但是意思基本是一致的,并
“區塊鏈是信任的機器”,“區塊鏈是最核心的特性是去中心化”,“去中心化的特性離不開工作量證明”,可能具體的說法不一樣,但是意思基本是一致的,并且還有一個最終的結論——計算保證信任。
對于一個區塊鏈行業的高手來說,“計算保證信任“這個結論的邏輯鏈條可能是完整并且清晰的,但對于一個普通人來說,大家對計算的理解還勉強停留在礦機、哈希運算上面,對于“計算是否真的能夠保證信任”這個問題還有很多的疑問。算力本身還有很多問題比如說分叉、51%攻擊等等,自身都難保,真的能保證所謂的信任嗎?如果能的話,那計算又是怎么保證的信任呢?
凡約定會執行,就確定會執行!在討論之前,先做一個概念上的界定,因為信任是一個很模糊的詞語。通過計算保證的信任,是由以下幾個方面構成的:
一、通過計算保證過程不可逆
比特幣網絡中任何一個節點,如果想生成一個新的區塊并寫入區塊鏈,必須解出比特幣網絡出的工作量證明的題目,而解出這個問題的答案只能靠強大算力的物理累積,并沒有別的更好辦法。
正因為如此,工作量證明保證了每一個區塊的出現都是經過了大量的計算,最終工作量最大的那條鏈成為主鏈。而且通過特定的鏈式結構,使得一環扣一環,修改其中任何一環都需要重復之前的工作量,這樣就使得這個過程基本上不可逆。
當然這種不可逆只是理論上的不可逆,并不是工程上的不可逆。在工程上只要你愿意付出足夠大的代價,也有辦法實現數據的可逆,只不過是在另一條鏈上可逆,這個辦法就是硬分叉。比如說以太坊ETH和以太坊經典ETC的硬分叉——2016年6月全球最大以太坊項目TheDAO被盜360萬個以太坊,市直高達6000萬美元,這對當時剛剛起步的以太坊社區來說是致命的。創始人Vitalik Buterin和社區大部分人認為不能就這樣算了,社區通過網絡投票的方式決定對以太坊交易進行回滾。
二、通過計算保證結果不可篡改
其實不可篡改的特性和不可逆的特性有很多共同的地方,正是因為整個過程不可逆,所以結果不可篡改,如果你能篡改其中的任何一部分,就相當于過程可逆。
經常有人會問不可篡改和不可修改有什么區別?他們認為一個區塊鏈應該是不可篡改,但是應該可以修改的。因為如果一個區塊鏈不能修改的話,會出現很多問題,比如說轉錯賬怎么辦?比如說被黑客盜取怎么辦?比如說發出一筆轉賬之后,突然發現對方是犯罪份子正在執行違法犯罪行為,需要緊急終止怎么辦?
如果真的出現上面所說的一筆賬轉出去但是突然發現對方是詐騙行為或者有其它違法犯罪行需要緊急中止,對不起,在這條區塊鏈上沒有辦法完成。但是在你轉帳轉出去之后,你可以迅速報警,鎖定地址,通過交易所的協助或者其它社會工程上的線下行為來追回損失,但是僅依靠區塊鏈本身是沒辦法停止交易追回損失的。
當前很多非計算共識的區塊鏈項目都是可以修改的,相當于交易是可逆的。比如采用DPOS共識機制的EOS,它有仲裁委員會,如果通過裁決認定交易非法,那交易是可以回轉的,你的損失是有辦法追回的。但是這種非計算共識的區塊鏈,從本質上來說,并不屬于真正的區塊鏈,更像是帶激勵機制的分布式帳本。
對于一個真正的通過計算保證的不可篡改的區塊鏈項目而言,數據應該不僅是不可篡改,而且是不可修改的。任何的對過去交易數據的修改,都會導致交易的可逆,從而動搖整個區塊鏈的根基。
三、通過算法開源保證業務邏輯可信
用優步打車的時候,他的算法是不開源的;當我用百度搜索的時候,它的算法是不開源的。因為不開源,他的計算過程、排序過程是否合理,是否存在人為操縱和刻意的偏向是不得而知的,從而使得結果的真實性和有效性也無法得到確認。
正如王嘉平博士在文章《區塊鏈還有多長的路要走?》中說道:
在本質上,由于網頁排序(Web Ranking)這個計算過程運行在Google自家的機房,里面真實的邏輯是什么產生的結果是不是合理的、公允的、并且不被操縱的,作為第三方完全無法確信。Google也沒有辦法自證。本質原因是這個計算過程依賴特定的物理計算設備(數據中心),并且Google完全掌控這個物理計算設備,從而完全掌控了這個計算過程。
區塊鏈的計算本質是一個可以和特定計算設備分離的馮·諾伊曼架構,是可以向第三方證明的可信計算范式,目的是為了計算過程真實可信,支持上層應用上實現業務邏輯的自證清白,為世界帶來可以計算的信任。
這是從算法開源的角度保證信任。
四、通過計算去除門檻,保證人人都能參與
通過計算能去除門檻,保證人人都能參與,這一點很容易被大家忽略。因為大家會覺得不管使用什么共識機制,反正公鏈都是對所有人開放的,所有人都能參與。
雖然大部分公鏈都是所有人都能參與,但是能不能參與記帳本身,就是記帳是否可信的重要因素。如果每個人都能隨時參與系統的記帳,那么這個系統當然是可信的;如果只有一些選舉出來的人來記帳,或者符合某些資質的人才能記帳,那么這個系統總是有值得懷疑的可能性。
五、計算本身只創建可信環境,智能合約完成剩下的工作
根據我們上面的說法,我們通過計算構建了這么一個環境——計算過程不過逆,計算結果不可篡改,計算算法開源,人人都可參與,人人都可驗證,通過這幾點,我們就構建了一個可信的環境。
就好像說到珠穆朗瑪峰登過頂的人都是意志力很堅定的人,這種說法一般是靠譜的,因為他登頂珠穆朗瑪峰這件事就相當于一個工作量證明;就好像說拿過奧運短餐金牌的人都是短跑方面的高手一樣,這種說法也是靠譜的,雖然在現實生活中有很多人沒有拿過奧運金牌也是高手,但是奧運金牌這件事本身就是一個工作量證明,拿到奧運金牌就像這個限制條件就相當于構建了一個可信的環境。
計算本身并不直接等于信任,計算只是創建了一個可信的環境,可信環境本身不是信任,但是在這個可信環境當中執行的智能合約是可信的,是符合我們凡是有約定就必然會執行的定義的,所以當我們說到信任的時候其實是說計算加上智能合約之和,畢竟光有計算沒有智能合約也無法構成一個完整的區塊鏈。
在傳統的互聯網時代,智能合約就能實現自動化的功能,但是在互聯網時代,數據由中心化組織掌控,業務由中心化組織設置,代碼不開源,算法隨時調整,使得這時的智能合約沒有真正可信的環境。但是區塊鏈的出現,正好給了智能合約這種可信的環境,讓智能合約變成真正意義上能大規模自動執行的自動合約。
一個由計算所構成的可信環境,加上在這個環境下不受人為控制的智能合約,兩者之和等于信任。
(蒙特卡洛)