LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 币圈百科 > Tweether治理协议——疯狂背后的数学

Tweether治理协议——疯狂背后的数学

2020-10-29 区块链研究员 来源:区块链网络

最近,我和Patrick Collins参加了EthGlobal黑客马拉松,并创建了Tweether,这是一个链上治理协议,任何人都可以用来在推特上提交协议以及投票。

当我们在规划这个项目时,我们把工作分成了两个部分。

治理协议,我负责这项工作。

以及会做推文的预言机,这由Patrick负责。

本文的目的是解释第一部分:治理协议。我会介绍主要的概念、背后的数学,以及我是如何实现的。

前提

Tweether旨在成为一个平台,使某一账号的推文民主化。协议的用户应该能够提出推文,并在他们认为值得被推送的情况下对其进行投票。其余的事情应该由协议来处理。

像最流行的治理协议一样,我们需要一个治理代币:$TWE。

我们还需要一个预言机——Chainlink,以便在提案被接受后发推特。 这就带来了一个有趣的要求,即治理协议必须能够为服务付费。它需要时刻保持$LINK的储备。

总而言之,我们需要的功能是:。

以某种方式发放$TWE

以某种方式维持一个$LINK的金库来支付预言机。

提出推文(使用$TWE)

对提案进行表决(同样使用$TWE)

获取$TWE

要获得TWE,用户需要将LINK存入铸币mint功能。很简单,勾选了前两项,每个LINK的TWE的铸币量应该取决于:

协议中LINK的数量是多少

以及$TWE的总供应量。

很简单:如果协议中每个TWE都有大量的LINK,那么TWE就更值钱,反之亦然。这意味着,TWE是由$LINK抵押出的。

然而,我们有一个问题:预言机要求用LINK支付。这意味着每当一个提案被接受,被锁定的LINK数量就会减少,但TWE的总供应量并没有改变,因为TWE的持有者仍然拥有他们的代币。而这不可避免地导致TWE的价值趋向于零,没有人会想要一个依赖于一个注定价值趋势下降的代币的系统(与法币不同)。

所以,我们需要一个机制来烧掉TWE,烧掉TWE的速度至少要等于每一个被接受的提案所消耗的LINK数量。

发出推特

为什么不使提案实际花费一些TWE?这样可以降低TWE趋向于零的风险,但这也带来了另一个问题。为什么要用TWE支付给治理协议,这可能会导致你的提案不被接受,而你可以直接用LINK支付给预言机,然后直接推送。需要有动力去完成这个过程。当然,这个特殊的协议可以进入一个很特殊的公众账号,这本身就是一种激励。但还是那句话,如果你可以直接用LINK让整个系统运转起来,那么TWE还有什么意义呢?

如果提案要真正让TWE付出代价,就需要打折。比方说,它的价格是预言机的1/n,用TWE支付,其中n是我们选择的某个分母。如果我们认为我们会得到5倍于接受度的提案,就把n设为5。这就使协议进入平衡状态。如果不是,我们需要降低它。但同样的,它需要有足够的吸引力,这样就不会显得提案昂贵。如果只有富人才有发言权,那就不是民主了。

那么,我们怎样才能进一步激励呢?不如采用基于时间的方法?

比如说1/n是提出一个提案的价格,这个提案只在1天内有效,可以进行投票。之后,就无效了。这样一来,如果你想让你的提案有更多的机会被接受,你就会花钱让它的有效期为3天。如果5是我们的分母,你就会支付神谕价格的3/5,以TWE计价,来提出它。这就增加了激励机制,它可以燃烧更多的TWE来平衡LINK与TWE的比例,从而使协议保持在一个快乐的平衡状态,甚至如果有很多提案通过这样的方式,可能会逐渐增加TWE美元的价值。

(甚至有一种说法是让分母随着时间的推移而改变,这取决于LINK的比例。这样一来,协议就会自我调整,以确保它始终处于平衡状态。这是个伟大的想法,但有点超出了我们在这次黑客马拉松中的时间范围)。

对推文进行投票

与提案不同,投票不应该花费任何费用。

许多大热的治理协议(看着你们Compound和Uniswap)都使用了代理方法。一旦你拥有了gov token,你就需要将其代理,哪怕是代理给你自己的账户,来对提案进行投票。我最初选择不走这条路,主要是因为我认为这是一个额外的层,不需要这样做(而且我在gov协议方面不是最有经验的)。自从构建协议后,我意识到这可能是一条更容易的路线。

尽管如此,协议如何决定一个提案何时被接受?好吧,我们已经在协议中定义了一个提案成本的分母,为什么不再次使用呢?这就是tweetherDenominator的诞生。一个神奇的数字,几乎统治了整个系统。晚点再说这个,目前首要的主题是,我们要一堆公式里使用这个分母。

但是,这与其他协议是如何叠加的?嗯,它有所不同。Compound和Uniswap使用的百分比非常低。大概4%,而我们的,取决于tweetherDenominator是什么,很可能是一个更高的百分比。不同的是,你可以在Compound投反对票。在我们这里,你只能投赞成票。想想看,就像一个 "喜欢 "按钮,需要达到一定数量才会被发出。

奖励回合!

我们意识到的一件事是,如果你是最后的投票者,将票数推到了接受目标之上,你为此付出了更多的气力,因为协议必须通过预言机启动推特。所以,为了奖励这些最后的投票者,协议会给他们铸造一个非常特殊的NFT,代表他们帮助推特的提案。我们称之为NFTwe! :D

总结

这就是全部内容了! 这是编码和测试(在Github上查看),我们部署到Kovan testnet。在黑客马拉松的最后一天,我们通过协议发出了第一条推特。

我们还不确定是否要去主网。最后几段代码是为了在黑客马拉松截止日期前提交项目而匆匆写出来的,所以我们需要测试这些代码,也许还需要引入一些更多的功能。

Patrick做了一个很棒的工作,让预言机节点启动和运行,并创建了一个Twitter外部适配器来挂入API。如果没有这些,这个项目根本无法启动。他还在截止日期前4个小时制作了UI、Logo和Twitter横幅,并制作了一个演示视频,老实说,这个视频看起来比我们俩预期的要好得多。

在这个过程中,我学到了一些东西。

在这之前,我对链上治理几乎一无所知,但现在已经掌握了很多。

从现有的经过实战检验的解决方案(如Compound)开始,而不是从头开始构建,要容易得多。在其他协议中显然有很多概念,我认为是不必要的,但后来才意识到是重要的。

想出背后的数学是迄今为止最耗费时间和精神的方面。相比之下,对Solidity进行编码其实很容易。

我们还不知道它是否自洽,只有时间才能证明。

在业余时间抽出时间来做这件事是挺麻烦的,但总的来说是一次积极的体验。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

作者:Alex Roan

翻译:区块链Robin

BTC:1Robin84SWtzSxnU1v8CE9rzQtcfUsGeN

微信:chanhai13;公众号:链学园 译文有编辑及删减,如有侵权,请联系译者删除

中文版权所有,转载需完整注明以上内容

—-

编译者/作者:区块链研究员

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...