过去的几个月,已成为区块链技术发展的新篇章。The DAO黑客攻击事件引发了以太坊的硬分叉,而比特币的区块扩容争论,至今仍未能解决。所有这一切,都导致了各自社区内成员的不满,甚至让加密货币社区内的关键人物也感到了失望。
2012年的时候,我离开了比特币社区,当时也是出于非常类似的原因。早在2011年,我帮加文·安德烈森(Gavin Andresen)设计了P2SH功能。这一设计并不是很复杂,它是向后兼容的,其为提高比特币的安全性及性能,提供了重要的基石。
在区块链世界,每个人的想法都要保持一致
不幸的是,想要实现区块链的共识,已经被证明是非常政治化的了。随着比特币的价格上涨,利益相关者的人数会扩展,而钱的数量,越来越多地会占据技术讨论的主导地位。
在这样的思想背景下,以太坊最近发生的情况也就丝毫不足为奇了。随着区块链的增长,较大且高度既得的用户群,会变得越来越难以去说服。当结合时间上的压力时(例如The DAO 27天的分割创造期),有些东西就不得不放弃掉。也没有足够的时间去为以太坊这样复杂的系统做一个安全的硬分叉。
更新区块链的根本性困难,在于需维持共享状态。在任何协议中,每一个人的行动都要保持一致。例如以太坊这样的区块链,每一个人的想法都要保持一致。每一个人的存储器(也称为计算机科学术语“状态”),根据相同的规则,要共同去进化。
共享状态极大地增加了复杂性,其对开发者具有很大的影响。区块链在很大程度上被各大科技公司所忽略,却被金融行业所接受,这种事实的部分原因在于:金融行业对神秘而复杂的系统具有较高的耐受性。
和谐与共识是有价值的。如果我们不同意谁担任总统,或者对自己的银行账户拥有多少钱表示不认同,那么社会将无法正常工作。但如果和谐到了极致,它也会造成伤害。在《乐高大电影》中表现出来的反乌托邦,“一切都是棒的”只是浮于表面上的东西,在背后,是一个巨大的多样性和快速变化的世界,其并不符合已建立的共识。
那么,我们如何才能在过多或过少共识之间,取得平衡?
Xanadu项目与Web
我希望每个人都能熟悉万维网。但你可能不知道的是,有一个更为古老的项目,其早在60年代就已经存在,这个项目的名称叫做Xanadu。Xanadu的存在时间不仅更久,它拥有的功能集也要比 Web更具野心。
但最终Web还是赢得了胜利,其原因有很多,但我相信Web的无状态架构是其成功的关键。Xanadu和web都是去中心化的,但web要简单地多。它所需要的是一个最小的协议,以及最简单的数据格式。网站之间不需要交互,这意味着它们可以相互独立地演变,相比于等待Xanadu的创造者添加一个功能,用户所关心的许多功能,可能只是通过更改网站或客户端来创建的。
作为W3C和IETF的积极参与者,我们总是会因为web的技术更新过程而着迷。例如,HTTP 2是由谷歌来实行的,它以“SPDY”为名,谷歌控制了多个web服务器(谷歌搜索,Gmail等)以及客户端(谷歌 Chrome)。Web系统的一个角落能够得到更新,好想法最终能够蔓延到整个系统,这一事实是Web能够跟上技术创新步伐,一个至关重要的原因。
一种更好的方法
区块链行业可以从Xanadu 以及Web标准当中学到些什么?与其盲目地用区块链替换中心化的功能,我们更应考虑如何去避免用中心化的方式去实现这些功能。我们需要建立的,是像 Web这样的无状态协议。
为了说明我所讲的,我们来思考下支付的例子。比特币是现有中心化账本(如信用卡网络)的一个替代品。这无疑是一个好主意。但比特币仍然存在很多共享规则,而参与者必须要去同意。为了赞同共识机制,我需要去使用工作量证明,我需要同意目前的货币分布函数。我需要认同区块大小限制。我需要接受匿名性的缺乏等等。
相比之下,在添加一个抽象层之后,Interledger 协议允许我选择一个账本,它具有我喜欢的共识机制、货币、性能特点以及匿名性等。
“我的账本一定要由爱和彩虹驱动的!”
这并不意味着Interledger并不需要任何协议,我们仍然需要一个通用的数据格式。然而,这些选择都不会在经济上或者政治上影响我,这使得它更容易去妥协。而且,重要的是,我们并不分享全局状态,所以至少我们的思想,可再次是属于我们自己的。