一文看懂以太坊2.0所有設計和實現線路圖

據Trustnodes 5月22日報道,以太坊聯合創始人Vitalik Buterin表示,開發人員已經解決了以太坊2.0所需的所有研究突破,現在只剩下實現了。他說道:

“實際上,我們已經取得了全面實施以太坊2.0所需要的所有研究突破。這種情況已經持續了大約一年。”
一文看懂以太坊2.0所有設計和實現線路圖

圖片來源:visualhunt

這一大膽的聲明是在以太坊2.0階段0三個測試網出現時提出的,下一階段將是一個跨客戶端的測試網,預計從今年夏天開始。

階段0只是staking,也就是一個虛擬的主網,介於測試網和功能齊全的區塊鏈之間。

一些諸如存儲分片等的功能將在明年的階段1添加。階段2是實際和全面的啟動,預計將在兩年內實現。

完整的設計是一個有點複雜的系統,我們認為它通過個體運行感興趣的分片節點來連接不同的節點組。

分片(Shard)基本上構成當前的以太坊網絡,但是假設有1000個節點,然後我們有網絡B或分片B,它有自己的1000個節點,所有節點都運行在相同的基本代碼上,因此屬於同一區塊鏈。分片數量達數百個。

由於這兩個體系本質上是不同的,讓它們整合在一起已是一項超越了分片技術的突,它將私有和公共區塊鏈、側鏈和其他所有領域連接了起來。

以太坊2.0設計

它的工作方式可以先由Buterin作一個技術層面的解釋,然後我們將給出一個更簡單的解讀。Buterin是這樣說的:

“跨分片交易的一般流程(我們以傳輸5ETH為例)是這樣的:

在分片A上銷燬5eth,創建一個收據(如提交到該區塊狀態根的一個Merkle分支),其中包含:(1)目標分片,(2)目標地址,(3)值(5eth),(4)唯一ID。

在這個過程中,一旦分片 B在檢測到分片 A的狀態根時,則將一個證明該收據的Merkle分支提交到分片B中。如果Merkle分支驗證了收據尚未被使用,則生成5 ETH並將其轉給接收者。

為了防止雙花,我們需要在存儲中跟蹤哪些收據已經被認領。為了提高效率,需要為收據分配順序ID。具體來說,在每個目標分片中,我們為每個目的地分片存儲下一個序列號,當源分片A和目標分片B創建新的收據時,其序列號是分片A中分片B的下一個序列號(下一個序列號遞增,所以不會被重複使用)。這意味著在每個目標分片中,我們只需要跟蹤每個源分片的SHARD_COUNT位字段,以防止雙花,這意味著每筆跨分片交易只需要一個存儲位。”

換句話說,基本上你在分片A上把Eth鎖在一個智能合約裡,在分片B顯示你這樣做的證據,然後在分片B上獲得Eth。

為了防止雙花,開發人員基本上使用了一個聽起來像nounce的東西,也就是給它一個數字,然後無限地增加數字。

這是在協議級別上的,所以你知道沒有人作弊,因為你同時運行了分片A和分片B的節點。節點驗證規則,查看區塊頭(Block header)或Buterin所稱的收據,如果有任何錯誤,節點會告訴你。

這裡我們使用多數節點,但對你來說,兩個節點可能運行在一個客戶端上,儘管這是處於階段2的非常早期的實現細節。

正如你所能想象的那樣,在這裡很難讓分片A上的智能合約與另一個分片B上的智能合約“交互”, 而比方說分片B上有Cryptokitties的DNA。

我們不知道你如何將DNA傳輸到分片A,並讓Cryptokitties在分片A上運行,而它們是在分片B上產生的。

一種方法是通過一箇中央協調器,但這也會有它自己的問題。如上文所述,當移動Eth時,它是點對點的。

突破還是極限提升?

儘管有些人說編碼是最困難的部分,但實施這個階段可能才是最困難的部分。

此外,如果你同時運行不同分片的節點,那麼這就相當於增加了區塊大小。

這裡的區別在於,你不必同時運行不同的分片,或者你可以為一個分片設置一個全節點,為另一個分片設置一個較輕的節點。

然而,在這點上,你可能會與Bitcoiner陷入無休止的爭論,他們可能會說,一個全節點是一個運行所有分片的節點,很少有人能負擔得起這樣去做。

以太坊1.0就是在這裡出現的,它本身就是一個複雜的設計,其前提是通過刪除過時的智能合約和徹底的刪減來刪除數據。

第一個可能比第二個更容易,Bitcoiner們不太瞭解以太坊智能合約,所以我們不知道他們會怎麼說。

對於刪剪,你可能需要設置檢查點,這有點像一個新的創世區塊。對於以太坊,你的節點不必從2015年就開始啟動,而可以從2017年開始。然後其他數據被丟棄,可能上傳到某個地方作為存檔。

這裡的難點是誰設置檢查點。如果是一個人或一個團體人,可能會有很多問題,但有了staking,就有可能以去中心化的方式去做這件事。

擴容競賽

一位比特幣開發人員曾評論說,以太坊正在追求Bitcoin Core中被拒絕的所有理念。

這是好事還是壞事,取決於你的看法,也取決於它實際上是如何實現的,因為Bitcoin Core並沒有完全遵循這些理念來得出正確的結論。

此外,比特幣在其當前狀態下無法在足夠長的時間內繼續運行,因為儘管每10分鐘1MB並不多,但如果我們把它拿出來,十年後,它的總量累積起來就很多了。

這個過程非常緩慢,從某些方面來說,現在一切都很好。例如,當前的區塊鏈大小是220 GB。十年後,它將增加到520GB。考慮到比特幣的運行略高於1MB,到時它的區塊鏈大小應該是1TB。1TB可能也沒問題,但它不會減少,只會增加。所以最終它會變成10TB,或者100TB。

顯然,你可能會說最終我們都會死,但如果你解決了這個問題,你就解決了擴容性問題。

閃電網絡可能會爭取一些時間,以太坊擁有Plasma、狀態通道以及其他所有特徵,但它們並不能完全解決不斷增長的歷史性根本問題。

對於比特幣,目前開發人員正試圖儘可能地壓縮數據。你知道,從某種程度上講,時間是有的,但時間對競爭對手來說是有利的,因為擁有更大的容量,同時保持去中心化顯然是一件非常有用的事情。

以太坊是否能解決擴容問題還有待觀察。現在計劃已經制定好了,並且很顯然,所有的問題都已找出。基礎框架將在今年晚些時候就緒,接下來在明年準備磚瓦和所有其它材料,然後在2021年裝上窗戶和屋頂,最後就是優雅的裝修了。這樣,一座由大約100個協議開發人員建造的漂亮的以太坊房子就建成了。

相關推薦

推薦中...