譯者前言:關於以太坊的升級路線,密碼貨幣社羣的很多參與者所掌握的資訊可能已經是過時了,例如以太坊的Casper協議將不會替代現有以太坊PoW機制,而是被轉移到了以太坊2.0系統的Beacon鏈當中,而現有的以太坊PoW鏈,將繼續按原來的規則執行,在這篇文章中,來自以太坊開發公司ConsenSys的區塊鏈協議工程師Ben Edgington將為我們介紹關於以太坊2.0以及Beacon鏈的資訊。
以太坊2.0並不是一個新主意,早在2014年,Vitalik就提到了以太坊2.0的概念,他說:“我們要麼解決可擴充套件性和共識問題,要麼就死於嘗試,” 好吧,我們還活得不錯,而他幾周前釋出的最新觀點是:“對於以太坊2.0來說,理論上已沒有明顯未解決的問題。”
現在正是實現這些理論的時候了,而Beacon鏈正是以太坊2.0交付計劃的第一個組成部分。在這篇文章當中,我們將討論它的作用、它為什麼是這樣做的,以及開發者們是如何開發它的。
關於Beacon鏈的介紹
在之前的一篇文章當中,作者介紹了以太坊2.0的概念,在這裡我們透過Hsiao-Wei Wang提供的以太坊2.0系統 架構圖進行展示:
此圖還可作為開發和交付以太坊2.0的分步路線圖,順序為從上到下:
· PoW 主鏈是今天以太坊存在的部分:即當前的以太坊主網。在以太坊2.0系統當中,它會繼續像今天那樣執行。而下面的所有東西都是新的。
· Beacon鏈目前正在開發當中,它也將成為第一個被交付的元件;
· 分片鏈會是下一個交付元件,它也是可擴充套件性的來源。最初,分片鏈將簡單地聚合交易,並就其排序達成共識,而不會執行它們。這將是對系統基礎設施以及安全性的一個良好測試;
· VM層是以太坊2.0系統的最後一個重要組成部分,它將提供合約以及交易的執行;
為什麼我們需要一個“Beacon”鏈?
Beacon鏈是一個全新的PoS區塊鏈。它是支撐整個新以太坊2.0系統的脊柱。它的存在,使得整個系統能夠保持活力,其負責指揮以太坊2.0系統所有的組成部分。
當前的隨機數生成是透過RANDAO結構完成的,驗證者會提供一個“雜湊洋蔥”。 而RANDAO結構只是將很多參與者提供的貢獻(單個隨機數)組合成單個輸出數字的一種方式。為了防止任何一個參與者顯著地操縱隨機性,開發者使用了一種提交洩露(commit–reveal)方案。當驗證者註冊時,它會提供一個承諾值,該值是其選擇的原始數字經多次雜湊後產生的。每次選擇驗證者作為提議者時,它透過提供最後一個揭示數字的原像來剝離“洋蔥”的一層或多層。其它人都可以檢查這是否是正確完成的,因此提出者不能透過改變其貢獻來欺騙系統。
雖然這種方案並不是不可替代的,如果提出者不喜歡這個隨機數,他可以選擇跳過它,但對於當前的協議設計來說,這已經是足夠健壯的。
區塊提出者
Beacon鏈會管理它的PoS協議,以及每個分片鏈。在工作量證明系統當中,礦工節點會負責選出下一個區塊。而在PoS系統當中,是不存在挖礦這個過程的,因此區塊生產者是基於上述協議內的隨機性,隨機地選擇區塊提出者。
PoW系統的另一個特性是,區塊時間是不規則的,儘管以太坊的區塊生成時間平均約為15秒。相比之下,我們將Beacon鏈的區塊生成描述為心跳(heartbeat)。以太坊2.0的區塊是每16秒定期生成一次的(如果測試可行,也可能減少到8秒)。這個16秒的週期被稱為“slot”(時隙);
在每個時隙(slot),Beacon鏈所選擇的提出者,會收集來自先前區塊的Beacon鏈驗證者集的所有協議投票(證明),並將它們納入其釋出的區塊。
一旦分片鏈準備就緒,每個分片在每個時隙(slot)中都會有自己選擇的提出者,它們將收集該分片的交易,並將它們納入一個由分片委員會投票得出的區塊當中;
委員會
權益證明(proof-of-stake)區塊鏈的一個重要安全來源是委員會,它們負責對構成區塊鏈真實歷史的區塊進行投票。而 Beacon鏈就依賴於計算來自其委員會的投票,我們將其稱為“證明”,以便同意並最終確定其歷史。在理想的情況下,如果能夠快速收集證明,則該委員會的成員,都可以成為系統中的有效驗證者。
此外,Beacon鏈將隨機為每個分片指定較小的子委員會,這將在適當的時候負責確認分片的提出者行為是正確的。
獎勵和懲罰
Beacon鏈的另一個管理角色,是跟蹤和更新驗證者的存款。
如果驗證者表現良好,併發揮出了自己的作用,則他們會獲得獎勵:這是驗證者參與以太坊2.0系統的動力。但是,如果驗證者違反了規則。那麼他們的32個以太幣存款會減少(被削減),到達一定程度的情況下,這些驗證者會被系統剔除。如果驗證者出現缺席的狀況(不對區塊進行投票),系統也會有小小的懲罰,我們將其稱為“二次洩漏”(quadratic leak)。其原因很微妙,即使在大量驗證器離線時(例如在發生災難時),系統也能夠繼續處理區塊。
如果驗證者的存款低於16以太幣,則Beacon鏈會把驗證者從驗證者集當中剔除出去;
交聯(Crosslinks)
最後,Beacon鏈會執行交聯的處理。交聯負責將整個分片系統連線在一起,其負責將每個分片錨定在Beacon鏈的脊柱當中。
週期性地,每個分片的當前狀態(“組合資料根”)會被記錄到Beacon鏈當中,並作為交聯。當Beacon鏈區塊完成時,相應的分片區塊就被認為是最終確定的,而其它分片則可確信它們可依賴它進行跨分片交易。
視覺化的Beacon鏈(藍色部分),它有8個分片鏈(碧綠色部分)以及相關交聯(淺藍色線)。所有鏈上的完成區塊都是黃色的,時間從左到右增加。 (圖片來自Casey Detrio)
構建Beacon鏈
很快,我們就要結束我們的Beacon鏈閃電之旅了!就其本身而言,Beacon鏈可能看起來並不是特別有用。它無法處理任意交易:它沒有智慧合約,它沒有 EVM虛擬機器。你沒法用它做任何事情。但是,它作為以太坊2.0的第一個組成部分,它是整個系統的基礎。整個壯觀的以太坊2.0建築都將以此為基礎。所以,它必須是堅實的。
如果你想深入瞭解細節,那麼目前有一份正在進行當中的Beacon鏈規範。這份規範的所有建立和維護過程都是公開進行的:歡迎有興趣的人加入。
為了執行Beacon鏈,你就需要用到一個Beacon鏈客戶端。而很多大家所熟知的以太坊客戶端(Geth,Parity,Pantheon等)都在進行相關的開發。你可以在此處檢視我所知道的列表,其中包含指向其GitHub程式碼庫的連結。 Prysmatic和Lighthouse正在定期更新它們的客戶端開發進度,也有一些團隊正在向貢獻者提供獎勵。
關於進度…… 在撰寫本文時,Beacon鏈的技術規範完成度接近了60%。儘管如此,開發者們預計會在今年年底前合理地完成這份規範,並且可能到2019年第一季度末執行多客戶端的Beacon鏈測試網路。最近幾周,相關的開發非常迅速,關於以太坊2.0的真正討論正在拉開序幕!
更多數字貨幣資訊:www.qukuaiwang.com.cn/news