5 large

The DAO 合约攻击信息汇总

shaoping · 于 发布 · 最后由 deepfish回复 · 8788 次阅读

DAO出现了问题,需要社区决定如何解决。

请国内社区成员跟帖发表自己的意见,谈谈对如何处理DAO问题以及对于以太坊官方提出的软硬分叉的看法。Ethfans会汇总这些消息,并向以太坊官方传达中国社区的声音。

详情见:http://ethfans.org/topics/361


黑客的子合约地址:http://etherscan.io/address/0x304a554a310c7e546dfe434669c62820b7d83490#internaltx ,目前有超过350万个以太币被转移到该地址。


UPDATE


CRITICAL UPDATE Re: DAO Vulnerability

紧急状态更新:关于DAO的漏洞

Posted by Vitalik Buterin on June 17th, 2016.

Vitalik Buterin on 2016/6/17

原文编译如下:

The DAO目前正遭受攻击,攻击者正在一点一点的把The DAO保管的以太币转向一个child DAO. 攻击者利用的是一个递归调用的漏洞,通过在The DAO的split方法执行过程中再触发split, 在一个交易过程中支取多次以太币。

从The DAO中漏走的币现在留在这个地址: https://etherchain.org/account/0x304a554a310c7e546dfe434669c62820b7d83490 。即使目前不采取任何措施,攻击者在27天之内也无法取走这些币。

这个漏洞只影响The DAO, 以太坊本身是完全安全的。

开发者社区正在提议进行一次软分叉。不会有回滚,不会有任何交易或者区块被撤销。软分叉将从块高度1760000开始把任何与The DAO和child DAO相关的交易认做无效交易,以此阻止攻击者在27天之后提走被盗的以太币。这之后会有一次硬分叉将以太币找回。

矿工和矿池应该照常处理交易,等待软分叉的更新。如果同意进行软分叉应在代码释出后尽快升级。The DAO token的持有者和以太币的持有者请保持冷静。交易所可以照常交易以太币。

合约作者们应该注意:(1)要十分小心循环递归调用的bug,以太坊合约编程社区会在下周发布一些建议用来减少这方面的bug(2)避免新建包含超过10,000,000美元的合约,除了这两种例外:包含子代币的合约和其他一些价值是由以太坊平台之外的社会共识定义的系统,如果这些合约暴露出一些bug的话,它们容易被社区通过共识来硬分叉(如果MKR)。至少社区获得了更多关于修复bug的经验,因此更好的工具也会被开发出来。

开发者,密码专家和计算机科学应该注意,任何高级工具(包括IDE,验证,debuggers,符号追踪等),任何可以有利于写出安全的以太坊智能合约的工具,将会作为首要候选的开发奖励,Blockchain Labs grants and String将会自主提供这项经济奖励。

  • 1 large
    jan

    Vitalik正在参加一个安全会议商量对策, 预计半小时后会有官方更新

  • 3 large
  • 43 large
    lgn21st

    目前 DAO 官方通过一个随时 live update 的 blog 通告最新情况 https://blog.slock.it/dao-security-advisory-live-updates-2a0a42a2d07b

  • 1 large
    jan

    poloniex/bittrex一度停止交易和提现,现在已经恢复

  • 1 large
    jan

    谣言。以太坊的网络从没有停止过,仅仅是截图中的etherchain.org自己的节点停止更新数据了。

  • 1 large
    jan

    CRITICAL UPDATE Re: DAO Vulnerability

    紧急状态更新:关于DAO的漏洞

    Posted by Vitalik Buterin on June 17th, 2016.

    Vitalik Buterin on 2016/6/17

    原文编译如下:

    The DAO目前正遭受攻击,攻击者正在一点一点的把The DAO保管的以太币转向一个child DAO. 攻击者利用的是一个递归调用的漏洞,通过在The DAO的split方法执行过程中再触发split, 在一个交易过程中支取多次以太币。

    从The DAO中漏走的币现在留在这个地址: https://etherchain.org/account/0x304a554a310c7e546dfe434669c62820b7d83490 。即使目前不采取任何措施,攻击者在27天之内也无法取走这些币。

    这个漏洞只影响The DAO, 以太坊本身是完全安全的。

    开发者社区正在提议进行一次软分叉。不会有回滚,不会有任何交易或者区块被撤销。软分叉将从块高度1760000开始把任何与The DAO和child DAO相关的交易认做无效交易,以此阻止攻击者在27天之后提走被盗的以太币。这之后会有一次硬分叉将以太币找回。

    矿工和矿池应该照常处理交易,等待软分叉的更新。如果同意进行软分叉应在代码释出后尽快升级。The DAO token的持有者和以太币的持有者请保持冷静。交易所可以照常交易以太币。

    原文链接:https://blog.ethereum.org/2016/06/17/critical-update-re-dao-vulnerability/

  • 1 large
    jan

    对网络状态疑虑的朋友可以看星火计划的页面:https://stats.ethfans.org/

  • 51 large
    rubyu2

    一点补充:

    合约作者们应该注意:(1)要十分小心循环递归调用的bug,以太坊合约编程社区会在下周发布一些建议用来减少这方面的bug
    (2)避免新建包含超过10,000,000美元的合约,除了这两种例外:包含子代币的合约和其他一些价值是由以太坊平台之外的社会共识定义的系统,如果这些合约暴露出一些bug的话,它们容易被社区通过共识来硬分叉(如果MKR)。至少社区获得了更多关于修复bug的经验,因此更好的工具也会被开发出来。

    开发者,密码专家和计算机科学应该注意,任何高级工具(包括IDE,验证,debuggers,符号追踪等),任何可以有利于写出安全的以太坊智能合约的工具,将会作为首要候选的开发奖励,Blockchain Labs grants and String将会自主提供这项经济奖励。

  • 830 large
    flfq

    @jan 即使目前不采取任何措施,攻击者在27天之内也无法取走这些币。
    请问这个“27天”是由什么定义的?是以太坊的交易机制?还是DAO的合约中设置的限制?谢谢

  • 868 large
    askye

    @flfq 应该是 DAO 合约的限制

  • 51 large
    rubyu2

    @flfq http://ethfans.org/posts/split-the-dao-get-back-ether

    拉到最下面。等待27天的新的分割DAO的众筹期。

  • 830 large
    flfq

    @askye 哦,谢谢。这个设计还不错,还有点回旋余地

  • 31 large
    beenhero

    以太坊黄皮书作者 Gavin Wood 所在团队提出 theDAO 收场的方案:他们会准备发布一版 Parity,作为一个选项,theDAO 持有者可以选择恢复自己当初众筹的 ether. 当然这需要跟 Geth 及 CPP 团队也能达成共识的前提下。

    https://blog.ethcore.io/attack-on-thedao-what-will-be-your-response/

  • 794 large
    deepfish

    俺忽然十分善良地想到,今天这个情况会不会就是某人想写个正常的DAO合约不小心弄成递归了呢?

  • 1 large
    jan

    原文: https://www.reddit.com/r/ethereum/comments/4oj7ql/personal_statement_regarding_the_fork/

    Personal statement regarding the fork

    以太坊创始人Vitalik对分叉的一点个人看法

    vbuterin on reddit

    I personally believe that the soft fork that has been proposed to lock up the ether inside the DAO to block the attack is, on balance, a good idea, and I personally, on balance, support it, and I support the fork being developed and encourage miners to upgrade to a client version that supports the fork. That said, I recognize that there are very heavy arguments on both sides, and that either direction would have seen very heavy opposition; I personally had many messages in the hour after the fork advising me on courses of action and, at the time, a substantial majority lay in favor of taking positive action. The fortunate fact that an actual rollback of transactions that would have substantially inconvenienced users and exchanges was not necessary further weighed in that direction. Many others, including inside the foundation, find the balance of arguments laying in the other direction; I will not attempt to prevent or discourage them from speaking their minds including in public forums, or even from lobbying miners to resist the soft fork. I steadfastly refuse to villify anyone who is taking the opposite side from me on this particular issue.

    我个人认为通过软分叉将以太币锁定在The DAO里面以阻止攻击的提议,从平衡的角度看,是个不错的主意,而我个人,也从平衡的角度,支持这个提议,我支持这个分叉的开发工作,支持矿工到时候升级客户端来支持这个分叉。然而我也认识到大家对这个提议有激烈的争论,无论哪一方的观点都有强力的反对。在事情发生后的一个小时里我收到了大量的消息希望我能有所行动,其中绝大部分希望能看到积极的行动。所幸的是我们不需要回滚交易,不会对用户和交易所造成不便,这更使我倾向于采取行动的一方。也有许多人,包括在基金会内部,倾向于另外一方。我不会阻止也不会反对另一方在公开场合宣传他们的观点,甚至是游说矿工来抵制这个软分叉。在这件事情上我会坚决的不与任何站在相对我另一方的人争辩。

    Miners also have a choice in this regard in the pro-fork direction: ethcore's Parity client has implemented a pull request for the soft fork already, and miners are free to download and run it. We need more client diversity in any case; that is how we secure the network's ongoing decentralization, not by means of a centralized individual or company or foundation unilaterally deciding to adhere or not adhere to particular political principles.

    矿工如果支持这个分叉,现在就有个选择:ethcore团队已经在Parity客户端里面实现了一个软分叉,矿工可以自由下载和运行。无论如何更多样化的客户端都是好事,这是我们保证网络安全运行的方法,不依靠任何中心化的个人或者公司或者基金会单方面的决定支持那一种观点。

  • 5 large
  • 3 large
    tomlion
    在这件事情上我会坚决的不与任何站在相对我另一方的人争辩。

    V放弃了他的影响力

    动容

  • 1 large
    jan

    原文:https://www.reddit.com/r/ethereum/comments/4oithy/a_too_big_to_fail_political_hard_fork_is_very/

    A "too big to fail" political hard fork is very risky and could significantly hurt Ethereum beyond what TheDAO losses will cause.

    Submitted 4 hours ago * by Rune4444

    "大而不倒"的政治性的硬分叉非常危险,可能会对以太坊造成比TheDAO的损失更大的伤害

    Setting the precedent of an ETH balance altering hard fork due to a Too Big To Fail fuck-up could permanently ruin Ethereums reputation, and cause competitors such as rootstock to take over Ethereum projects and users that don't want to be at receiving end of future political hard forks. Easiest way for me to illustrate this argument is: what happens if a government asks the foundation for "terrorist funds" to be seized or want a hard fork to seize funds by someone who hasn't paid their taxes?

    因为“大而不倒”的原因而开一个修改以太币账户余额的先例可能会永久摧毁以太坊的声誉,类似rootstock的竞争者也许会借此机会超越以太坊,吸收不同意这个决定的用户。对此一个最简单的解释是:要是将来政府请求基金会锁住恐怖分子或是逃税犯的钱,改怎么处理呢?

    I believe the best approach is to allow miners and exchanges to unilaterally censor transactions involving the ETH that has been stolen - with wide adoption this would effectively permanently lock up the ETH and ensure the attacker doesn't earn any money from their crimes, as well as preventing the ETH price from tanking due to the attacker dumping the stolen ETH.

    我认为最佳的方案是让矿工和交易所针对性的处理与被盗以太币相关的交易 - 如果得到广泛支持这实际上永久性的锁住了这些以太币,保证攻击者不可能从他们的犯罪行为获得任何收益,同时又避免了由于攻击者抛售导致的以太币价格暴跌。

    I am convinced it will be entirely impossible to push through a controversial hard fork to bail out the DAO and if it does happen it will split the community and destroy the value proposition of the current Ethereum blockchain.

    我相信一个兜底The DAO的充满争议的硬分叉提案几乎不可能通过,如果通过我们的社区将会分裂,以太坊的价值主张将被摧毁。

    Edit: I support the soft fork as proposed by vitalik here, it is the best middle way and the best way to prevent a hard fork from happening as it should be enough to remove the only legitimate argument for why a hard fork would benefit ethereum (prevent attacker from dumping ETH).

    更新:我支持vitalik在这里提出的软分叉,这是最好的中间方案,也是阻止硬分叉最好的方法,因为它足够化解支持硬分叉的唯一有效理由(阻止攻击者抛售以太币)。

  • 3 large
    tomlion

    对分叉的观点可以到这里发表

    http://ethfans.org/topics/354

  • 1 large
    jan

    以太坊的 Mt Gox 时刻可能会转化为更成功的机遇: http://ethfans.org/topics/352

  • 1 large
    jan

    ethcore团队的更新: http://ethfans.org/lgn21st/articles/112

    注: ethcore是由ETHDEV前CTO Gavin Wood领导的独立咨询公司,不属于以太坊基金会

  • 378 large
    blueboy

    dao的问题应该dao自己想办法解决,就像电信诈骗一样,钱转给别人了,让银行给你改账本,银行干吗?以太坊核心人员千万不要自己开银行,自己说了算的事,对以太坊的打击是致命。
    THE DAO本是以太坊平台里的一个应用,本应和以太坊有明确的界限,现在因为开发团队里的人参与太多,导致混为一潭,目前应先划清界限,不要试图用改变以太坊平台来解决问题,应该用DAO自己的方式解决问题,或呼吁社区尽量不要接受这笔脏款。

  • 378 large
    blueboy

    就像遇到电信诈骗,追回赃款,就要靠改银行账本吗?问题是要想办法去解决,但方法不对

  • 51 large
    rubyu2

    ethcore 团队的又一篇更新:

    http://ethfans.org/topics/356

  • 378 large
    blueboy

    首先要划清DAO和以太坊的界限是当务之急。

  • 794 large
    deepfish

    我们现在有什么机制来协调和做出决定,只是在四处发发牢骚(不知道谁能看见或在意)和坐等某些(具体也不清楚到底哪些)大神闭门会议然后拿出“共识”吗?

    这需要协调和考虑从技术的可能性到社区价值观,从整个以太坊生态环境的各种利益相关者,到DAO参与者,直接受影响或间接影响,矿工,等等各方的利益,以及所谓的社区的价值观,社会影响。

  • 51 large
    rubyu2

    @deepfish 不是闭门会议,各方的响应基本在博客和社区里都能看到。

  • 794 large
    deepfish

    但很分散和缺乏正式的管道吧?@rubyu2

  • 378 large
    blueboy

    有人失误,肯定就要有人买单。走分叉的路,DAO的失误等于没有失误,等于整个社区为此次事件买单,显然不合理。

  • 378 large
    blueboy

    @rubyu2 能不能帮忙反馈一下,我的意见,谢谢。

  • 128
    tyrone

    @jan 最后盗币的动作是靠什么方式停下来的。

  • 128
    a86241722

    就在四个多小时前,全球最大的众筹项目,基于区块链技术的DAO传言被攻击,导致DAO的价格出现大幅下挫,并且以太坊的数字代币以太币也出现价格剧烈波动。

  • 5 large
    shaoping

    @tyrone 黑客停止了提币。因为有软分叉威慑。看黑客心情了。。。。。。

  • 5 large
  • 51 large
  • 51 large
    rubyu2

    分割DAO也是容易被攻击的:http://ethfans.org/topics/359

  • 5 large
    shaoping

    从技术角度剖析针对THE DAO的攻击手法 : http://ethfans.org/posts/114

  • 128
    jzofsv

    Layering in systems and segregation of duty are crucial to the success of the platform and ecosystem. ANY immediate hack to stop the bleeding, is somewhat acceptable. That said, there needs a systematic approach resolve problems like this - as ethereum ecosystem grows, like any ecosystem, if powerful authorities come demand some remedies or anything, you MUST comply.

  • 128
    jzofsv

    In implementing PDX DaaP, PDX's way of maturing blockchain for real-world mission-critical use cases, as briefly outlined in http://www.pdxtech.biz/whitepaper/, we introduce this measure to tackle the problem just in case it's of any help:

    • SOS freeze tx, a special highest-priority tx to freeze "normal" potentially problematic txs. The scope is access controlled.

    • IMMEDIATELY, followed by a neutralization transactions to offset the damage caused by txs deemed illegit.

    • Cross-contract write access always via the blockchain, so that it always is subject the chain properties: consensus, non-repudiation and immutability.

    • The block chain does not "validate" tx, so all txs are valid to the chain, and it's up to the contract to decide validity and act accordingly.

    This way, when something happens, we can always quarantine the problem and solve it as timely as possible, and as non-disruptive to the ecosystem as possible.

    Just some high level thoughts FYI.

  • 128
    jzofsv

    To clarify, freeze and neutralization can be on tx, account or anything worth action upon.

  • 31 large
    beenhero

    一群自称是「罗宾汉」的白帽队伍正在转移 theDAO 账户里的余额,截至当前超 720万的 ether 已被转移到由白帽控制的 childDAO。
    该 childDAO 里有两个账号参与投票,如果你是,请与白帽团队取得联系,
    0xb97ba16dfafa8fc5824c029f0653cc03a1796e99
    0xe1e278e5e6bbe00b2a41d49b60853bf6791ab614

    https://www.reddit.com/r/ethereum/comments/4p7mhc/update_on_the_white_hat_attack/

  • 31 large
    beenhero

    从 Ethereum 基金会开发者(Mist主开发者) Alex van de Sande 最近的更新信息得到,
    目前有三个合约正在转移 theDAO 的 ether,分别是:
    - http://etherscan.io/address/0x84ef4b2357079cd7a7c69fd7a37cd0609a679106
    - http://etherscan.io/address/0xf4c64518ea10f995918a454158c6b61407ea345c
    - http://etherscan.io/address/0xaeeb8ff27288bdabc0fa5ebb731b6f409507516c

    目前这三位 'attacker' 的身份尚未表明,是白帽还是黑帽不得而知,我们希望他们是白帽并尽快与 Alex van de Sande 取得联系。

    BTW,0x84ef4b2357079cd7a7c69fd7a37cd0609a679106 该帐号转移数据量非常大(491 ether),当前看到是 112,073.341917436 Ether ($1,573,509.72)

  • 31 large
    beenhero

    theDAO 账号里的 ether 已经基本归零,目前还剩:13.91685952 Ether ($194.84),
    都被转移到了「黑帽」「白帽」的若干个 childDAO 里去了,
    除了之前公布的白帽团队转走了 7,277,337.03991729 Ether ($101,882,718.56) ,
    还有三个尚未表明身份的合约,分别转移了:

    以上,希望他们是白帽 :(

  • 31 large
  • 31 large
    beenhero

    [–]LefterisJP 5 points an hour ago
    Please also note that proposal #99 (http://etherscan.io/token/thedao-proposal/99) with created child DAO: http://etherscan.io/address/0x84ef4b2357079cd7a7c69fd7a37cd0609a679106 is part of the whitehat effort of the group.

    0x84ef 合约被表明是白帽身份 :)

    注:LefterisJP 是 slock.it 团队成员

  • 794 large
    deepfish

    补充一下前面 @beenhero 的说明:
    所谓"白帽"转移ETH的(主要?)合约地址:
    合约:WhiteHatDAO
    http://etherscan.io/address/0xb136707642a4ea12fb4bae820f03d2562ebff487#internaltx
    ETH Balance: 7,277,337.03991729 Ether ($109,014,508.86)
    从交易数据看,大约北京时间6月22日凌晨5点半左右启动,9点半左右结束,彼时TheDAO的ETH应该已经转空了。

    以太坊基金会首席设计师Alex Van de Sande对“白帽行动”所做的一个说明发布于早晨6点20左右:
    https://www.reddit.com/r/ethereum/comments/4p7mhc/update_on_the_white_hat_attack/

    对照交易所数据,ETH/DAO的价格在“白帽”出手消息发出后的时间(小时K线反弹出现在7点)应声强烈反弹,现在稍回落但仍保持20%以上的幅度。

  • 5 large
    shaoping

    https://www.reddit.com/r/ethereum/comments/4p9z93/it_seems_attacker_just_targeted_the_whitehatdaos/

    似乎黑客在对白帽的合约进行攻击,已经开始split白帽合约。

  • 794 large