決戰分片之顛?全面對比波卡和以太坊2.0的設計
巴比特
2020-05-27 06:10
本文约3525字,阅读全文需要约14分钟
根據描述,波卡已從之前的跨鏈定位切換到了分片協議,因此將與以太坊2.0正面交戰,那波卡的分片設計和以太坊2.0的分片設計有什麼不同呢?

編者按:本文來自巴比特資訊(ID:bitcoin8btc)編者按:本文來自

巴比特資訊(ID:bitcoin8btc)

巴比特資訊(ID:bitcoin8btc)

巴比特資訊(ID:bitcoin8btc)

圖片描述

那波卡的分片設計和以太坊2.0的分片設計有什麼不同呢?本文將從模型、架構、共識、Staking、分片、消息傳遞、治理和升級這8個方面全面進行一個對比。 (注:兩者目前都處於規劃階段)

模型篇

二級標題

(圖片來自:tuchong.com)

二級標題[1]

模型篇

二級標題

以太坊2.0中的分片都具有相同的狀態轉換函數(STF),這個狀態轉換函數(STF)為智能合約的執行提供了一個接口。合約存在於單個分片上(並且可以在分片之間發送異步消息),因此可通過並行執行分片來進行擴展。

二級標題

架構篇

以太坊2.0只需一條信標鏈就可以啟動階段0(Phase 0),而在階段1(Phase 1),以太坊將有64條簡單的分片鏈來測試信標鏈的最終確定性。每個分片向信標鏈提交“交聯”(crosslink),其包含了確定分片數據的信息。之後,在階段2(Phase 2),分片將實現eWasm接口,最終使系統可用。

二級標題


  • 波卡(Polkadot)和以太坊2.0一樣,波卡(Polkadot)也有一個主鏈,它的名字叫中繼鏈(Relay Chain),然後它還有一些分片叫平行鏈(parachain)。平行鏈並不局限於像eWasm這樣的單個接口,相反,它們可以定義自己的邏輯和接口,只要將其狀態轉換函數(STF)提供給中繼鏈驗證程序即可執行。[2]二級標題

  • 此外,為了和其他鏈進行交互(例如比特幣),波卡還會擁有提供雙向兼容性的橋平行鏈。


二級標題

以太坊2.0和波卡都使用了混合共識模型,其中區塊生產和終局性都有各自的協議。對於終局性協議,以太坊2.0所採用的Casper FFG和波卡的GRANDPA都是基於GHOST的,它們都可以在一輪中完成一批區塊。對於區塊生產,兩個協議都使用基於插槽(slot)的協議,這些協議將驗證者隨機分配給一個插槽(slot),並為未完成的區塊提供分叉選擇規則,其中以太坊2.0使用的是RandDAO/LMD,而波卡則是用的BABE。[3]二級標題[4]

二級標題

而波卡的終局性協議GRANDPA基於可用性和有效性檢查來完成區塊的批處理,這些檢查是隨著提議鏈的增長而發生的。也就是說,波卡的終局性時間隨需要執行的檢查次數而變化(無效性報告導致協議需要額外檢查),預計的時間大概在12-60秒之間。

二級標題[5],二級標題

二級標題

。這就要求有64個分片,即16,384個驗證者(每個分片提供256個驗證者)

二級標題[7]二級標題

以太坊2.0中的每個分片都有相同的狀態轉換函數(STF),在階段1(預期2021年實現)二級標題分片將是提供指向信標鏈的交聯的簡單數據容器,而在階段2(預計2023年),分片們將實現eWasm執行環境。 EWasm是Wasm虛擬機的一個受限子集,其接口提供了一組可用於合約的方法。對於eWasm,將會有一套類似Truffle和Ganache 的開發工具集。 {{6]}

而波卡中的每個分片,都有一個基於Wasm的抽象狀態轉換函數(STF)。只要邏輯編譯為Wasm,並且每個分片為波卡驗證者提供“執行區塊”函數,則每個分片都可以公開自定義接口。波卡有一個Substrate開發框架,它可以對模塊進行配置、組合和擴展,以開發鏈的狀態轉換函數(STF)。SPREE消息傳遞篇

以太坊2.0 中的分片將通過它們的交聯和狀態訪問彼此的狀態。在以太坊2.0模型中,會有64個分片,每個分片在信標鏈中為每個區塊發布一個交聯,這意味著分片可包含根據另一個分片上的某筆交易的輕客戶端證明執行邏輯。

協議來相互發送任意消息。平行鏈打開彼此之間的連接,並可以通過它們已建立的通道發送消息。如果兩條平行鏈有任何共同的全節點,它們可以通過全節點gossip消息。否則,驗證程序將處理消息傳遞。消息不通過中繼鏈,只有post和channel操作(打開、關閉等)的證明會進入中繼鏈。通過將數據保留在系統邊緣,這可以增強系統的可擴展性。[8]

治理篇

二級標題

此外,波卡有一個名為

二級標題

總結

以太坊目前使用的是鏈外治理方式,例如Github討論,所有的核心開發者討論,以及Ethereum Magicians來製定有關該協議的決策。

巴比特
作者文库