比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads
首頁 > 火必APP > Info

科普 | OpenEthereum客戶端 “柏林” 升級后出錯始末_ETH

Author:

Time:1900/1/1 0:00:00

AlexStokes@ralexstokes:

你可能已經聽說了,@OpenEthereum客戶端的一個錯誤導致了一些支撐以太坊網絡的重要服務宕機。

我們來琢磨一下那筆造成事故的交易。

首先,我想感謝所有快速反應到事故并解決了問題的工程師:https://twitter.com/OpenEthereumOrg/status/1382719444833726470?s=20…

另外,我沒有自己跟蹤所有的細節,下文中的重要事實都由用戶eb在EthR&Ddiscord服務器里提出。

先從那筆觸發了錯誤的交易開始:https://etherscan.io/tx/0x7006f38fa2e6654fae1a781aefc5885fe0cb8f778b1add10636eaf7e34279247

穩定幣crvUSD科普創新清算機制LLAMMA,可在抵押品價格下跌時逐步替換為穩定幣:1月17日消息,Curve官方科普其穩定幣crvUSD創新的清算機制LLAMMA,解釋了LLAMMA通過AMM的特性進行針對債務人更友善的清算方式,讓抵押品在價格下跌時逐漸轉移成穩定幣,讓原本要清償的債務有一定程度的穩定幣可以償還,同時在價格回穩時再逐漸把穩定幣換回抵押品,而不是直接的觸發清算導致債務人的虧損。

此前報道,2022年11月23日,去中心化交易平臺CurveFinance開發者發布Curve即將推出的去中心化Stablecoin“crvUSD”的官方代碼和白皮書。[2023/1/17 11:17:13]

這是一筆合約調用交易,從KuCoin交易所發出,向許多地址分發ETH。該筆交易的calldata的ABI編碼錯誤,最終導致了鏈分裂。你可以在Etherscan上看看這筆交易的“InputData”。

IMF今日發布的加密貨幣科普視頻實為兩年前舊聞,且存在諸多疏漏:國際貨幣基金組織IMF今日在推特上發布了一條關于加密貨幣的科普視頻,這段時長兩分鐘的視頻最初發布于2018年6月。該視頻稱加密貨幣是“貨幣進化的下一步”,但沒有特別提到DLT、區塊鏈,甚至是代幣名稱等術語。BTC、XRP和ETH只出現在說明加密交易的圖形中。盡管這段視頻到目前為止已經獲得了超過13.7萬的點擊量和2900個贊,但來自加密社區的許多反應都是批評的,他們指出了信息中的漏洞和似乎具有誤導性的措辭。

Reddit用戶nanooverbtc稱:“他們犯了很多錯誤,比如把私鑰稱為密碼。”該視頻也沒有討論挖礦或加密貨幣供應。Kraken策略師Pierre Rochard等知名人士表示:“可證明的稀缺性是比特幣有趣的原因,你忘了提這一點。”(Cointelegraph)[2020/8/24]

1/在合約中調用sendEths時,需要提供兩個參數:一個是關于目標地址的不定長數組;一個是關于轉賬數額的不定長數組;兩者相搭配才知道要轉移多少錢給哪個地址。

TRON數字錢包科普資料《波場錢包的現在過去與未來》已上線:據最新消息顯示,由TokenPocket聯合波場TRON官方,以及 TokenPocket 社區志愿者共同撰寫的《波場錢包的現在過去與未來》已正式上線。《波場錢包的現在過去與未來》又稱為波場錢包小白書,詳細介紹了當前TRON錢包與TRON生態密切結合的實例,是目前市面上最為詳細的TRON數字錢包科普資料。波場錢包作為波場公鏈生態中極為重要的入口,是波場生態的重要構成要素。波場錢包從一開始只提供權限管理、轉賬收款、節點投票等基礎功能,到如今不僅可以為用戶提供法幣交易、閃兌和去中心化交易所等方便快捷的交易服務,還能讓用戶直接在錢包上體驗波場上DApp,挖礦、DeFi、Staking等資產增值服務。詳情見原文鏈接。[2020/8/20]

2/我們可以解析calldata來看看到底哪里出了錯:第一行表示地址列表從字節64開始。第二行表示轉移數額的列表從字節416開始。

動態 | 美國演說家Anthony Robbins開始科普什么是比特幣:美國演說家安東尼·羅賓(Anthony Robbins)在自己的網站上發布了一篇比特幣的科普文章,并在推特上向自己的粉絲介紹什么是比特幣,目前他的推特賬戶共有粉絲304萬人。[2019/1/1]

3/因此,大體上,我們是希望成對成對地、從上往下、向某個地址發送一定數量的ETH——看起來很直接嘛。

4/然而,當我們開始遍歷這個列表,我們先跳轉到calldata的正確字節,而SolidityABI聲明了數據的第一個字是整個不定長數組的長度。

5/這就是最終bug的根源:因為calldada中的值是“0x10”,但是calldata只給出了10個地址-數值對。對這個calldata的正確ABI編碼應該是“0xA”——不是“0x10”!

聲音 | 中科院姚建銓:要加快推進區塊鏈與物聯網融合的科普 培訓:據新華網消息,日前,在區塊鏈與物聯網融合發展峰會上,中國科學院院士姚建銓說,關注區塊鏈技術里面的大數據,跟區塊鏈技術結合起來進行測量和檢測,能更好地提升激光清洗技術。姚建銓建議,無錫今后要加快推進區塊鏈與物聯網融合的科普、培訓,正確引導廣大人民群眾對技術的認知;同時,建立專業、權威,但又普適、成套的理論體系和標準,以此切入區塊鏈的實際應用。[2018/9/18]

6/你可能已經猜到了那時候會發生什么事,我們可以通過執行情況跟蹤器來看看:https://etherscan.io/vmtrace?txhash=0x7006f38fa2e6654fae1a781aefc5885fe0cb8f778b1add10636eaf7e34279247&type=parity

7/合約成功地遍歷了前10個地址。本來合約應該在此時停止執行,但根據calldata的聲明,還有很多個地址!那就繼續執行吧。

但是,根據calldata的結構,“第11個地址”是用于編碼列表長度的0x10,所以合約就嘗試發送0ETH到地址0x10。

8/此外,似乎,當合約嘗試讀取并不存在的calldata時,會返回0ETH——你可以想象成合約在這里跑出了一個錯誤,但它卻繼續發送0ETH到它從calldata中讀取的另外6個“地址”。

此時,你可能會注意到,0x10有可能是我們所謂的“特殊地址”之一,它完全在EVM預編譯合約的范圍內。

而我們也并不期望預編譯合約0x10能夠返回ETH。如此,它就成了一個ETH黑洞。但是,這也并不必然造成任何問題。到底是什么導致了整個客戶端崩潰?

原因在于,0x10實際上是一個由EIP-2537斷言的預編譯合約,是為BLS配對密碼學程序而設的,但這個EIP還未部署到主網上。所以雖然你能夠跟這個地址互動,但主網上的這個地址里沒有任何合約,不會有任何進一步的動作。

此外,我們還需要一個事實來解釋這次分裂,你可能也猜到了,就是“柏林”硬分叉:它改變了EVM中Gas消耗量的計量方法。

在EIP-2929實施后,如果你在一筆交易中對同一個存儲槽多次執行狀態存儲操作,第一次執行會消耗更多Gas,后續執行的消耗會更少。這種重定價理論上能更準確地反映當前的客戶端訪問存儲項的成本……

而且,要知道,在所有客戶端的執行中,這些數據通常都換存在更便宜的硬件層中。

現在我們終于找到了OpenEthereum在區塊#12244294處發生的Bug:該客戶端包含了所有已實現的預編譯,作為EIP-2929訪問清單的一部分。

因為EIP-2537在大部分客戶端中都已經實現就緒了,OpenEthereum對所有訪問了0x10的交易都給了gas折扣。

但網絡的絕大部分活躍客戶端都不是這樣實現EIP-2929的,它們只會給訪問了已激活預編譯合約的交易提供gas折扣——而EIP-2537屬于還未激活的預編譯合約!所以,OpenEthereum客戶端對該交易消耗了多少Gas的計算與網絡中其他客戶端發生了分歧。

所幸,@mhswende很快找出了該bug,而@sorpaas出力修復了該bug:https://github.com/openethereum/openethereum/pull/364

還有很多東西可說,我也預期會有比我更能觀察到全貌人來撰寫更好的時候報告。

我能說的只是,這個bug彰顯了硬分叉的內在風險,以及持續致力于建設更有彈性的基礎設施的重要性。

依賴于OpenEthereum客戶端的單客戶端系統在今天停機了一段時間,因為客戶端無法在問題區塊出現后與網絡保持同步。Etherscan自身也因此停機。

慶幸的是,這個bug沒有嚴重到導致重大的鏈分叉,但這樣的可能性并不是不存在。我們可以利用多客戶端實現來提升抗性——多客戶端本身就是我們以太坊生態的一大長處——并推動您的基礎設施提供商也這樣做。

我們已經看到,2021年的普及速度已經前所未有地快,而且前景非常光明。我們要從這個事故中吸取教訓,一起打造更好的以太坊。

原文鏈接:https://twitter.com/ralexstokes/status/1382750001026146304作者:AlexStokes翻譯:阿劍

Tags:ETHHERTHEETHERETHZILLALuckTogethertogetherbnb更新到哪里了EtherBone

火必APP
數字人民幣試點有序擴大,拜登政府出于擔憂加強研究計劃?_數字貨幣

放眼全球,中國可以算是當下央行數字貨幣進程最快的國家。近期,人民銀行召開2021年貨幣金銀和安全保衛工作電視會議要求,下一階段,穩妥推進數字人民幣研發試點,持續深入做好整治拒收現金工作,不斷完善.

1900/1/1 0:00:00
金色觀察 | 曾經是玩笑 如今狗狗幣支付已成潮流_狗狗幣

最初被當作玩笑創造的加密貨幣狗狗幣如今已經徹底出圈,幣值暴漲推升年內回報率超過6877%。當然,除了幣值的推升,狗狗幣支付也已到來.

1900/1/1 0:00:00
加拿大推出首個以太坊ETF 這對以太坊會產生什么影響?_ETF

加拿大的證券委員會已批準了全球首個以太坊ETF,它將于2021年4月20日推出以太坊交易所交易基金,這些金融產品由CI全球資產管理公司,GalaxyDigital.

1900/1/1 0:00:00
教程 | DOT/KSM 提名賺幣(Staking)完全指南_STAK

只要你有DOT和KSM,就可以通過Staking獲得年化14%左右的收益。在這篇文章中,我們會手把手教你進行Staking,用DOT/KSM錢生錢,看完就趕快操作起來吧.

1900/1/1 0:00:00
全球算力大會 | 圓桌論壇:DeFi浪潮下的礦業新金融_EFI

4月17-18日,“超算·融合,2021全球區塊鏈算力大會”將在四川成都召開。本屆大會由巴比特、鏈節點、幣印聯合主辦,吳說區塊鏈協辦.

1900/1/1 0:00:00
金色DeFi日報 | YFI 創始人:有四個新產品待發布 但擔心在推出后被分叉_EFI

DeFi數據 1.DeFi總市值:1110.29億美元 市值前十幣種排名數據來源DeFiboxDeFi總市值數據來源:Coingecko2.過去24小時去中心化交易所的交易量:45.

1900/1/1 0:00:00
ads