LOADING...
LOADING...
LOADING...
當前位置: 玩幣族首頁 > 區塊鏈資訊 > 萬向區塊鏈研究組解讀:從Devcon5大會看以太坊和區塊鏈生態發展

萬向區塊鏈研究組解讀:從Devcon5大會看以太坊和區塊鏈生態發展

2019-10-17 萬向區塊鏈 來源:區塊鏈網絡

作者:萬向區塊鏈研究組

來源:萬向區塊鏈

編者注:原標題為:【萬向區塊鏈研究團隊出品】從Devcon5大會看以太坊和區塊鏈生態發展(上)

 

本文為萬向區塊鏈研發部研究組團隊參加Devcon5后,對大會內容進行的一些解讀。萬向區塊鏈研發部研究組是萬向內部專注于區塊鏈底層技術研究與落地的團隊。

10月8日至11日,備受矚目的以太坊年度開發者大會Devcon5(第五屆)在日本大阪舉行。文章結合大會內容與社區信息,幫助大家更全面地了解以太坊生態,以及區塊鏈生態的一些最新發展。關于以太坊的發展,大會主要交流了以太坊2.0目前的進展、已經積累的開發經驗分享、下一步的規劃、1.0和 2.0 版本如何切換等內容。另外,大會還重點關注了去中心化應用用戶體驗升級、加密經濟和密碼學、DeFi 等內容。文章將會分為上下兩篇,本篇主要為以太坊生態的發展,下篇將會發布一些大會上關于目前熱門議題的討論。

正文

要了解以太坊的生態,首先要對以太坊的發展路徑做一個了解。

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有什么關系?

簡單來說,以太坊現在的主網就是Ethereum1.0,Ethereum1.x是針對現在主網的改進計劃,而Ethereum2.0則是獨立于Ethereum1.0進行開發的一條鏈。Ethereum1.0將會向2.0切換。

接下來,我們重點介紹下Ethereum2.0。

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及之后的階段 不斷更新中

相關計劃處于不斷更新中,具體可參見:

https://github.com/ethereum/wiki/wiki/Sharding-roadmap#phase-3-light-client-state-protocol

其中,Phase0預計于2020年第一季度上線,而Phase1和2預計于2020年底同時上線。

Ethereum2.0中的隨機性

在本次Devcon5會議上,還有一些關于Ethereum2.0中的隨機性的討論議題。

在現今區塊鏈系統中,系統隨機性問題正受到越來越多的關注。

Ethereum2.0采用了PoS(Proof of Stake)和分片(sharding)機制相結合的共識協議,共識委員會的選取依賴于系統產生的隨機值。因此,方案的安全性與系統產生隨機值的隨機性高度相關。一旦惡意攻擊者可以操控或者影響隨機值的產生,那么他們就可以利用這種優勢,在共識過程中增加自身被選入委員會的機率,降低攻擊系統所花費的代價,從而威脅協議的安全性。

區塊鏈作為承載分布式應用的底層平臺,鏈上提供的安全隨機數同樣也是眾多應用安全性的重要保障。

隨機數在Ethereum2.0中主要被使用在如下三個環節:

區塊提議者的選取

共識委員會的選取

鏈上應用

安全的隨機性算法需要保證:

1、公平性(unbiased):任何參與者不能影響隨機數生成的結果。

2、無法預測性(unpredictable):在隨機數生成前,任何參與者無法提前預測輸出的結果。

此外,為了滿足分布式系統的容錯性,可靠的隨機性算法還應該保證即使系統中若干節點停止工作時,算法依然繼續運行。

因此,安全的隨機性算法可以使得:

1、保證區塊提議者選取的公平性,同時防止攻擊者提前預測提議者身份,發起DOS攻擊;

2、在委員會選取階段,降低攻擊者控制某一委員會的可能性;

3、保證依賴于隨機數的鏈上應用的安全性。

分布式隨機性算法RANDAO

RANDAO是一個簡單的分布式隨機性算法,使得多個節點可以交互協商,產生一致的安全隨機數。

算法包含兩個階段:

承諾階段(commit)

揭示階段(reveal)

在承諾階段中,系統中所有節點各自線下選定某個隨機數,然后向 RANDAO 提交對該隨機數的承諾。

在揭示階段,每個參與者打開承諾公布其隨機值,將所有公開隨機數進行異或操作得到的結果就是該輪協議產生的隨機數。

但RANDAO也是有缺陷的:

1、RANDAO協議產生的隨機數滿足不可預測性,并且擁有與底層共識協議一樣的容錯性,但仍是在公平性上存在缺陷。

2、協議中,在揭示階段,最后公布其隨機值的節點可以影響最后產生的隨機值。

3、具體來說,惡意攻擊者看到網絡中所有其他節點公布各自所選取的隨機數之后,可以根據自身隨機數執行異或運算,并根據結果對自己的利弊來決定是否要公布自己的隨機數。

4、這使得單個攻擊者就能對輸出造成一定的影響,同時隨著攻擊方所控制的參與者數目增多,該類攻擊的破壞性也隨之增強。

5、對區塊鏈系統來說,如果攻擊者利用這種在隨機數產生過程中獲得的優勢,那么將降低其攻擊系統所需要的成本。具體來說,如果一個區塊鏈系統采用RANDAO和最長鏈原則作為共識協議,那么攻擊者只需要擁有36%的質押(stake)就可以控制整個系統。(注:此分析來自大佬Vitalik)。

方法總比困難多,這些缺陷也并不是沒有解決辦法。VDF函數就是解決RANDAO這些缺陷的“小藥丸”。

VDF函數

VDF是一類數學函數(Verifable Delay Function),該函數的特點是:

1、計算至少需要一段已知的時間。

2、通過證明可以快速驗證函數輸出結果的正確性。

利用VDF函數的計算延遲,可以使得RANDAO協議中最后公布其隨機值的節點失去對最終結果的影響。

具體來說,在RANDAO協議揭示階段中,所有參與者公布的隨機值不再通過簡單的異或操作,而是通過VDF函數得到最終的隨機值,同時設置VDF函數的執行時間大于揭示階段的等待期。那么,攻擊者無法提前計算最終的隨機值,無法確定公布自身隨機值對自己的好處,從而保證了隨機性算法的公平性。

前面我們提到過,Ethereum1.0會向2.0切換。這又是一個大工程,這種切換該如何平穩過渡呢?

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 分片合約

實現不同分片上的合約之間的交互。目前的各種關于分片合約互操作的提案中,似乎都無法解決同步、擴展這一對矛盾課題,這也是最具挑戰的階段之一。

今天的分享就到這兒了,你有沒有對以太坊生態發展有了更深入的理解呢?明天將繼續分享萬向區塊鏈研發部研究組,關于Devcon5大會的更多見聞。點擊在看或分享至朋友圈,是對我們研究組小伙伴最大的鼓勵!

—-

編譯者/作者:萬向區塊鏈

玩幣族申明:我們將尊重作者/譯者/網站的版權,促進行業健康發展,如有錯誤或不完整之處請與我們聯系。

LOADING...
LOADING...
新快3