以太坊核心开发人员和以太坊安全社区已经认识到由 ChainSecurity 在 2019 年 1 月 15 日发现的与君士坦丁堡相关的潜在问题。我们正在调查所有潜在的漏洞,并将在博客文章和社交媒体中更新相关的信息。
出于谨慎的考虑,以太坊社区的主要利害关系人已经确定,最好的行动方案是推迟君士坦丁堡分叉,按原定计划,该分叉将在 2019 年 1 月 16 日的 7,080,000 号区块上发生。
因为,我们希望所有任何运行节点的人(节点运营商,交易所,矿工,钱包服务等)在 7,080,000 号块之前更新到新版本的 Geth 或 Parity。7,080,000 号区块将在本文发布之后约 32 小时(译者注:我们现在还有不到 29 个小时)挖出,或者说,将在美国太平洋时间 1 月 16 日晚上 8 点/美国东部时间 1 月 16日晚上11点/格林尼治标准时间 1 月 17 日凌晨 4 点开始。
你需要做什么
如果您是一个只与以太坊交互的人(您并不运行节点),则无需执行任何操作。
矿工,交易所,节点运营商:
- 在 Geth 和/或 Parity 新版本发布后及时更新您的版本。
- 这些新版本尚未发布。新版本可用的时候我们会更新这篇文章。
- 链接和版本号以及说明将在此处提供。
- 我们预计会在此博客发布后的 3~4 个小时内发布更新版本。
Geth
Parity
- 升级到 Parity Ethereum 2.2.7-stable (推荐)
- 升级到 Parity Ethereum 2.3.0-beta
- 降级至 Parity Ethereum 2.2.4-beta(不推荐)
其他所有人:
Ledger、Trezor、Safe-T、Parity Signer、WallEth、Paper Wallets、MyCrypto、MyEtherWallet 以及其他未通过同步和运行节点参与网络的用户或代币持有者,
你不需要做任何事情。
合约所有者
- 你不需要做任何操作。
- 您可以选择调查潜在漏洞并检查您的合约。
- 但是,你不是必须要做什么,因为引入此潜在漏洞的更改将不会启用。
背景
ChainSecurity 的文章深入研究了潜在的漏洞,以及检查智能合约有无相关漏洞的方法。非常简短:
- EIP-1283 为 SSTORE 操作带来了更便宜的 Gas 成本
- 一些(已经在链上的)智能合约的代码模式,可能使它们在君士坦丁堡升级发生后容易受到重入式攻击(re-entrancy attack)
- 在君士坦丁堡升级之前,这些智能合约不会受到影响
使用 transfer()
或 send()
函数然后改变状态的合约会更容易受到攻击。这种合约的一个例子是两方共同接收资金、决定如何分割资金,然后启动这些资金的支付。
推迟君士坦丁堡分叉的决定是怎么作出的
像 ChainSecurity 和 TrailOfBits 这样的安全研究人员对整个区块链进行了(并且仍在持续)分析。他们没有发现任何此类漏洞的实际案例。但是,合约受到影响的可能性并非为零。
因为风险并不为零,并且排除风险所需的时间比计划的君士坦丁堡升级之前剩余的时间长,所以出于谨慎决定推迟分叉。
参与讨论的各方包括但不限于:
- 安全研究员
- 以太坊利益相关者
- 以太坊客户端开发人员
- 智能合约所有者/开发者
- 钱包提供商
- 节点运营商
- Dapp开发人员
- 媒体
时间线
- 太平洋时间上午 3:09
- ChainSecurity 通过以太坊基金会的 Bug 悬赏计划负责任地披露了相关的潜在漏洞
- 太平洋时间上午 8:09
- 以太坊基金会请求 ChainSecurity 公开他们的发现
- 太平洋时间上午 8:11
- ChainSecurity 的原文公开发表
- 太平洋时间上午 8:52
- Martin Holst Swende 在 ethsecurity 和 Gitter 频道 AllCoreDevs 中说:“请大家都看看这篇东西:https://medium.com/chainsecurity/constantinople-enables-new-reentrancy-attack-ace4088297d9。并且,@所有人,我们需要迅速确定潜在的后果并决定如何推进。分叉之前我们只剩下 37 个小时了”
- 太平洋时间上午 8:52 - 10:15
- 我们通过多种渠道讨论了相关的潜在风险、链上分析以及我们需要采取哪些措施
- 太平洋时间上午 10:15 - 12:40
- 关键的利益相关者也通过 Zoom 音频通话进行了讨论。Gitter 和其它渠道上的讨论也还在继续
- 太平洋时间上午 12:08
- 决定推迟君士坦丁堡升级
- 太平洋时间下午 1:30
- 通过多种渠道和社交媒体公开了这篇博文
本文由 EvanVanNess、Infura、MyCrypto、Parity、Status、以太坊基金会和 Ethereum Cat Herders 共同合作完成。
原文链接: https://blog.ethereum.org/2019/01/15/security-alert-ethereum-constantinople-postponement/
作者: Hudson Jameson