6張圖告訴你,區(qū)塊鏈的未來在哪里
這篇文章,結(jié)合一定的基礎(chǔ)知識和圖解,帶你了解 Cosmos 和 Polkadot,保準(zhǔn)你能夠在技術(shù)層面上對這些協(xié)議的認(rèn)識達(dá)到一個新的高度。
首先,你一定要認(rèn)識到區(qū)塊鏈互操作性的重要性。在現(xiàn)有網(wǎng)絡(luò)中,你可以通過應(yīng)用程序的 API 對大量的數(shù)據(jù)集進(jìn)行訪問和修改。而在區(qū)塊鏈中,數(shù)據(jù)就被封鎖在某一個鏈中。
那么,區(qū)塊鏈具有互操作性到底意味著什么呢?
它有以下幾個作用:
- 不需要信任,不同的區(qū)塊鏈即可直接安全地進(jìn)行資產(chǎn)轉(zhuǎn)移;
- 不同鏈之間的智能合約可以實現(xiàn)交互;
- 某些專用鏈可供其他區(qū)塊鏈?zhǔn)褂谩?/li>
在深入探討之前,營長先為你介紹一些去中心化系統(tǒng)的基礎(chǔ)知識,以便幫助你理解后續(xù)概念。
去中心化系統(tǒng)
顧名思義,去中心化系統(tǒng)就是一組計算機為實現(xiàn)某一特定目標(biāo)而共同運作,比如向世界各地的民眾推送相同的內(nèi)容(如 Twitter 新聞推送)。為實現(xiàn)這一目標(biāo),必須克服以下困難:
- 準(zhǔn)時:每個系統(tǒng)/電腦都是按照自己的速度和節(jié)奏執(zhí)行相同的任務(wù)。
- 次序:由于每個系統(tǒng)都有自己事件的事件和時間線,試圖在什么時間解決發(fā)生的什么事件還是相當(dāng)困難的。
- 錯誤:由于系統(tǒng)宕機、系統(tǒng)無法正確接收/發(fā)送消息或惡意操作(拜占庭),都可能會導(dǎo)致系統(tǒng)之間協(xié)調(diào)失敗。
舉個例子來說,人和人之間解決問題***的方法就是良好的溝通。但這對計算機來說卻比較困難,因為它可以是異步通信,也可以是同步通信。
該如何理解同步和異步呢?
- 同步:每個系統(tǒng)會給每個主機分配特定的時間輪流進(jìn)行通信,這就好比人與人的面對面對話。
- 異步:每個系統(tǒng)隨時都可以進(jìn)行通信,并且沒有任何限制,這就好比群聊天。
總而言之,區(qū)塊鏈最終實現(xiàn)的是安全性(達(dá)成一致輸出)和活躍性(區(qū)塊不斷增長和運作)。
如果區(qū)塊鏈安全但不活躍,就會停止產(chǎn)生區(qū)塊;如果區(qū)塊鏈的活躍但不安全,就會產(chǎn)生很多很多分叉。如果不制定規(guī)則,就無法辨別哪個是正確的區(qū)塊鏈,哪個是分叉。
實用拜占庭容錯算法(PBFT)
Barbara Liskov 和 Miguel Castro 于1999年推出了實用拜占庭容錯算法(PBFT),由于 Cosmos 和 Polkadot 等權(quán)益證明鏈的基礎(chǔ)是 PBFT,因此,你很有必要聽營長介紹下它的工作原理。
1、一方監(jiān)聽大量的交易,直到交易數(shù)足以打包成一個區(qū)塊,就會停止監(jiān)聽,稱這一方為“提案者”(proposer),因為他們產(chǎn)生了一個區(qū)塊。
2、一旦產(chǎn)生一個區(qū)塊,每個人都要參與到“預(yù)投票”環(huán)節(jié),以確保每個人都監(jiān)聽的是同一區(qū)塊。需要注意的是,這個區(qū)塊也可以是錯誤或惡意的,但在“預(yù)投票”環(huán)節(jié)仍然有效,因為在這個環(huán)節(jié)中,每個人都只是試圖達(dá)成共識,即他們收到了相同的數(shù)據(jù)/區(qū)塊。
3、一旦超過2/3的參與者達(dá)成共識,即收到了相同的區(qū)塊,就會進(jìn)行“預(yù)提交”,隨后,確定這個塊是否有效,且沒有惡意操作。
4、如果超過2/3的參與者認(rèn)為這個塊有效且正確,就可以成功的提交這個區(qū)塊鏈。
5、區(qū)塊鏈的高度不斷增加,繼續(xù)重復(fù)步驟1-5。
以上這些步驟就可以確保每個塊生成的次序是已知的(每提交一個區(qū)塊,區(qū)塊鏈的長度就會增加),每臺計算機都可以計算出自己的結(jié)果并進(jìn)行實時通報,還能夠處理錯誤(惡意節(jié)點提出的區(qū)塊)。
接下來,和營長一起探索 Cosmos 和 Polkadot 吧!
互操作性經(jīng)典案例:Cosmos
2016年,Jae Kwon 和 Ethan Buchman 創(chuàng)建了 Cosmos(ATOM),并通過 ICO 為其集資了超過1700萬美元。Cosmos Hub 是允許區(qū)塊鏈與其他鏈進(jìn)行通信的分區(qū)(Zone),任何一個使用 PoW 機制的區(qū)塊鏈(如比特幣、以太幣、ZCash或特定的應(yīng)用程序區(qū)塊鏈)都必須通過 Inter Blockchain Communication 框架連接到 bridge-zone。
在架構(gòu)這方面,2014年,Jae Kwon 根據(jù)實用拜占庭容錯算法(PBFT),在 Cosmos Hub 中使用了 Tendermint 共識算法。這就意味投票環(huán)節(jié)(預(yù)投票和預(yù)提交)中,每個人都分配了固定的時間進(jìn)行投票,一旦區(qū)塊被創(chuàng)建完成,就不可逆,即只要交易處于最終確定的狀態(tài),就可以實現(xiàn)即時通信 & 物聯(lián)網(wǎng)支付。由于不需要確認(rèn),因此稱為“快速終結(jié)(fast finality)”。
用戶可以將持有的 ATOM 作為系統(tǒng)中的驗證器,或?qū)?ATOM 委托給驗證器。最初,Cosmos 設(shè)置了100個驗證人,并計劃參考治理參數(shù)不斷增加驗證人數(shù),并且,只有為網(wǎng)絡(luò)貢獻(xiàn)力量的人才可以參與維護(hù)網(wǎng)絡(luò)安全。
案例詳解:ETH 轉(zhuǎn)換為 BTC
為了更加簡單明了,下面將 ETH 轉(zhuǎn)換為 BTC。
1、首先為 ETH 創(chuàng)建一個中間可信分區(qū)(Zone),并設(shè)一組驗證人負(fù)責(zé)將信息從 ETH bridge-zone 轉(zhuǎn)發(fā)到 Cosmos Hub。
2、由于 ETH 和 BTC 存在不確定性(即當(dāng)前鏈不一定正確),驗證者需要等待一定量的確認(rèn)函數(shù)后,才能保證交易成功。
3、一旦驗證者確定交易處于最終狀態(tài),就可以從所處分區(qū)向 Cosmos Hub 發(fā)起一筆交易,表明他們確實收到了 ETH,隨后,Cosmos Hub 創(chuàng)建 Wrapped Cosmos Ether,剩余的所有 Cosmos 分區(qū)也會同時獲知:系統(tǒng)中存在新的 Wrapped Cosmos Ether。
4、假設(shè)轉(zhuǎn)換匯率已事先確定,Wrapped Cosmos Ether 將會被換成 Wrapped Cosmos BTC,將這個 Wrapped Cosmos BTC 發(fā)送到比特幣中間可信分區(qū),然后發(fā)送到指定的 BTC 地址。
在這一過程中,有些假設(shè)還得注意:
1、Cosmos Hub 需要確保 Wrapped Cosmos 資產(chǎn)余額能夠正確地遞增/遞減 — — 這是一個潛在的缺陷,不過在 Cosmos 團隊設(shè)計的系統(tǒng)中,任何人都能以自己的方式創(chuàng)建 Cosmos Hub。本質(zhì)上來說,Cosmos 網(wǎng)絡(luò)由不同群體運營的 Cosmos Hub 和 Zones 構(gòu)成。
2、需要確保每個 Zones 可信,且能夠正確轉(zhuǎn)發(fā)資產(chǎn)、發(fā)送/接收消息,另外,發(fā)送者也必須對驗證人能夠充分信任,即驗證人一定會正確轉(zhuǎn)發(fā)消息而不會竊取資產(chǎn)。
互操作性經(jīng)典案例 : Polkadot
Polkadot 由以太坊聯(lián)合創(chuàng)始人兼前***技術(shù)官、Web3 基金會總裁 Gavin Wood 創(chuàng)建,并于2017年底發(fā)售代幣 DOT,融資超過1.45億美元。如果 Cosmos 是由 Cosmos Hub 和 Zones 構(gòu)成的開放網(wǎng)絡(luò),那么 Polkadot 就是單條“中繼鏈”(replay chain),為平行鏈帶來了諸多好處。
Polkadot 有以下幾個關(guān)鍵創(chuàng)新點:
1、每條平行鏈的安全性來源于中繼鏈上的驗證者,一旦通過成為平行鏈連接到 Polkadot 網(wǎng)絡(luò),就能同時收獲與 Polkadot 網(wǎng)絡(luò)相同級別的安全性;而在 Cosmos 中,每條新鏈都需要驗證者,安全性掌握在自己手中。
2、平行鏈可以使用去信任鏈間通信與其他平行鏈進(jìn)行交互,想要跨鏈通信的用戶不需要信任與之交互的每一條鏈,而只需要信任整個 Polkadot 網(wǎng)絡(luò)具安全性即可,這也與 Cosmos 的工作原理不同:在 Cosmos 中,用戶不需要依靠獨立的驗證者來信任源鏈、中繼鏈和目標(biāo)鏈。
Polkadot 的共識機制由兩部分組成:GRANDPA 和 BABE。GRANDPA 是一個終結(jié)工具,它借鑒了 GHOST 分叉選擇規(guī)則的一些原則(如 Ethereum 的 Casper);而 BABE 是一種類似于 Cardano 的 Ouroboros 區(qū)塊生成機制,GRANDPA 允許鏈的一部分“最終化”且不可逆,將終結(jié)工具與生成區(qū)塊分離,允許效率較低的終結(jié)工具在生成區(qū)塊的不同流程生效,這意味著區(qū)塊的生成有可擴展功能,這與基于 PBFT 的 Cosmos Tendermint 算法不同。
Polkadot 生態(tài)系統(tǒng)包含以下幾個角色:
1、校對者(Collators):為平行鏈生成區(qū)塊,并將信息交付至驗證人驗證。
2、提名者(Nominator):將資金分配給驗證人參與權(quán)益機制。
3、驗證者(Validator):對其資金量要求較高,負(fù)責(zé)打包中繼鏈的新區(qū)塊,其作用是:對新區(qū)塊進(jìn)行簽名;參與GRANDPA確認(rèn)中繼鏈;通過確認(rèn)交易是否正確,或跨鏈消息是否已處理,對平行鏈區(qū)塊進(jìn)行驗證。
4、釣魚者(fishermen):審查網(wǎng)絡(luò)節(jié)點,鑒別惡意行為,像“賞金獵人”一樣,它能夠拿到一大筆報酬。
可以將 Polkadot 看作一個互連的系統(tǒng),它將想要借助 bridge-zone 實現(xiàn)通信的各個鏈連接起來,所有的平行鏈和中繼鏈作為一個整體運行。平行鏈可以合并自定義邏輯,并負(fù)責(zé)處理自己的狀態(tài)轉(zhuǎn)換,同時與其他鏈進(jìn)行消息轉(zhuǎn)發(fā)與傳遞。通過相互監(jiān)聽,平行鏈可以自由與其他鏈進(jìn)行通信,而在 Cosmos 網(wǎng)絡(luò)中,所有溝通都必須依賴 Cosmos Hub。
得益于中心設(shè)計理念,Polkadot 有很好的結(jié)構(gòu)——平行鏈被動地從連接合約(bridge-contracts)中讀取信息,但并不依靠連接合約在各平行鏈中發(fā)送消息。每條平行鏈都有相同的地位,也就是說,Polkadot 跨鏈網(wǎng)絡(luò)真正做到了“去信任”,平行鏈的利益與中繼鏈一致,而與其驗證的其他任何平行鏈無關(guān),此外,每隔一段時間,各個鏈也會隨機的重新分配驗證人。
案例詳解:ETH 轉(zhuǎn)換為 BTC
下面,營長以 ETH 轉(zhuǎn)換為 BTC 為例,更為直觀的了解如何實現(xiàn)平行鏈間的代幣轉(zhuǎn)換。
以太坊平行鏈上的校對人將區(qū)塊頭部信息傳遞給所在平行鏈上的驗證人,驗證人再將以平行鏈可識別、可通信的格式在以太坊連接智能合約中簽名并發(fā)布相關(guān)交易。任何發(fā)送的 ETH 都將由 Polkadot 驗證人持有,同時,驗證人也將提供 DOT 作為無效交易的抵押品。隨后,ETH 平行鏈和 BTC 平行鏈之間創(chuàng)建通信,通過驗證以后,BTC 就會指定一個地址。雖然具體設(shè)計決策還未出臺,但是,在跨鏈通信的中心始終是“去信任”。
需要注意的是,通過鏈上的去信任拍賣,Polkadot 分配平行鏈槽(parachain slots),這些拍賣會使 DOT 在一段時間內(nèi)處于鎖定狀態(tài),以便保持平行鏈和Polkadot網(wǎng)絡(luò)的連接。如果平行鏈出現(xiàn)嚴(yán)重漏洞,或者是涉嫌參與惡意行為,監(jiān)管就會介入并著手解決問題。Polkadot 遵循鏈上治理機制,并且將其看作是加密貨幣網(wǎng)絡(luò)的***管理方式。
正如 Gavin Wood 所說的那樣:
“如果不引入鏈上治理,包括通過各種機制來引導(dǎo)升級的區(qū)塊鏈,最終都會被‘有毒的民粹主義’荼毒。我并不認(rèn)可‘鏈下處理’,‘鏈上信號’和‘粗略共識’能夠為區(qū)塊鏈生態(tài)系統(tǒng)中的利益相關(guān)者提供有效手段,管理和推動區(qū)塊鏈的長期進(jìn)步,我也不認(rèn)為治理會奏效。”
時間線
雖然互操作性的核心應(yīng)用實現(xiàn)已經(jīng)達(dá)到了一定的水平,但執(zhí)行力遠(yuǎn)遠(yuǎn)不夠。Cosmos 于2019年3月推出,但也只是發(fā)布及運行 Cosmos Hub,接下來的工作就是確定鏈間通信框架的運作方式;而 Polkadot 將于2019年底推出,目前上線的只有中繼鏈。
總的來說,Cosmos 和 Polkadot 的發(fā)行令我感到很興奮,我***奇的就是如何擴大開發(fā)人員對其的采用率、如何平衡每條平行鏈以及如何發(fā)揮平行鏈的作用。由于當(dāng)前基礎(chǔ)架構(gòu)遠(yuǎn)不夠完善,開發(fā)人員也還得根據(jù)需要考慮實現(xiàn)足夠好的安全性所需要的人力及資源,就目前而言,現(xiàn)在創(chuàng)建特定的應(yīng)用程序鏈還只是一個空談。
在以后的發(fā)展過程中是否還需要重新調(diào)整目標(biāo)做出一點妥協(xié)?這個很難說,或許以太坊的鏈下治理會為此帶來契機。由于要實現(xiàn)去信任創(chuàng)新的同時,還要保證高度安全性,這一技術(shù)的發(fā)展相對來說比較緩慢。
另一方面,所有的加密貨幣網(wǎng)絡(luò)逐漸開始將安全性委托給其他鏈,比如以太坊。一旦現(xiàn)有社區(qū)能夠有較高的安全保障,它們就能專注于發(fā)展自己的鏈。MakerDAO 就是一個很好的例子,MakerDAO 有足夠的資源來創(chuàng)建自己的鏈,并且通過成為 Polkadot 平行鏈的一部分來獲取足夠的支持,如果無法保證足夠的支持,它還可以在 Cosmos 上建立一個 bridge-zone 保障其安全。Polkadot 計劃則為無法保障安全性但可以實現(xiàn)通信的鏈提供 bridge-slots。
以上應(yīng)是社區(qū)該給出的建議,而不是將區(qū)塊鏈當(dāng)作零和游戲。