The DAO项目已遭受到了一次攻击,目前攻击者正试图把智能合约当中的以太币转移到另一个子DAO。这次攻击利用的是称为递归调用(recursive calling)的漏洞,攻击者称其为“分割”(split)功能,然后再通过递归式分割,将收集到的以太币通过单次交易转走。
从The DAO泄漏的以太币已转到了一个子DAO当中,地址:https://etherchain.org/account/0x304a554a310c7e546dfe434669c62820b7d83490;
即使不采取任何行动,攻击者在27天内也无法取走任何以太币。这一问题只影响The DAO本身,以太坊本身还是完全安全的。
开发社区提议软采取软分叉方案(不会产生回滚,不会有交易或区块被“逆转”),从第1760000个区块开始(代码公布后,会提供精确的区块号),使hash值为0x7278d050619a624f84f51987149ddb439cdaadfba5966f7cfaea7ad44340a4ba的这笔交易无效,以阻止攻击者在27天后拿走这部分以太币。此后会有一次硬分叉投票,如果通过,代币持有者则可恢复这部分被泄漏的以太币。
如果矿工和矿池同意这种前进道路,应照常恢复处理交易,等待软分叉代码,随时准备下载并运行这些代码。DAO代币持有者和以太坊用户应听其自然,保持冷静。交易所可安全恢复以太币交易。
合约作者应注意:(1)必须要非常小心递归调用错误,并听取以太坊合约编程社区的意见,在接下来的一周里,社区很可能会解决这些bug,(2)避免创造包含超1000万美元价值的合约, 至少要等社区对这类错误有更好的经验,并开发出更好的工具以后。 |