图片来源图虫:已授站长之家使用
来源/链捕手公众号(微信号:iqklbs) ,未经授权,谢绝转载
作者/冒志鸿
「去中心化应用」(也被称为DApps)成为当前区块链行业的热点,但当你去研究却发现目前DApps都是各类的菠菜、资金盘。更让人担忧的是DApps也许是继「区块链」之后又一个定义不明,令人费解的词汇,对它的认识市面上存在了各种误解。
此次,应链捕手(ID:iqklbs)约稿,ArcBlock创始人兼CEO冒志鸿撰写了本文,他从去中心化与中心化发展的历史来理解DApps的现状、破局的关键及方法。相信冒志鸿精彩的分享,应该能给你带来启发。
01
「中心化」与「去中心化」的此消彼长
计算机软件应用的过程是一个「中心化 - 去中心化 - 再中心化 - 再去中心化」的演变过程。Internet的诞生,源自美国国防部的研究项目ARPANET,其设计之初考虑如果仅有一个集中的军事指挥中心,万一这个中心被苏联的核武器摧毁,全国的军事指挥将处于瘫痪状态,因此有必要设计一个分散的、共享数据的网络系统。所以Internet将去中心化的思想根植于设计理念之中,很多早期的互联网协议,包括TCP/IP都是以去中心化思想为基础来设计的。
随后逐渐发展出有字符终端,顾名思义就是只有输入输出字符的功能,没有处理器或硬盘,通过串行接口联接主机,一切工作都要交给主机来做;后面还伴随有分时操作系统的出现,也就是多个用户共享主机中的资源。因为字符终端、分时操作系统等一旦离开主机什么也不能干,软件完全运行在中心化计算机上,这使得我们进入到了中心化时期。
直到个人计算机(PC)时代的降临,我们才迎来了第一批真正意义的去中心化应用。是的,不必惊讶,我们曾经熟悉的各种PC「单机版」软件某种意义上全是去中心化的应用。因为互联网时代最重要的协议是「文件」,有了「文件」这样的协议,分散在无数个人计算机上的应用也就有了共同的沟通「语言」,通过「文件」可以安装新的应用, 而应用产生的结果也必须通过「文件」来传播给其它的应用。因此我们又进入到不必依靠一个中心化主机才能运转的去中心化时期。
当用「文件」交换这种方式出现局限、越来越不能满足需求时, 一种称为「客户机-服务器架构(C/S架构)」的网络应用模式开始流行,这出现在前互联网时代,以企业应用为主,而且这种架构至今仍没有过时。C/S是从去中心变得更中心化一些的演进,但每个C/S架构的系统,客户机和服务器之间基本都讲着不同的「语言」(协议)。
当浏览器流行之后,人们开始意识到,浏览器就是一种能理解、更普遍标准「语言」(HTML)的通用客户机,这使得应用可以更加中心化,从而更容易开发、部署、维护,于是「浏览器/服务器架构(B/S架构)」这样一个更为中心化倾向的模式又开始流行起来。
往近的来看,2005年涌现的「Web 2.0」运动是桌面互联网时代离去中心化最接近的一次。Blog是去中心化的出版和媒体,采用的是RSS这样一个简单、开放的协议。当时以个人为节点的社交网络蓬勃兴起,FOAF协议、Microformat、OpenID、OAuth等这些都是在那个时代兴起的开发标准。
所以「协议」是去中心化应用的关键,互联网时代最重要的协议是TCP/IP协议族以及构建在其上的更多应用协议,这些开放的协议使得全世界的开发者一起构建了今天的互联网。
然而不幸的是,当时和后来的行业巨头Google与Facebook策略性地扑灭了「Web 2.0」这场去中心化运动,反而把互联网的中心化推向了极致。而中国的巨头们也建立起垄断封闭的势力,助推中心化达到极致。如果说当年的浏览器大战中,微软利用垄断地位击垮了网景是天下皆知的阳谋,那么后来以Google和Facebook带头绞杀「Web 2.0」则是被完美阳光掩盖的阴谋,数据可携带、去中心化内容与社交死于他们之手,而如今我们却一直觉得他们创新、开放、贡献。
当然,我们必须要承认Google、Facebook贡献了不少开源的产品,有很多到了区块链时代成了可以被使用的利器。比如Bitcoin用的Level DB是Google的作品,以太坊和ArcBlock采用的RockDB是Facebook的作品。科技的命运有时就是这样反复轮回迭代的过程。
如果说中心化与去中心化是此消彼长的,那它们也是相对的。以比特币为例,从它的网络拓扑结构来看,比特币的节点非常多且分散,PoW的挖矿机制导致攻击比特币需要有超过全网50%的算力,少数节点的崩溃、被关闭、被攻击,都不会影响整个比特币网络的安全和正确运行——这说明比特币网络是去中心化的。
然而从比特币的软件开发和发行角度而言,只有Bitcoin Core团队可以发布比特币的新版本代码,虽然他们最近公布了如何采用一系列的手段确保代码发布的流程安全可靠,并采用开源的方式实现人人可以参与贡献,人人可以分叉后修改,但从软件发行升级角度来看,这仍属于比较中心化的表现。
从比特币作为一个应用来看,它被设计为一个点对点电子现金,比特币的钱包地址是用户自主产生的,不需要任何人发放和批准,没有私钥任何人和组织都无法夺取用户的比特币;同时比特币的转账不需要任何第三方的介入,其他任何人和组织无法禁止或篡改交易;比特币的交易记录在比特币的区块链上永久保存,没有人能够篡改、删除、隐藏。这些足够说明比特币就是一个真正去中心化的应用。
而另一个耐人寻味的事实是,正因为大众认可比特币网络的高度去中心化,作为一个应用也高度去中心化,最终大家都认可比特币这个网络服务——全世界只有一个比特币。从这个角度来看,比特币又是高度中心化的。这就非常有趣,当一个系统从某个角度高度去中心化后,从另一个角度看可能正是单一表现的去中心化使其更中心化了。因此任何中心化与去中心化的划分与定义都不是绝对的,而是相对的,甚至是不断演变的、错综交织的。