這篇文章內容涵蓋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連接的驗證者則在另一個分叉上。
Acala Contributor Yuzhu: DeFi 與 Staking 衍生品結合將是一個更廣闊的藍海市場:據官方消息,幣贏CoinW《共識52》第九期《Polkadot的進化之路——Acala能否掀起下一輪DeFi熱潮?》主題AMA主題中Acala Contributor Yuzhu講到:
金融是時間的游戲,DeFi 結合 Staking 衍生品的新玩法也將是一個廣闊的藍海市場。波卡作為目前 POS 市值最高的區塊鏈網絡,在經濟模型的設計上,不管是 Staking 還是平行鏈插槽競拍,以及治理上,都將會鎖定大部分的 DOT,而這鎖定住的流動性將會催生出許許多多的流動性衍生品。因此,Acala 所推出的 Staking 衍生品作為開箱即用的基礎 DeFi 產品組件之一,和 aUSD 一樣,開發者和項目都是能夠基于 LDOT/LKSM 做越來越豐富的上層 DeFi 應用。[2020/11/19 21:22:43]
請注意,檢查當前區塊的blockHash是合并新增的要求,因此在某些客戶端上會存在缺少或不準確的驗證。
庫幣將上線DeFi投票上幣優勝項目ORN 并開啟Staking服務:據庫幣KuCoin交易所消息,庫幣新一期投票上幣活動Defi專場結果已經出爐,Orion Protocol (ORN)在社區投票中獲得上幣權,庫幣將于7月25日18:00上線Orion Protocol (ORN)并支持ORN/USDT交易服務。此外,Pool-X平臺已于22日上線Orion Protocol (ORN)鎖倉挖礦產品“ORN-Staking”。
Orion Protocol是鏈接多個交易所的流動性聚合平臺,能夠作為通用的交易網關直接接入各種各類去中心化的交易市場、流動性池以及以及中心化的交易平臺。 庫幣數字貨幣交易所,為來自207個國家的500萬用戶提供幣幣、法幣、合約、礦池、借貸等一站式服務。[2020/7/22]
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模式。
美國SEC要求對Kik公司1億美元的KIN發行進行初步簡易判決:Kik公司在2017年進行1億美元的KIN首次代幣發行(ICO),美國SEC要求對此進行初步的簡易判決。SEC首次對Kik提起訴訟是在2019年6月。SEC認為,該公司的ICO包含了明確的證券發行。雖然Kik一直試圖聲稱KIN是一種貨幣而不是一種證券,但SEC聲稱有與此相反的“無可爭議的證據”。SEC聲明:“Kik_2017年的Kin要約和出售是對公眾的要約和出售投資合同,這種行為沒有在SEC注冊,根據該法案也沒有豁免注冊。”SEC稱,Kik公然告知投資者,隨著對代幣需求的增加,KIN價格將會上漲——這種行為通過培養投資者對利潤的預期,赤裸裸地違反了《證券法》。SEC還指出,該公司向潛在出資人保證,它將“開展關鍵工作來刺激這一需求。”Kik的發行結構“剝奪了數千名投資者根據聯邦證券法獲得的保護和要求披露的信息”。SEC正尋求對該公司的永久禁令,除了罰款,還要交出其非法所得以及利息。注:簡易判決,又稱為即決判決,是指法院對于重要事實沒有爭點的案件,根據當事人原被告均可的申請,作為法律問題不經法庭事實審理而作出的判決。(cointelegraph)[2020/3/22]
在找到和部署了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節點一直處于不健康的狀態。
庫幣推出Terra (LUNA) Soft Staking持幣返利服務:據庫幣KuCoin消息,庫幣已推出Terra (LUNA) Soft Staking持幣返利服務,庫幣將每天根據錢包總額和提現等情況,動態調整質押比例。所有產生的利益將按比例全部分發給庫幣的LUNA持幣用戶。庫幣數字貨幣交易所,為來自207個國家的500萬用戶提供幣幣、法幣、合約、礦池、借貸等一站式服務。[2020/3/4]
在上述問題的調試中,Geth團隊還在合并的代碼庫里發現了一個觸發錯誤的競爭條件。此外,我們還遇到其他問題——Nimbus出現與執行層重新連接相關的錯誤,Lodestar降低拒絕出塊的對等點分數。
客戶端推出了所有的修復,且讓所有節點都進行升級。當所有的修復都生效時,區塊鏈會有很多小分叉,每個的參與率都很低。對一些節點進行重新同步可以減少一些分叉。一旦有足夠多的節點完成重新同步,我們會看到有越來越多的節點通過重組回到這個分叉上,這使我們能跨過最終確定性所需的66%的閾值。
金色晚報 | POS發明者Sunny King推出全新共識機制SPoS 狂人研究院等公眾號被封:BTC挖礦難度首次突破7T;日本礦機生產商計劃在公寓內進行虛擬貨幣挖礦;火幣印尼數字貨幣交易所今日正式上線運營。更多晚報內容,請查看圖片。[2018/9/7]
FAQ
Q:這個測試網死了嗎?
A:沒有。在我們部署修復程序并重新同步一些停滯的節點后,鏈最終又開始做最終敲定了。當鏈恢復最終敲定,它就可以如常運行。目前,Kintsugi的參與率是大約99%,這表明所有客戶端的漏洞已經得到修補,且網絡也運行良好。交易和智能合約交互繼續如常運作。
Q:為什么這條鏈這么長時間不做最終敲定?
A:雖然我們很早就找到了根本原因,我們想要讓鏈保持非最終敲定狀態,讓客戶端團隊調試他們的代碼。此外,我們想要收集非最終敲定期間的客戶端表現數據。
Q:在分叉鏈上的驗證者會被罰沒嗎?
A:不會。每個驗證者都包含一個slashingprotection(罰沒保護)database,確保驗證者不會對可罰沒的信息簽名。在“錯誤”分叉的驗證者只會被視為在“正確”分叉上處于inactive狀態。一旦它們重組到“正確”分叉上,罰沒database會阻止它們對可罰沒信息簽名。
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
Tags:ETHKINGETHGETEthereumMaxkine幣是騙局嗎togetherbnb薇拉雙人互動BITGET怎么讀
十二年前,LaszloHanyecz用10,000比特幣買了兩個披薩。今天,這些比特幣價值3.4億美元,從5月22日開始,就被稱為比特幣披薩日。比特幣是其自身成功的受害者.
1900/1/1 0:00:002月19日,全球最大的NFT交易平臺OpenSea剛開始支持用戶使用新合約,一些用戶的NFT資產就被盜了。次日,OpenSea的CEODevinFinzer在推特上披露,「這是一種網絡釣魚攻擊.
1900/1/1 0:00:00基于區塊鏈的數字藏品市場是NFT技術的最主要應用場景之一,然而鏈上手續費成本過高在一定程度阻礙了數字藏品市場的發展。本文列舉了目前的數字藏品市場對解決gas成本過高問題的一些前沿技術方案探索.
1900/1/1 0:00:00春晚之上,沈騰有關元宇宙的調侃再一次引發了外界對于元宇宙的關注,并且狗狗幣還一度出現了暴漲。相信很多知道元宇宙的人都會和沈騰抱有同樣的想法,即,他們僅僅只是將元宇宙看成是一種暴富的手段,正如當初.
1900/1/1 0:00:00幣圈應用大規模普及的一個主要障礙就是,用戶上手使用的歷程很復雜,尚未完全成熟。對于剛接觸加密通證的人來說,即使是「完全控制自己的數字資產」這件最簡單的事情,也不是很容易或直觀的.
1900/1/1 0:00:00大家好,我是團子,價值投資雖然不能保證我們穩步盈利,但價值投資給我們提供了走向真正成功的唯一機會。眼睛僅盯在自己小口袋的是小商人,眼光放在世界大市場的是大商人.
1900/1/1 0:00:00