原文作者:Nihar Shah、Joe Howarth
原文编译:aididiaojp.eth,Foresight News
TL;DR
虽然代币委托计划能够实现稳健的治理,但因为代币持有者可以立即撤销委托权,代币委托的独立性受到限制。
对于有独立性要求的代币持有者,例如机构持有者,我们建议代币委托合约可以嵌入明确的锁定期。
我们通过 Maker 合约进行演示,同时添加了其他功能,例如如果决策是相互的,或代币持有者触发紧急通道,治理能够绕过锁定期。
介绍
在过去两年,代币委托的概念变得越来越流行。代币委托是指代币持有者将他们在链上的投票权授予他人,包括 Maker、Compound 和 Uniswap 在内的主要协议也在使用代币委托的方式来治理社区。代币委托提高了治理水平,也促使社区蓬勃发展,其中包括学生团体、非营利组织和社区领袖。
委托代币有两个特殊的优点。最直接的优势是可以让治理更有效率。如果没有授权计划,有些社区成员的相关利益很小,或者没有足够时间,但他们不得不梳理数十个提案,了解繁琐的治理方案才能参与投票。通过委托计划,一些专业人士可以做出更明智、更一致和更重要的决定。在许多情况下,代议制民主比直接民主具有优势,加密市场也不例外。
去年以来,代币委托第二个优势开始凸显:中立性。例如一些代币持有者拥有极大的持仓,并且可能在竞争对手协议中拥有代币,这些持有者可能希望致力于建立一个去中心化和公正的社区,而委派投票权是确保他们被视为保持中立的一种方式。
第二个优势并不是只依靠代币委托程序来保证,它需要代表独立于代币持有者的特殊条件。例如,a16z 的 Jeff Amico 在他的文章中阐述了代币委托的原则,特别强调了「授权每个代表以他们认为合适的任何方式独立于代币持有者投票」的重要性。然而大多数现有的代币委托协议都没有强制执行这种独立性,并且在某些情况下,这种独立性可能在关键治理提案之前被故意破坏。
本文提供了一个简单的、基于代码的解决方案:通过在协议中添加锁定期功能,代币持有者无法在锁定期内撤销受托人的治理权。此外,我们创建了这个概念的参考案例,以及一些与 Maker 的协议兼容的可选的双向非紧急和单边紧急绕行功能。
锁定期不适用于所有持有人代理关系。出于效率考虑,使用代币委托的小额代币持有者应该继续拥有随时撤销投票权的权利,社区也可以通过将两者分开,来重塑大额代币持有者和协议之间的代理关系,持有人可以自由授权,委托人可以独立投票。
失乐园:撤销代理
代币委托虽然被普遍认为具有很高的潜力,但也并非没有受到批评。无论是在理论上还是在实践中,代币委托计划容易忽略有关授权的规范,削弱了建立健全治理的愿望。
例如 DeFi Watch 的 Chris Blec 一直积极地坚持 a16z 提倡的委托计划的选择和交互的明确性。Blec 指出,如果治理提案完全由一两个持有者代表批准,这将会引发对投票代表和代币持有者之间关系的质疑。
这些风险是真实存在的,例如除了 Maker 的 Poll 819,更广为人知的是 LOVE 投票。这次投票主要围绕贷款监督机构的选择,以及权力下放与效率的广泛社区治理讨论,这次提案争议很大,异常激烈(它创造了 Maker 投票的参与记录,并且在撰写本文时该记录仍然保持)。Luca Prosperi 详细记录了更广泛的投票过程,但主要是围绕代币委托的相关细节。
这表明在关键时治理提案可以绕过代币委托程序。例如 Maker 的创始人 Rune Christensen 在委托时期更改了提案授权,从而影响投票结果。虽然 Christensen 公开反对该提议,但他几乎将他所有的 MKR 代币都委托了出去。但在为期两周的投票窗口期间,他撤销了投赞成票或弃权票的代表的授权,并将这些代币重新授权给其他没有投票的代表。这种重新分配似乎只是为了掩饰 Christensen 和投赞成票的代表之间的根本分歧的一种战术。在投票结束后的三天内,Christensen 再次将代表权转回给在上次选举中投赞成票的代表。这种模式如下图所示:
法律解决方案
代币委托程序需要变得更加完善。一种解决方案是通过法律合同来保障授权与强制执行的独立性,例如在 a16z 的委托计划中会承诺代表持有治理权的最短期限。如果代表投票与之利益冲突,这可以减轻代币持有人收回治理权的风险。更一般地说,它限制了代币持有人可以向其代理施加的压力。
该原则由放置在公共 Github 仓库中的法律合同强制执行。法律合同的关键点在第 6 节中,其中规定:「为了防止万一该代表未能履行其协议治理职责,本协议的初始期限应为自生效日期起 [N] 个月,代币持有者只能在期限届满之前终止本协议。」
但法律机制是次优选择,我们并不怀疑 a16z,但那些追随其脚步的人可能没有那么高尚。法律合同的执行成本很高,并嵌入了不对称的权力分布,也包括不透明的谈判。在不太在意的代币持有者手中,法律合同几乎没有进行有意义的检查。
因此由于依赖于太多关于透明度和可执行性的假设,法律合同可能是普遍扩展和增强代币委托计划的错误机制。
建议:代码,而非法律
本文提出一个简单的解决方案:智能合约而不是法律合约。换句话说,通过将锁定期直接嵌入智能合约来保护代理的独立性。这在事前是高度透明的,事后很容易执行,最重要的是,它通常是一个简单的技术实现。
我们使用 Maker 合约进行演示。大多数核心委托逻辑都存在于 VoteDelegate.sol 合约中,特别是注意 lock 和 free 函数,它们完全能够满足要求。代币持有者使用 lock 函数来捆绑代币并分配其治理权,并使用 free 函数收回这些代币和相关的治理权。
还可以做一些简单的修改。首先在调用合约构造函数时,我们定义了一个名为_lockupPeriod 的变量;其次,持币者调用 initialUnlock 函数触发解锁倒计时;第三为了检查锁定期是否得到遵守,必须稍微修改 free 函数。
通过嵌入锁定期,代币委托程序变得更加公开可信,由代码而非法律强制保证委托人的独立性。
紧急绕行功能
当然,锁定期可能并不总是可取的,我们可以相应地修改智能合约。
首先,受托人和代币持有人可以相互同意结束委托关系。在这种情况下可以提供绕行功能,这可以通过一个简单的函数 delegatorBypassLockup 来实现,它可以让委托人毫不拖延地放弃治理权。(请注意,参数 isDelegatorBypassEnabled 可以在合约启动时启用此功能。)
其次,也可能存在代币持有者单方面绕过锁定期的紧急情况,例如代理以高度不负责任或敌对的方式行事,当然这种情况不会经常发生。
一种好的解决方案是允许代币持有者通过不可撤销地销毁代币来绕过锁定期,这就很容易实现。初始化合约时,代币所有者设置了一个 EmergencyUnlockBurnPercent 值(可能高达 100%)。然后修改 free 函数来检查 token 持有者是否选择了紧急路由。如果是这样,它只会归还未燃烧的代币份额并燃烧剩余的份额。我们在这里展示了该逻辑的一部分:
完整的代币库
嵌入本文中讨论的所有功能和修改的函数请求可以在以下公共 Github 仓库中找到,其中也包含对 Maker 架构的所有必要更改。我们欢迎提出意见和建议,并相信该合约已经可以部署到生产中。
未来愿景:可组合性
代币委托程序可以变得更加丰富,我们也相信代币委托合约的可组合性将开启下一波创新浪潮,例如如果代表可以将他们的投票权委托给其他代表怎么办?
这种关系可以使被委托人更加独立。例如,代币持有者可以将他们的代币委托给一个学生团体。反过来,学生团体可以将这些权利委托给治理名单上个人成员,而无需向代币持有者透露确切身份。因此,如果代币持有者想要施加软压力,他们甚至不知道要针对哪些人,以及哪些人投票支持和反对他们的利益。
可组合性还可以与更丰富的合约配对,以允许代币持有者和代理之间进行更具创造性的互动。例如,代币持有者可以被允许单方面从被委托人那里提取代币,但直到最短锁定期结束后才能收到代币。可组合合约将是一种实现方式。
结论
锁定并不适合所有人,例如那些因代币委托计划最初的效率优势而被吸引的人会发现锁定是不必要的。但是锁定对于有兴趣保持中立的特定代币持有者(例如创始人、机构持有者等)非常有用。
重要的是,我们想要清晰,一些代币持有者想给他们的代理很大的独立性,而其他代币持有者希望建立更严格监控的关系。现状迫使所有这些人进入同一个智能合约,并让他们通过拼凑的公开声明和法律文件表达他们的真实意图。而该合约允许每个代币持有者选择最适合他们的框架,包括期望的锁定期、相互绕过的功能以及紧急销毁参数。整个过程发生在链上,每个人都可以看到,没有人需要监控。