区块链其实和人工智能一样,是一个不精确又容易引人遐想的词。如同artificial
intelligence这个词出现的时候,computer science这个词还没有出现。未来区块链实现的
技术以及相关领域的研究很可能会被叫做distributed credential consensus network一类
冷冰冰的词代替,但是区块链这个词还是会被大量使用。从某种程度上讲,区块链和人工智
能一样,它们能经历持续发展还真受益于它们表意不明却听起来又很科幻的名字。
区块链其实并不神秘,它设法解决的问题也公然所知,在1970s计算机学界想要解决一个重
要的分布式计算问题,叫做“拜占庭将军问题”。大意是几位将军想要同时攻打一个城,但
是这些将军当中有可能是叛徒,被攻打的城也可能派出假的信使传递假信息。那么在这种情
况下,将军要如何依据由信使获得的信息,来确定出彼此的真实意图,做出最终使大家都不
受损失的决定,便是这个问题的核心。映射到计算机领域,便是使得在不存在管理者或监督
者的情况下,当有一些分布式系统的节点瘫痪,或是人为发布错误甚至恶意信息的时候,系
统仍然能够稳健运行,而不是因为这一个节点的问题而完全瘫痪。
这是分布式系统中非常经典的问题,是每个计算机系研究生修分布式系统课程时必然会学到
的一课。它的解决也有重大意义,就是我们可以在一个统一的网络中,不再依靠第三方的信
用体系来维护各样交易或手续等事务操作。从技术的角度来看,区块链实现了一个巨大的分
布式的数据库,各种事务的进行和中心化的数据库并无区别,只是验证和保障事务的不再是
数据库的提供方而是每个用户,透明的信息对谁都透明,不透明的信息对谁都不透明。从非
技术的角度来看,就是在结果上使得依靠和维护信息不对称的机构都失去了存在的意义。
因此比特币是个很天才的发明。请听我继续往下说。
我们回顾一下分布式系统的发展。在我们今天的时代,如果不是一个大公司,不会有人会在
商业模式尚未清晰之前,以如此财力兴建一个巨大的去中心化的网络基础设施。我们过去的
各种基础设施,无论是因特网,还是无线通信网,都是星形的中心化结构。尽管自从计算机
网络概念出现以来,ad hoc网络一直都是选择,然而至今为止并没有大规模的非中心化的网
络被建立起来。原因是这个架构本身就反抗这个架构的建立者对其完全地控制(无论从实际
控制的难度还是从其他参与者的意志),而任何盈利的组织机构不会愿意建立一个最终自己
会对它失去控制的系统。在技术上它有很多可能性,有很多有趣的可以研究的地方,但是在
商业上它没有吸引力。它也注定是一个复杂低效的系统。
历史上出现的各种去中心化系统都在经历着政府、企业和组织的围追堵截。第一个尝试是
Napster,以及后来受其启发的BitTorrent,eMule等文件下载/共享平台,还有更厉害的洋
葱路由Tor。在21世纪的头十年里,有无数人受益于此类技术,才能享受到各种免费的珍奇
的电影音乐,不再出版的书籍等等,但是这当中的贡献者没有得到任何实质报偿,受益者也
没有做出贡献。大家都发现基于这个网络做的事情都是可做可不做,获得的东西也是可得可
不得。
在过去的八年里,得益于网络基础设施性能的大幅提升,以及在线支付手段变得史无前例地
便捷,去中心化网络的意义被进一步受到摧残。因此区块链网络能够逆向这个潮流被建立起
来,还是件很稀罕的事情。
接下来我们要回到那个“拜占庭将军问题”,也就是区块链的核心。虽然在理论上有各种节
约资源的方法,但在实践的分布式系统中,无论是大到服务器,还是小到无线传感器节点,
都要不断地向外发送heartbeat信息,通知邻近节点说我还活着,我还工作良好。就像拜占
庭将军问题中的将军们彼此争先恐后地通知其它将军通知“我还活着,我没叛变,我发出的
其它信息也非常可信”的信息。
但最精彩的地方在于,这条用来证明自己置信度的信息,被赋予了货币的属性。如果在这个
网络中,这条信息可以被不加篡改地传播,以及唯一地被持有,那么它一定在程度和范围上
就可以被作为代币使用。于是后面的事情我们就都看到了,在中本聪的那篇白皮书中,分布
式系统、拜占庭将军问题及其解决方案被映射到了一套“挖矿”和“结算”的概念中。于是
一步步地,它被当成了货币,它和真实货币有了交换,人们期待它有价值,人们对它真实价
值的期待变成了它的真实价值。在这过程中出现了成千上万的矿机,一定程度上还推进了并
行计算和FPGA技术。
实现比特币的技术并不成熟,采取工作量证明作为通证不是作为货币的最好选择,但是作为
将军之间彼此证明自己神志清晰且不怀恶意绝对足够了。后来不断有人加入其中去开发更好
的证明方式,但是这一切都没有比特币做的开创性的工作:把这个证明信息与货币相关联。
于是人们不再是先建立一个去中心化的分布式系统,再用尽可能低廉的成本解决拜占庭将军
问题,而是不惜一切代价解决拜占庭将军问题(挖矿),从而在事实上建立起了一个稳定的
去中心化的分布式簿记系统(当然未来也可以不是簿记系统)。
或者说,人们并不是先成为将军,再去发送heartbeat信息解决置信问题,而是为了追求这
个heartbeat信息,莫名其妙地成为了将军。如果说比特币是一种对计算资源的激励机制的
话,那么迄今为止它产生的最大的激励效果就是激起人贪婪逐利的欲望,把这样一个系统建
立起来。
因此我们不禁联想,如果比特币这一概念的释出,最终正是要实现区块链的网络基础设施
呢?这件事就有点让人脊背发凉了,比特币也真的就是非常天才的发明了。因为如果真是这
样,人们今天如此的疯狂和贪婪,便都是在计划或者构想之内的,它们都服务于一个稳定的
去中心化网络的建立。那么比特币作为一次巨大的社会实验的意义,就会远超过它的商业和
科技意义,因为这是史上头一次技术的意志撬动了人类的贪欲,构建了一个反人性的,商业
环境中的理性人没有意愿去构建的系统。
但是我们接下来怎么玩它呢?在数字货币的泡沫褪去后,区块链真正的价值就会显露出来。
就好像JavaScript最初是为HTML服务的,并且当时因为Java大行其道的缘故而出现了很多故
意贴近面向对象语言设计的特性。然而当HTML不只是要完成信息呈现的工作,而是要完成更
多交互功能的时候,JavaScript变成了一个更加完善,且不断演进的系统。
区块链也是类似。目前从以太坊开始发起的Solidity是第一个图灵完备的编程语言,用来开
发“智能合约”。所谓智能合约就是一个自动执行交易的账户,它可以是期货,期权,保险
等等。但当未来区块链突破了数字货币的应用场景,就如同HTML突破了内容呈现的场景时,
用来开发智能合约的语言也很快会成为通用的编程语言。