現在 以太坊 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 英文的,很難懂。如果你願意一個單詞一個單詞啃完,那也就理解了。

根據國家《 關於防範代幣發行融資風險的公告 》,大家應警惕代幣發行融資與交易的風險隱患。

本文來自 LIANYI 轉載,不代表鏈一財經立場,轉載請聯繫原作者。

相關文章