教程

如何分割DAO取出以太币

张亚宁   |     |   1486 次阅读

Default featured image huge

介绍

如果某个代币持有者,或者一批代币持有者,不同意提议负责人的决定和相应地址的提议,他可以从原有的DAO中分割出新的DAO。这个机制主要是为了避免“大多数人抢劫少数人攻击”,在白皮书的第四节里有描述。

这个过程会销毁他所有的代币,将他在原DAO所占份额的Ether(注:extraBalance账户不计入),以及他所占份额的奖励代币rewardTokens(用来获取他所占份额的未来收益)转移到新的DAO。

完成操作之后,将不能再撤销!任何参与分割的人,应该知道他到底在做什么,以避免不必要的损失。

过程

为了开始一个分割,一个代币持有者需要创建一个提议,且newCurator标志为truerecipient指定为新的DAO的负责人(见https://github.com/slockit/DAO/wiki/How-to-create-a-proposal )。每一个想要参与新DAO的代币持有者,需要投票赞成这个提议( https://github.com/slockit/DAO/wiki/How-to-vote-and-execute-a-proposal )。在经过至少一周的讨论期后,代币持有者可以调用函数splitDAO
这个函数有两个参数:
* proposalID 新提议的ID
* newCurator 新提议负责人的帐户地址(或者多重签名钱包)

这个函数,它会检查:投票截止日期已过,新DAO负责人和原DAO不同,交易发送者投票赞成提议,以及交易发送者没有投票到其他提议(这个提议的截止日期在分割DAO提议之后)。

第一个调用这个函数的代币持有者会自动创建新的DAO。这个过程中,原DAO中的帐户余额,DAO奖励代币的余额(见白皮书第七节)以及存储在splitData里的DAO代币的总供应量,都会平均的分配到DAO。
这个过程后,交易发送者所拥有份额的ether和奖励代币,都会转移到新的DAO中。最终,他的DAO代币会被销毁。

为了找到新的DAO地址,可以调用getNewDAOAdress函数,需要传递proposalID为输入参数,返回新地址。

新的被创建出来的DAO,会和原DAO一样要经过27天的新建期。这个时间针对,每一个投票提议(通过调用splitDAO参与新的DAO)的代币持有者。

经过这段时间后,新的DAO完全开始运转,负责人可以增加地址到白名单,提议也可以被创建,投票,执行。

注意

新的DAO会有一个押金为0的提议。因此,在新建期之后第一个动作应该是产生一个提议将此值提高到一个合理的值。

警告

如果是一个个人分割,通过分割你想取出属于你的ether,那么有一些地方你需要明白。任何一个人可以参与到你的个人分割中。如果某人拥有更多的代币,比你想要参与的多,那么他可以通过对你的提议投反对票对你造成麻烦。一旦你成为负责人,他将永远不会偷走你的ETH,但是他可以将他的ETH锁定在你的DAO中来阻碍你取出你的ETH。关于这方面的更多细节,以及为什么这不是一个严重的问题Why-The-Stalker-attack-is-a-non-issue

避免这种情况发生的办法,就是在votingDeadline之后,检查除了你是否有其他的投票参与了提议。如果有,并且他们比你更多的代币,你可以不调用splitDAO()。如果没有,那么调用splitDAO(),确保没有其他人参与到你的个人DAO中。

原文:https://github.com/slockit/DAO/wiki/How-to-split-the-DAO

译者:@rubyu2

译者注:分割DAO机制在最大程度上避免了“大多数抢劫少数”的攻击。这在现实中的实体组织是无法实现的,这在保护少数人权利上是更大的民主和自由。

 
6 人喜欢