DAOstack:Arc平台

在我们2017年初创建DAOstack的时候,我们有两个关于DAO的预想。第一个是去中心化的自治组织(DAO)将会是货币区块链最重要的用例,第二个是我们无法预测这些DAO的模式,并且它们将会快速发展。 因此,我们决定构建Arc — — 以太坊网络上DAO的通用平台。
Arc是一个模块化、易于升级的平台,可以快速准确地选择管理系统。我们正在创建一个开放的可互操作组件库,以便快速、轻松地组建新组织。这与网站的WordPress模型有些相似。Arc一名的来源是希腊语arche一词。
架构

架构层次可能是构建基础架构时面临的最大挑战。我们需要建立一个足够灵活的平台,以适应所有不同类型的组织和不同的管理理念。这里关键词仍然是模块化。 经过漫长的试验过程后,系统的当前版本采用以下形式:

DAOstack:Arc平台

首先注意图中的每个方框都是合约。 (确切地说,它们也可以是代理+逻辑合约。)左边的三个合同是代币、声誉和机构头像,我们称之为操作者(或机构)。代币可能不需要解释,其是以太坊网络中最受欢迎的用例,但声誉和头像确实需要解释一下。
头像是区块链上组织的外在形象和化身,例如如果组织要拥有任何东西的所有权,如对合同或资产的所有权,那么其地址必须是该组织图片中展示的地址。
声誉需要解释更多,因为不同的人在使用“声誉”这个词的时候会有不同的看法。在Arc中,声誉代表了你在给定DAO中的决策权。它是一维的,这意味着地址和数字之间有一个简单的映射。它与代币非常相似,但有两个主要区别:声誉是不可转让的,但是代币可以被DAO授予或带走。
在图的右侧,我们呈现了方案。方案是简单的逻辑部分,包含可以在DAO中执行的不同操作。方案的一个示例是ICO方案,其中将ETH发送到DAO的代理接收组织的代币作为回报。另一个例子是资助提案的计划,每个人都可以对提案进行建议和投票,如果提案获得批准,则会自动获得资助。
在底部有全局约束。在考虑模块化逻辑时,几乎强制要求全局约束的概念,因为人们通常希望防止模块违反某些总体规则,如一个组织的最高声誉值会有一个上限,或者组织资金的利用率会有一个上限。
接下来我们有控制器,它是一个访问控制模块。其记录了DAO中所有已注册的方案以及每个方案的权限。此外,它还保留所有全局约束的记录,并通过还原违反其中任何约束的事务来强制执行它们。
最后一种类型的组件是投票机制,也称为管理模块。这些组件允许决策过程的模块化,允许快速迭代和开发这些模块。今天实施的主要投票机制是基于全息共识协议,也是DAOstack的去中心化治理核心模型。
代码回收和效率提升
建立智能合约平台时要考虑的第一个问题是代码回收问题。构建共享组件有许多好处,但它也增加了复杂性、安全性、效率和易用性方面的挑战。
可以考虑两种主要方法。
一种是合同即服务(CaaS)方法。在这个概念中,单个合同用于服务于许多组织或代理。作为CaaS的一个例子,如由多个单一合约组成的多方合约,它为任何希望使用它的组织保留余额,但不是每个组织部署自己的合同。这样可以在部署时提高效率,因为合同仅部署一次即供所有人使用。只需要在每个交易中添加一个参数,指示正在引用哪个钱包,这可以高效完成部署工作。
CaaS方法的主要缺点是它使合同更复杂,可能会产生安全成本。此外,在构建合同之间的互操作性时,它可能会带来挑战,因为区块链标准是地址代表某种“身份”,而这里我们有一个代表多个身份的地址。
代码回收的第二种方法是代理方法。在这种方法中,人们部署逻辑合约以及代理合约,但这只会使委托调用成为逻辑合约。这种方法在部署上花费的成本低于为每个实例保留与其中所有逻辑的单独合同,但由于添加了delegateCall,因此每个事务的成本会更高。delegateCall的效率成本在“转移”呼叫中最成问题,“转移”呼叫限制为2300次(最近我们提出修复Github的问题)。代理方法的另一个缺点是编码的额外复杂性,特别是初始化合同。
当前的Arc版本使用CaaS方法。出于上述忧虑,我们正在努力研究代理方法,因为这个选项也会提高可升级性(顺便提一下,这也有隐患且及其复杂)。
安全
模块化系统的主要优点是更容易审核和更安全,因为其可以彻底检查和测试简单的部件。这当然不是保证,但它是解决问题的一种方法。ChainSecurity专家对这种方法进行了测试,Arc也是在此平台通过其层层审核的。
在任何情况下,我们在DAOstack中的主要安全方法都是通过实际测试得来的,这意味着将代码放在现实世界中,并使用真正的资金,使人们尝试去使用它,从而帮助我们找到错误。我们打算慢慢增加合同的资金数额,待我们能够确保它们是安全的。
路线图
Arc仍然是一个初始版本,代号为Genomics。代号为Genuine的下一个重要版本主要包含模块化和可升级性方面的改进。本预计于2019年第二季度发布,但按照目前的速度,可能会更早发布该版本。