這篇文章內容涵蓋Kintsugi事件的全面總結、它的后果,還有在主網合并前的具體行動計劃。
概要
合并測試網Kintsugi在幾個客戶端上發生了問題。一個fuzzer創建了一個無效區塊,但客戶端Nethermind和Besu因為缺少一項檢查而把該區塊視為有效。這個無效區塊導致網絡分成了三部分——一部分包含無效區塊、一部分不包含無效區塊,還有一部分進入了OptimisticSync模式。盡管修復程序已經部署了,該fuzzer又創建了另一個區塊,在客戶端Geth觸發了進一步的問題——無法加入正確的分叉。當我們修復了Geth的問題,我們就能夠把所有的節點帶回到相同的正確的分叉,區塊鏈重新開始做最終敲定。
總結
合并測試網Kintsugi在前幾周的運行中遇到了一系列問題,暴露了多個客戶端的幾個漏洞。問題主要是由開發者Marius開發的fuzzer引發的,這個fuzzer旨在創建有意思的區塊并在網絡里對區塊進行廣播。
一個這樣的區塊的blockHash被替換為它的parentHash(父塊哈希)。engine_executePayload?具備了所有構建一個區塊和構建該區塊的blockHash所需的所有參數。EL(執行層)?客戶端應該根據這些參數來構建區塊,并根據通過的blockHash進行驗證。這個特定區塊正確無誤地沒有通過Geth的檢查,但通過了Nethermind和Besu的驗證。該區塊之所以在Nethermind被錯誤地通過驗證是因為緩存問題,而Besu則完全沒有這項檢查。由此,該區塊被一個Lighthouse-Besu節點提議,并導致區塊鏈分叉為兩部分,在執行層與Nethermind或Besu連接的驗證者在一個分叉上,而月Geth連接的驗證者則在另一個分叉上。
Ledger聯創反駁Charles Hoskinson:開源固件錢包安全性較低:5月20日消息,Ledger聯合創始人Eric Larchevêque澄清說,最新的Recover固件更新中沒有“后門”。Larchevêque還駁斥Cardano創始人Charles Hoskinson的說法,后者聲稱開源軟件總是比閉源軟件更好。Larchevêque警告稱,由于安全風險增加,開源是危險的。Ledger是包含閉源固件的硬件錢包。Larchevêque表示,開源錢包配有常規硬件,但安全性較低,而閉源錢包具有安全元件,可提供更高級別的安全性。當插入硬件以刷新固件時,可能會發生供應鏈攻擊,而“全息密封”(holographic seal)減輕了一些風險,但它無法有效防止制造商級別的攻擊。[2023/5/20 15:15:49]
請注意,檢查當前區塊的blockHash是合并新增的要求,因此在某些客戶端上會存在缺少或不準確的驗證。
Geth的一個問題是當執行錯誤的負載時,它返回的是一個?JSON-RPC錯誤而不是INVALID(無效),而Teku的問題是(此時已修復但還未部署)認為那些錯誤在optimisticsync模式下是可通過的。因此,Teku-Geth節點在遇到無效負載時還是進入了optimisticsync模式。由于該區塊本身是有效的,已連接的Geth節點是從網絡而不是engineAPI獲取數據的,因此現在的?Teku-Geth節點是在無效的分叉鏈上的。由于Teku節點還在有很多漏洞的舊版本上,Teku-Geth節點保持在optimisticsync模式,并在區塊鏈停止做最終敲定的期間拒絕提議區塊。我們現在處于這樣的一個情況——共識層客戶端(lighthouse、prysm、nimbus和lodestar)-Geth(占大約46%)與共識層客戶端-Nethermind/Besu(占大約19%)在不同的分叉上,其他運行Teku-Geth(大約占35%)的驗證者則處于optimisticsync模式。
Blockchain.com完成由Kingsway Capital領投的新戰略融資:金色財經報道,Blockchain.com宣布完成由英國投資公司Kingsway Capital牽頭的戰略融資,Kingsway Capital創始人Manny Stotz成為公司顧問。Blockchain.com目前沒有透露融資總額,但表示該交易在第三季度初的某個時間完成,其他投資方包括Baillie Gifford、Lightspeed Venture Partners等。
金色財經此前報道,今年早些時候, Blockchain.com在由Lightspeed Venture Partners牽頭的D輪融資中估值為140億美元。[2022/10/15 14:28:23]
在找到和部署了Nethermind和Besu節點的修復程序后,我們就能夠讓它們重新連上正確的鏈。Teku-Geth節點的更新導致了另一個與無效內存訪問相關的問題,它由Geth上與區塊排序驗證相關的問題引起。這個具體的漏洞也是由Marius的fuzzer觸發的,這個fuzzer產出了一個parentRoot是有效且block_number=1的區塊。在Geth執行一個區塊前,它需要查看它的父塊,看看它們是否需要同步。這樣做的一種方式是在緩存里檢查parentHash?或在database里檢查parentHash和blockNumber。由于Teku是同時執行所有分叉里的所有負載,緩存就不再包含?parentHash。因此,Geth試圖在它的database里通過parentHash和blockNumber?查找其父塊。然而,database并沒有這個blockNumber的哈希(這個區塊是fuzzer構建的)。Geth會推斷,由于它沒有父塊,它需要開啟同步。但是,這樣觸發的同步會試圖同步比權威鏈更短的的鏈,這就違反了Geth中的某些條件,這導致Geth進程錯誤,節點關閉,導致Teku-Geth節點一直處于不健康的狀態。
Rocket Pool擬推出Staking-as-a-Service產品,并計劃將minipool運營者抵押要求降至4ETH:7月19日消息,據以太坊質押協議Rocket Pool的DAO活躍成員Marceau.eth表示,Rocket Pool將進行一列升級,計劃為基礎設施公司和機構托管人推出Staking-as-a-Service產品,使得大型質押運營商以信任最小化的方式來參與質押;還計劃將小型礦池運營商(minipool)的抵押要求從16ETH減少到4ETH,這將使運行節點所需的抵押品減少2至4倍,提升節點運營商的收益。此外,在之后的Capella硬分叉后,Solo質押者也將能夠直接遷移到RocketPool。(The Defiant)[2022/7/19 2:22:55]
在上述問題的調試中,Geth團隊還在合并的代碼庫里發現了一個觸發錯誤的競爭條件。此外,我們還遇到其他問題——Nimbus出現與執行層重新連接相關的錯誤,Lodestar降低拒絕出塊的對等點分數。
客戶端推出了所有的修復,且讓所有節點都進行升級。當所有的修復都生效時,區塊鏈會有很多小分叉,每個的參與率都很低。對一些節點進行重新同步可以減少一些分叉。一旦有足夠多的節點完成重新同步,我們會看到有越來越多的節點通過重組回到這個分叉上,這使我們能跨過最終確定性所需的66%的閾值。
KingData監控:AMPL總供應量 3.5億:據KingData數據顯示,AMPL 今日增發 513.93萬 枚,總供應量升至 3.48億 枚。更多數據或KingData下載見原文鏈接。[2021/4/20 20:39:34]
FAQ
Q:這個測試網死了嗎?
A:沒有。在我們部署修復程序并重新同步一些停滯的節點后,鏈最終又開始做最終敲定了。當鏈恢復最終敲定,它就可以如常運行。目前,Kintsugi的參與率是大約99%,這表明所有客戶端的漏洞已經得到修補,且網絡也運行良好。交易和智能合約交互繼續如常運作。
Q:為什么這條鏈這么長時間不做最終敲定?
A:雖然我們很早就找到了根本原因,我們想要讓鏈保持非最終敲定狀態,讓客戶端團隊調試他們的代碼。此外,我們想要收集非最終敲定期間的客戶端表現數據。
Q:在分叉鏈上的驗證者會被罰沒嗎?
A:不會。每個驗證者都包含一個slashingprotection(罰沒保護)database,確保驗證者不會對可罰沒的信息簽名。在“錯誤”分叉的驗證者只會被視為在“正確”分叉上處于inactive狀態。一旦它們重組到“正確”分叉上,罰沒database會阻止它們對可罰沒信息簽名。
Qtum提出基于智能合約的離線Staking機制:據官方消息,量子鏈Qtum發布新共識機制白皮書,把智能合約引入到PoS共識過程,提出了一種基于智能合約的離線Staking機制,使用戶可以在離線狀態參與Staking。在Qtum離線Staking機制中,成為SuperStaker可以代替普通節點進行Staking,并獲取收益,網絡中SuperStaker的數量沒有上限。同時,由于智能合約的引入,Qtum離線Staking機制的規則是可編程、可升級的,增加了Staking本身的靈活性。[2020/9/23]
Q:這會如何影響主網發布?會有新的延遲嗎?
A:我們認為這件事不會影響主網發布計劃。在規范本身上沒有發現嚴重的問題。測試網的目的是發現漏洞,我們認為?Kintsugi在發現客戶端實現的邊緣情況方面表現很好。這事件是對多個客戶端組合的一次很好的壓力測試。我們有一個公開的清單,它將指引我們何時準備好在主網實現合并。
Q:這會如何影響測試計劃?
A:我們將研究創建幾個強制處于非最終敲定狀態的測試網。對這些非最終敲定的測試網進行持續測試使我們可以觸發更多邊緣情況,和改進工具。在這次事故中發現的漏洞將被添加為靜態測試用例,以確保我們會通過回歸測試。
對驗證者、基礎設施提供商和工具開發者的重要啟示:
測試網上的非最終敲定時期加強了最糟糕情況硬件要求的一些假設。在非最終敲定期,驗證者應該預期:
由于需要對多個分叉選擇規則進行評估,CPU負載會增加(有時達到100%)
在非最終敲定期由于不會有修剪,硬盤使用量會增加
RAM使用量會有邊際增長
這意味著,在同一臺機器上運行的任何額外工具或監測都會遇到資源爭用問題。Kintsugi測試網的工具(區塊瀏覽器、水龍頭、RPC)在具有3個節點的Kubernetes集群上運行。這個集群還運行多個工具使用的信標節點。由于信標節點使用的資源比預置的要多得多,因此我們的工具經常由于資源不足而以降級的方式運行。對于基礎設施提供商來說,謹慎的做法是在不同的機器上運行它們的共識層和執行層,或有嚴格的資源使用定義。
合并意味著每個共識層客戶端都需要運行自己的執行層客戶端。(主網上的)執行層客戶端現在需要很大的磁盤容量。在非最終敲定期間,CL的磁盤使用量也會激增,這會由于磁盤空間不足而導致崩潰。所有驗證者應該確保他們有足夠大的緩沖磁盤空間來應對這種問題。
依賴于最終確定性的工具開發者應該為非最終敲定時期多做考慮。一種可能的方式是顯示optimistic信息,同時傳達該信息在用戶界面是會變化的。
來源|?notes.ethereum.org
作者|?parithosh
點擊“閱讀原文”獲取文章內部鏈接!
原文鏈接:https://notes.ethereum.org/@ExXcnR0-SJGthjz1dwkA1A/BkkdHWXTY
頭條 ▌首個區塊鏈數字藏品國際標準在ITU成功立項金色財經報道,據“中國信通院CAICT”微信公眾號2月11日消息,2022年1月17-28日,國際電信聯盟第十六研究組召開全體會議.
1900/1/1 0:00:00當元宇宙的風頭蓋過了區塊鏈,它好像成為了一個無所不能的存在。我們在任何場景,任何商業范例里遇到的所有的痛點和難題,幾乎都可以通過區塊鏈得到解決.
1900/1/1 0:00:00譯者注:隨著其他L1公鏈和L2的交易活動日漸增長,跨鏈和跨rollup的需求也大大增加。而這便使得橋接產生一種”反網絡效應“:當交易活動不多時網絡就會非常安全;當交易多起來了,風險就越大(因為攻.
1900/1/1 0:00:00VitalikButerin,即V神,我認為是當今最偉大的人,這個偉大或許會將改變全世界的人類社會結構,其作用類似于中國歷史上的孔子,改變了地球上最大大陸人群的社會結構并且持續2000多年.
1900/1/1 0:00:00區塊鏈這段時間相當熱門,新聞媒體大量的報道,宣稱它將創造未來,但啥是區塊鏈?它是如何工作,有何特別之處,能解決什么問題,又如何使用呢?今天我們就來嘗試,做一個最好懂的區塊鏈教程.
1900/1/1 0:00:00“人工智能藝術家Botto的作品NFT賺了超過一百萬美元。”據歐洲新聞網報道,與人類社區合作的Botto在將一批由NFT支持的藝術品進行拍賣后的五周內就達到了百萬美元大關.
1900/1/1 0:00:00