多数人只知道去中心化,却并不真正理解 DApps
2019-01-23
作者: 冒志鸿
编辑 潘宇波
“去中心化应用”(也被称为 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 团队可以发布比特币的新版本代码,虽然他们最近公布了如何采用一系列的手段确保代码发布的流程安全可靠,并采用开源的方式实现人人可以参与贡献,人人可以分叉后修改,但从软件发行升级角度来看,这仍属于比较中心化的表现。
从比特币作为一个应用来看,它被设计为一个点对点电子现金,比特币的钱包地址是用户自主产生的,不需要任何人发放和批准,没有私钥任何人和组织都无法夺取用户的比特币;同时比特币的转账不需要任何第三方的介入,其他任何人和组织无法禁止或篡改交易;比特币的交易记录在比特币的区块链上永久保存,没有人能够篡改、删除、隐藏。这些足够说明比特币就是一个真正去中心化的应用。
而另一个耐人寻味的事实是,正因为大众认可比特币网络的高度去中心化,作为一个应用也高度去中心化,最终大家都认可比特币这个网络服务——全世界只有一个比特币。从这个角度来看,比特币又是高度中心化的。这就非常有趣,当一个系统从某个角度高度去中心化后,从另一个角度看可能正是单一表现的去中心化使其更中心化了。因此任何中心化与去中心化的划分与定义都不是绝对的,而是相对的,甚至是不断演变的、错综交织的。
02 当前“中心化”与“去中心化”的博弈
如今互联网中心化已似乎发展到极致,那推动中心化到达极致的原因有哪些?
我认为有以下几个原因:
- 封闭的中心化账户体系。前两年互联网思维很火,很多公司都受启发想办法先大量获得用户,收集用户的各种资料,再通过广告或推广来获益。这也让很多公司都排他性地抢占用户,想法设法把用户尽可能地锁定在自己的平台当中;
- 大量地重复造“轮子”,并用这些互不兼容的“轮子”来形成所谓的“竞争壁垒”。这其实严重违背了 Internet(互联网)和 Web(万维网)最初的精神,但如今这已成了最常见的竞争手段,结果就是我们手机上有 10 个不同的消息 App、10 个不同的银行 App、10 个不同的电影 App … 而它们的作用其实几乎是一样的,只是服务商不同;
- 无偿或极其廉价地占有本该属于用户自己的数据,不允许用户迁移数据或制造各种障碍让用户迁移不便,尽可能占用用户最多的时间、注意力、带宽等,以获得源源不断的数据;
- 不遵守协议、不开放协议、或只部分提供协议来制造“开放”的假象。利用“开放”的假象来获取用户,用“不开放”的实现来增加用户迁移难度和成本,把用户锁定在自家。
然而,天下大势分久必合,合久必分,如今去中心化的代表力量——区块链,它带来的是应用再一次朝去中心化的趋势发展。当然,就如同我们前面所说去中心化与中心化是相对,区块链也是在互联网和计算机技术不断发展成熟之后才进化而成的,如果没有近些年互联网带宽的飞速成长,计算机性能的飞速提升,区块链不会得以发展壮大起来。
除了技术的发展,还有其他的因素和事件:一次次的用户隐私数据大泄密带来的巨大损失, Facebook 等大公司对隐私问题的漠视,欧洲 GPDR 法案的执行等等,这也让越来越多的人再次意识到去中心化的价值。
DApps 和区块链的发展壮大,恰恰可以根治互联网中心化垄断的四大痛点:
- 统一的、自主的、去中心化的 ID;
- 大量地重用“轮子”,而不是不断再造;
- 数据完全属于用户, 用户拥有自主权;
- 完整和全面的开放协议、尽可能保持向前兼容(不产生无谓的分叉)。
所以,DApps 发展的前提,首先是自主个人身份,你的身份、关系、数据、资产...这些是你自己控制而不被其他人控制;其次是点对点的数字资产流动(数字货币以及其他)不需要中间人,不需要别人批准;然后还需要数据可迁移,你的数据你做主,允许让谁用对方才能用。这些重要基础在区块链出现前实际上是无解的,但突破它们已是计算机技术接下来发展的关键。
03 理解 DApps 的发展
不幸的是,今天大多数宣称自己是 DApps 的应用根本没任何去中心化的属性,大部分应用只是利用了区块链智能合约的一些属性。
比如 CryptoKitty 这样的游戏应用, 它只是使用了以太坊 ERC721 的特性,而整个游戏的前端、设计都和一个传统 Web 游戏并无太大区别。其最大特色是用以太坊的智能合约来保证这些猫的唯一性和独特性。
那些菠菜类游戏,也是利用的智能合约让用户误以为游戏公开透明,无人能幕后操纵而参与其中,殊不知相当多的这类游戏由于代码设计或区块链技术不成熟等问题,更易遭受攻击或被骗取资产,这些游戏其实比传统游戏更不合理公平,甚至更不安全。但我相信未来一定会出现非常成功、可玩性非常强、且充分利用区块链的去中心化游戏,但绝不是今天这些安全和使用体验都差得可怜的家伙们。
那 DApps 为何目前没有爆发?其实任何新生事物的引爆都少不了经历漫长而黑暗的前夜,很多人只看到了爆炸增长的阶段,往往忽视了爆炸所需势能的缓慢积蓄过程。
iPhone 问世之前,智能电话的概念已出现超过 10 年。著名投资人彼得·蒂尔在《从 0 到 1》这本书里指出一个新产品要能获得高速增长,必须要比现有的方案好 10 倍以上。因此应用绝不能为了去中心化而去中心化,去中心化应用的关键是找到一个需要解决的问题,这个问题用去中心化的方法来解决比其它方案好 N 倍,或者因打破规则而获得“不公平”的竞争优势。如果能够回答上面的问题, 那么恭喜你, 这个去中心化应用想不火都很难。
例如,比特币作为一个点对点的加密货币,打破了无数条规则,也解决了一些人切实的痛点,因此比特币和 Paypal 等传统的数字货币或支付相比,具有几乎不公平的竞争优势。虽然比特币很慢,用起来很麻烦,但在过去的 10 年里还是得到了飞速发展。
因此去中心化应用的开发者和产品经理, 应该把注意力首先聚焦在发现问题与解决问题上,然后才是用户体验等其它问题,尤其是当前如何才能让大众用户方便地进入这个世界,使用新的产品解决他们原有的痛点。
现在区块链发展仅有 10 年,DApps 所依赖的区块链环境,还非常原始。EOS 的确是比以太坊更快了,但这是更好的还是更坏的方案,还没有公论,而复制模仿以太坊的其它公链更需要时间和结果来证明它们究竟能否奏效。
尽管今天的区块链技术还处于婴幼儿期,尚未产生非常成熟的技术,但 ArcBlock 以及其他有实力、有信仰、愿做实事的团队正在日以继夜地努力,尽快让如今的技术困境变成历史。