簡析波卡平行鏈與以太坊2.0架構設計異同

來源: 談談區塊鏈

撰文:談國鵬,ownbit 創始人

前天晚上,波卡生態鏈專案 moonbeam 和 ownbit 進行了技術交流,期望未來 ownbit 對波卡生態鏈進行更好地支援(包括對 moonbeam 的支援) 。moonbeam 也將競爭成為第一批波卡平行鏈。藉著交流的機會,我對波卡平行鏈也有了更深的理解,遂成此文。

eth 2.0 和波卡平行鏈是未來的兩個重要技術,他們雖分屬於兩個不同的重量級專案,但在設計上卻有驚人的相似。

波卡平行鏈

 

在波卡(polkadot)的設計裡,有兩個重要的概念,一個是波卡平行鏈(parachain),另一個是波卡平行執行緒(parathreads)。理解這兩個概念是理解整個波卡生態的重要環節。

波卡平行鏈,故名思議,是與波卡主鏈平行的其他鏈。要成為平行鏈,需要佔用波卡系統的一個插槽(slot)。波卡系統的插槽數量是有限的(版本 1 可能支援 100 個插槽)。波卡設計出了一套插槽拍賣的系統,透過出價(dot)拍賣獲得一個插槽有限的使用權(2 年每次)。

因此每次插槽的佔有都是有限時間內,到期後要重新進行插槽競拍。用於競拍的 dot 將在插槽使用到期後歸還,因此使用插槽,只是佔用金額,而不花費資金。

為什麼要成為波卡平行鏈?

成為波卡平行鏈主要獲得兩個好處:鏈本身更加安全,以及擁有和其他平行鏈的互操作性。

為了更好理解鏈更加安全這個概念,我們可以把波卡系統想象成可以容納多條平行鏈的容器。每個平行鏈會有自己的共識機制,以及產生區塊的方式。容器定時將所有平行鏈產生的區塊收集起來,形成容器層面的區塊。該容器在波卡中被稱為:中繼鏈(relay chain)。被中繼鏈打包對於平行鏈而言,稱為區塊的 finalize。

波卡中繼鏈對平行連區塊的最終確認(finalize)讓平行鏈更加安全。這樣每個平行鏈可以得益於波卡系統的強大共識,而不用擔心本鏈可能存在各種共識層面的攻擊或問題。

波卡平行鏈和其他平行鏈的互操作性是另一個優點。波卡在系統層面設計了一套訊息傳遞系統(cross-chain message passing),可以讓各平行鏈之間相互傳遞訊息、執行指令、轉移 token 等等。各平行鏈根據 xcmp 定義自己可以接收處理的訊息型別,便可以讓自己擁有和其他平行鏈的互操作性。

如果把平行鏈比喻成作業系統裡的程序,那麼 xcmp 可以理解為程序間通訊機制 ipc (interprocess communication) 。

平行鏈資源是有限的

因為平行鏈資源有限,大部分鏈可能無法競拍到平行鏈插槽。這時,波卡官方給出的方案是,使用測試網路 kusama,或者平行線 程(parathreads)。

平行執行緒和平行鏈之間的區別僅在於一點:平行鏈永久佔用中繼鏈資源,而平行執行緒只在需要時佔用。平行執行緒需要中繼鏈對其區塊進行確認(finalize)時,便提出請求,並給予一定的費用。因為同時會有多個平行執行緒提出確認需求,中繼鏈會按照給予的費用高低進行優先選擇。如下圖所示:

比起平行鏈而言,使用平行執行緒,無需參與插槽競拍,因此無需大額的啟動資金。對於一些不需要頻繁確認的應用(例如平均幾分鐘、甚至每小時才生成一個區塊的應用),使用平行執行緒更加適合。

eth 2.0

 

eth 2.0 的線路圖按照分片技術(sharding)在前進。分片技術最早出現在資料庫技術中。為了讓資料庫擁有更大的執行查詢或插入的能力,將一個資料庫(中的同一張表)拆分成多個資料庫,並且部署到多個機器上,讓執行能力成倍地提升。

eth 2.0 將以太坊網路拆分成多片(可支援 1024 片),將以太坊的執行能力提升相應的倍數。每個分片就是一個子網路(相當於波卡平行鏈)。處理 eth 2.0 共識,以及系統各個子分片之間通訊的模組被成為:beacon chain,這相當於波卡網路裡的中繼鏈(relay chain)。eth 2.0 分片示意圖如下:

可以看出,在大的架構方面,eth 2.0 和波卡有著驚人的相似。但在細節和理念層面又有很多的不同。

波卡平行鏈 vs eth 2. 0

 

從設計目的而言,波卡平行鏈主要是為了跨鏈目的,透過平行鏈水平擴張,進而解決效能吞吐問題。而 eth 2.0 的設計完全是為了解決效能吞吐問題。

波卡和 eth 2.0 都有狀態確認的功能(finalize)。eth 2.0 每一個時代(epoch) finalize 一次,一個時代定義為 64 個區塊,所以 6 -12 分鐘 finalize 一次。而波卡網路的 finalize 時間則更短,一般 1 分鐘以內。

從共識機制而言,eth 2.0 和波卡也有明顯的區別。eth 2.0 採用 pos 機制。質押 32 eth 可以成為驗證者。每個分片至少需要 256 個驗證者才能進行 finalize 操作。以 64 個分片計算,eth 2.0 需驗證者 16,384 名。而波卡採用提名者 pos (nominated proof of stake)機制,所需驗證者數量遠小於 eth 2.0,大約每個平行鏈需 10 個驗證者,以整個系統 100 個平行鏈計算,共需 1000 個驗證者。

另外一個不同點在於,波卡是不同系統(平行鏈)間互聯的框架。而 eth 2.0 是同一套系統(每個分片)間互聯的框架。

波卡更關注其他鏈,而 eth 2.0 只是更關注本身,這也反應出它們對未來不同的展望。波卡打造的是多鏈並存、互聯互通的場景。而 eth 2.0 則打造的強大統一的底層區塊鏈系統,上層繁榮的 dapp 則透過應用介面(abi)彼此互通的場景。

跨鏈

 

波卡對於平行鏈之間,天然具有跨鏈優勢。而 eth 2.0 不具有跨鏈能力。但這並不意味這波卡比在跨鏈方面 eth 2.0 強大很多。

例如對於跨鏈比特幣網路而言,波卡需要使用比特幣橋(bitcoin-bridge)才能完成跨鏈。而這點,跟以太坊跨鏈比特幣方案是一致的。因此,對於跨鏈而言,波卡只是對於未來部署在波卡網路上的平行鏈之間才具有優勢。

結語

 

目前波卡生態的平行鏈專案正如火如荼地進行。它們是否會在未來佔有非常重要的地位,將是區塊鏈最大的看點之一。

從時間而言,波卡主網的上線時間較遲,錯過了以太坊發展的這幾年黃金時間。然而,eth 2.0 上線又將是 2 年以後的事情,而波卡平行鏈專案有望在今年年底或明年初上線波卡主網。這也給波卡留下了更多追趕以太坊的時間。所以未來波卡網路能否像以太坊那樣大放異彩,非常值得我們關注!


免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读