這份文檔主要描述了波卡平行鏈功能宿主的實現,主要針對的是波卡平行鏈宿主的實現者。該文檔分為以下部分:
1、平行鏈起源
2、協議概覽
3、架構概覽
4、Runtime 架構
5、Runtime APIs
6、節點架構
7、數據結構與類型
本文檔旨在描述Polkadot 的平行鏈功能宿主(為組成平行鏈提供安全性和先進性的軟件)的目的、功能和實現。該文檔不是針對特定平行鏈實現者,而是針對平行鏈宿主(Parachain Host)實現者。實際上,此文檔通常是針對Polkadot 的實現者的。
還有其他一些文檔更詳細地描述了這項研究。所有參考文檔都放在了該文檔中,並應與本文檔一起閱讀,以便更好地理解全文。不過,這是唯一一份旨在描述Polkadot 的特定實例關鍵因素,並將該研究拆解為了較底層的技術細節和軟件結構的文檔。
平行鏈起源
平行鍊是一種問題的解決方案。與任何解決方案一樣,如果不首先理解問題,就無法理解它。因此,讓我們從區塊鏈技術所面臨的問題開始,這些問題導致我們開始探索像平行鏈這樣的設計空間。
問題1:可擴展性
幾年前,一個明顯的現像是,比特幣、以太坊和其他一些簡單工作量證明(PoW)區塊鏈的交易吞吐量太低。
TODO:如果有更多的區塊鏈會怎麼樣呢...?
權益證明(PoS)系統可以實現比PoW 區塊鏈更高的吞吐量。 PoS 系統由綁定的資本擔保,而不是花費精力—— 流動性機會成本VS 燃燒電力。他們的工作方式是選擇一組具有已知經濟身份的驗證人,他們鎖定代幣,以換取獲得“驗證”或參與共識過程的權利。如果發現它們錯誤地執行了這一過程,它們將被slash 懲罰,這意味著部分或全部鎖定的代幣將被銷毀。這對不良行為有很強的抑製作用。
由於這種共識協議不會浪費資源,區塊時間和協議可以更快地發生。 PoW 挑戰的解決方案不必在創建區塊之前就找到,因此創建區塊的成本減少到只需要創建和分發區塊的成本。
但是,要達成PoS 鏈共識,就必須有大於三分之二的驗證人對Layer1 上發生的所有事情達成完全一致,所有邏輯都是作為區塊鏈狀態機的一部分執行的。這意味著每個人仍然需要檢查所有的事情。此外,基於通過異步網絡接收到的信息,驗證人可能對系統有不同的看法,這使得就最新狀態達成一致更加困難。
平行鍊是分片協議的一個例子。分片是從傳統的數據庫架構中藉鑑而來的概念。我們不是要求每個參與者檢查每個交易,而是要求每個參與者檢查交易的某個子集,這樣就有足夠的冗餘,使得拜占庭式(任意惡意的) 參與者無法悄悄混入無效的交易—— 至少無法在不被檢測到和被slash 的情況下,將這些交易逆轉。
通過分片和權益證明的相互配合,即使沒有所有參與者檢查所有狀態轉換,平行鏈宿主也可以在許多平行鏈上提供全面的安全性。
TODO:注意網絡影響和橋接
問題2:靈活性/專業化
“不聰明” 的虛擬機無法為你提供靈活性。任何工程師都知道,能夠專業地解決某個問題會給他們和他們的用戶帶來事半功倍的作用。
TODO:做到更加事半功倍
認識到這些問題後,我們開始尋找解決這些問題的方案,這將允許開發人員在統一的安全來源下創建和部署特定目的區塊鏈,並具有在它們之間傳遞消息的能力。這是一種異構分片解決方案,我們稱之為平行鏈。
閱讀完整文檔:
https://w3f.github.io/parachain-implementers-guide/index.html