區塊鏈的互操作性:Cosmos vs Polkadot
什麼是區塊鏈互操作性?
區塊鏈互操作性十分複雜,所以我們試著用最簡單的方式去解釋。
區塊鏈互操作性允許僅通過區塊鏈協議本身傳送ETH或接收BTC,而不需要第三方機構(如交易所)介入。這個願望很簡單,但目前還未實現。
Polkadot和Cosmos都致力於在區塊鏈之間構建網路協議,以實現安全可靠的互動。基於這些協議產生的新區塊鏈可以在鏈之間傳送交易和傳遞訊息。
它為何如此重要?
區塊鏈網路可以通過網路效應來改善去中心化網路。當所有區塊鏈都連線互通時,它會帶來更多資本,更好的使用者體驗,以及更有利於集思廣益,完善網路狀態。區塊鏈互操作性可以顯著提高區塊鏈的可擴充套件性和交易速度。例如,如果一條鏈的上限為100 TPS,則可以建立第二條相同的鏈——達到200 TPS——以方便與其他鏈的互動。照這樣做,我們可以輕易實現1000 TPS的交易速度。
它也允許私有鏈,公鏈和聯盟鏈的接入。最終,區塊鏈甚至可以與法定的銀行系統(如SWIFT)進行互動。
為什麼關注Cosmos和Polkadot?
根據本人的研究,我發現它們是最具前景的互動專案。它們都擁有強大的技術團隊,在去中心化社群中擁有良好的聲譽,並且多年深耕區塊鏈領域,從無到有地編寫了大量的區塊鏈程式碼。
在解決區塊鏈互操作性問題上,它們採取類似的策略,但在協議和設計上存在細微的差別。這些差異具體表現在安全性,隱私性,效率,靈活性和易用性之間的權衡。
那麼現在,就讓我們一起揭開未來可互動區塊鏈的神祕面紗吧!
Cosmos網路
自2014年Tendermint釋出以來,Cosmos團隊一直致力於實現區塊鏈互操作性。Tendermint是一個拜占庭容錯的共識引擎,並配備了點對點的Gossip協議。
Cosmos團隊正在構建基於Tendermint的Cosmos網路。Tendermint和Cosmos都隸屬於InterChain基金會。下面兩張圖將簡單解釋他們是如何設計網路的。
技術設計和協議
Tendermint(共識和網路)
Tendermint是一種實用拜占庭容錯(PBFT)狀態機。它需要一組已知的驗證人達成共識而出塊。在Cosmos網路中,至少需要2/3的驗證人達成共識。假設不到1/3的驗證人是作惡者,則網路永遠不會分叉,因為驗證人不能在相同高度提交衝突塊。這種策略正是根源於Tendermint中安全性優先於活躍度的原則。
應用區塊連結口(ABCI)
ABCI是定義了複製引擎(Tendermint)和狀態機(區塊鏈)兩者邊界的介面。ABCI是區塊鏈狀態更新的唯一通道,而只有Tendermint才具有區塊鏈狀態更改功能。這種設計是一種非常棒的安全策略,因為改變狀態只有一個接入通道。
下圖解釋了Tendermint的堆疊設計,展現了在點對點網路中節點的連線方式,以及每個節點的元件。
Cosmos的互動性
鏈間通訊(IBC)
Cosmos網路可以基於IBC協議實現鏈鏈互動功能。以Cosmos網路為中心樞紐,網路中的鏈通過IBC進行通訊。區塊鏈以分支的形式連線到Cosmos Hub,網路中的分支又被成為“Zone”,如下圖所示。
IBC的技術性術語又叫“Chain Relay”。Chain Relay允許區塊鏈讀取和驗證其他鏈上的事件。例如,A鏈上的智慧合約想知道B鏈上發生的事件,則B鏈上的智慧合約需要採用A鏈的塊頭,並驗證其是否達成共識以及最終性。
本質地說,Cosmos正在構建一個網路體系,其中新區塊鏈可以輕易建立,並從創立之初就可以通過Chain Relay進行互動。每條鏈都將在Tendermint上執行,如下圖所示。
只要新鏈遵循IBC協議,就可以加入該網路,包括公鏈和私有鏈。
Peg Zones
Peg Zone允許實時的區塊鏈網路(如以太坊主網)連線到Cosmos網路中。能夠連線到實時區塊鏈是區塊鏈可互動網路的主要要求。Peg Zone很複雜,但我們可以試著用簡單的術語來解釋它的工作原理。
你必須有一個共享的安全模型,並且Cosmos Peg Zone的驗證人也在執行以太坊主網節點。特殊驗證人會批准兩條鏈之間的互動。這是個複雜繁瑣的基礎架構,你還必須信任執行Peg Zone的團隊。
實際的資產交易需要以太坊主網上的智慧合約鎖定相應的ETH,同時在Peg Zone中建立代表“Cosmos-Ether”的新代幣,,其可以通過IBC在Cosmos網路中傳送。從Cosmos方面來看,驗證人會鎖定Atom,同時在以太坊主網中建立可傳送的ERC-20的Atom代幣。這樣一來,就實現了Cosmos和以太坊主網之間資產的完全互動性。
實現兩條鏈之間的互操作
任何可互動的網路需要至少兩條可以交換資訊和產生交易的區塊鏈。Ethermint是Cosmos提出的第一個能與Cosmos Hub互動的解決方案。
Ethermint是Cosmos團隊計劃在Cosmos Hub主網上線後推出的區塊鏈。它預計將於2018年的Q4釋出。一句話描述Ethermint就是:它是用Tendermint共識引擎代替了PoW證明的以太坊。這也就使得基於以太坊虛擬機器的區塊鏈可以輕鬆地通過IBC與Cosmos網路進行互動。
Ethermint設計的天才之處在於團隊計劃實現的“hard spoon”。他們將在某個時間點對所有以太坊賬戶進行快照,並用該狀態建立新的Ethermint分割槽。這將幫助他們引導現有的以太坊開發者網路,同時為每個人發放新的代幣,並提供更快的交易速度。
選擇Ethermint而不是Peg Zone來“對映”以太坊主網,是因為它在技術上更加容易實現。但是,對於區塊鏈來說,Peg Zone的存在至關重要。無論對於Cosmos還是Pokaldot,比特幣和以太坊背後有太多的動量,忽視它們都是極其冒險的。
Cosmos Hub
在Cosmos網路中,Cosmos Hub是主鏈,充當其他所有區塊鏈的中央連線點。它是Tendermint驅動的多資產證明的PoS區塊鏈。Cosmos Hub的主要代幣是Atom,其主要用於抵押和鏈的治理。Cosmos Hub啟動之初有100個驗證人,並將逐年增加。
Atom持有者既可以是驗證人也可以是委託人。驗證人需要設定一個完全節點,用於維護網路安全和處理交易。委託人則可以根據他們對驗證人的信賴度和節點執行能力的判斷,將代幣委託給驗證人。驗證人會代理Atom資產,並從每個出塊中獲得Atom獎勵。這些獎勵會惠及委託人,只是其中一小部分將被扣留,以用於驗證節點的日常執行。
為了保證驗證人的誠實性,向區塊鏈釋出不正確資料的惡意驗證人會失去他們的Atom代幣作為經濟處罰。這種機制稱為“slashing”。這些遊戲理論規則都是為了在PoS證明的區塊鏈中激勵良好行為。
代幣也可用於治理。一個Atom就可以作為網路任何提案的一票,例如軟體升級。Cosmos的治理協議相當簡單。委託人可以自己投票,也可以將他們的投票權轉讓給他們所委託的驗證人。驗證人必須給每個提案投票,否則他們會受到懲罰。
主網啟動的當前狀態
Cosmos團隊目前正在使用部分功能對測試網進行測試,但他們已經非常接近於功能完備的軟體版本測試。團隊將在2019年Q3的某個時間點發布實時主網。但是,在主網穩定執行前,Cosmos團隊會凍結交易。一旦主網上線並穩定執行,Cosmos團隊將執行IBC,併為Ethermint進行Ethereum的“hard spoon”。想要對Cosmos路線圖更深入瞭解,請點選這裡。
Cosmos上的開發構建
開發者有兩種方法進行基於Cosmos網路的開發工程:構建IBC互動的新區塊鏈和在Cosmos Zone中建立智慧合約。Cosmos團隊建立了Cosmos SDK以便開發人員可以輕鬆地在Cosmos網路上釋出新的區塊鏈。
Cosmos SDK
Cosmos團隊釋出了“Cosmos SDK”,其允許開發人員使用簡單的模組化方案在Cosmos網路上設計自己的區塊鏈。SDK正用於構建Cosmos Hub,因此當主網啟動時,SDK也可供開發者構建自己的區塊鏈。Cosmos Hub可以構建運行於Cosmos網路的基礎應用程式,之後將為股權代理,治理和IBC新增相應的模組。
這將允許開發者自己使用SDK,選擇基礎區塊鏈應用程式,新增治理或股權代理等模組,甚至建立屬於自己的模組,併發布可互動的區塊鏈。這是個激動人心的機會,因為它將為開發人員建立一個全新的去中心化平臺,而不僅僅是以太坊風靡全球的代幣模式。
SDK是用Golang語言編寫的,並將支援未來語言。但在第一年前後,網路中的區塊鏈必須用Go編寫。
在Cosmos上構建dApp
Ethermint將是你在Cosmos網路上構建dApp的第一個工具。由於它是基於EVM的區塊鏈,其智慧合約可以用Solidity編寫。Cosmos網路的交易速度也會提高,因為Tendermint共識每秒能夠處理比以太坊(基於PoW共識機制)多得多的交易。
Polkadot
Polkadot是另一個由強大的技術團隊領銜,並致力於解決區塊鏈間互動性的專案。Polkadot由Parity開發,後者是Web3基金會的成員。他們因以太坊客戶端Parity(由Rust語言編寫)而聞名遐邇。
技術設計與協議
共識
正如Cosmos所做的那樣,Polkadot將共識架構與狀態程式分離開來。據其白皮書所述,Polkadot的共識引擎實際上受到了Tendermint和HoneyBadgerBFT的啟發。
然而,在最近的Youtube視訊中,Polkadot團隊提到他們計劃使用Aurand和Tendermint for PBFT的混合共識機制。Aurand允許隨機選擇驗證人出塊,而不需要2/3成員的共識。混合共識引擎的設計使得共識形成更快,但是,如果驗證人存在惡意行為,區塊也有可能被回收。
Polkadot的互操作性
Cosmos和Polkadot實現互動的策略也十分相似。Polkadot網路有個“Relay Chain”,是一個功能類似於Cosmos Hub的中心聯結器。它也有連線到“Relay Chain”的區塊鏈,這些區塊鏈被稱為Parachain。Cosmos Zone和Parachain的用途相同。Polkadot還將配備連線實時區塊鏈的Bridge,其也跟Cosmos Peg Zone的作用類似。
Parachain
Parachain和Cosmos Zone都使用鏈中繼來實現區塊鏈間的互動。但在具體實現上兩者有所不同。最大的區別在於如何與鏈相連及實現安全共享。在Polkadot中,網路安全可以彙集和共享。這就意味著,單一的鏈可以利用集體安全性來增強自身的吸引力和信任度,而不需要從零開始。
這個方案是通過繫結Dots以建立新的Parachain,或者取消Dots繫結以移除無用的Parachain來實現的。而Cosmos不要求繫結Atom來建立一條新鏈,他們用治理的方法決定中央的Cosmos Hub是否應該連線到Cosmos Zone。
Bridges
Bridge和Peg Zone在各自網路中的作用相同。它們都可以來連線到實時的區塊鏈網路,例如以太坊主網。Cosmos和Polkadot都希望在啟動時能夠快速地連線到以太坊主網。
實現兩條鏈之間的互操作
如前所述,第一條與Cosmos Hub互動的鏈是Ethermint。很有可能,Polkadot也會建立一條類似Ethermint的鏈。對此,Polkadot團隊應該能夠輕鬆應對,畢竟他們在以太坊Parity客戶端上積累了相當多的經驗。
Polkadot網路
Polkadot網路是PoS證明的區塊鏈,其原生代幣是“Dots”。Dots可以提供治理,以及在理論規則上激勵代幣持有人誠實行事。網路的中心部分是“Relay Chain”,其作用類似於Cosmos Hub在Cosmos網路中的功能。Polkadot網路擁有四種主要股權利益人:驗證人,提名人,校對人和漁夫。Polkadot也會通過“slashing”來懲罰作惡行為。
Polkadot上的驗證人和Cosmos中的驗證人作用相同,提名人和Cosmos中的委託人類似。下面的圖表來自Polkadot白皮書,顯示了每個股權利益人之間如何相互關聯。
驗證人並不會維護所有Parachain上完全同步的資料庫,因為儲存的資料量過於龐大。因此,驗證人把儲存和驗證新的Parachain區塊的任務交給第三方,我們稱之為“校對人”。校對人的主要任務是生成有效的Parachain區塊。他們必須維護一個完整節點。校對人還需對未封裝的塊進行零知識證明,並將其提供給一個或多個負責向Relay Chain提交Parachain區塊的驗證人。校對人和驗證人會從這些任務中收取一定的費用。
漁夫會像自由賞金獵人一樣,尋求大筆的獎勵。可以預料的是,僅僅他們的存在就能使作惡行為極少發生。因為驗證人和校對人都知道,一旦他們作惡就會被漁夫抓到並接受懲罰。漁夫會在Polkadot網路上傳送驗證人或校對人的任何非法活動證據。
治理分為幾個層次,主要是在網路上通過Dots投票。Polkadot團隊還計劃設立一個12-24個賬戶組成的理事會,對沒有得到股權利益人重視的提案進行投票。這是一個對低選民投票率提案的備用解決方案。他們還承諾加入自適應仲裁偏差,併為選票賦予不同的投票權重指標,例如為長期持有人或驗證人,甚至是長期為網路做出貢獻的dApp開發團隊賦予更多的投票權重。但是,目前這些想法只停留在概念階段。
主網啟動的當前狀態
Polkadot團隊的第一個概念證明(proof of concept)已經能夠驗證區塊,並實現狀態轉換。他們已經實現通過測試網路傳送Dots代幣。概念證明是用Rust寫成的,之後將支援WebAssembly。他們計劃將在2019年Q3釋出主網,並一直表示他們正在努力實現這一目標。
Polkadot上的開發構建
Substrate
Substrate是一個用於構建區塊鏈的技術堆疊。它與Cosmos中Cosmos SDK的作用十分相似。Polkadot網路建立在Substrate之上,就像Cosmos網路建立在Cosmos SDK之上。你並不用擔心共識或網路性,而只需要專注於區塊鏈應用本身。
Substrate是用Rust寫成的,但是狀態機的核心功能將會被編譯成WebAssembly。它可以直接使用編譯的Rust程式碼,或者通過WebAssembly翻譯器執行。詳見下圖。
在Polkadot上建立dApp
你可以在支援智慧合約的Parachain上構建dApp。這一點也類似於Cosmos,因為Polkadot的Relay Chain和Cosmos Hub都不支援智慧合約,但它們都可以連線到支援智慧合約的鏈。
比較Cosmos和Polkadot
讓我們來看看這兩個網路的主要元件,以及它們是如何相互競爭的。這是本文最有價值的部分,你可以比較兩個專案的不同,並自行判斷哪個網路未來可能會更成功。
共識協議
它們都使用Tendermint進行PBFT共識,儘管Polkadot承諾將使用與Aurand相輔的混合共識協議。混合共識方案加速了共識的形成,但它也導致了區塊回收的可能。兩種方案都還需要在實時區塊鏈網路中經受實踐檢驗。當然,兩種共識協議也遠快於以太坊和比特幣網路的PoW共識。
Polkadot還在他們的網站上提到將使用“積極的BFT權威證明(Optimistic BFT Proof of Authority)”,但我們尚不清楚它們具體是指什麼。Web3基金會最近表示,“Polkadot被設計為完全開放和公開的,不需要由任何特定的組織或可信的權威來維護”。從Polkadot在白皮書中提出的整體設計來看,顯然,Dots的PoS證明將在共識中佔據主導地位。即使PoA證明(Proof-of-authority)最終會使用,也只可能是個次要角色。
代幣和PoS設計
它們都有用於治理和股權代理的代幣。兩個網路都有保護網路安全的驗證人,和可將代幣委託給驗證人的委託人/提名人。Polkadot網路中還加入了校對人(用於幫助處理Parachain)和漁夫(用於密切監視網路中的作惡者)。兩個專案都有對作惡者的懲罰措施,並在主網上線時,相應的懲罰指標可能會進行調整和測試。總結來說,Polkadot的PoS共識設計更為精妙,但也更加複雜。
Cosmos的優勢在於他們將首先發布主網,並且相對簡單的設計也使股權利益人更容易組織和建立穩定的去中心化網路。Polkadot的優勢在於,四種股權利益人的配置可以使網路變得更加去中心化。現在很難說兩個專案的設計孰優孰劣,但時間會給出答案。
治理
Cosmos在治理方面的協議並不複雜,因為它僅僅依靠驗證人,委託人和成文憲法。
Polkadot在治理方面更加完備,它還設定了自適應仲裁偏差,以及一個驗證人組成的理事會,用於處理沒有得到股權利益人重視的提案。
實時區塊鏈中的PoS治理在很大程度上未經過測試。我們可以期望,這兩個專案團隊都能夠提出對應的解決方案,以便在測試之初調整治理協議。這兩種設計模型都足夠簡潔,可以通過小規模的迭代和改進,過渡到一個更強大的去中心化治理系統。一開始就強加一堆制度和規則的方法不可取,還不如從簡單的開始,逐漸增加複雜性。這也是這兩個專案的高明之處。
網路也需要足夠得去中心化,以防止某些惡意的驗證人控制整個網路。值得慶幸的是,這將使他們能夠避免EOS主網啟動時所面臨的問題:由於21個BP節點的限值過低而導致網路過於中心化。
安全性
Polkadot允許Parachain和Relay Chain共享“池安全”(pool security),而Cosmos則由Zone來保護自己的網路安全。這就意味著開始一個新的Parachain,就必須積累大量的Dots,並質押這些代幣以便將Parachain連線到Polkadot網路。因此每條Parachain的安全性根植於Dots本身,這樣也就是在整個網路中建立了一個共享安全模型。
Cosmos允許Zone來管理自己的安全模型,也就是所謂的“Sovereign Zone”。這意味著,Cosmos Hub將使用治理決定哪些Zone可以接入Cosmos Hub。這個方案理論上可行,但是,如果惡意的Zone成功欺騙驗證人相信它們是合法的,那它也確實可以接入網路。而一旦惡意的Zone連線到網路中,它就可能有多種方式攻擊中央的Cosmos Hub,並從Cosmos網路中提取Atom。
通過Cosmos的Sovereign Zone,每個連線的Zone都必須自己建立一個安全的去中心化網路。所以,如果Cosmos Hub有5個完全可用的Zone,則可能會有100個Cosmos驗證人,和5*100個Zone的驗證人。這是一個比Polkadot更加去中心化的模型。如果正常工作起來,執行效果應該會很好。
可以想象,100個Polkadot驗證人可以保護Relay Chain和5條Parachain,而Cosmos網路則需要100個Hub驗證人和500個Zone驗證人。這也使得在Polkadot模型中,建立新的Parachain會相對更容易,但同時也意味著權力會集中到Dots所有者手中。而Cosmos是一個更加去中心化的安全模型,但實施起來也更困難。
但是,Cosmos團隊也宣稱,他們計劃在主網上線後不久支援共享安全模型。一旦他們實現這個計劃,將會給開發者帶來極大的靈活性。因為開發者可以在Cosmos上共享基於Atom的安全性,或者建立自己的代幣和安全體系。採取兩種安全模型所作的取捨就是通過治理將Sovereign Zone新增到網路中,這也為惡意Zone連線到網路中提供了可能,儘管這種情況不大可能發生。
速度和可擴充套件性
兩種共識協議的處理速度都可達每秒1000筆交易(1000 TPS)。這也取決於網路中有多少節點及網路相應的引數設定。對於增加的每個Parachain和Zone,它都會增加可處理的交易量,因而兩種網路可以輕鬆達到1000 TPS的交易量。真正的瓶頸在於每個Zone和Parachain中執行的狀態機程式。
可互操作性
兩個網路都通過鏈中繼(chain-relays)連線到一箇中央樞紐。它們都通過Peg Zone/Bridges連線到以太坊主網,並致力於使這種連線更加迅速。另外,它們都可以快速、便捷地在各自網路上執行EVM Zone/EVM Parachain。Cosmos將在主網穩定後釋出Ethermint,Polkadot可能也有類似的計劃。
開發人員
Cosmos SDK和Polkadot Substrate都是為了開發平臺而設計的。它們使得開發者可以更方便地在網路上建立自己的區塊鏈。兩方團隊都致力於構建開發者友好型的新型開發平臺,就像當初以太坊用智慧合約和代幣所做的那樣。
在這兩個平臺上開發的不同之處主要在於,Polkadot使用WebAssembly和Rust語言,而Cosmos使用Golang語言。
Polkadot遠見性地支援WebAssembly,以更好地面向未來。WebAssembly得到了Google,Apple,Microsoft和Mozilla的支援,很有可能在未來十年內得到廣泛應用。Rust也一直努力成為可編譯入WebAssembly的主要語言之一。在未來5年的展望中,Polkadot似乎在長期吸引開發者方面邁出了正確的一步。
然而,正如我們在以太坊上所看到的那樣,有時首先進入市場甚為重要。還有其他支援智慧合約的區塊鏈允許使用其他語言編寫智慧合約,但以太坊幾乎覆蓋了所有的智慧合約活動。正是因為他們建立了圍繞Solidity和EVM的生態系統,而俘獲了許多早期開發者的心。
Cosmos將率先推向市場。在Cosmos上開發的主要途徑是通過Cosmos SDK中的Golang語言,以及Lotion-JS——一個可基於Ethermint建立新鏈的Javascript實現工具。然而,Lotion-JS網站也表示Lotion-JS程式碼尚未通過安全稽核,如果想保證安全性,則必須使用Cosmos SDK。
目前而言,Cosmos並沒有支援WebAssembly的相關工作。但我們可以相信,Golang將很快增加對編譯到WebAssembly的支援。他們已經取得了可觀的進展。最後,與Rust相比,Golang是一種更易學習的程式語言,在全球也有更多的開發者。
主網啟動
Cosmos將在2018年Q3釋出。但Cosmos團隊表示,在主網穩定前,他們將鎖定交易,並且直到所有人都確信網路可以安全執行時才會開放回滾。
Polkadot將在2019年Q3釋出,所以他們會給Cosmos一年的領先優勢。
Cosmos似乎在這點上很有優勢,但Polkadot也有機會從Cosmos犯的錯誤中汲取教訓。
總結
現在還很難說哪個網路會更成功。但可以肯定地說,哪個網路吸引更多的開發者,哪個網路就可以最快地發展,並佔據最大的市場份額。
作為一個開發者,如果你認為Cosmos會更成功,那你就可以去學習Golang了。如果你信仰Polkadot,那就去學習Rust和WebAssembly吧。
雖然Cosmos和Polkadot最終只有一個贏家,但值得注意的是,在某個領域中它們可能同時存在又相互聯絡。例如,如果兩個網路都在以太坊主網上建立Peg Zone/Bridges,那麼你可以使用Dots的ERC20代幣與Atom的ERC20代幣進行交易。這就允許實現兩個網路的安全互動。這樣可能會建立一個巨大的交織區塊鏈網路,其中以太坊,所有Parachain和Zone都是可互動的。當然,以太坊的Plasma鏈也可以接入其中。
正如我們所看到的,Polkadot和Cosmos實現區塊鏈互動網路的網路效應是極其巨大的。這兩個專案都值得我們花點時間去關注其進展,讓我們支援並祝願它們取得成功。