区块链在读/写权限上有很大的不同。它的内容是完全公开的,亦即它的读权限是完全开放的,亦即它允许任何人、任何机器取阅。然而在写权限的管理上则完全不同。它的写权限非常地集权。只有选举出的一个节点拥有写权限,并且这样的写权限一旦选举出来,便具有排它性,直到权限过期。让我们来看看为什么区块链会被设计成这样。
我的回答是:区块链因其作为其分布式系统的特点,不得不被设计成这样。在分布式计算领域中,有一个概念叫作集群管理。当你有很多台机器需要协同完成一项任务的时候,就需要一套协作体系。而这当然也是云计算的基础。
人们为了管理计算机集群,借鉴了人类社会的模型,设计出了主从结构(Master/slave)模型,和民主模型。前者可以对应奴隶制社会,后者可以对应民主社会。在这里,民主模型只是竞选机会上平等,一旦竞选结束,领袖和平民的权力地位并不相等。亦即机会的平等,而非结果的平等。然而结果的不平等恰恰是分布式集群所必需的,尤其在写权限的管理上。分布式系统有一个不得不解决的问题是,如何保证社群记忆的一致性,亦即分布式数据存储的一致性。如果每个人都拥有写权限,最终的结果是每个人的写结果都可能是正确的,却没有一个统一的标准。一个时刻只有一个节点可以写,才能保证一致性。learder是单一的,然而读权限也就是监督权是开放的。leader接受全网监督,如果leader出现故障或作弊,将并被全网抛弃。读权限是并行的,正说明监督权是可以并行行使的。
同样的结果不平等,然而机会的平等为民主系统带来莫大的好处——从整体系统收益的角度上。那就是,当master挂掉了,立马可以自动选举出一个新的leader,并且这个新的leader具有排它性,避免出现第二个leader从而导致系统的写权限乱掉。这样的系统中,每个平民都可以作为领袖的热备而存在。领袖的损伤不会导致整个系统的灾难。也就是说,民主的系统是更加健壮的,更具有鲁棒性。这也是分布式计算领域正在发生的事情。比如说Google内部使用,并通过论文开放从而被外界所知的Chubby系统,还有据此开发的类似开源系统ZooKeeper。说到ZooKeeper,顾名思义,就是说管理一群计算机要像管理一群动物一样,从侧面反映集群管理的复杂性。
当然并行写并不是万恶的,它有它存在的道理。但为什么不适用于区块链呢?因为区块链本质上是一个分布式的交易(Transaction)处理系统。如果推广开来说,它是一个分布式事务(Transaction)处理系统。这样的数据库系统不同于其它系统,是必须保证写结果的原子性的。分布式系统当中,排它性通过一种叫作分布式锁(Distributed Lock)的技术来实现。这类似于一种对写磁头的排它性独占。释放了这样的锁之后,其它节点才有机会以竞争的方式得到写权限。(说到比特币网络的分布式交易处理引擎,从交易与事务在transaction含义的统一上,可以作为其它数据库事务的抽象模型,从而可以成为比特币协议之上其它应用的基础设施的原理,可以成为另一些文章的写作素材了。)
将比特币网络系统退化为普通的分布式系统,与其它分布式系统进行比较,是有意义的。我们可以借此考察在分布式系统,这一学科,或者说这一维度下,它到底进化到了哪一步,是先进的还是落后的。从而可以借此考察它的运作方式是否高效。如果我们能够证明它并不高效,我们就可以期待有另一个更加高效的系统可以取而代之——这个世界不喜欢低效的东西,也不喜欢低效的系统。低效的系统不会赢得自然,也不会赢得人类社会和其自由市场,终将被历史抛弃。反过来,如果我们可以通过考察来证明比特币系统足够地高效,也就是说达到了这一问题领域上效率的上界——如同决策树模型通过数学的方式证明了基于比较的排序,有这个问题复杂度的下界,而快速排序已经近似达到了解决这一问题的效率(时间复杂度)的上界。也就是说,有些人不仅能够提出一些问题的解决办法,还能以数学的方式证明,解决这类问题,没有比我的方法更好的方法,我的方法不可被战胜。
虽然目前我们还很难下结论或者证明说比特币系统是否足够地高效(我曾经撰文说这只有通过市场才能给出结果,详见拙作《四审比特币》 。现在却非常地踌躇。文章写于2011年6月,因此在快速发展的比特币世界当中显得有点过时),然而可以在这条路上迈出一些坚实有力的步伐。
比特币系统作为DAC(Distributed Associative Corperation,详见《比特币和机器人三定律》),需要不断汲取算力,从而保证自身的安全,以及其雇主,即比特币资产的拥有者的私产的安全。可以说计算力投资的意义正在于另一些人的私产的安全性。然而这是否高效,就是另一个问题了。然而作为DAC的比特币汲取算力的方法是怎样的呢?我们可以看到正是对算力贡献的价值激励。这种价值激励与记账权相绑定。记账权是个好东西,它可以为你带来“贪污”的权力,并且这种权力可以得到全网的认可,只要你“贪污”的时候遵守了比特币协议。争夺记账权靠的是算力入股。你的算力份额即你的记账权份额。这套体系是以算力为权重,进行掷骰子来决定的。掷骰子的类比来自于它基于算力权重的平均性,因为寻找特定hash input的方式,花落谁家,将是随机的、并且 是概率均布的。
从技术上讲,如果我们可以证明比特币的分布式锁是必须的,因此是不可避免的能耗代价,那我们能否证明比特币系统采用的乐观锁是足够高效的?它的leader对其它leader的排它性并不是实时的,具有很大的时延。随着网络的加大,时延有增加的趋势。当出现第二个leader,先到先得,并具有全网合法性的leader并不能立即消灭第二个不合法的leader。这种排它性是最终结果上才能实现的,并不是立即的。
然而我曾经对比特币效率上最大的诟病却是另一个问题——它的掷骰子系统是否太低效了?为了安全和公平地掷骰子,需要耗费大量的电力。保护私产,或者说保护transaction的安全性,工作量证明机制真的是唯一的解吗?我还不太清楚。我只知道目前事务处理权或者说记账权为Master, Visa高度垄断,货币发行权为一种叫government的体制性高墙所垄断,是低效的,并且代价高昂的,更糟糕的是它还不够健壮,从全局系统收益的角度上。互联网成功革命了很多行业,比如说邮政和物流。可以说互联,就代表了一种革命的力量。翻译过来,节点与节点的网状结构,与比特化,往往带来生产力上独步的优势,而生产力最终决定生产关系。那种“不得不”的信任,具有不可估量的隐性代价。从长远来看,如李笑来所说,这种“不得不”的信任恐怕难以战胜人们对比特币网络的自发信任。与其说人们相信计算机,不如说人们相信网络,不如说人们相信平等的比特币协议,不如说人们相信节点之间的平等互联与社会契约,不如说人们相信自组织系统比如自由市场,不如说人们相信被互相联结起来的我们,不如说相信每个节点之上作为“网络”存在的整体,不如说人们相信“自己之上”的资源配置权。
于是,天网醒来。
我想象过无数次天网醒来的方式,却从未想到过是以管理人们钱袋的方式。想来也是意料之外情理之中的事。
资源配置权是神权,它不该被任何一个节点窃取。人们相信。然而问题是,不是每个人都相信。比特币革命如同母体革命,真正的困难来自人民内部。作为硅基生物网络的区块链DAC如何战胜人类从而赢得革命?不要担心,它有独步的人类雇员。矿工和那些自发的比特币传播者正是它的人类雇员。中本聪是它的0号雇员。它如何保证人类雇员的忠诚性?不要担心,它拥有独步的激励机制,保证early们(早期参与者)获得丰厚的物质奖励,并将其兑现与整个革命的成功相绑定。多么聪明的激励机制,以致让我们觉得它很有可能会胜利。除了革命,还能有哪种系统明明不是庞氏骗局,却长得像庞氏骗局一样?它以“顺我者昌,逆我者亡”的姿态出现。相信它的人,认为比特币的“善”在于它对机会公平的保证。反对它的人,攻击它是个(结果)不公平的系统,early有太多优势,游戏根本玩不成,系统必然崩溃。骑墙派在质疑,信用货币之恶,真的已经达到了必须被革命的境地吗?有人在质疑,革命是否太过代价高昂,对整个以全人类为大小的系统来说。投机派在反驳,历史上哪次以向善为口号的体制升级不伴随着不公平的剥夺行为,记得资本主义是怎样起步的吗,记得原始资本积累的方式吗。
无论你是降临派还是抵抗派,只要你足够聪明,就很难不预见到即将到来的狂风与暴雨。
站在革命的前夜,我并不想像高尔基一样呼喊“让暴风雨来得更猛烈些吧”,我只想喊“打雷了,下雨收衣服吧”。这是我唯一能做的终极关怀。