BTC
ETH
HTX
SOL
BNB
查看行情
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

科普:ETH 1.x與無狀態節點介紹

以太坊爱好者
特邀专栏作者
本文約7356字,閱讀全文需要約11分鐘
eth 1.x 升級相關改動能如何改善當前以太坊的困境。
AI總結
eth 1.x 升級相關改動能如何改善當前以太坊的困境。

編者按:本文來自以太坊愛好者(ID:ethfans)編者按:本文來自

以太坊愛好者(ID:ethfans)

編者按:本文來自

以太坊愛好者(ID:ethfans)

編者按:本文來自

,作者:Lai Jack 賴彥廷,Odaily經授權轉載。

一級標題

本篇文章將剖析eth 1.0 存在的各項問題,並介紹Ethereum Foundation 提出的eth 1.x 升級相關改動能如何改善當前以太坊的困境。

一級標題

二級標題

一級標題

- etherscan.io -

在開始介紹以太坊1.x 之前,必須先認知到目前(2020/06)以太坊存在的問題,如此方能充分了解eth 1.x 被提出的背景與旨在解決的痛點。

圖片描述

二級標題

圖片描述

二級標題

面對這樣的情景,礦工社群於2020/6/19 UTC 投票通過,將每個區塊的Gas Limit 從10,000,000 提升到12,000,000。

圖片描述

此外,由於獨立節點與小型礦池更容易挖到Uncle Block,長期下來出塊獎勵的期望值降低將導致部分節點入不敷出,進而離開網絡。如此將讓以太坊網絡變得更加中心化,更向大型礦池集中,危害了網絡的長期健康與安全性。

- Roadmap of Ethereum tweeted by Vitalik on 2020/3/19 -

隨著越來越多的智能合約被部署,以及大量的合約互動行為,導致以太坊網絡需要儲存的「狀態」大小正以「等比級數」增長。狀態的增長即反映在節點的儲存空間大小上。

圖片描述

  • eth 1.x other

  • 一級標題

  • 此外,區塊驗證的難度將隨之提升,導致整體網絡的延遲與TPS 的進一步下降。

  • eth 2 phase 2 and beyond

圖片描述

  • eth 2 phase 1

  • 一級標題

  • 儘管這個過程如同溫水煮青蛙,在數年之後才會導致以太坊網絡出現巨大的安全性問題,然而為了避免走到那步田地,早在數年前便開始以太坊2.0 的相關研究與開發。

一級標題

以太坊的未來

eth 1.x statelessness(無狀態性)

一級標題

eth1 ➔ eth2 合併的規範與實現

其中,「eth 1.x statelessness(無狀態性)」可說是對於eth1 ➔ eth2合併最至關重要的一個條件,本文將以「無狀態性」為主軸做相關的介紹。

圖片描述

圖片描述

二級標題

以太坊網絡在每個區塊高度都只有唯一一個獲得全網所有節點共識的「狀態」,這個「狀態」在每一個新區塊會產生變動並隨著區塊接至區塊鏈上。

- 圖片來源:https://blog.ethereum.org/ -

小結

節點讀取狀態耗時增加,交易處理速度變慢

小結

建構新的狀態樹耗時更長,區塊驗證速度減慢

當礦工將交易處理完時,必須建構一個由新的狀態組成的Trie 結構狀態樹,當中涉及大量的hash 值運算。計算完Root Hash 方能建構出新的Block Header,打包出新區塊。

eth 1.x 的提出


eth 1.x 的提出


正文

圖片描述

The 1.x Files: The Updated Stateless Tech Tree (April 2, 2020)

The 1.x Files: A Primer for the Witness Specification (May 4, 2020)

The 1.x Files: EIP 1559 and the Ethereum Improvement Horizon (June 16, 2020)(Up to date)

一級標題

一級標題

eth 1.x 的目的

二級標題

-2020/4/2 更新的eth 1.x 科技樹-

二級標題

二級標題

eth 1.x 的目的

二級標題

二級標題

(A) 延長eth 1.0 的壽命

二級標題

由於eth 2.0 中的分片(shards)將是無狀態的,因此「無狀態」將是參與eth 2.0 區塊驗證的先決條件。 eth 1.0 要與eth 2.0 相容的話勢必得支援無狀態運作,方能順利過度,與eth 2.0 介接。

具體來說,是找到一種方式讓以太坊網絡中的部分節點可以將「保留整個以太坊狀態的副本」這件事變為一個選項,而非必須。因此,要讓現行的以太坊網絡能夠支援沒有保存完整全網狀態的輕量級節點:「無狀態節點」參與到網絡中的新區塊驗證。

一級標題

二級標題

正文

二級標題

什麼是「區塊見證Block Witness」

正文https://blog.ethereum.org/-

前面提到,以太坊的資料結構是由約5 億個狀態值所構成的Merkle-Patricia Trie。然而,其中大約只有0.1% 狀態值(約50 萬個)會隨著區塊高度產生變化,如:個人帳戶的ETH 餘額、合約底下記載的每個地址持有Token 數量。 99.9% 的狀態值如:智能合約的程式碼、Uniswap 手續費0.3% 的參數等資訊一但智能合約部署完成便不會再進行更動。

圖片描述

正文

圖片描述

圖片描述

一級標題

-圖片來源:

為了便於讓無狀態節點參與驗證,目前的最新研究方向是「區塊見證」將可能成為「區塊標頭Block Header」的一部分,隨著新挖出的區塊一併廣播給全網節點,讓無狀態節點不用再發起額外的「區塊見證請求」即能進行驗證區塊的動作。

透過這樣的方式,無狀態節點即能參與以太坊網絡中新區塊的驗證。

一級標題

(2) EVM 改動

二級標題

狀態值的更改和運算都是在EVM 中進行,同理,區塊見證也必須經由全節點的EVM 透過運算來生成。 EVM 的改動目標與成本和激勵機制息息相關,主要包含耗費Gas 的估算以及如何降低對節點間廣播延遲的影響。

二級標題

由於區塊見證必須由全節點花費額外的計算資源來運算生成,因此會產生相應的Gas 成本,而這個成本目前比較可行的方式是由交易的發起者來進行負擔。至於如何讓交易發起者在發送交易時即能準確估算額外的Gas,以設定精確的Gas Limit,目前仍在研究中,尚未產生明確的定案。

另外,考慮到在同個區塊中可能有一個狀態值被不止一筆交易進行更改,因而產生重複支付Gas 的情形,這部分可能會成為礦工額外的獎勵費用。

智能合約程式碼分塊(Code Merkleization)

這時會有另外一個問題,智能合約洋洋灑灑的程式碼中可能只有其中的一小片段是與該交易運算相關聯的,因此「程式碼分塊」的概念被提出。

一級標題

其目的便是避免調用到不必要的程式碼,免於生成龐大的區塊鏈見證導致運算時間的增加及節點間傳遞溝通的延遲。

(3) 資料結構轉換為二進位制(Binary)

一級標題

然而從Hex 轉換為Binary 具體的實作方式以及過度策略目前仍未有完全的定論,有興趣的朋友可以持續關注Ethereum Foundation 釋出的相關消息。

無狀態以太坊Stateless Ethereum

二級標題

支援無狀態節點的1.x 網絡,將能夠對以太坊1.0 的區塊鍊網絡產生下方幾點關鍵影響:

i. 對新加入節點更加友善

二級標題

無狀態節點時代的到來將能夠大幅改善同步區塊的痛苦過程,未來僅需憑藉「區塊標頭」與「區塊見證」即能完成區塊的驗證,同步節點體驗的改善將能讓更多人有意願且能夠負擔運行節點的成本(時間與硬件資源)。

ii. 輕節點得以自力更生

二級標題

iii. 節點網絡安全性提升

結論

隨著新節點啟動成本的降低以及大量的輕節點投入到新區塊的驗證中,將讓網絡的整體安全性大幅提升。

一級標題

結論

最後一點也是最核心的一點,前面提到eth 2.0 將會是由核心的信標鏈與多條分片鏈構成,全網的狀態將被多個分片分開儲存。由於每條分片各自擁有不同的狀態,並且沒有保存其它分片的狀態資訊。因此對每條分片來說,其它條分片都像是「無狀態節點」。

一級標題

為了能夠在多條分片鏈間有效驗證與同步,必須依靠「無狀態的驗證機制」。因此現在的eth 1.0 未來要能順利成為eth 2.0 的其中一條分片鏈,升級為無狀態的eth 1.x是至關重要的一個步驟。

  • 以上,若有任何

  • 一級標題

結論

透過以上介紹,相信讀者們應該對於現行的eth 1.0 升級到eth 1.x 需要進行的改動,以及改動完成後的未來有更清晰的認識。https://medium.com/


开发者
ETH
歡迎加入Odaily官方社群