摘要:本文描述了分布式自治组织(DAO)代码在自动化组织治理及决策方面的首次应用。这种代码能够用来实现传统公司形式以外的个人团队协作,也可以被注册的公司实体用于对公司内在规章或外部法规实施自动化规则治理。本文首先阐述了DAO的概念,然后讨论了少数群体的权利问题,并提出了一种对于“抢劫少数群体”攻击向量的解决方案。最后,使用基于以太坊的Solidity编写的智能合约,具体实现了第一代DAO实体。
1.引言
所有类型的公司实体都受某种规则的管制,这些规则新阐明了公司允许及禁止的各类行为。这些规则可以是公司所有者之间的私属契约(如章程或股东协议);也可以是在当事人之间缺乏书面协议时,依据法律强制执行的规定。
从历史上看,企业只能通过人(或通过最终由人所控制的企业实体)行事。这提出了两个简单而基本的问题。无论私人契约或公共法律如何要求,(1)人们并不总是遵守规则;(2)人们并不总是同意规则所要求的内容。没有公司形式的协作必然不能解决这两个问题,而且还可能会引发其他问题。在没有公司形式的情况下,明确的书面协议将取代不明确的非正式“理解”,从而以公司形式提出的合规保护将不再通行。
一个组织内部的违规行为并不总是容易被察觉,而且一旦利益相关者损失了财富,违规的动机可能对于利益相关者而言就无关紧要了。尽管不当行为可能会使公司或其管理层承担民事或刑事责任,但对于已经蒙受损失的投资者来说,惩罚并不能带来多少安慰。
在众筹(Massolution [2015])领域,这个问题更为显著。一方面,它使小型资助者更容易投资于大型项目,也使企业家有可能获得以往不容易获得的财务支持;另一方面,小投资者仍然容易受到财务管理不善或直接欺诈的影响,而且由于他们在企业中持有少量股份,他们可能缺乏发现问题、参与治理决策或随意收回投资的权力(Knibbs [2015], Biggs [2015])。同时,公司领导及管理层可能会被指控渎职或管理不善,尽管基于他们对其义务的理解和对适用规则解读,他们认为他们的行为是守信的。
本文提出了一种使用以太坊(Buterin [2013],Wood [2014])的潜在解决方案,以太坊区块链技术融合了一种图灵完备的编程语言和智能合约(Smart Contract)。本文列举了一种创建组织的方法,在该组织内,(1)参与者直接实时控制捐赠资金,(2)治理规则将应用软件进行形式化、自动化并强制执行。特别地,标准的智能合约代码(Szabo [1997],Miller [1997])已经编写完成,可以用来在以太坊区块链上形成一个去中心化的自治组织(DAO)。本文解释了DAO代码如何运行,重点介绍了一些基本构造和治理特征,包括结构、创新和投票权。
首先,本文阐述了一种DAO的创建阶段及基础功能;接着,讨论了少数人的所有权问题,提出了“多数人抢劫少数人的攻击”问题的解决方案:“DAO分割”;然后,详细探究了智能合约代码;最后,总结“DAO分割”的解释和详细规范。
智能合约代码可以在https://github.com/slockit/DAO/下载访问。
要注意的是,目前,有关DAO的法律地位的争议仍然非常活跃且激烈。不是每个人都有相同的定义。一些人说,它们是自治守则,其运行可以独立于法律制度;也有其他人说,它们必须由人们或人们创造的实体拥有或操作。未来将产生许多应用案例;并且,DAO代码也将随着时间而发展。最终,DAO的功能及其法律地位将取决于许多因素,包括DAO代码如何使用、在何处使用以及由谁使用。本文并没有对DAOs在世界范围内的法律地位进行推测。本文无意提供法律建议或结论。任何使用DAO代码的人都将自己承担风险。
2.DAO的概念
DAO代码用“Solidity”编程语言编写。DAO被部署在以太坊区块链上。一旦采用,DAO的代码就需要“Ether”(译者注:以太币,以太坊的通行加密数字货币,下文可能根据场景混合使用英文:Ether或中文:以太币)在以太链上进行交易。“Ether”是为以太网提供能量的数字燃料(译者注:为交易向以太链提供的Ether,被称为“Gas”)。没有Ether,一个DAO什么也做不了,所以一个DAO的第一件事就是募集Ether。在采用DAO代码之后,在代码中定义的初始化创建阶段(Creation Phase),Ether被发送到DAO智能合约地址。
在以太币的交易中,DAO为发送了以太币的帐户创建并分配Token(即:通证、代币,以下译文两种说法可能并存),该Token授予其持有者投票权和所有权。产生的Token数量与交易的以太币数量成正比。Token的价格随时间而变化(参见第5节)。当创建阶段结束时,Token所有权可以在以太链上自由转让。
在应用时,DAO代码设置了一个最低的DAO“创建标的”(译者注:即为了创建DAO而募集Ether的数量标的)参数和“创建期间”参数。如果最低创建标的在创建期间结束没有达标,所以的比太币原路返还。创建阶段结束,募集到的所有以太币,标记为:Ξraised,所有Token的总量,标记为:Ttotal。
DAO根据DAO代码存储、交易以太币以及其他基于以太网的通证(Token)。它并不提供其他功能,不能构建产品、编制代码或开发硬件。DAO需求一个“契约方”(Contractor)去完成其他工作目标。DAO通过接受“契约方”的提案(Proposal)选择“契约方”。
任何DAO通证持有者可以用DAO的Ether提交提案变成“契约方”,标记为:Ξtransfer。如果提案获得通过,则DAO转移Ether至一个代表了该提案的智能合约。这样的智能合约可以参数化,并使DAO能够与其选择支持的项目进行交互并对其产生影响。DAO与待资助项目之间的这种协议的一个例子可以在附录A.4中找到。
DAO根据成员控制的通证数量决定其投票权重。通证(Token)是可分的、无差别的、且能
在帐户之间轻松转移。在契约中,成员的个人行为不能直接确定。有一个设定的时间框架tp来讨论和投票任何给定的提案。在我们的示例中,此时间范围由提案的创建者设置,并且对于常规提案,要求至少两周。
在tp过去之后,任何通证持有者都可以调用DAO合约中的一个函数,该函数将验证多数投票赞成该提案并是否达到法定数;如果达到,该函数将执行提议;否则,提案将被关闭。
最小法定数表示投票有效所需的最小Token数量,用qmin表示,计算方法如下:(1)=+∙+)
其中d是min Quorum Divisor。此参数的默认值为5,但如果超过一年未达到法定数,则该参数将加倍。是DAO拥有的以太币数量,是此DAO拥有的激励代币数量,如第7节所述(另请参阅A.3中的reward Token)。+等于用于创建DAO Token的以太币加上收到的奖励,换一种说法,即DAO曾经收到的Ether总量。
这意味着,最初,任何提案的通过都需要达到所有代币的20%的法定数量。如果转移等于DAO曾经收到的以太币数量,那么法定数需要53.33%。
为了防止“提案垃圾”,在创建提案时可能需要支付最低限度的存款,如果达到法定数,则会获得退款。如果未达到法定数,DAO将保留提案存款。提案存款值可以由DAO通过另一个提案去更改默认值。
3.符号
在本文中,始终用于表示基于基础单位wei的一定数量的以太币,wei定义为:
1wei=10-18 Ether (Wood [2014])。类似地,一定数量的基本单位DAO通证用T表示,定义为:10-16 DAO Token。
4.“多数抢劫少数”攻击
少数股东权利可能是任何公司形式都存在的问题。少数群体权利可以通过公司治理文件或法规或法官制定的法律的规定予以保护或解决。但是,这些解决方案中的许多都失败了,因为少数股东可能缺乏投票权或“用脚投票”并轻松获取资金的能力。本文在DAO代码中提出了解决这个问题的方法。
每个DAO必须缓解的一个问题是,大多数人会有能力在DAO形成后通过改变治理和所有权规则来抢夺少数群体的权益。例如,在充能期间(译者注:即募集创建期间)或创建之后的具有51%代币的攻击者可以提出将所有资金发送给自己的提案。由于他们将持有大部分代币,他们总能通过他们的提案。
为了防止这种情况,少数人必须始终能够取回属于他们的部分的资金。我们的解决方案是允许DAO裂变成两个。如果个人或一组Token持有者,不同意提案并希望在提案执行之前取回他们所拥有的Ether,他们可以提交并批准一种特殊类型的提案以形成新的DAO。然后,投票支持这个提案的代币持有者可以将DAO分裂,并将其所持代币转移到这个新的DAO中,单独留下的部分只能够使用其自有的Ether。
这个思路最早有Vitalik Buterin在一个博客文章中提出(Buterin [2015])。
这个简单的补救措施没有解决的问题是选民冷漠:一些Token持有者可能没有积极参与他们的DAO并且可能不会密切关注提案。攻击者可以利用这个形成优势。即使少数人有机会取回他们的资金并拆分DAO,但有些人可能不知道这种情况并且没有采取行动。为了使DAO被认为是安全的,还必须保护不活动的Token持有者免于损失。我们提出的方案是将每个DAO限制设置一个监管人(Curator)来实现的。该监管人控制着涉及DAO所有提案的能从DAO中接收Ether的地址列表。这为DAO监管人提供了相当大的权力。为了防止滥用这种权力,DAO可能会投票选举新的监管人,这将可能会导致如上所述的DAO分裂。
任何Token持有人都可以提出投票选举新的监管人。实际上,即使是单个Token持有者也能够取回其剩余的Ether,并保留他们与之前贡献相关的任何未来激励的权利,因为这些将自动发送到新的DAO。激励的定义是指:通过DAO资助的产品产生的、DAO收到的任何Ether,在第7节中进一步将详细说明。
选择新监管人的过程如下:任何Token持有者都可以为新监管人提交提案。在这种情况下,不需要提议存款,因为攻击者可以投票支付极高的存款,防止任何分裂。该提案的辩论期为7天。这比常规提案所需的最低要求少7天,允许任何人在潜在的恶意提案通过之前取回他们的资金。没有法定数要求,因此每个Token持有者都有能力分裂出自己的DAO。辩论期间用于讨论新的监管人(链上或链下讨论均可)并进行不具约束性的第一次投票。在第一次投票之后,Token持有者可以确认其结果。在多数人选择保留原始监管人的情况下,少数人可以保留原始监管人以避免分裂,或者反过来他们可以确认他们对新监管人的投票并将他们的部分Ether移动到新的DAO。
作者:CHRISTOPH JENTZSCH ,FOUNDER&CTO,SLOCK.IT [email protected]
译者:IanYan