网赚论坛

 找回密码
 免费注册
查看: 374|回复: 0
打印 上一主题 下一主题

关于 Parity 多签钱包账户冻结解释

[复制链接]

23

主题

93

帖子

94

积分

Ⅰ级财主

Rank: 1

积分
94
QQ
跳转到指定楼层
楼主
发表于 2017-11-20 14:00:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Parity 多签钱包合约再次发现重大漏洞,这是继七月份黑客攻击后又一新事件。不过此次漏洞并没有发生黑客盗币事件,漏洞导致使用 Parity 多签钱包的用户账户被冻结,此次漏洞只涉及使用 Parity 多签钱包合约的用户,imToken 用户不受影响。

事件快速回顾




问题最开始从 GitHub 的一个 issue 问题开始,结果演变成一个区块链历史上的一个惨案。GitHub 用户 devops199 在 Parity 项目开启了一个 issue #6995说:“任何人都可以杀掉你的合约”,该用户声称,他不小心杀掉: 0x863df6bfa4469f3ead0be8f9f2aae51c91a907b4 合约 ( 调用合约的记录:https://etherscan.io/tx/0x47f7cf ... 3f1482f690#internal ) 。
该用户调用了合约的 initWallet 方法 ,使自己成为合约的所有者。获得所有权后,他就杀掉该合约。

账户冻结的具体原因

initWallet 方法的漏洞在今年 7 月份就被发现,攻击者利用该漏洞获取了多签钱包合约的控制权,盗走了约 153000 ETH。Parity 已经修复这个漏洞,为了保护 initWallet 方法,添加了一个修饰符,确保合约部署过程中只能调用一次,如果攻击者试图多次调用 initWallet 方法都会被拒绝。但是现在有人又发现了新漏洞,该用户不是在多签钱包的合约调用 initWallet 方法,而是调用了多签钱包引用 library 合约的 initWallet 方法。之所以可以调用 initWallet 方法,因为 library 合约没有被初始化过,变量 only_uninitialized 没有被设置过。

使用 Parity 客户端部署一个多签钱包合约时,会使用 Parity 提供的智能合约模板。这个智能合约模板使用 delegateCall 方法调用上面提到的 library 合约地址。由于这个合约被 devops199 杀掉,多签钱包合约就变得无法使用,因为他们所有的逻辑都依赖于这个 library 合约。基本上,使用 Parity 客户端部署多签钱包合约都将受到影响 ,账户被冻结无法转账。

社区反应和进展


  • Parity 官方公布多签钱包合约漏洞,2017 年 7 月 20 日之后部署多签钱包的用户将受到影响,并承诺会短期内发布更新
  • 非官方的统计,151 个合约地址受影响,共计 513743 ETH 被冻结,PolkaDot、iconomi、musiconomi 都受到影响PolkaDot 官方承认,他们的多签钱包被冻结





localethereum 在 Twitter 发布一个非官方投票,社区 59% 的人认为没有必要分叉



最后

事件目前还没有定论,我们会继续关注事态的发展,但相信以太坊社区会找到解决方案来拯救被冻结的资金。

相关参考:
https://blog.springrole.com/pari ... lained-768ac072763c
https://blog.zeppelinos.org/parity-wallet-hack-reloaded/

原文:http://mp.weixin.qq.com/s/oEK4-OjxaacMWuYCeJlyyg
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

广告合作|Archiver|手机版|小黑屋|财富吧

GMT+8, 2024-11-17 03:05 , Processed in 0.358800 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.1

© 2014-2021 财富吧

快速回复 返回顶部 返回列表