权力封锁机制开始必须公开不可改 渐进式去中心化增加智能合约
一年前发布以太猫的时候,我们没有选择预先通过 ICO 的方式募集资金,而是为其设计了一个可持续的盈利模式。这个模式是这样的:我们对游戏中...
一年前发布以太猫的时候,我们没有选择预先通过 ICO 的方式募集资金,而是为其设计了一个可持续的盈利模式。这个模式是这样的:我们对游戏中的每笔交易收取 3.75% 的费率。鉴于加密猫游戏是建立在以太坊区块链上的,这个游戏一经部署发布,我们就不能再更改费率。经常有人问我们是怎么得出那个数字的(译者注:前面提到的 3.75%)。
这个数字看起来像是通过严密的方法推算出来的。我也可以编一个天花乱坠的故事,去阐述我们是怎么用先进的预测模型跑仿真实验,从而找到了一个可以产生最优回报的费率。
事实并非如此。
我们只是做了有根据的推测,然后选择了一个感觉上比较公平的数字,然后付诸实践。
不可变更性令人敬畏
我们很容易做出错误的选择;而一旦把它添加到区块链上,就无法做任何改变了,这将是天大的灾难。我们的加密猫就很幸运,萌哒哒的猫咪碰上了热情似火的社区,3.75 % 的费率下运作得也还不错。
不可变性就是(一旦上链就)不能再编辑,它既是区块链技术最大的优势,也是阻碍其被广泛采用的最大障碍。代码一经部署就永远不可更改,如此巨大的压力足以压垮开发者:在测试环境中你随时可以做出修改,但在实际运行过程中总有你预料不到的变数。如果你蒙起眼睛二话不说就是干,是绝不可能取得突破的,反而很有可能引发故障。
除了费率之外,我们还做了许多决策:加密猫的成长期是多久?它们的繁殖冷却速度应该以什么样的速率减慢?0 代加密猫售价多少?一旦在区块链上发布,就算是一个看似微不足道的决定都会造成严重乃至危险的后果。
去中心化给普通人带来了巨大的好处:永久性通用规则上的公平性,以及代码和行为上的透明性,结合在一起实现了安全性。然而,由于区块链具有不可变性,上链的项目不是一举成功,就是一败涂地,敏捷开发是不可能了,开发团队也没了缓慢前行的余地。
敏捷开发需要迭代。快速迭代是构建最优质产品的关键,而最优质的产品会被大规模采用。
何谓渐进式去中心化
我们开发加密猫时就遇到了这些障碍,为了增强产品的实用性只能弱化去中心化的特征。从那以后,我们就开始探索渐进式去中心化,就是我们在最近的一篇文章中简略介绍过的那个想法。
现在让我们更深入地探究一下。
简言之,渐进式去中心化提倡有阶段性地过渡至去中心化,而不是直接迈进去中心化。也就是说,要在智能合约中创建一些机制,最开始的时候赋予合约创建者一些特权,之后通过透明且系统化的方式逐步将这些权力封锁起来。
最关键的一项条件是,权力封锁机制在最开始的时候就必须是公开透明、不可更改的。合约创建者后续无法修改条款,无限制扩大自己的权力。最重要的是找到一个平衡点:如果渐进式去中心化走对了路子,合约创建者就可以在不损害合约去中心化特性的情况下灵活修改他们的代码。
渐进式去中心化可以有很多种形式
渐进式去中心化不是只有一条路走得通。有许多方法可以去考虑,最佳的方法因项目而异。
下面提供了一些开发者可以用来实现渐进式去中心化的方法:
对项目进行合理划分,将不同方面分别编写进不同的合约内,而且其中一些合约是能够被替换的。已经有一些去中心化的应用("dapp")在使用这种方法了,例如以可升级合约为特色的 Decentraland 。
实现变量可配置化并开设独立更改变量的权限。比如说 Etheremon 就为那些成为仲裁人(moderator)的用户开设了特殊权限。
在合约中预先设定一组层级,每个层级都会赋予合约创建者特定的权限。层级只能升高,不能降低。因此,一旦进入了更高层级,是不可能回到原来的层级的。例如,处于第一层级的合约所有者可以自由设置变量。到第二层级之后,他们就丧失了更改核心变量的权限。到了最后一个层级,合约所有者的一切特权都会被取消。
对于拥护去中心化的铁杆粉丝来说,上面的一些方法可能太过中心化了。但是这只是第一步。还需要通过后续措施进行迭代,逐渐趋近去中心化。这种解决方案就是将一个透明的目标与合约中的约束条件结合起来。这些约束条件应该包括:
选择:不是所有的东西都可以更改,只有那些需要被迭代的特定项可以被更改。
中国观察