Colony v2:有效降低市场交易成本的DAO基础设施(下)
3.2资金队列
第2.1节描述了供资许可,用于在供资罐之间转移资金。这种许可是强大的——对于日常运作,最好通过更专门的机制来调解资金的分配。其中一种机制是资金队列,它利用时间作为驱动因素,实现无需投票的协作、异步和无信任决策。
资金队列背后的基本思想是,代币是随着时间的推移不断分配的,而不是以通过/失败的方式一次全部分配,用户输入控制分配的速度和方向。打个比方,我们可以把水从山上流下来,山的形状决定了水流的方向和速度。使用资金队列,用户可以确定此形状。而在基于投票的系统中,不受欢迎的提案完全失败,在资金排队的情况下,不受欢迎的提案只是需要很长时间才能完成,而受欢迎的提案很快就完成了。
colony的任何成员都可以提出资助建议。提议者必须拥有域的0.1%的声誉,该域是源和目标pot的最近的共同祖先,并持有相当数量的colony代币。这部分权益被用来帮助阻止对资金提案的滥发,并提供一种机制,使创造者可以因不良行为受到惩罚。
资金队列包含一系列资金提案,每个提案具有以下属性:
•创建者creator–创建提案的人。
•资金来源from-资金来源。
•To–资助pot基金的去向。
•TokenType–代币地址(0x0表示以太)。
•CurrentState–提案的状态(即未激活、激活、完成、取消)。
•TotalPaid–迄今为止转移的金额。
•TotalRequested–请求的总金额。
•LastUpdated–上次更新提案的时间。
•利率rate–资金利率,是支持声誉的函数。
我们区分了两种类型的资助提案:用于正常使用的基本资助方案(BFP)和用于基本资助方案不足或特殊情况的优先资助方案(PFP)。基本资金提案可以直接开始为目标公司提供资金,而优先资金提案必须在开始指导资金之前进行明确表决。此外,对于基本融资方案,目标罐必须是层次结构中来源的直接后代,而优先资助方案没有此类限制。当资金需要定向到不是来源的直系后代的地方,当资金率需要很高(包括立即支付)或当多个资金建议必须同时发生(例如在支付工资的情况下)时,应使用优先供资建议。
3.2.1详细属性
From、To和TokenType融资提案的目的是将TokenType的代币从一个pot移动到另一个pot。代币类型可以是以太或任何与ERC20兼容的代币。“发件人”字段必须是与colony中的域或支出相关联的资金罐,而“收件人”字段可以是任何资金罐。如果资金要从一个域“下游”转移到它的一个子域,一个基本的资金提案通常就足够了。
当前状态资金提案的状态为非活动、活动、完成或取消。只有积极的筹资提案才可以募集资金。一个基本的筹资提案在活动状态下开始,而一个优先的筹资提案在非活动状态下开始(即必须通过投票激活)。筹资提案在完成(当其支付总额达到请求总额时)或取消之前一直处于活动状态。
资金提案的创建者可以随时取消该提案(将CurrentState设置为cancelled)。这类似于任务的创建者,如果任务尚未分配给工作人员,则可以取消该任务。请注意,如果取消某项支出,则下次ping时,以该支出的资金罐为目标(To)的资金提案将自动取消,并且不会重新分配任何资金。然而,已经转移的资金不自动返回;它可能需要一个PFP将资金返回“上游”。TotalPaid和TotalRequested资金提案希望重新分配的资金总数称为其TotalRequested金额。由于供资提案随时间累积资金的机制,一项供资提案通常会收到部分但不是全部所要求的总额。迄今累计的代币总数存储在其TotalPaid金额中。资金提案的创建者可以随时编辑资金提案的TotalRequested属性,但这样做会将提案在资金队列中的信誉支持重置为零。此处的目的是,如果对接收者pot的要求发生变化(例如,域的范围增加),在colony其他人同意的情况下,可能很快实现对资金的变更。
费率和上次更新
当一个融资方案有资格累积资金时,它会以特定的利率进行累积,以“每秒代币”计价。因为没有用户交互,区块链上什么都不会发生,所以资金系统使用一种懒惰的评估形式。要申请提案到期的资金,用户可以“ping”提案,即用户手动请求按比例分配资金。ping时,将上次更新后的时间乘以比率,以确定如果资金流持续,提案在此期间将累积多少代币。此金额被添加到TotalPaid,资金被转移,当前时间被记录为LastUpdated。
3.2.2基本资助提案 (Basic funding proposals)
基本资助提案(BFP)是从某个领域的资金罐到其子领域的资金罐的资金提案。它开始于活跃状态,因此立即有资格获得资助。创建者可以随时取消它。
BFP的订购
创建时,一个基本的资金提案会放在队列的后面。用户可以根据其在支持时在源域中的声誉来给予建议“支持”。
信誉度越高的提案,其排名就越高。为建议添加支持(或以其他方式更新支持级别)的每个事务都会将建议插入队列中的正确位置。只有排在队伍前面的提案才能累积资金。
支持一项提案不需要任何费用(除天然气费用外),用户也不会获得任何直接利益;它并不代表他们将自己赢得的声誉置于危险之中,也不代表任何象征——它只是帮助提案更及时地获得资金,并通过帮助colony更好地运作间接地使他们受益。
BFP的资金比率
声誉越支持一项提案,它获得资金的速度就越快。该比率呈线性扩展,并且在该限制下,如果源域中100%的声誉支持基本的融资提议,则该融资提议将以每周域持有量(TokenType)的50%的比率获得融资。
目标是稳定和可预测的资源分配,由域的(声誉加权)优先级共同指导。
当用户支持一个提议时,用户和他们当时的声誉都会被记录下来。
因此,用户能够在稍后的日期更新其备份。然而,我们注意到这样的情况,更新不是自动的,即使用户由于不良行为而失去声誉,他们的支持在显式更新之前,级别保持不变。任何人都可以进行此更新-想象一下一个用户由于不良行为而失去了很多声誉,而其他用户却想这样做阻止该用户支持的资金提案继续累积资金。
我们强调,用户可以在支持提案时用自己的信誉来支持提案,因为支持提案的信誉不会随着用户信誉的改变而改变。如果由于这个系统中的一个怪癖,记录为支持一项资助计划的声誉最终超过colony该声誉总额的100%,那么资助发生的速度并不比100%快。
完成BFP
如果更新发现某个提案已获得全额资金(即TotalPaid=TotalRequested),则会将其从此队列中删除,以允许下一个最受欢迎的资金提案累积资金。显然,需要执行以下步骤:
1.计算资助提案获得全额资助的时间。
2.TotalPaid设置为TotalRequested。
3.从队列中删除BFP。
4.队列中的下一个BFP被提升到队列的顶部,其上次更新的时间被设置为在1中计算的时间。
在BFP被完全资助(从而完成)三天后,创造者的股份被释放。在此之前,可以通过仲裁许可来削减股权。
3.2.3优先供资方案(Priority funding proposals)
优先筹资建议(PFP)是一项筹资建议,可以要求以任何速率将资金从任何一个罐重新分配给任何其他任何一个。PFP从非活动状态开始,只能通过显式投票激活。投票是基于这两个罐子最近共同祖先的领域的声誉,而这两个罐子之间的钱正在转移。我们认为PFP将用于:
•从子域回收资金。
•从取消的任务中回收资金。
•跨域资助任务。
•拨出指定为个人薪金的资金。
•一次性支付大额款项。
与基本筹资提案不同,优先筹资提案没有排成一队——所有活跃的PFP都有资格随时获得资金。注意,由于转移的资金数额最终是可用资金的一个函数,太多的大型PFP可以通过大幅减少资金罐中可用资金的数量相互干扰(以及主要的BFP)。
3.3预算箱(Budget box)
作为资金排队的替代方法,colony可以选择使用预算箱在子域之间分配资金(或者在支出的多个接收者之间分配资金)。与资金排队(项目按顺序获得资金)相比,预算箱允许项目按比例从一些固定预算中并行获得资金。
3.4动议和争议
最成功的组织是那些能够有效和高效地做出决策、分工和部署资源的组织。通常,这些决策都是通过管理层次结构来制定的。但是不可信任的colony被认为是低信任的、分散的和匿名的——等级制度是不合适的。
在大多数DAO框架中,集体决策的机制通常是投票,而Colony是为组织的日常运作而设计的。在colony,对每一项决定都投票是完全不切实际的。重点应该放在“完成任务”上,而不是“申请许可”。因此,colony的设计以宽容为核心。任务创建不需要明确的批准,也不需要基本的资金提案或整个colony的任何数量的行政行动。
运动系统提供了一个自我调节机制,通过一套平衡的激励机制,让用户保持colony的和谐运行。它的目的是解决分歧,惩罚不良行为和欺诈行为。动议系统允许colony成员发出不赞成的信号,并可能迫使投票反对那些行为不当的用户。
当一个群体的成员感到有什么不对劲时,他们可以提出动议。通过这样做,他们从根本上提出,要么a)一个变量,或一个以上的变量,在colony应改变为另一个值,或b)一个用户,或一个以上的用户,应收到声誉惩罚。因此,我们称该动议的支持者为“改变”一方,反对者为“保留”一方。
提出动议的用户还必须质押colony的内部代币。本质上,他们是在邀请colony的其他人与他们意见相左。本着避免不必要投票的精神,除非有人站在“保留”一边,从而将动议上升为争议,否则动议将自动通过。
我们说,只要一项动议在“改变”和“保留”两个方面都得到支持,就已经发生了争议。争议一经提出,必须通过表决解决。
3.4.1提出动议
进行运动的用户提交以下数据:
•应更改的数据,或用户将受到处罚。
•应就此问题投票的声誉(每个域和技能层次结构最多一个)。
•证明应允许这些声誉进行相关变更。
第一项确定了动议的主题,以及上诉人认为国家应该是什么。第二点和第三点涉及上诉。colony的基本原则是:你不能向更高的管理层申诉决定,你只能向更大的声誉集团申诉。
例如,假设动议涉及“前端”域中的任务。上诉人可以选择让所有的“开发”声誉投票-我们说,该决定是“上诉到开发领域”。在这个例子中,第三点是证明域“frontend”确实是“development”的子域。任何决定都可以上诉到的最高域是根域,所有域信誉都有权投票。
每当上诉发生时,我们需要确保我们上诉的声誉是与被更改的变量相关联的声誉的父级。这是可以有效地做到的,因为元数据在创建时放置在声誉(域)上,其中至少包括指向直接父级的指针。当一个用户做一个动作时,他们不是直接指定他们所感兴趣的域,而是提供从与要更改的变量相关联的域到达该域所需的步骤。这样可以确保它们所访问的域是与变量关联的域的直接父级。
3.4.2成本和报酬
提出动议的费用
要提出动议,用户必须拥有足够的声誉,还必须持有一定数量的colony代币。他们提出动议所需的声誉取决于他们所吸引的域;决策越高,声誉要求(和潜在损失)就越高。为了能够创建一个动议,用户必须在域中拥有0.1%的信誉,并且必须持有相应部分代币的0.1%。因此,如果一项动议涉及总colony声誉的13%,那么该动议需要0.013%(13%的0.1%)的声誉,所需的股份是所有colony代币的0.013%。
如果初始用户没有所需数量的代币或声誉,他们仍然可以创建这样一个提议,只需下注所需代币的10%,这要求他们拥有相应较少的声誉。在这种情况下,除非其他用户持有代币,并将其超过0.1%的阈值,否则该运动将不会是“实时”的。在创建特定运动时,将记录需要为该运动下注的代币量。用户只能根据自己的声誉按比例持有代币。例如,如果他们想持有40%的所需代币,他们必须拥有至少40%的声誉,这将需要创建运动彻底。
反对动议的代价
一旦在一个运动上有足够的标记,它就会被激活,并且除非在三天内有任何进一步的动作,建议的更改就会发生(当运动被户“ping”时)。
但是,如果有用户反对建议的“更改”,他们可能会使用代币来支持“保留”端。如果对方得到足够的支持,就会产生纠纷。
如果“变革”一方在三天内没有获得足够的支持,动议将失败并被否决。如果“变更”方在三天后有足够的代币,而“保留”方没有,则假定该变更是可接受的。
争议表决
如果双方都在规定的期限内持有所需数量的代币,那么争端就要进行表决。用户投票的权重是他们在最初提出动议的用户所选择的技能方面的声誉之和。
投票的持续时间取决于有资格投票的声誉占colony声誉的比例。如果一个较大的分数是合格的,投票的开放时间越长。最短持续时间为两天,最长持续时间为七天。这是一种权衡,既要允许小团体之间的分歧迅速得到解决,又要允许更多人参与时进行充分的辩论。
投票使用提交和披露计划。此方案是可取的,因为投票在投票期间是保密的,防止用户受到他们认为是多数意见的影响。要进行投票,用户提交一个哈希,即keccak256(secret,optionId),其中optionId表示用户投票的选项。一旦投票结束,投票进入显示阶段,用户可以提交(secret,optionId),合约计算keccak256(secret,optionId)来验证它是他们最初提交的。
随着秘密的揭露,它不可能是敏感的。它还必须随着每一次投票而改变,这样观察员就不能确定人们在公布第一次投票后投的是什么票。虽然有许多合理的方案可用于生成安全机密,但我们建议使用私钥签名的轮询的结果字段(散列),因为它很容易由客户端在稍后的日期复制,而不需要本地存储。
为了对抗选民的冷漠,10%的质押代币被预留出来支付选民投票时:如果选民拥有1%的声誉可让其对决定进行投票,则他们将获得此选民的1%。当他们公布自己的投票结果时,不管他们投票的方向或最终的决定结果如何,他们都会得到这笔奖金。这种“不分意见的支付”是为了避免我们成为凯恩斯选美比赛的受害者,在这场比赛中,由于获得了“正确”的奖励,
选民被激励去投票给他们相信大多数人会投票给他们的东西,而不是他们独立的信仰。投票结束后,将向弃权或未在“显示”窗口中显示的用户授予的任何代币发送到根域资金罐。
一旦投票进入披露阶段48小时,可进行交易以最终确定投票。任何随后的投票显示都不会对正在做出的决定产生影响,但仅用于解锁用户的代币(如果是代币加权投票或混合投票)。
投票的后果如果“改变”一方赢得了投票,那么就做出了有问题的改变,但前提是投票支持这一结果的声誉高于之前在同一变量上的投票。如果“keep”方获胜,则变量不变。在任何一种情况下,都会注意到在colony中投票给获胜一方的总声誉的分数。
在投票结束时,输掉赌注的人会得到0-90%的赌注,他们失去了赌注所需的名誉的补充百分比。他们收回的代币的确切数量(因此他们失去的声誉)基于:
•在colony投票的声誉的一小部分。
•最终投票结果有多接近。
在投票结束时,如果得票率非常接近,那么输的一方将收回近90%的股份。如果投票是不平衡的,以至于得票方的投票权重(w)达到总投票权重的压倒性阈值(L),那么他们将收到0%的赌注代币。L根据投票群体中总声誉的分数而变化(R):
因此,对于一个在colony持有少量剩余的小群体被允许投票,就必须接近一致决定,才能对失败的一方进行严厉的惩罚。对于整个colony的投票,压倒性的临界值L降低到67%的选票,也就是说,colony的整体声誉在这个决策中是2比1的比例分配。
在滑坡损失和非常微弱损失之间,损失方遭受的代币和声誉损失超过了0.1的最小值(∆) 线性变化:
所以总损失(0.1+∆) 在0.1和1之间变化。
失去的代币怎么办?
任何损失超过最初10%的代币将由colony和那些赌赢一方的人分成,与他们赌的金额成比例。超过最初10%的声誉损失的一半给了那些赌赢一方的人,一半被摧毁(colony作为一个整体拥有声誉没有意义,不同于colony作为一个整体拥有代币的想法)。
这里的动机是效率——它旨在阻止虚假的动议和争端。一票否决表明这一决定并非简单的决定,强迫投票可能是明智之举。
因此,反对党不应受到严厉的惩罚。另一方面,如果投票以压倒性优势结束,则表明败诉的一方违背了普遍共识。我们鼓励colony内部的交流。在提出动议之前,各成员应尽可能了解其同僚的意见。
重复动作
为了减少对同一变量的重复动议和争议的次数,在每次投票后记录投给获胜一方的colony总声誉的分数。这是未来任何投票中必须超过的阈值,以便再次更改变量。
我们重申,即使决定维持变量的当前值,该值也会在每次投票后更新。
这一要求是上诉程序的主要推动力。如果一个决定是在一个投票率低的领域做出的,那么就有可能通过在同一个领域举行另一次投票来推翻这个决定(同时进行一场更有活力的“走出投票链”运动)。然而,如果该域名的大部分声誉参与了投票,那么获得更大声誉主体(撤销决定所必需的)支持的唯一方法就是向更高的域名或更大的技能主体上诉。
这个规则有一个例外:为了确保变量总是可以在必要时更改,如果运动被请求到群体的根域,那么更改变量的阈值将被忽略。无论何时在根域中进行投票,都可以更改变量,而不必考虑先前对该变量的投票。
3.4.3投票类型
根据投票的背景和潜在后果,colony支持三种投票方式。某一诉讼的表决权类型是根据该诉讼预先确定的,而不是上诉人的选择。
声誉加权投票
一个colony的大多数投票将是由于与任务有关的动议。在这些情况下,用户投票的权重与每个用户在投票所在的域和技能中的声誉成正比。当这样的投票开始时,当前声誉状态将与投票一起存储。这允许当前声誉状态在投票的上下文中被“冻结”,并防止可能被鼓励的不必要的行为(例如,将任务的提交推迟到接近投票的时间,以便赢得的声誉不会像以前那样衰减)。
当显示他们的投票时,用户还提供一个Merkle证明,证明他们的相关声誉包含在投票开始时保存的声誉状态中。他们证明他们投票支持的选项的总票数将适当增加。
代币加权投票
虽然Colony鼓励使用声誉作为主要的sibyl抵抗机制,但在某些情况下,代币更合适。具体来说,如果声誉是“劳工”的替身,而代币是“资本”的替身,那么无论何时必须由资本而非劳工做出决定,代币加权投票都是合适的。每当传统公司的“投资者”或“股东”做出决定时,象征性的加权投票可能是合适的。
与声誉不同,我们无法在投票开始时“冻结”代币分发。虽然这在MiniMe代币上是有效可行的,但我们设想代币加权(或混合)投票在colony内仍然足够常规,我们不希望每次都给用户带来部署新合约的天然气成本负担。
在进行代币加权投票时,必须采取措施确保代币不能用于多次投票。在“DAO”的情况下,一旦用户投票,他们的代币就会被锁定,直到投票完成。这引入了特殊的激励机制,将投票推迟到尽可能晚的时候,以避免不必要地锁定代币。我们的锁定方案通过仅在揭示期间锁定代币来避免这种倾斜激励。
相反,一旦投票进入显示阶段,任何在投票中投票的用户都会发现自己无法看到发送给他们的代币,或者自己无法发送代币-他们的代币余额已被锁定。为了解锁他们的代币余额,用户只需显示他们对任何进入显示阶段的投票的投票-这是他们可以在任何时候做的事情。一旦他们的代币被解锁,他们自代币被锁定以来名义上收到的任何代币都会添加到他们的余额中。这种全局锁可以防止出现这样的情况,例如,一个用户将显示他们的投票,然后将代币发送给合谋用户,然后合谋用户将使用增强的代币余额显示他们的投票。
通过将所有提交的投票机密存储在一个按closeTime索引的排序链接列表中,可以实现对恒定gas的锁定。如果此链接列表中的第一个密钥早于用户发送或接收资金时的时间,那么他们会发现其代币已锁定。显示投票将删除密钥(如果用户没有提交其他投票,则同时关闭)。
这将解锁代币,只要列表中的下一个密钥是将来的时间戳。我们实现的更详细的描述可以在Colony博客上找到。
如果客户端提供正确的插入位置,则也可以在恒定gas中插入该结构,而不是搜索正确的位置以插入新项目,而可以在链上高效地检查插入位置。
混合投票
混合投票将允许声誉持有人和代币持有人对决定进行投票。我们设想,当正在表决的行动可能对声誉持有人和代币持有人产生重大影响时,将使用这种投票。这将包括在已经商定的参数之外或决定是否执行任意事务时更改殖民代币的供应。
为了使提案成功通过混合投票,大多数投票的声誉和代币持有者都必须同意应实施更改。
3.5其他
3.5.1代币管理
虽然root用户可以随意造币,但在许多情况下,希望通过扩展合约来调解这种能力。这里我们描述这样一个扩展。
代币生成和初始供应
部署扩展时,会设置TokenSupplyCeiling和TokenIssuanceRate。
前者是将要创建的colony代币的总数,后者是根域可以分配给子域或子域的速率。根域可用的代币数量可以通过来自任何用户的事务随时更新(即,公共函数将确定自上次分发以来生成的按比例分配的代币数量)。
增加代币供应
建议在没有广泛共识的情况下不要产生新的代币——特别是如果代币具有财务价值的话。因此,此类决策需要高法定投票数并涉及代币持有人和声誉持有人。
更改代币发行率(Token Issuance Rate)
代币供应上限(Token Supply Ceiling)代表代币持有人授予colony的代币总数,以开展业务:资助域名和支出,并激励员工和贡献者。
Token Issuance Rate控制colony接收新代币的速度。如果费率“过高”,代币将累积在根域的资金池(或层次结构中较低的其他资金池)中。如果发行率太低,则表明该群体的活动量相当可观,发行率已成为一个瓶颈。在这种情况下,可能需要在不一定增加最大供应量的情况下提高发行率。
提高或降低Token Issuance Rate达10%可由声誉持有人单独完成,且每4周最多只能采取一次。发行利率的较大变化还需要现有代币持有人的同意。
3.5.2补偿方式
利用支出,可以实施多种补偿方式。除了“任务”,我们还可以设想一些额外的补偿方式。
工资
任务意味着colony-worker关系主要是事务性的。在许多情况下,通过薪水来表现更长期的关系是可取的。
薪水可以简单地表示为接收者、金额、期间和最后索赔。在任何时候,接受者都可以ping工资合约,此时合约将创建一个向接受者支付的支出,资金相当于自上一次工资支付以来按比例分配的金额。如果接受者愿意支付汽油费,他们可以每天申请(一小部分)工资,或者选择每周、每月或以任何适合他们的节奏申请。香港有责任确保在支付薪金的领域内有足够的资金。
此扩展需要资金和管理权限来代表接收者操纵代币和支出。
定期或自动任务
而对于某些类型的工作,任务是独特的,必须单独确定范围并进行主观评估。然而,我们可以想象这样的情况:工作可以由许多人完成,和/或由计算机自动评估(例如奖励参与推荐计划的用户)。在这些情况下,包含评估工作逻辑的任务变体,并允许任何人提交工作,将是合适的。
此扩展需要资金和管理权限来代表接收者操纵代币和支出。
3.5.3授予未被任务捕获的工作的声誉
这防止了永久的“声誉贵族”,同时允许声誉保持相关,即使在colony代币的价值发生重大变化时。
当用户收到colony内部代币的付款时,就会授予声誉——最常见的是从支出中获得的付款,但有时是从动议解决中获得的付款,在元colony的情况下,是从声誉挖矿过程中获得的付款。在达成共识的情况下,我们可以使用支出机制来奖励用户额外的声誉。
考虑这样一个场景:当colony开始盈利时,创始人或colony的重要早期贡献者几乎没有留下任何声誉;也许产品的开发花费了很长时间,也许声誉衰退率对于特定的群体来说是次优的高。或者,创始人在一开始就做了很多无形的工作来让colony脱离地面,因此在链条上从来没有得到适当的补偿。为了绕过声誉体系的限制,重新整合创始人(并使他们有资格获得奖励),colony可以创造一项专门用于奖励他们应得声誉的支出。为了获得支付代币的资格(从而获得声誉),相关用户必须将相同数量的代币返还给colony。同样,一个好的前端可以使这种声誉奖励变得简单和直观。
另一个重要情况涉及因产假/产假或疾病而导致的缺勤-声誉系统不应隐式歧视这些用户。虽然“暂停”声誉衰退不是一个可行的选择,但可以使用各种“免费”提供声誉的机制来确保这些用户在不可避免的缺勤期间保持其声誉。
重要的一点是,如果达成共识,该体系施加的任何限制都可能被削弱。这一制度不应妨碍达成共识,而应为存在不同意见的时代提供解决冲突的机制。
3.5.4非成员的动议
有声望是提出动议或提出反对意见的先决条件。因此,如果一个外来者被一个colony雇用来执行一项任务,他们将不能独自提出为他们的工作辩护的动议。然而,一个好的colony前端可能允许他们为一个动议创建模板,有效地呼吁colony成员支持它,并代表他们将动议提交给colony网络链。
这类似于一个成员只下注所需金额的10%,并等待其同行的进一步支持,不同的是,没有任何第三方的支持,动议将永远不会在链上处理。
4、colony网络
Colony网络是以太坊区块链上合约的集合。网络的核心是Colony Network合约。本合约主要负责管理声誉挖矿流程,同时负责网络的一般管理:部署新colony、设置与使用网络相关的费用以及发布新版本的colony合约。这些行为将由一个特殊的群体,即元colony介导。
4.1收入模式
colony网络必须能够自我维持。特别是,元colony(控制着colony网络)维护着支撑网络的合约,并为网络开发新的功能,而网络的开发需要付费。从长远来看,网络(包括声誉系统)的发展和维护需要网络的资助它自己。
4.1.1网络费
我们建议对支出和奖励支出征收费用。当一个用户要求支付,一些小部分将支付给网络。费用被发送到元colony(如果付款是以太币或其他白名单上的‘货币’代币)或colony网络合约(如果是任何其他ERC20兼容代币)
这种收费的想法对于这样一个去中心化的系统来说有点不寻常。以太坊系统的一个吸引力是,除了gas成本,它们不寻租,而且可以免费使用。然而,网络费用是确保colony网络声誉挖矿和治理过程的博弈论安全的关键,它为元colony成员持有的CLNY提供了潜在价值。重要的是,这项费用不是支付给任何中央控制的实体,而是支付给元colony。由于任何人都可以为元colony捐款,任何人都可以要求按其捐款比例分摊这些费用。我们相信,作为一个安全的、维护良好的网络的一部分的好处将是足够有吸引力的,为它的存在支付一点费用将是可以接受的。
这项费用的存在意味着我们必须考虑一些否则将无关紧要的考虑。主要是,我们需要尽可能地制定“背驮”合约,以便在支出确定时,例如,用于支付支出支出,但不发送费用。
4.1.2代币拍卖
由于网络费用可以在任何ERC20代币中计价,因此需要一种机制来清算任意的代币包:代币拍卖。收集的代币由colony网络合约拍卖,拍卖以colony网络代币计价,所得收益被烧毁。这些拍卖——每种类型的代币都会定期进行一次每月拍卖。
我们认为,这种机制将有利于群体网络代币持有者(其代币通过在声誉挖矿之外的明确使用而获得价值)和元殖民本身(通过减少群体网络代币的供应,从而使任何未来的造币更有价值)。
它还为colony内部代币提供了一种即时的价格发现机制,在colony的生命周期很晚之前,这种代币不太可能在第三方交易所交易。
通过拍卖收集的代币,我们还防止元殖民收集大量的不同代币,而这些代币必须管理,这将证明是繁琐和烦人的。
4.2元colony与CLNY
元colony是一个特殊的群体,它支配着colony网络。元colony中的代币称为CLNY,最初将在colony网络分发期间生成。
4.2.1 CLNY持有人的角色和元colony
CLNY持有人有两个主要角色。首先是参与声誉挖矿过程。第二是对colony网络本身的管理。网络合约上会有允许的函数,允许设置网络的基本参数,这些参数只能由元colony调用。对于元colony调用的这些许可功能,必须进行对所有CLNY和声誉持有人开放的投票。colony网络的管理还包括向colony提供colony合约的更新。CLNY持有者不一定要对这些更新的开发负责,但是需要投票来部署它们。因此,他们至少有责任确保自己或服务提供商进行尽职调查,以避免引入安全弱点或其他不良行为。作为对colony网络发展和维护责任的回报,元colony是网络费用的受益者。
在元colony的声誉可以通过支出获得CLNY代币,就像在任何其他colony一样。元colony中的声誉也可以通过参与声誉挖矿过程来获得,这是元colony所特有的。
4.2.2将决策权交给元colony
colony网络代币持有人从一开始就负责声誉挖矿,但有关网络底层属性的决定最初将由colony团队控制的多重签名合约作出。随着网络的发展和被证明是有效的,对这些决策的控制将让给元colony。
第1阶段:colony团队多签控制
最初,网络合约的功能将被根权限化,以便只允许来自Colony团队控制下的multisig合约的事务更改网络的这些属性。
第2阶段:需要Colony team multisig批准
稍后,将建立扩展合约并授予root权限。该合约将允许元colony(作为一个整体,通过提供给所有colony的治理机制)提议对colony网络合约进行修改。中间合约将具有这样的功能,即所有的变更都必须由colony团队控制下的账户明确允许。换言之,元colony将能够提出更改,但团队必须签署这些更改。
第三阶段:colony团队对多签保留否决权
下一阶段将是第二个扩展合约,其操作与第一个类似,但在超时后(没有来自colony团队帐户的交互),任何人都可以将更改转发到colony网络合约。colony团队的职责是在必要时阻止变更。因此,在这个阶段,元colony将能够自主地做出改变,但colony团队保留否决权。向这份合约转移的提议必须来自元colony本身。
第四阶段:元colony完全控制网络
最后,专用扩展合约将被删除并替换为通用投票扩展,元colony将直接控制colony网络合约,除任何CLNY提供的特权控制和持有的声誉外,colony团队没有特权控制。
5 声誉挖矿
声誉系统是任何分散colony的核心组成部分。通过仔细平衡奖惩,我们的目标是让每个用户的奖励与群体和群体网络保持一致。由于声誉只能在账户之间获得,而不能在账户之间转移,因此该系统培养了一种比单纯的加权投票所能实现的更为精英化的决策形式。声誉的持续衰退保证了声誉所传递的影响是有效的
最近获得的和最新的。因此,它防止了声誉贵族化,并允许随着时间的推移,控制权从一组贡献者转移到另一组贡献者。
由于跨多个colony、域和技能的声誉分数的综合复杂性,声誉分数无法在链上存储或计算。相反,所有计算都将在链外进行,其结果将由参与的CLNY持有人向区块链报告——这一过程类似于股权证明区块链共识协议。我们称之为声誉挖矿。
矿工提交其结果的声誉计算由colony中发生的活动决定,并且可以完全确定地从以太坊区块链派生。博弈理论上,系统的保护类似于TrueBit的链外计算,因为计算不能在链上进行,正确的提交永远不能被证明是正确的,错误的计算总是可以被证明是错误的。
附录
通过预算箱分散资本分配
该机制的基础是一个称为预算箱的新组件,它实现了一个简单、通用和强大的治理算法,预算箱聚合并处理成对偏好集。我们的方法涉及将我们的成对偏好集转换成马尔可夫转移矩阵M,并使用该矩阵来找到对应于项目概率分布的特征向量v,我们可以将其解释为预算或排名。直观地说,我们可以根据观察到的偏好,把最终的概率看作是“最重要的事情”的可能性。
我们的投票信息转换成一个不可约的、非周期的、遍历的马尔可夫矩阵,保证具有唯一的主特征向量,可解释为项目的概率分布,或者作为一个排名或预算的分配。寻找特征向量的方法有很多;我们将使用幂迭代,一个简单的算法将v的向靠拢。
直觉上,每次迭代都会首先问“哪些项目最受欢迎?”
然后“对于每一个项目,哪一个项目更受欢迎?”随着时间的推移,概率质量会收敛到相对更受欢迎的项目,因为受欢迎的项目积累了更多的概率,然后它们会“发送给”比它们更受欢迎的项目。
1、可扩展性 (scalability)
每个框K个项目的限制并不限制一个机制总的来说是K个项目,因为可以组合多个预算框来容纳更大的项目集。合成的一种方法是将盒子组装成一个支架;另一种方法是将它们组合成“抽象到具体”(想想公共服务)的递归层次结构→ 教育→ 预算框的组成降低了认知复杂性和计算复杂性。对于100个项目,有4950个可能的对;将其与10·45=450对进行比较,同样的100对被分成10组,每组10对。这450对是原来4950对的子集,但不是随机的。如果我们假设这100个项目可以按质量排序,并且只有质量相似的项目之间的比较才能提供有用的信息,那么将项目集细分为质量相似的项目子集,就可以避免进行4500次低值比较:认知效率提高了10倍。
2、联赛和赛道(leagues and lanes)
为了最大限度地利用选民有限的注意力资源,我们将项目分为两类:一类是联赛中的项目(每个联赛基本上都是预算箱的一个薄包装),另一类是池中几个赛道中的一个。所有项目都是从池开始;获得足够支持的项目将被提升到联赛中,然后以成对的方式对联赛中的项目进行比较和排序;排名较高的项目可以晋升到更高的联赛,并有资格获得更大的奖励。
3、得分的赛道 (scoring lanes)
联赛中的项目可以通过colony任务机制获得奖励。另一方面,池中是希望进入联赛的项目;池中的项目不接受奖励。
因此,与高风险、高关注度的联赛相比,池中项目的处理机制更简单,只提供一个粗糙的过滤器。泳池被划分为L“赛道”,每个车道可以容纳多达256个项目。项目通过下注一些固定数量的CLNY代币进入一个赛道。一旦进入赛道,项目只会得到批准投票;项目得到的分数等于其批准的声誉加权总和。
在投票结束时,我们对每个赛道进行排序,项目的排名是基于它们的整体支持声誉。锁定要求旨在作为一种反垃圾邮件机制。为了进一步防止低质量的项目提交(这会分散选民的注意力),池里得分低于中位数0.2的项目将被烧掉。为了防止项目因预期被烧毁而撤出他们的股份,我们只允许项目在投票期第一个三分之一时段内离开。
4、在联赛间移动
我们的机制很像体育联赛,在赛季结束时排名最低的将降级到较低的联赛,而排名较高的将升到较高的联赛。在我们的例子中,一个“季节”是一个投票周期。在投票期结束时,对所有项目进行评分,适当给予奖励,并将项目划分到下一阶段的联赛。重新分配由参数Z和“洗选因子”C决定,它决定了有多少项目在两个周期之间移动。由于联盟被安排在一个二叉树中,它可以通过索引每个节点并遍历树。从一个联赛移到另一个联赛,联赛中最差的(按分数排序后)2C个项目与这个联赛的下级联赛中最好的C+C个项目互换,升级降级是交替发生的。
从赛道到联赛,在底层联赛中排名垫底的项目将从系统中删除(退还其赌注)。可以通过发布新的赌注自由地重新进入池中。新腾出的位置由池里的顶级项目来填补。我们的目标是让不超过一半的池子同时进入联赛,这样每条赛道可以支持最多的联赛。当有多个赛道时,它们会被分配到一个叶片联赛中。
反过来说,我们用leagues(l)表示与一个赛道相关的联赛。我们的目标是将所有叶子联盟中最底层的2C项目替换为池子里最顶层的2C个|leagues(l)|项目。因此,对于每条赛道,我们都要对候选项目的质量进行平衡的替换,实施时应以轮流的方式进行交错交换,这样最强的候选项目就会在它们进入联赛时平均分配。
5、确定分配
一旦对项目进行了投票并对投票进行了处理,在它们在移动之前,它们的最终预算分配就已经确定。
只有联盟中的项目才能得到预算分配,由v决定。一个阻尼系数d,它允许在联赛中的所有项目进行均衡分配。与此相关的是,我们必须决定如何在联赛中分配可用的预算。
此分配由参数Q∈ [0,1]控制,这将我们在两个极端之间引导:在Q=1时,我们在所有联盟中都有一个统一的分配,在Q=0时,分配是指数递减的。知道Q,我们就可以确定联盟可用的总预算。
6、扩大机制
该机制可以扩展,以适应任意数量的项目。请注意,机制的容量由三个参数驱动:Z决定了联赛的数量,K决定了联赛的大小,C决定了联赛的运动程度;他们共同决定了池的规模,我们要求池能够容纳两倍于任何时期进入联赛的项目数量。
随着colony网络的成熟和参与该机制的项目数量的增加,可以通过增加Z来扩展该机制;每一个增量都将使联赛规模增加一倍,并根据需要创建新的赛道。注意,随着赛道的增加,现有的候选赛道不会被重新分配,因而创造了一种“套利机会”,使项目可以将自己押在竞争不那么激烈的赛道上;这自然会引导车道间项目质量的均匀分布。
7、投票
为了使这一机制能够抵御腐败、贿赂和共谋,我们首先求助于colony声誉体系。通过声誉加权投票,那些影响力最大的人也能从colony网络的发展中获得最多的利益,在信誉加权投票的情况下,那些最有影响力的人也能从colony网络的发展中获得最大的利益,因此他们最不愿意接受即时支付(贿赂)以换取更糟糕的长期前景。此外,由于声誉源于为Meta Colony所做的工作,那些具有更大影响力的人表面上对生态系统有更好的了解,并能更好地确定项目的相对价值.
为了鼓励参与,我们将B留出一部分作为选民补偿,每个选民的补偿是相对声望的函数。使报酬与声誉成正比既能达到抵制sibyll的双重目的,又能鼓励最有影响力的人尽最大努力做出明智的决定(增加他们的长期报酬),并进一步减少接受贿赂以换取优惠待遇的相对动机。如果BR是预算中预留给选民补偿的部分,则按以下方式确定每一选民补偿:
另一个考虑是表决过程的细分。“投票单位”是否应该包含对每一对和每一个项目的投票?或者声誉持有者应该在动机允许的情况下贡献更小的单位?
幸运的是,项目的“联盟”组织导致了工作的自然划分。在一个联盟或一个车道上投票构成了一个投票“单位”。每单位投票的要求应该提前设定。
8、结论
如上所述,该机制作为一个整体是由一些超参数控制的:K,它决定联盟的大小;Z,它决定了它们的数量;C,它决定了两个时期之间的运动程度;B,它决定了总预算;d和Q分别影响联盟内部和联盟之间的预算分配。
与捕获个人偏好的两两投票不同,这些超参数捕获政治偏好,因为它们定义了系统作为一个整体的行为:支付的规模,有资格竞争的项目数量,支付给受欢迎项目和不受欢迎项目的允许不平等程度,以及特定项目的分配增长或下降的速度。
除固定的K值外,所有这些参数都可以通过元 Colony中的声誉加权投票来更新。我们的期望是,Z和B开始时规模较小,随着网络的成熟和项目数量的增加而增加。我们预计d, Q和C将会更不频繁地更新以调整机制的行为;我们希望每个值较低的启动机制,这样支出成为更高级别的联赛的意义更大,更高级别的联赛,“失去”项目仍将赚的比在低级别联赛“获胜”项目,和联盟之间运动足够缓慢,项目有一个有意义的时间地平线的收入。
这是有意的,获胜的项目将积累声誉和影响在元colony随着时间的推移。由于这些项目既支持又依赖于colony网络,因此它们既能参与治理,又能分享网络的回报是合适的。
在我们的简介中,我们介绍了一些可能的攻击向量以及失败的场景,并声称已经开发了防御系统。
我们将逐一介绍:
1.垃圾邮件。最小的赌注使垃圾邮件昂贵。
2.骗子。低初始支付使诈骗不经济。
3.贿赂。声誉加权投票调整长期激励。
4.自我投票。解决方案:欧洲视觉规则。
5.串通。非线性投票互动,随机游走。
6.选民冷漠。参与经验,选民补偿。
7.认知偏差。非线性投票相互作用。
8.随机投票。解决方案:声誉加权投票和补偿。
9.西比尔袭击。解决方案:声誉加权投票和补偿。
必须注意的是,任何机制都不能完全抵抗攻击或失败;每一种机制,甚至是工作证明,都是以某种现实为条件发挥作用的。我们所描述的机制假设一组合理多样的参与声誉持有人希望从Colony网络的长期成功中获益。这一机制的目标不是为决策提供一个万无一失的框架,而是在不引入大量新问题的情况下解决一系列具体问题。
我们认为,利用成对偏好来解决集体排名和预算问题是去中心化治理工具箱中的一个重要工具。