为什么渐进式去中心化才是区块链的希望?
人人都知道,“去中心化”是区块链的最大特点和优势,然而去中心化往往依托于区块链严格的「不可篡改」特性。
这是一把双刃剑,虽然实现了安全,但彻底抹杀了开发的灵活性,让开发团队举步维艰。
本篇文章中,“以太猫”产品开发总监Arthur Camara,以以太猫这款现象级的产品在开发过程中遇到的困难为例,提出了“渐进式去中心化”的概念。
在智能合约中建立机制,给予创造者特殊的权力,然后以透明且系统性的方式逐步将这些权力锁定起来。
让区块链开发既不失安全,又有更多的灵活空间。
一年前,当我们发布CryptoKitties(迷恋猫,也叫以太猫)时,我们并没有选择通过 ICO进行融资,而是建立了一个可持续的收入模式。
这个模式是这样的: 我们从游戏中的每笔交易中收取3.75%的费用。考虑到以太猫是建立在以太坊上的,所以一旦启动就无法改变费用。
人们经常问,我们是如何确定3.75%这个收费率的。我本可以编个引人入胜的故事,讲述我们如何利用先进的预测模型进行模拟,找到能够产生最佳回报的收费率。但这么做很没品。
事实上,我们之所以定了3.75%这个数字,只是挑了一个看上去公平的数字而已。
「不可篡改」既强大又可怕
收费率很容易选错,由于任何东西一旦添加到区块链就不可更改了,选错的代价将是灾难性的。幸运的是迷恋猫社区充满热情,猫咪们也很可爱,所以3.75% 的收费率取得的结果也非常不错。
人们常说,「不可篡改性」是区块链最强大的优势,同时也是妨碍它实现规模化采用的最大障碍。永恒代码的压力让开发人员感到无能为力。无论你在测试环境中怎样进行修改,总是会有你无法预料的现实变量。
制定收费率只是众多问题中的一个。饲养一只小猫需要多长时间?应该以多大的速率减慢它们的繁殖冷却速度? 买一只Gen 0猫需要多少钱?在区块链上,一个看似微小的选择可以造成严重甚至危险的后果。
我不否认,去中心化为人们提供了很多优势,比如永久且通用的规则体现了公平性,代码和行为的透明性,两种特性结合在一起创造了安全性。
然而,由于去中心化机制背后严格的不可更改属性,区块链彻底抹杀了开发的灵活性,让开发团队举步难艰。
灵活性需要迭代。快速迭代是开发最佳产品的关键,只要产品做到最好,大规模采用就不是问题。
什么是「渐进式去中心化」?
我们在开发CryptoKitties也遇到了这些障碍,迫使我们在开发产品的同时必须妥协一些东西,包括去中心化的功能。记得最初,我们开始探索开发中的渐进式去中心化,这个想法我们不久前曾简单介绍过。
简而言之,渐进式去中心化主张分阶段缓慢实现去中心化,而不是一头扎进去,一步到位。基本原理是,在智能合同中建立机制,给予创造者特殊的权力,然后以透明且系统性的方式逐步将这些权力锁定起来。
一个关键的条件是,锁定机制从一开始必须是公共且不可更改的。创造者不能稍后修改条款,不能无限期延长他们的权力。此外,平衡也是至关重要的。
如果处理得当,渐进式去中心化将可以让创造者灵活地修复他们的代码,同时保证智能合约的去中心化特性不受影响。
渐进式去中心化的多种形式
渐进式去中心化并没有一个确定的正确实现方法。有许多变量需要考虑,最好的方法因项目而异。
以下是开发者可以采用的方法:
- 构建多份合约,将条款适当地分离到不同合约中,并且规定能够替换其中的一些合约。Decentraland等去中心化应用程序("dapps")采用可以升级的智能合约,他们用的就是这种方法。
- 可配置变量和独立更改这些值的权限,例如Etheremon,它给成为版主的用户群体赋予特殊权限。
- 在合约中加入一组预定义的升级级别,每个升级级别允许创造者拥有一定的能力。级别只能增加,不能减少,所以不能进行回溯。例如,在第1级,合约拥有者可以更改所有的游戏变量。在第2级,他们不再拥有修改核心变量的能力。在最后一级,合约取消他们所有的特权。
对于顽固的去中心化主义者来说,其中一些方法可能听起来“中心化”色彩太浓。但这仅仅只是个开始。我们还可以通过进一步的方法来用迭代来平衡去中心化。具体解决方案是将目的的透明度与合同中的条件和限制结合起来。
这些限制可能包括:
- 选择,不是所有内容都可以修改,只有需要迭代的特定项目才可以修改;
- 范围,对于许多关于游戏经济的问题,我们可能只有一个大概的概念,不知道确切的答案。将配置限制在一定范围内,可以向用户保证迭代将处于一个合理的范围内;
- 反向,类似于上面的"等级"概念,让某些变量只向一个方向移动,减少或增加,但绝不回溯。
让创造者负起责任
上文说的在理论上听起来都很棒。但是,我们该如何确保创造者忠于他们的路线图,构建出完全去中心化的合约呢?
如何在只能保证系统是渐进去中心化的一个应用的前提下吸引早期用户?
我们怎么知道我们不会最终成为另一个有缺陷的、集中化的系统?
要回答这些问题,需要知道渐进式去中心化包含让创造者负起责任,包括以下几个基本原则。
基于时间或区块的成熟度
锁定特定配置值,撤销所有者的权力,或者移动到超过某个时间点或区块号的下一个级别成熟度。一旦达到这一点,合约就会自动变更。
例如,CryptoKitties从发布那一刻起就有36万个区块(大约60天的时间)要调整加密猫的繁殖冷却变量。在那之前,我们可以调整冷却机制,给自己一个喘息的时间来完善平衡,同时向游戏玩家保证我们不会无限期地拥有这种能力。
基于使用的成熟度
一旦达到一定数量的用户或交易,就锁定这些能力。这个选项需要仔细考虑,以避免漏洞,我们可以在CryptoKitties中构建可配置的费用,该费用在达成10,000笔交易将会被锁定。
经济奖励
使创造者的动机与增加的去中心化保持一致。在这种情况下,合约的去中心化程度越高,创造者获利越多。
也许开发者每升一个等级,费用就会增加,当他们实现完全的去中心化时,将费用锁在最高费用。或者,还可以让他们在实现完全的去中心化之前根本不赚钱。这种经济奖励可以促使开发者以合理的速度实现去中心化。
区块链开发没有最佳途径
"渐进式去中心化"实际上是一个包括许多策略、机制和工具的综合式解决方案,其宗旨是让区块链上的开发工作更加可行。渐进式去中心化的最佳实现方式取决于项目,而且总是涉及上述概念的混合使用。
渐进式去中心化并不完美。理想的智能合约是简单且直接的,上述这些方法增加了复杂性。如何以及在多大程度上使用这种解决方案是一种权衡,需要根据具体情况进行评估。
虽然这可能会激怒强硬的去中心化主义者,但是我们相信,从长远来看,渐进式去中心化对用户来说是更好的。
通过赋予开发者调整的灵活性,消费者可以获得更有用的产品。
这意味着他们会真正使用产品,一旦产品给他们的生活带来价值,他们就会向周围人强烈推荐。
作者 | Arthur Camara
译者 | shawn
责编 | Aholiab