以太坊合併測試網 Kintsugi 被錯誤分割,這就是原因

以太坊網絡上的合併事件是從當前使用的工作量證明模型過渡到權益證明共識模型。 此次合併意味著當前的以太坊主網系統和新的 Beacon 鏈(通常稱為以太坊 2.0)將合併為一個區塊鏈。

為了測試合併,Kintsugi 測試網於 XNUMX 月部署。 測試網的目的是運行不同的邊緣案例並觀察系統的行為。 參與在 Kintsugi 上運行測試的開發人員之一是 馬呂斯·范德維登,以太坊核心開發人員與 Geth (Go-Ethereum) 客戶團隊合作。

“測試網完美運行了幾週。 上週我創建了一個可以發送無效塊的模糊器。 一個區塊包含很多信息,比如交易、前一個區塊的哈希值、gas 限制等等,”Marius van der Wijden 說。

一些實現沒有執行和驗證塊

模糊器是開發人員使用的一種常見測試工具,用於生成函數或其他代碼片段的隨機輸入,並嘗試以某種方式破壞它們。 它是關於生成格式錯誤和意外的輸入,並觀察系統發生了什麼。

van der Wijden 創建的模糊器生成一個有效塊並更改其中的一個元素以使其無效。 它使用的一種技術是將元素更改為另一個元素。 在這種情況下,模糊器將塊哈希更改為父哈希。

“節點應該拒絕這樣一個改變的區塊。 然而,由於父哈希指向一個有效塊本身,一些實現實際上並沒有執行和驗證該塊,而是在緩存中查找它。 由於前一個塊是有效的並且在緩存中,他們假設新塊也是有效的,”van der Wijden 解釋說。

網絡分裂兩次

結果是一半的網絡,即 Geth 客戶端,拒絕了該塊,而另一半,即 Nethermind 和 Besu 客戶端,接受了它,導致鏈分裂,因為我們現在對正確狀態有兩種不同的看法。 更糟糕的是,上面還有另一個問題。

根據 van der Wijden 的說法,由 Lighthouse-Geth、Prysm-Geth、Lodestar-Geth、Nimbus-Geth 和 Teku-Geth 組成的 Geth 鏈節點也在它們之間分裂。

“這種拆分仍在調查中,但看起來 Teku 也可能有一些緩存機制失敗了,”van der Wijden 說。

由於在撰寫本文時存在多個不同的 Kintsugi 測試網分叉,並且每個節點都認為它們位於正確的分叉上,因此網絡不再最終確定。

“我們會想辦法讓網絡重新組合起來。 我們已經更新了 Nethermind 客戶端,這些節點現在位於正確的鏈上。 我們仍然需要修復 Teku,因為超過 33% 的節點是 Teku,否則鏈將無法完成,”van der Wijden 說。

事件帶來一些好處

根據 van der Wijden 的說法,此事件不會禁止或延遲對以太坊合併的進一步測試,也不會延遲合併本身。 事實上,van der Wijden 表示,該事件實際上有助於測試如果網絡運行正常則難以測試的邊緣情況。

“對於節點來說,長時間的非最終確定是具有挑戰性的,對我們來說,了解它們現在的行為非常重要。 我們認為測試網最終會重新組合在一起,但我不認為我們會嘗試手動修復它,因為它讓我們有機會測試有趣的邊緣案例。”

“我認為這不會延遲合併,因為合併尚未安排。 但它顯示了測試的重要性。 我認為合併進展非常順利。 我們還需要幾週時間才能讓軟件處於可接受的狀態,然後我們需要幾個月的時間來測試它,”van der Wijden 說。

如果這發生在主網上怎麼辦?

一個有趣的問題是,如果這樣的錯誤發生在主鏈上會發生什麼。

“我們很早就開始測試了,所以我們預計會有幾個這樣的錯誤。 但是,主網上的這樣一個錯誤會非常令人討厭,因為我們需要找到並修復我們非常擅長的錯誤,發布代碼,然後讓所有質押者知道他們應該更新他們的節點。 在我看來,最後一部分是困難的部分,因為一些用戶並沒有密切關注開發,”van der Wijden 說。

有關詳細信息,鼓勵感興趣的讀者閱讀 Marius van der Wijden 的 鳴叫 關於事件。

CryptoSlate 通訊

總結了加密貨幣、DeFi、NFT 等領域最重要的日常故事。

申請 邊緣 在加密資產市場上

作為的付費會員,在每篇文章中訪問更多的加密見解和上下文 CryptoSlate 邊緣.

鏈上分析

價格快照

更多背景

立即加入,每月只需$ 19探索所有優惠

資料來源:https://cryptoslate.com/ethereum-merge-testnet-kintsugi-split-by-bug-heres-why/