DAO发展历史和经验教训
========

有些东西只能通过经历才来学习获得，无论是自己还是其他人的经历。在这篇文章，我们过去9个月的经历更好的说明这一点。

很多人都尝试去讲述DAO的故事，但他们只知道其中很小的一部分，流传着很多错误的信息。我们希望通过这篇文章可以提供一个清晰的DAO发展历程和我们从过去9个月学到的教训。

# 寻求自治
`slock.it`在一年前开始成立，其伟大的愿景是：通过区块链将所有的智能锁（smart locks）连接起来，使它们可以直接接受付款，并用于出租、出售或分享东西。而所有这一切的核心依赖于`以太坊电脑（Ethereum Computer）`。

在原型开发出来后，我们立马意识到其巨大的潜力。而这需要扩大业务来建立一个分散式共享经济。在伦敦`devcon1`会议上展现了我们的愿景和原型，并获得疯狂的一直好评。

在加密世界需要资金中来发展您的公司时，进行代币销售是一种很有前景的选择。但在我们编码完众筹合约之后，我们忍不住给予令牌持有者更多的权利。这就开始了DAO项目。

最开始，我们建立`slock.it`这个特定的智能合约来给令牌持有者关于资金如何使用的投票权。

然后，经过深层的考虑，决定给令牌持有者更多的权利：给他们资金的完全控制权，当然这只有在对智能合约支持的详细提案进行成功投票后才能实施。这个阶段，我们还依旧是这个特定的`slock.it DAO`的资金唯一接收者。

然而，我们想更进一步：建议一个“真正”的DAO，它是这个基金的唯一和直接接收者，并代表创建一个类似于公司的组织，可由数千名的创始人。另外，我们将项目的代码进行了开源，所有人都可以来审计代码、提升能力。

# The DAO的诞生
代码开源之后吸引了很多的志愿者来协助项目开发，当时DAO的Slack大概有5000多人，包括很多以太坊社区的专家也自愿来帮助DAO框架的开发。在框架v1.0发布之后，很多的DAO就在以太坊网络上部署了，其中有一个社区部署了名叫“The DAO”的合约，其在短短4周之内吸引了大约12M ETH（价值$150m）。这疯狂的表现大大的超出了所有人的预期！

DAO的代码是有针对性的保持简单，并排除了很多复杂管理模型，我们希望通过保持DAO framework核心代码尽可能的简洁来保障安全可靠。同时，随着筹资的资金越来越多，我们开始更加慎重的考虑安全性，并基于社区的一些改进提案着手进一步提升安全性。

# THE DAO被攻击了
* 2017/06/05，Christian Reitwiessner在solidity编写的智能合约中发现了一个违反模式可能导致攻击的问题。
* 2017/06/08，Peter Vessenes写了一篇关于Christian发现的问题的blog，以太坊开发者社区对这个问题基本都知道了。
* 几天之后，Marker DAO在他们的合约中发现了这个漏洞，并将资金转移到了安全的地址。
* 2017/06/12，Eththrowa宣布他在DAO的奖励相关代码发现了这一违反模式的应用。框架团队随后紧急的对此进行了修复。并发文“[DAO的资金没有风险](https://blog.slock.it/no-dao-funds-at-risk-following-the-ethereum-smart-contract-recursive-call-bug-discovery-29f482d348b#.yia3kj5c3)”的博文。
* 2017/06/17，攻击者利用splitDAO函数中的漏洞攻击了The DAO，并提现了大约`3.5M ETH`（约合50M美元）至子DAO。

# 资金恢复
社区专家们最原始的想法是通过软分叉来阻止ETH转移出DAO生态系统。但由于升级后的客户端程序存在DoS漏洞而最终导致软分叉失败。

软分叉失败之后，仅剩的方法就是硬分叉以太坊区块链来将筹资的资金退还到原始出资人手里。不幸中的万幸是由于故障安全机制，黑客盗走的ETH在一段时间内不能从子DAO中提取，这就给了我们时间来实施硬分叉来回滚黑客的盗窃行为。最后，在6月20日于区块高度1,920,000成功进行了硬分叉，矿工/节点在新的分叉上继续记账。

然而，令人惊讶的是旧链得到了超出预期多的人的支持。同时，交易所也将旧链上的代币（称为`Ether Classic`，以太经典）上架进行交易。

# 经验教训
作为`slock.it`的团队和创始人，我们对此次时间总结出6条简洁的教训：
* 教训1：当前还处于早期，智能合约安全问题将会随着经验增长而日益增加；
* 教训2：远离“不知道的未知东西”；
* 教训3：以太坊的工装依旧不成熟，但是在逐渐提升；
* 教训4：需要相应的制定适用于分散性系统的治理和投票机制；
* 教训5：逐步发布，而不是以一次性全部发布；
* 教训6：最小的复杂度。

# 总结

在整个事件经历中，我们学到了很多东西，并将继续学习。运用我们已经学到的经验，现在可以进入分散应用的光明前景，并将精心规划出DAO。

---
原文链接： https://blog.slock.it/the-history-of-the-dao-and-lessons-learned-d06740f8cfa5
