本文作者:Daniel Larimer,Block.one CTO

原文链接:https://medium.com/@bytemaster/how-trustless-contracts-overcome-artificial-restrictions-f8cc939faeb6


智能合约能在无信任基础的情况下,让权利和义务的绑定与转移更容易,从而提高经济效率。这将影响那些试图通过各种形式(比如费用、时间锁定、选票购买、不可分割性等)来限制权利转移的人。任何设计智能合约的人,如果试图依靠人为限制来达到某种博弈论的结果,都应该先阅读这篇文章。

假设,你想创建一个代币智能合约,用户转账时需要收取 2% 的费用。这是个不可强制执行的限制。任何人都可以创建一个新的合约,接受你的代币存款(即支付 2% 的费用),然后重新发行一个新的可转让的代币,收取更低的费用或干脆免费。其他人可以在完成无数次转账后,从新的合约中提取原代币,并支付最后 2% 的费用。

现在假设,你想要创建一个新的代币,试图在长期合约中锁定代币,合约中有多个时间长短的锁定期。实现时间锁定就像实现 2% 手续费一样简单,但是也一样简单的,可以通过使用其他智能合约绕过。

在锁定代币的情况下,可以创建一个新的账户,将代币锁定到质押合约中,然后发出一个新的可交易代币。可交易代币的性质就像零风险债券,在未来某个时间点做出支付。假设,标的资产是有价值的,零风险债券也有交易需求,那么,我们是没办法阻止新代币的交易,或直接被放入另一个智能合约中。

EOS RAM 市场是另一例子,资产受到人为限制,用户需要付费进行买卖交易。在买卖交易中, RAM 实现有效地转让,产生 1% 的手续费。如果有人只是想要交易 RAM 的经济价值而不是实际使用 RAM,可以创建一个很简单的合约,发行 RAM 支撑的代币,且交易免费。这甚至具备了创建一个没有交易费的 RAM 二级市场的潜力。

但有一件事是绕不过去的,这就是标的资产的功用。RAM 代币与实际的 RAM 不是一回事,因为你不能使用 RAM 代币来存储,而是需要先把它转换成实际的 RAM 并支付 1% 的交易手续费(即买卖)。质押代币也是如此,你可以交易质押代币的经济价值,但是你不能映射出任何额外的效用,比如标的代币的投票权或 CPU 时间等(取决于代币功用的设计)。

如果假设,质押代币的标的代币提供了投票效用。一个团体使用了一个合约进行质押,然后重新发行新的代币也有投票功能,但必须 “团体投票”。假设质押代币只能投票给一个人,那么整个团队将需要组织一个 “元投票” 来决定这个团体的投票的方向。这就会降低少数群体成员的参与度,因为他们会被迫与多数人一起投票。

如果质押代币系统允许每个质押仓位将它的投票分配给多个选项,那么,新发出的质押代币,可以简单的反映元投票,标的质押代币中的功用就可以传递给流动的质押代币。

即使限制了每个质押仓位只能投一票,也不是真正的限制。对于流动的代币质押合约来说,管理任意数量的质押仓位,并基于流动代币持有者的元投票,来为每个质押仓位投不同的票,这都非常简单。

当然,这些解决方案在实施前还需要仔细综合考虑法律、监管和税收等因素。

防止智能合约进行管理操作

要让他人更难绕过人为限制,其中一个方法是避开智能合约的管理。直白地说,可以让所有与合约的互动都必须使用私钥签名,同时限制每个交易都只能做一个动作。如此将把 “信任” 重新带回到系统中,将有一个人,持有私钥并对交易进行签名。

假设,我们的代币需要支付 2% 的交易费用,同时屏蔽了与其他智能合约的互动。信任模型可改变一家中心化交易所重新发行类似稳定币的工具。这将有潜力改变流程的合规性,同时阻碍变通。

虽然这方法应该可以有效阻碍绕开人为限制的变通方法,但通过使用多方计算、安全硬件设备、最低信任的设计,还是能绕开人为限制,在智能合约平台上,也将降低智能合约的安全性及灵活性。

拥抱合约自由

与其去抵制财务自由的市场需求,不如拥抱它。如果已经有人在收取 2% 的费用了,不如做个 0% 费用的竞品。限制 RAM 交易,不如让它自由流通。锁仓,不如让仓位变得可替代且能进行交易。只有在特定情况下(绕开方案的代价过高、原市场还有其他功用比如流动性),才能不断的收取费用。

在许多 EOSIO 的网络上,主网系统的代币提供了相对应的 CPU 资源,这资源不能被以主网代币为标的代币的衍生代币所使用,在 RAM 的使用上也是同样道理。这些衍生出来的代币,都需要先换回标的代币,才能享用 CPU、RAM 资源。

想象一个市场,可让用户长期锁住 CPU 资源,它让用户提供今天的 CPU,以换取未来更多的 CPU,其实就是通过长期合约借出 CPU,以获得 CPU 资源的利息。

假设,有用户把大量的钱锁在一年的 CPU 质押合约中,他们在资金流上遇到了问题,需要赶快把钱提出来。理论上,他们应该能把这个 CPU 仓位卖给别人,售价将是根据预期利率及 CPU 在一年交割价值的净现值,这个价值将被 CPU 利率及未来 CPU 价格所影响,而非今天的 CPU 价格。

将流动性赋予锁仓仓位不会影响投票激励的价值,如果长期锁仓的投票者的行为使得未来预期的 CPU 价格下跌,那么锁仓一年的用户将会立刻遭受金钱上的损失。如果投票的结果使得未来预期的 CPU 需求上涨(即大规模使用),那么这些人将立刻获得收益。

如此,无需等待一年才能得到收益或损失,锁仓的用户可立即获得今天行为对未来影响的结果。将锁餐仓位赋予流动性,有助于让更多用户锁仓,降低锁仓奖励,增加对长期锁仓投票机制进行攻击的代价。

一个长期锁仓投票机制,如果没有可靠的流动性方案,将不会有很多人参与。让攻击方,有机会牺牲些代币,锁仓十年,对网络进行攻击。如果锁仓的仓位可以流动,更多人会锁仓,这样一来,攻击的成本将大幅上升。在打造这个锁仓仓位交易的系统前,必须要顾及法律、监管和税收等因素。

结语

智能合约应该拥抱自由,而不做人为限制,毕竟限制是可轻易绕过。收取费用是可行的,但只有在绕开方案代价过高的情况下。让锁仓仓位流动,保持了长远的策略思考,同时促进用户参与。相较于要等到很久的未来才能获得利益或损失,今天治理决定的长远影响有了实时的市场反馈,很可能更有影响力。这需要社区的智慧,对于那些误以为是为了长远好的投票者,在今天惩罚他们,而不是在将来,因为为时已晚。


免责声明:EOSwriter 不为本页面内容或产品背书,我们尽全力为读者提供所能获得的重要信息。在做与本文内容相关的决策前,建议读者进行完整的独立研究分析,并为自己的决策负完全的责任。在此声明,本文非投资建议。