区块见闻 区块见闻
Ctrl+D收藏区块见闻
首页 > XLM > 正文

ETH:OpenEthereum 客户端 “柏林” 升级出错始末_ETHE

作者:

时间:

AlexStokes@ralexstokes:

你可能已经听说了,@OpenEthereum客户端的一个错误导致了一些支撑以太坊网络的重要服务宕机。

我们来琢磨一下那笔造成事故的交易。

首先,我想感谢所有快速反应到事故并解决了问题的工程师:

https://twitter.com/OpenEthereumOrg/status/1382719444833726470?s=20…

另外,我没有自己跟踪所有的细节,下文中的重要事实都由用户eb在EthR&Ddiscord服务器里提出。

先从那笔触发了错误的交易开始:

https://etherscan.io/tx/0x7006f38fa2e6654fae1a781aefc5885fe0cb8f778b1add10636eaf7e34279247

金色晨讯 | 印度私营银行正限制加密相关交易:1.Facebook注册新金融科技公司,业务涉及区块链

2.Zcash将推迟至5月20日发布2.0.5版本

3.印度私营银行正限制加密相关交易

4.阿根廷、哥伦比亚和委内瑞拉在LocalBitcoins的比特币交易量均创历史新高

5.1999年的密码学难题被解开,证明被存储在BTC和BCH区块链上

6.委内瑞拉和俄罗斯或正考虑使用石油币结算两国间贸易

7.Bittrex将下市3个BTC交易对

8.Spend Wallet现允许通过Apple Pay使用加密货币支付

9.Bitfinex将于5月20日开启LEO交易[2019/5/18]

这是一笔合约调用交易,从KuCoin交易所发出,向许多地址分发ETH。对该笔交易的calldata的ABI编码错误,最终导致了链分裂。你可以在Etherscan上看看这笔交易的“InputData”。

金色晨讯 | 澳大利亚政府推出Govpass区块链技术系统 广东税务局升级“税链”区块链电子发票平台:1.澳大利亚政府推出Govpass区块链技术系统。

2.Brave已成为HTC Exodus手机的默认浏览器。

3.OKEx超越币安成交易额排名第一交易所。

4.泰国政府鼓励合规的区块链公司在泰国发展。

5.阿布扎比国家石油公司与IBM合作并试行区块链自动化系统。

6.广东省税务局升级“税链”区块链电子发票平台。

7.杭州互联网法院已立案88起通过司法区块链维权案件。

8.华媒控股收购萧文置业部分股权 将区块链板块导入“华媒智谷”项目。

9.北京西城区将对区块链等技术创新最高给予1000万元资金奖励。[2018/12/10]

在合约中调用sendEths时,需要提供两个参数:一个是关于目标地址的不定长数组;一个是关于转账数额的不定长数组;两者相搭配才知道要转移多少钱给哪个地址。

金色相对论 | 肖磊:以法币为锚的稳定币只是阶段性存在:本期金色相对论中,对于稳定币的讨论,知名财经专栏作家肖磊表示:由于目前整体数字货币的市值偏小,法币池子巨大,数字货币很难达到稳定状态,再加上交易所对集中交易计价的需求,跟现实的法币需要做通兑,这种以法币为锚的稳定币才不得不阶段性出现,未来数字货币里面,会诞生一些因竞争而脱颖而出的稳定币,满足更多的交易媒介的需求,甚至每一个数字货币,都可能成为通兑领域的稳定币,因为货币领域,只谈兑换比率,之所以我们现在需要稳定币,是因为数字货币还没有成为流通货币,大家把它当成了一个投资品来看待,所以需要参照物,整体生态远没有成型。[2018/9/20]

我们可以解析calldata来看看到底哪里出了错:第一行表示地址列表从字节64开始。第二行表示转移数额的列表从字节416开始。

?因此,大体上,我们是希望成对成对地、从上往下、向某个地址发送一定数量的ETH——看起来很直接嘛。

金色财经数据播报 加密货币总市值相较于昨天减少1440亿人民币:根据AlCoin数据显示,目前加密货币总市值为18492.598亿人民币,较昨天相比,总市值减少约1440亿人民币左右,目前比特币市值继续下滑,市值降低至8458亿人民币,较昨天相比市值缩水530亿人民币左右,不过随着加密货币整体市值都在降低,比特币的市值占比却有所提升,目前比特币市值占比提升0.65%,占整个加密货币总市值的45.74%;ETH严重缩水,目前总市值为2832亿人民币,相比昨天,今天ETH市值降低390亿人民币左右,加密货币市场币值占比跌落0.86%,目前占整个加密货币总市值的15.31%;瑞波币市值目前为1399亿人民币,与昨天相比市值下降157亿人民币,加密货币市值占比下滑0.23%,目前占整个加密货币市场市值的7.57%。[2018/3/27]

然而,当我们开始遍历这个列表,我们先跳转到calldata的正确字节,而SolidityABI声明了数据的第一个字是整个不定长数组的长度。

这就是最终bug的根源:因为calldada中的值是“0x10”,但是calldata只给出了10个?地址-数值对。对这个calldata的正确ABI编码应该是“0xA”——不是“0x10”!

你可能已经猜到了那时候会发生什么事,我们可以通过执行情况跟踪器来看看:

https://etherscan.io/vmtrace?txhash=0x7006f38fa2e6654fae1a781aefc5885fe0cb8f778b1add10636eaf7e34279247&type=parity

合约成功地遍历了前10个地址。本来合约应该在此时停止执行,但根据calldata的声明,还有很多个地址!那就继续执行吧。

但是,根据calldata的结构,“第11个地址”是用于编码列表长度的0x10,所以合约就尝试发送0ETH到地址0x10。

此外,似乎,当合约尝试读取并不存在的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年的普及速度已经前所未有地快,而且前景非常光明。我们要从这个事故中吸取教训,一起打造更好的以太坊。

标签:ETHTHEHERETHEeth怎么转到交易所THE币Compound Etherethereal中文音译名字

XLM热门资讯
ETF:ETF逐渐登场,比特币2021年加速向传统世界进军_gbt币官网

这是白话区块链的第1326期原创?作者|一棵杨树出品|白话区块链4月14日晚,备受期待的Coinbase正式上线纳斯达克,开盘即暴涨70%,市值一度逼近1000亿美元大关.

比特币:DeFi新金融(二):超额抵押与资产映射_BTC

摘要 市场对DeFi生态这样的新生事物有诸多疑惑,尤其是完全去中心化的系统,该如何理解相关代币的价值支撑?DeFi与传统市场是怎样的消长变化?本文开创性地进行分析总结.

EFI:5月不迷茫!巴比特学院带你2天吃透2021全年热点!_一枚比特币市值

2021年,加密资产领域有哪些热点?这个问题不难回答:波卡、NFT、DeFi。因为波卡很可能随插槽拍卖而爆发。NFT和加密艺术破圈将带来海量资金与流量.

THE:金色观察丨当我们谈论Chia时 我们在谈论什么_ETHE

金色财经区块链4月16日讯?成立于2017年8月的Chia旨在开发一个能够优化区块链和智能交易的平台.

SHIB:金色观察 | 狗狗币之后 动物币掀起新一轮泡沫?_狗狗币

在马斯克的强势安利下,狗狗币迅速出圈,成为牛年最热的币种之一。狗狗币爆红之后,目前各种动物币获得强势围观,引发热议.

ARM:尽管存在欺诈,但澳大利亚证券监管机构仍热衷于支持加密货币行业?_usdk币怎么变成usdt

澳大利亚证券和投资委员会表示希望支持加密货币行业,并指出了与监管创新技术相关的挑战。在4月22日澳大利亚区块链周期间,ASIC专员CathieArmour在小组讨论中表示,监管机构的目标是努力“.