观点 | 为什么说渐进式去中心化是合约开发的可行之道?

一年前发布 加密猫 的时候,我们没有选择预先通过 ICO 的方式募集资金,而是为其设计了一个可持续的盈利模式。这个模式是这样的:我们对游戏中的每笔交易收取 3.75% 的费率。鉴于加密猫游戏是建立在以太坊区块链上的,这个游戏一经部署发布,我们就不能再更改费率。经常有人问我们是怎么得出那个数字的(译者注:前面提到的 3.75%)。

这个数字看起来像是通过严密的方法推算出来的。我也可以编一个天花乱坠的故事,去阐述我们是怎么用先进的预测模型跑仿真实验,从而找到了一个可以产生最优回报的费率。

事实并非如此。

我们只是做了有根据的推测,然后选择了一个感觉上比较公平的数字,然后付诸实践。

不可变更性令人敬畏

我们很容易做出错误的选择;而一旦把它添加到区块链上,就无法做任何改变了,这将是天大的灾难。我们的加密猫就很幸运,萌哒哒的猫咪碰上了热情似火的社区,3.75 % 的费率下运作得也还不错。

不可变性就是(一旦上链就)不能再编辑,它既是区块链技术最大的优势,也是阻碍其被广泛采用的最大障碍。代码一经部署就永远不可更改,如此巨大的压力足以压垮开发者:在测试环境中你随时可以做出修改,但在实际运行过程中总有你预料不到的变数。如果你蒙起眼睛二话不说就是干,是绝不可能取得突破的,反而很有可能引发故障。

除了费率之外,我们还做了许多决策:加密猫的成长期是多久?它们的繁殖冷却速度应该以什么样的速率减慢? 0 代加密猫售价多少?一旦在区块链上发布,就算是一个看似微不足道的决定都会造成严重乃至危险的后果。

去中心化给普通人带来了巨大的好处:永久性通用规则上的公平性,以及代码和行为上的透明性,结合在一起实现了安全性。然而,由于区块链具有不可变性,上链的项目不是一举成功,就是一败涂地,敏捷开发是不可能了,开发团队也没了缓慢前行的余地。

敏捷开发需要迭代。快速迭代是构建最优质产品的关键,而最优质的产品会被大规模采用。

何谓渐进式去中心化

我们开发加密猫时就遇到了这些障碍,为了增强产品的实用性只能弱化去中心化的特征。从那以后,我们就开始探索渐进式去中心化,就是我们在 最近 的一篇文章 中简略介绍过的那个想法。

现在让我们更深入地探究一下。

简言之,渐进式去中心化提倡有阶段性地过渡至去中心化,而不是直接迈进去中心化。也就是说, 要在智能合约中创建一些机制,最开始的时候赋予合约创建者一些特权,之后通过透明且系统化的方式逐步将这些权力封锁起来

最关键的一项条件是,权力封锁机制在最开始的时候就必须是公开透明、不可更改的。合约创建者后续无法修改条款,无限制扩大自己的权力。最重要的是找到一个平衡点:如果渐进式去中心化走对了路子,合约创建者就可以在不损害合约去中心化特性的情况下灵活修改他们的代码。

渐进式去中心化可以有很多种形式

渐进式去中心化不是只有一条路走得通。有许多方法可以去考虑,最佳的方法因项目而异。

下面提供了一些开发者可以用来实现渐进式去中心化的方法:

  1. 对项目进行合理划分,将不同方面分别编写进不同的合约内,而且其中一些合约是能够被替换的。已经有一些去中心化的应用(”dapp”)在使用这种方法了,例如以可升级合约为特色的 Decentraland
  2. 实现变量可配置化并开设独立更改变量的权限。比如说 Etheremon 就为那些成为仲裁人(moderator)的用户开设了 特殊权限
  3. 在合约中预先设定一组层级,每个层级都会赋予合约创建者特定的权限。层级只能升高,不能降低。因此,一旦进入了更高层级,是不可能回到原来的层级的。例如,处于第一层级的合约所有者可以自由设置变量。 到第二层级之后,他们就丧失了更改核心变量的权限。到了最后一个层级,合约所有者的一切特权都会被取消。

对于拥护去中心化的铁杆粉丝来说,上面的一些方法可能太过中心化了。但是这只是第一步。还需要通过后续措施进行迭代,逐渐趋近去中心化。这种解决方案就是将一个透明的目标与合约中的约束条件结合起来。这些约束条件应该包括:

  1. 选择 :不是所有的东西都可以更改,只有那些需要被迭代的特定项可以被更改。
  2. 范围 :对于很多有关博弈经济的问题,我们有了一个大概的想法但是还不知道准确的答案。将配置限制在一定的范围内可以让用户确信迭代会在合理的范围内进行。
  3. 方向 :类似于上文提到的 “层级” 的概念,特定的变量只能单向移动,一直增加或者一直减小,但是绝不能逆转。

实行合约创建者问责制

这些在理论上听起来很棒。但是我们怎么能确保开发者会严格按照他们的路线图一步步实现完全去中心化呢?如何让用户相信这是个渐进式去中心化系统并尽早加入呢?我们怎么能知道这个系统最终不会变成一个有缺陷的中心化系统呢?

渐进式去中心化需要实行合约创建者问责制:

基于时间长度或者出块数量划分阶段

基于固定的时间长度或出块数量进行阶段划分,锁定某几个配置值,取消合约拥有者的权限,或者进入下一层级。一旦越过临界点,合约就会自动变更。

想像一下,比如说,加密猫从发布开始每挖出 36 万个区块(大约是 60 天的时间)就要调整猫的繁殖冷却变量,在那之前我们可以调整冷却机制,给自己喘息的空间去实现平衡,而且向玩家保证我们不会永远拥有这个特权。

基于使用量的阶段划分

当用户或者交易达到一定量的时候会锁住这些权限。这个解决方案可能会被利用,因此需要谨慎考虑,但是我们可以在加密猫中构建一个弹性费用机制,等到 10,000 笔交易之后会锁定费用。

经济激励

在合约创建者可获得的经济激励与合约的去中心化程度之间建立正相关关系。在这种场景下,合约去中心化的程度越高,创建者收益越多。比方说,开发人员每上升一个层级,交易费用也会随之上涨,当达到完全去中心化的时候,就会锁定在最高的费用上。或者说,在完全实现去中心化以前,开发者一点收益也没有。有了这种经济激励之后,开发者以合理的节奏向完全去中心化过渡。

区块链上没有最佳的构建方法

“渐进式去中心化” 实际上包含许多策略、机制和工具,可以让区块链上的开发工作变的更加可行。渐进式去中心化的最佳实现方式还是得具体项目具体分析,将上述概念进行混合搭配。

渐进式去中心化不是完美无缺的。完美的智能合约是简单明了的,这些措施却增加了智能合约的复杂性。采取哪些措施以及如何采取这些措施是一个权衡的过程,需要根据具体情况进行评估。

尽管这个观点可能会触怒去中心化的铁杆粉丝,但是我们认为,从长远发展来看,渐进式去中心化对用户更有利:它给予开发者更多灵活性,赋予产品更强的实用性。这意味着用户真的会使用这个产品,一旦产品给他们的生活带来价值,他们就会向周围的人们安利这个产品。这个产品就能进入大规模应用阶段。

原文链接: https://medium.freecodecamp.org/why-progressive-decentralization-is-blockchains-best-hope-31a497f2673b

作者: Arthur Camara , Dieter Shirley , Grady Mitchell

翻译&校对:haiki & 闵敏