輕鬆理解ETH2.0的分片概念

買賣虛擬貨幣
現在以太坊2.0的技術討論非常多,但絕大多數文章都沒能把那些基礎概念說明白,把讀者都繞暈了。雖然ETH2.0總體上是非常複雜的,但那些基礎概念,如分片,信標鏈,的設計思想是非常簡潔,不需要我們擁有多少專業知識就可以弄明白。我們先拋開那些複雜的技術實現細節,就可以用非常簡潔的文字描述分片這個概念。以太坊地址我們先看一下以太坊的地址格式。下面是一個典型的以太坊地址,我在瀏覽器裡隨便複製過來的。0x506dDF5a547EaaE34bAE6Ff57c78B5aD50a6A1BF
所有的以太坊地址開頭兩個字元都是0x,代表了使用的是十六進位制。從第三個字元開始,每個字元就是從0到F,一共16個可能性。分類我們從第三個字元開始分類,如果採用一個字元分,把0到F,分別分成一類,就可以分成16類。而如果採用兩個字元,比如從00到FF,就可以分成16^2 = 256類。而選三位數來分,就是16^3=4096類。(我們先不考慮以太坊地址規範裡的一些限制條件,比如大小寫,比如校驗碼之類的。先只考慮分片的思想。如果考慮地址設計規範,實際的可分類要少。)現在的以太坊1.0所有的賬戶是沒有按上述字母進行區別對待,所有的地址都是一樣地位,包括外部賬戶和合約賬戶,都是一樣的。這裡說的一樣,指的是以太坊節點、錢包、及各種軟體是不會將地址分門別類,都是一視同仁。包括以太坊的區塊打包,也不會按地址分類排序。
在ETH2.0的分片設計思路中,地址就會按前幾個字母進行分類。分片ETH2.0的地址設計規則會進行分類,一類地址就是一個分片。這就是大名鼎鼎的分片,就這麼簡單。第一階段,以太坊2.0會有64個片,這意味著只需要選擇地址的第3和第4個字元來分類就可以了。按地址分類後,ETH2.0的節點、錢包、各種軟體,以區塊的設計,就可以區別對待各類的地址的交易。地址分類之後,區塊就會按地址分類進行打包。一個區塊裡只會包含一類地址。而所有這些同一個分類地址的區塊,就共同組成了一個以太坊的分片。
定義現在我們可以來定義ETH2.0的分片了。先把地址按前幾個字母進行分類。分片就是所有打包了同一類地址交易的區塊,並且同一分片只打包一類地址的交易。跨片如果一個片的地址相互傳送幣,非常好處理。但如果是跨片區傳送交易呢?這就要用到信標鏈了。
信標鏈我們以後說,這裡簡單描述信標鏈如何幫助不同類地址跨片通訊。比如0x00地址要發1ETH到0x01地址。每一個分片區塊,都是跟隨著信標鏈的一個區塊,一對一的關係。方法就是0x00先把1ETH發給自己片區的那個信標鏈區塊上,信標鏈有一個叫狀態轉換函式的東西,這個狀態轉換函式會把這1ETH發給0x01分割槽的那個信標鏈的區塊上,然後再轉發給0x01地址。補充說明我上面的描述是非常簡單,不需要基礎知識就能理解。我還是要強調,這只是對分片的思想進行描述,它的實現細節很複雜。
參考資料在這裡:https://eth.wiki/sharding/Sharding-FAQs 英文的,很難懂。如果你願意一個單詞一個單詞啃完,那也就理解了。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;