作者:林冠巨集 / 指尖下的幽靈
GitHub : https://github.com/af913337456/
目錄
- 前序
- 以太坊 2.0 參與者
- 區塊的生命週期
- 優化共識演算法
- 2.0 共識的流程
前序
以太坊
是區塊鏈領域
中的一個應用,為公鏈應用,是後者的真子集
。
本文將從一個區塊的生命週期
的角度去介紹以太坊 2.0
相比於1.X
做了哪些不同,主要的點在於共識演算法
的改變。
BTW:本人技術書籍《區塊鏈以太坊DApp開發實戰》現已出版並可網購了,適合初中級區塊鏈技術相關研發人員閱讀。
以太坊 2.0 參與者
注意目前2.0版本還沒正式上線,部分功能還在開發中,它的整體架構圖如下圖所示:
包含但不限於引入了以下的新技術點
或 名詞
:
信標鏈
,它將管理著參與共識的驗證者。含有但不限於:- 管理驗證者。
- 普通地址抵押 ETH 參與成為驗證者
- 因各種原因而
自己退出
驗證者 - 因懲罰而踢出驗證者
- 提供隨機性。
隨機分配驗證者
去某條分片鏈
隨機選擇輪到提議
的驗證者- ...
- 跟蹤和更新驗證者的抵押款。
- 投票了成功的區塊而獲
獎勵
- 不去投票、曠工而被
處罰
,我們稱之為"quadratic leak(二次洩漏)" - 作惡操作而被
懲罰
- 投票了成功的區塊而獲
- 跨聯,將整個分片鏈系統連線在一起。
- 當,不同的
交易
被分配到不同的區塊,區塊在不同的分片鏈中時,由信標鏈
負責它們資料/通訊
的一致,比如合約的呼叫
。
- 當,不同的
- 響應與之相連的驗證者客戶端軟體。
- 屆時,人人可以使用
終端裝置
下載信標鏈軟體
而成為驗證者,參與管理2.0生態。
- 屆時,人人可以使用
- 管理驗證者。
驗證者
,參與 2.0 出塊生態的角色,普通以太坊地址通過向指定的智慧合約抵押 32 個ETH
,成為驗證者。分片鏈
,擁有多條,它將管理將被打包的交易
,驗證者會被隨機分配
到這裡,生成塊,再排隊等待,去投票塊或拒絕塊。EWASM
,分片上的虛擬機器系統,為 EVM 的升級版。下圖是其 github 專案主頁。- ...
區塊的生命週期
基於以太坊 1.8.11
版本原始碼。請注意這個前提
,所屬版本稱號為:大都會 之 上章 --- 拜占庭
首先我們來看下以太坊 1.8.11
的區塊生命週期
圖解。一目瞭然地,如下圖所示。一個很明顯的點是:以太坊
的挖礦演算法
還是PoW 算力挖礦
。這也是導致了出塊時間最嚴重的地方,要增加出塊的速度,優化共識演算法
是一個主要的點。
優化共識演算法
將以太坊
的PoW
演算法進行修改在早前已經是以太坊團隊宣告過的一個舉措。本來的程式計劃是:
PoW --> (PoW + PoS) --> PoS
關於PoW
共識演算法的通俗講解
見我這篇文章:區塊鏈的共識演算法:整體介紹 及 分叉 的通俗講解
關於PoS
共識演算法的通俗講解
見我這篇文章:區塊鏈的共識演算法:PoS 及其 例子 程式碼 實現
目前的,已經發布了的君士旦丁堡
版本,本身是以為是轉為PoS
共識的了,無奈依然是PoW
。
2.0 版本是以太坊現在規劃中的最後一個版本: Serenity(寧靜)
,正是在這個版本,以太坊團隊將明確要引入新的共識機制
,一起參與實現這項修改的角色正是本文的 以太坊 2.0 參與者
小節所提到的那些。
由於以太坊公鏈一開始採用的是PoW 共識機制
已經執行了很久。它不同於一些新生的公鏈,在一開始的時候可以挑選效能更好的共識演算法,在前人吃螃蟹者
--- 比特幣公鏈的基礎上,它也採用了 PoW。因此發展到現在,隨著部署在它上面的 DApp
原來越多,且要考慮支援要求交易速度更高的應用時,它必須要升級了。
現在升級,就需要考慮更多的問題,比如說:
- 依然要保持去中心化,因為這是區塊鏈的核心特性之一。
- 有效對抗共識中心化的威脅,比如 PoW 要考慮的算力中心化。
- 區塊共識的成本性考慮,比如算力對電力的資源的消耗。
- 對於舊共識機制的節點陣營,是否會導致硬分叉鏈的誕生。
- 與前區塊鏈的區塊資料嵌接性。
- 提高出塊與交易打包的吞吐性。
- 區塊被驗證的速度。
- ...
對於第六點
,因為出塊成功的效率直接影響了交易被打包成功的效率,從而交易成功的速度也跟隨著而改變。
2.0 共識的流程
組合前面小節 以太坊 2.0 參與者
談到的各個角色,以太坊 2.0 的共識機制,目前看來是符合 PoS
模式的,為什麼是目前看來?因為2.0還沒釋出,所以在這之前一切都有變數。
在區塊的生命流程中的進行共識
的一個步驟可以細分為下圖。
圖中有兩個重要的隨機:
- 隨機分配驗證者到
分片鏈
。從驗證者集合中,挑選各個部分的驗證者分配到某一條分片鏈中。 - 隨機提議驗證者。被提議的驗證者提議自己所在分片鏈生產的區塊,供其它分片鏈的驗證者進行投票。投票可以投認可票,也可以投拒絕票。
注:
叔塊
的概念目前不確認是否還會存在以太坊2.0
中,故 暫時不在圖中作出。
最後,大家可以看下一些暫定到時可以執行與信標鏈
進行通訊的客戶端軟體
: