区块链的计算本质是一个可以和特定计算设备分离的冯·诺伊曼架构,是可以向第三方证明的可信计算范式,目的是为了计算过程真实可信,支持上层应用上实现业务逻辑的自证清白,为世界带来可以计算的信任。
从上层应用开发的角度来说,这和大部分输入驱动的编程模型没有什么不同。但是从底层的计算执行过程来看,较之传统的计算系统,有其非常独特的去中心化的特性。
这样的一个特性,产生了一个「制造信任」的机器。当然了,它的第一个产品是比特币,其核心可以这样总结:
可靠的点到点的支付的机制,手续费自由竞争
总量给定,匀速发行,周期性发行速度减半
区块链这个机器,为比特币制造了信任,严格保障了上述两点核心原则。也许在很多金融人士的眼中,这两个原则既平庸又幼稚,但是这是人类文明历史上,这是第一次在这样的层面上的原则得到技术驱动的绝对保障。然后,数字货币世界就此开始起步。
人类真的很神奇,《人类简史》中曾有一句话:「想象力与虚构是人类文明的起点,我们编故事,并相信我们的故事…...」我想,比特币就是个绝佳的例证。当然这个相信也不是凭空而来,宗教花了无数的力气,花了几百年,而比特币仅仅凭一段代码,只花了几年的时间。
这就是技术的力量。 一部分姑且称之「为了现在的未来」,另一部分则是「为了未来的未来」。只关心互联网的同学可以先跳到后半部分 「为了现在的未来」,即如何为现在的互联网制造信任。
为了未来的未来 : 为去中心化的世界制造信任
去中心化技术已经发展了有很长一段时间,并不是只是大家看到的区块链。其实,最早的去中心化技术是互联网本身。我们已经历经了通讯的去中心化、存储的去中心,然后才有了区块链,即「计算的去中心化」。
通讯的去中心化
1876 年,商用电话网络首次部署,那是一个比计算机要早 70 多年的时代。当时通话双方藉由一个中心切换机房,来完成点对点通讯链路的连接,而这个连接是真真实实物理世界中的一条线。
从现在的观点来看, 这就是一个伸缩性极差的星型网络。很明显,这个中心切换机构是通讯的瓶颈,也是单点失效 single point of failure 的存在。我们现在代码里面的一条 「if」语句,在那个时代,是下图这样的一个机械开关。
之后电信网络经历了人工接线到程控交换、模拟信号到数字信号、语音链路到数据链路、独占线路到分组交换 packet-switching 一系列将近 100 年的演化。
最终到了 1960 年代, 美国国防部高级研究计划局 DARPA 启动了 ARPANET,提出了 IP 协议组,才是真正意义上的现代全球数据网络的开端。
去中心化就是 IP 协议组设计目标的核心,当初的目的是为了有效抵御可能的核战争对物理通讯系统的破坏。很庆幸,这个事情最终和战争没太大关系,而是为人类带来了互联网。
IP 协议组实现的通讯的去中心化,其核心是的交换设施的去中心化。分散的交换设施在数据通讯网络中互相松散地连接,将数据包从发送方逐级接力转发到接受方。
这个过程无需一个中心来协同和调度,从而保障当网络中部分交换设施失效之后,这个网络剩余的节点依旧可以正常通讯。实现这个过程的核心技术是去中心化的路由算法,能够处在一个网络的局部发现源和宿的路径,进而完成自己这个局部的路由寻径和报文转发。
一个去中心化的系统,隐含的意思是开放的协议和没有壁垒的公平参与。不必妄想什么自由精神,只是这一点,就极大减少了推广这个技术的摩擦和实施这个技术的门槛。
正因为如此,IP 协议组被全世界所有公司、所有国家接受。无论哪种商业模式、哪种意识形态,都接入了这个体系,一起构造了划时代的人类文明的载体。不过,其后的 Web 却走了捷径,用中心化的方式实现了域名系统和 CA 证书系统 主要用于 HTTPS。
这里需要提一下的是,IP 地址分配现在是中心化协调的,从而避免冲突。IP 地址分配本质上完全可以是去中心化的,正如 BitTorrent 种子的地址或者比特币钱包地址一样。
但是由于去中心化的的地址分配需要一个比现在 IPv4 大许多的地址空间,导致用来表示 IP 地址的数据量变大一些。所以可以理解在当年带宽稀缺的年代,采用了 IPv4 的 32 位地址。在新的 IPv6 中,这个地址是 128 位的,完全可以实现去中心化的地址分配。
存储的去中心化
1999 年,Napster 点燃了点对点文件共享的第一把火。在那个很多人还是用 52K 猫拨号上网的时代,在线多媒体内容极其稀缺。
Napster 让大家把电脑硬盘里面的,CD 机里面的 MP3 音乐分享出来,让大家可以更容易获取到喜欢的音乐。当然唱片公司不乐意了,后面关于唱片业和版权生意变革的故事我在这里就不多展开了,让我们把注意力还是放在点对点共享系统的发展上。
Napster 之后,美国的 BitTorrent、日本的 Winny、中国的 PPLive、迅雷,还有北大的 Maze 等等,都在这一时期涌现出来。
由于高昂的服务器带宽成本以及过低的用户接入带宽,使得在那个时代无法支撑今天我们所熟悉的在线视频网站和在线音乐网站。而这个用户需求,在 2008 年之前,被点对点文件共享系统满足了。
这里描述的问题看起来像是个通讯的问题,但是其实质是得益于去中心化的冗余存储。
大致自 2000 年开始,大量用户开始迁移到 ADSL、小区 / 宿舍局域网等接入方式,这使互联网的带宽呈现上图这样的一个分层的结构。用户本地端口的带宽实际上远高于其 ISP 提供的互联网接入带宽。
这时下载源离用户越近,大概率其下载带宽就越高。点对点文件共享网络中的每一个节点,在下载过程中,同时也成为了一个新的冗余下载源。这时,一个原本位于国际互联网上的一个文件,你可以在国内、甚至同一个城市找到下载源。
对于热门的资源,你甚至可以在同一个小区、甚至同寝室找到下载源。这时你会发现,虽然你在下载一个海外的资源,而你体验到的下载速度甚至远高于你的互联网接入带宽。
而对于原始提供下载的网站来说,绝大部分的下载流量被之后的点对点下载节点承担了。 同样是去中心化,存储去中心化实现了比中心化更好的性能和用户体验,所以去中心化就性能低下的刻板印象是不正确的。存储去中心化首次在去中心化体系中引入了安全措施,用安全哈希函数 Secure Hash 来收到验证数据的真实性,避免数据被篡改。
在前面提到的 IP 协议组中,是完全无法校验被篡改的数据包的。
另外,在存储去中心化系统中,更值得一提的一项核心技术是分布式哈希表 DHT, distributed hash table,这项技术使得 BitTorrent 最终成为一个彻底的去中心化系统,以去中心化的方式找到冗余下载源,摆脱对 Web 网站跟踪器 Web Tracker 的依赖。从用户角度所看到的就是磁力链接代替了从网上下载的种子文件。
存储去中心化使得资源离用户更近,在那个时代打破了互联网接入带宽的约束,提供了超越时代的资源发现和下载的体验。
之后的故事,不禁唏嘘,在 2006 年之后互联网接入带宽大幅提升,同时成本快速下降,中心化的视频网站登上舞台,从而将视频网站竞争的格局从带宽成本迅速转移到版权资源。
之后点对点文件共享系统,只剩下了 BitTorrent、快播等提供独特内容的平台。而存储去中心化的内容分发设计理念则被 CDN 内容分发网络 承袭,继续利用互联网的带宽分层结构,更高效地为用户服务。
未来的去中心化应用世界
今天,相信大家都看到了计算的去中心化。正如上一篇文章「区块链到底有什么了不起」讲到的,区块链的本质是为了计算过程的可信,从而打造了一个制造可计算信任的机器。相信大家也看到了去中心化应用 DApp,以基于以太坊的智能合约为代表的实现,运行在特定公链上的应用。
但这里我想说的去中心化应用是一个更大的范畴,即任何不依赖中心服务器的在线应用。这里包括前面提到的各种点对点文件共享系统,包括点对点的视频、通讯等应用,当然也包括现在的公链系统。
不过很遗憾,除了公链系统,其他的去中心化系统并没有设计成一个功能和场景可以被拓展的应用平台。比如,存储去中心化其实可以有很多想象空间,它同数据的所有权、数据的流动方式密切相关。
当下在互联网的主流应用中出现的那些用户隐私、数据安全、影响力操纵等问题,或多或少可以在存储去中心化的计算范式中得到一些启发。