從Devcon5大會看以太坊和區塊鏈生態發展
編者按:本文來自萬向區塊鏈(ID:gh_1b8639a25429),作者:萬向區塊鏈研究組,經授權發布。
二級標題
正文
正文
二級標題
Ethereum1.X
在去年的Devcon4上,一群以太坊核心開發人員和愛好者討論了當前以太坊的挑戰,他們都有一個相似的觀點:由於日漸嚴重的性能瓶頸,以及佔用的存儲空間持續增加,如果以太坊主網不尋求變化,以太坊的可用性將會變得非常差。性能下降主要歸因於過大(且不斷增加)的狀態數據。越來越大的存儲需求,主要是由於需要留存區塊、Event日誌(receipts),以及狀態歷史記錄(當前可在大部分客戶端中刪除)。
最後,他們得出一個共識:改進,以太坊主網必須改進!
他們還給改進計劃取了一個代號“Ethereum1.x”。 Ethereum主網計劃在近期內採納的各種重大升級更新都包含在裡面。
行動代號為“Ethereum1.x”的計劃包括:
1、通過提高tps吞吐量來提高主網可擴展性(通過客戶端優化實現,這將能夠大幅提高區塊的gas限制);
2、通過“存儲租金”來減少和限制對磁盤空間需求,從而確保整個節點是可持續化的運營。具體做法是設計一種租金模型,要求合約開發者和用戶隨著時間的遷移,為EVM2的存儲付費,而不是無期限存儲代碼和數據。
3、通過VM升級(包括eWASM)改善開發者體驗。
為了實現這些目標和計劃,以太坊核心開發團隊成立了幾個工作組:
1、狀態租金:設計存儲佔用的費用模型,用以限制鏈上存儲佔用;
2、eWASM:以太坊Wasm虛擬機;
3、存儲裁剪:優化客戶端的存儲空間佔用;
4、模擬/仿真。
在今年的Devcon5上,以太坊基金會介紹了過去一年內成立的幾個工作組:
1、EVM進化:優化性能、安全和互操作性;
2、EIP 1559:費用模型優化,讓交易易費用更更穩定、可預測;
3、測試/基礎設施:用新的工具來幫助測試客戶端能更更好的互相兼容;
4、最終性組件:用Ethereum2.0信標鏈來敲定Ethereum1.0生產的區塊。
咦,怎麼還有Ethereum1.0和2.0?它們和Ethereum1.x有什麼關係?
二級標題
二級標題
Ethereum2.0
Ethereum2.0,是以太坊的寧靜(Serenity)版本,剛才也說了它是獨立於Ethereum1.0進行開發的一條鏈。並且在去年的Devcon4會議上明確了Ethereum2.0在3-5年內不會在功能上取代Ethereum1.0。
Ethereum2.0將包含Sharding(分片),Proof of Stake共識以及一個新的VM(即eWASM)等一系列升級。
它的目標主要有以下5個:
☆ 去中心化(Decentralization):允許普通消費級的筆記本計算機能夠利用O(C)的資源處理和驗證O(1)的分片(包括系統級別如信標鏈的驗證等)。
☆ 彈性(Resilience):主網絡分區或大量節點掉線時系統仍舊是可用的。
☆ 安全性(Security):利用密碼學和設計技術來保證大量驗證節點可以參與到系統中來(短期和長期範圍內)。
☆ 簡單性(Simplicity):最小化複雜性,即使性能上有一些損失。
☆ 長期可用性(Longevity):選擇量子安全的組件,或者在可用時容易替換為相應的量子安全的組件。
這是個大工程,所以並不會在單一的時間點完成,而是按階段進行開發。這裡簡要介紹各個階段及其計劃完成的目標。
Phase0 信標鏈(Beacon Chain)
Phase0階段即為信標鏈的啟動。信標鍊是整個系統的基礎,用於管理其自身以及各分片區塊鏈(shardchain)的Casper Proof of Stake協議:
1、管理驗證節點及其Stake;
2、在每一步中為每一個分片任命出塊者;
3、將驗證節點組織為驗證委員會(committee),用於對提議區塊進行投票;
4、運行共識協議;
5、對驗證節點進行獎勵和懲罰;
6、作為一個錨點,各分片向其註冊狀態,從而有助於進行跨分片的交易的執行。
信標鏈上的主要數據載荷為證明(attestation),包括對分片區塊的投票(availability vote)和信標區塊的PoS投票等。
Phase0將使用Casper the Friendly Finality Gadget (FFG)來實現最終確認性(finality)。
在Phase0期間,所有的用戶交易和智能合約計算都在Ethereum1.0上進行。而在Phase0完成後,將同時有兩條鏈:Ethereum1.0鍊和Ethereum2.0鏈。
Phase1 分片區塊鏈(Shard Chain)
分片區塊鍊是未來實現可擴展性的關鍵,這是因為其允許交易的並行執行。 Phase1主要關注分片區塊鏈的數據的構造、有效性和一致性,而並不實現狀態的執行和賬戶的餘額。 Phase1更多的是分片結構的試運行,而不是嘗試實現使用分片進行擴展。對信標鏈來說,它把分片的區塊當作是位集合,而非結構化或有意義的數據。
信標鏈區塊中使用crosslink來表示一段時間內分片的當前狀態(也就是combined data root)。
crosslink即為分片鏈上驗證節點委員會對區塊的有效簽名集合,代表了分片區塊鏈的最新狀態,同時也是跨分片的異步通信的基礎。
Phase2 狀態執行(State Execution)
Phase2中,各相關功能將會進行集聚。分片區塊鏈的數據將不再是簡單的數據容器,而是重新引入的的結構化的鏈數據和智能合約。每個分片管理基於eWASM的VM,支持賬戶,合約,狀態數據等。
Phase2中將很有可能引入狀態租賃(State Rent),合約開發者和用戶將為eWASM存儲付費。
Phase3及之後的階段不斷更新中
二級標題
二級標題
Ethereum2.0中的隨機性
在本次Devcon5會議上,還有一些關於Ethereum2.0中的隨機性的討論議題。
在現今區塊鏈系統中,系統隨機性問題正受到越來越多的關注。
Ethereum2.0採用了PoS(Proof of Stake)和分片(sharding)機制相結合的共識協議,共識委員會的選取依賴於系統產生的隨機值。因此,方案的安全性與系統產生隨機值的隨機性高度相關。一旦惡意攻擊者可以操控或者影響隨機值的產生,那麼他們就可以利用這種優勢,在共識過程中增加自身被選入委員會的機率,降低攻擊系統所花費的代價,從而威脅協議的安全性。
區塊鏈作為承載分佈式應用的底層平台,鏈上提供的安全隨機數同樣也是眾多應用安全性的重要保障。
隨機數在Ethereum2.0中主要被使用在如下三個環節:
區塊提議者的選取
共識委員會的選取
鏈上應用
安全的隨機性算法需要保證:
1、公平性(unbiased):任何參與者不能影響隨機數生成的結果。
2、無法預測性(unpredictable):在隨機數生成前,任何參與者無法提前預測輸出的結果。
此外,為了滿足分佈式系統的容錯性,可靠的隨機性算法還應該保證即使系統中若干節點停止工作時,算法依然繼續運行。
因此,安全的隨機性算法可以使得:
1、保證區塊提議者選取的公平性,同時防止攻擊者提前預測提議者身份,發起DOS攻擊;
二級標題
二級標題
分佈式隨機性算法RANDAO
RANDAO是一個簡單的分佈式隨機性算法,使得多個節點可以交互協商,產生一致的安全隨機數。
算法包含兩個階段:
承諾階段(commit)
揭示階段(reveal)
在承諾階段中,系統中所有節點各自線下選定某個隨機數,然後向RANDAO 提交對該隨機數的承諾。
但RANDAO也是有缺陷的:
但RANDAO也是有缺陷的:
1、RANDAO協議產生的隨機數滿足不可預測性,並且擁有與底層共識協議一樣的容錯性,但仍是在公平性上存在缺陷。
2、協議中,在揭示階段,最後公佈其隨機值的節點可以影響最後產生的隨機值。
3、具體來說,惡意攻擊者看到網絡中所有其他節點公佈各自所選取的隨機數之後,可以根據自身隨機數執行異或運算,並根據結果對自己的利弊來決定是否要公佈自己的隨機數。
4、這使得單個攻擊者就能對輸出造成一定的影響,同時隨著攻擊方所控制的參與者數目增多,該類攻擊的破壞性也隨之增強。
二級標題
二級標題
VDF函數
VDF是一類數學函數(Verifable Delay Function),該函數的特點是:
1、計算至少需要一段已知的時間。
2、通過證明可以快速驗證函數輸出結果的正確性。
利用VDF函數的計算延遲,可以使得RANDAO協議中最後公佈其隨機值的節點失去對最終結果的影響。
二級標題
二級標題
Ethereum1.0 往2.0 的切換
從Ethereum1.0鏈遷移到Ethereum2.0鏈需要考慮兩個重要因素。首先,需要遷移現有的以太幣,其次,需要遷移狀態。
Phase0 以太幣遷移(信標鏈)
在第0階段,Ethereum1.0鏈上的用戶將能夠將他們的以太幣鎖定在合約中,並在Ethereum2.0中的信標鏈上獲得等量的以太幣。之後他們可以抵押以太幣(32個ETH)成為驗證人,並開始在Ethereum2.0鏈上獲得驗證獎勵。
Phase1 狀態遷移(分片)
在階段1中,將當前Ethereum1.0鏈的狀態轉移到Ethereum2.0鏈上的一個分片中。而從保證來自Ethereum1.0鏈的所有信息將在Ethereum2.0鏈上可用。目前第1階段及之後的階段還沒有進入積極的開發階段。
Phase2 智能合約
這一階段計劃重新引入智能合約,並用eWASM代替當前的EVM。此外狀態租金這一在Ethereum1.x被提到的概念可能會在這一階段實施。
Phase3 鏈下狀態存儲
第3 階段會盡可能地把鏈上的狀態轉移到鏈下,從而最小化鏈上狀態。在第3 階段中維護和檢索鏈下的狀態將會成為dApp的關鍵性設計約束。
Phase4 分片合約
實現不同分片上的合約之間的交互。目前的各種關於分片合約互操作的提案中,似乎都無法解決同步、擴展這一對矛盾課題,這也是最具挑戰的階段之一。


