(原标题:为什么大家将区块链复杂化、神化?)
区块链是什么?它真的是灵丹妙药,可以解决各行业存在的问题吗?非也。Jimmy Song 是一名比特币教育工作者,还是企业家、开发者。他最近刊发一篇文章,谈到区块链系统的优点与缺点。关注区块链技术的人可以读一读。
区块链炒得沸沸扬扬。看看大家都是怎么说的?我们经常听到如下几点:
——可以解决收入不平等问题。
——让所有数据永远安全。
——让一切变得更有效率。
——拯救垂死婴儿。
到底什么是区块链?它真的能达成上述目标吗?区块链真的能给行业带来有益变化吗,比如解决医疗保健,金融,供应链管理和音乐版权问题?
支持比特币是不是意味着支持区块链?如果你支持比特币,怎么又能诋毁背后的技术呢?
在这篇文章中,我尝试寻找答案,讨论一下区块链到底是什么,为什么重要。
什么是区块链
要认真审视某些问题,有几个要点先要理解:什么是区块链?它到底是什么?当中有许多混乱之处。许多企业使用 " 区块链 " 这一术语,意思就是说它是魔幻设备,所有数据永远不会出错。当然,这样的设备根本不存在,至少在真实世界不存在。
什么是区块链?从技术上讲,区块链就是区块连成的链条,一个区块存放一些有序的交易信息。如果你还是不理解,可以将区块链看成数据库的子集,只是多了一些特色。
区块链与普通数据库最大的不同就是它有一套特殊规则,规定如何将数据存储到数据库。存入的数据不能与数据库中其它的数据发生冲突(共存性),只能添加(不可变性),数据与数据主人是锁定的(所有性),它可以复制。数据库没有中央机构管理(去中心化),这点是大家都认同的。
我们可以说," 去中心化 " 是区块链的圣杯。为什么去中心化如此有魅力?因为它不会出现单点故障。换言之,没有任何单一的权威机构可以拿走你的资产,改变 " 历史 "。因为审计踪迹不可变,所以你不需要相信任何人,这点正是大家所期待的。不过,虽然区块链优点很多,但是要享受这些福利成本可不低。
区块链的成本
要让审计追踪不可变,不被任何一方控制,需要打造一套系统,成本很高。
我从以下几个方面来解释一下:
——开发更严格更缓慢
开发一套可验证的系统,保持一致,不是一件易事。只要有一个小小的漏洞,就会毁了整个数据库,或者导致某些数据库与其它数据库完全不同。损坏或者分裂的数据库无法保证一致性。
另外,所有系统在设计时从一开始就应该是一致的。所以说在区块链技术中,不能追求 "move fast and break things "(快速行动,打破常规)。如果你破坏了,就会丧失一致性,区块就会被摧毁,变得一文不值。
你可能会说,为什么不修复数据库,或者重启,然后继续前进?如果用的是中心化系统,要做到还算容易,去中心化系统就难了。改变数据库必须得到系统内所有各方的同意才行。区块链是公共资源,不被任何实体控制,缓慢打造中心化数据库也是成本非常高的。
——设计激励结构非常难
添加正确的激励架构,确保系统参与各方不会滥用数据库、破坏数据库,这是一个重要的考虑因素。区块链必须保持一致,如果里面有许多无用、琐碎的数据,区块链就会变得不实用,因为将数据放入系统的成本是很低的。如果系统中没有任何数据,将数据放入系统的成本就会很高,这样的区块链也是不一致、不实用的。
到底是什么赋予数据最终特性?如何确保激励与网络目标一致?为什么节点会保留数据或者更新数据?当数据与数据发生冲突时,是什么让系统选择一些数据,放弃另一些?这些问题都需要回答,从一开始就要协调好,未来,当技术或者企业变化时,必须确保区块链继续有效。
你可能会问:如果激励机制出现问题,为什么不能修复呢?再次强调,在中心化系统中,要做到不难,但是如果系统去中心化,那就不容易了,如果没有取得一致同意,你不能修改任何东西。除非每一个人都同意,否则不能修改任何东西。
——维护成本很高
如果是传统中心化数据库,只需要再写一次就行了。区块链不一样,它要编写成千上万次。传统中心化数据库只需要检查一次就行了,只需要传输一次并存储数据就行了。区块链不一样,它要传输成千上万次。
维护区块链的成本高很多,而且还要通过实用性来证明。正因如此,大多应用会提前考虑某些特征,比如一致性、可靠性,这样检查、接收、备份时成本就会低一些。
——用户至高无上
这是一件好事,因为企业不愿意为用户的数据承担责任。不过也可能是坏事,如果用户作恶就没有办法了。你没有办法剔除用户,它会用琐碎的数据损害你的区块链,也可能会利用某些不当手段获利,给其它用户带来不便。正因如此,我们才需要设立非常好的架构,即使某个用户发现漏洞,也不会有什么影响,因为无利可图。
你可能会说,为什么不拒绝服务恶意用户呢?如果是中心化服务,要做到很容易。可惜区块链不是中心化服务,拒绝服务是一件很难的事,因为没有单一实体有权踢人。区块链必须公正公平,必须执行软件制定的规则。如果规则不足以剔除坏行为,那就糟糕了,因为里面没有法律。你只能与恶意者、行为不良的人打交道,可能需要花很长的时间。
——所有更新者是自愿的
系统不会强制更新。网络的其它人没有义务改变软件。如果他们这样做,那么开发系统会更容易、更便宜、更快,就像中心化系统一样。区块链没有受到任何单一实体的控制,所以它与强制更新存在冲突。
所有更新 都是向后兼容的。如果你想添加新东西会很难,从测试角度看更是难上加难。软件每推出一个新版权,就会增加测试难度,发布时间也会延长。
再次重申,如果是中心化系统,修改就会容易得多,不再使用旧系统就行了。区块链系统做不到,它不是中心化系统,你不能强迫任何人做任何事。
——扩展是一件很难的事
与传统中心化系统相比,要让区块链系统具有弹性相当难,难上很多很多。为什么?原因其实很简单。同样的数据存储在无数地方,不是存在一个地方。传递、验证、存储任务超级繁重,数据库每出现一个复本,就要支付费用,如果是传统中心化数据库,支付一次就行了。
当然,你可以减少节点的数量,减轻负担。既然如此,你为什么要用去中心化系统呢,可以不用啊?如果你担心的只是扩展成本,干脆用中心化数据库不就行了吗?
——集中更容易一些
去中心化系统很难处理,维护成本很高,升级困难,扩展性差。如果是中心化数据库,费用更低,维护更容易,升级也更容易。为什么大家还要使用区块链,将它当成解决所有问题的灵丹妙药?
首先,之所以向某些行业推销区块链,是因为它们行业的基础设施很久没升级了。医疗保健行业的软件相当糟糕。金融行业使用的软件停留在 70 年代。供应链管理软件既难安装,又难使用。来自这些行业的大多企业不愿意升级,为什么?因为有风险。有时投入巨资升级基础设施,结果发现不行,只能回退到过去。区块链可以推动 IT 基础设施升级,让升级变得更有吸引力。
其次,区块链能让你觉得自己很领先。真正理解区块链的人很少,他们使用这个术语,只是因为听起来更聪明。我们使用 " 云计算 " 来谈论别人的计算机,"AI" 的意思就是说调整算法,至于使用 " 区块链 " 这一术语,就是说要使用很慢很贵的数据库。
第三,大家真的不喜欢政府控制某些产业,希望确立一种不同于法律的裁决机制,它很慢,很贵。区块链可以帮助行业摆脱政府监管。老实说,这种吹捧有点过头。区块链完全不与人冲突是不可能的。
许多人没有真正理解区块链的能力和成本,就大吹特吹。更糟糕的是,许多 VC 和高管将区块链技术的细节和成本变得很抽象,因为我们刻意含糊其辞,区块链能做什么,不能做什么,我们没有讲清楚。皇帝没有穿衣服,大家都知道,但是不愿意说出来。
区块链带来的益处
我们都知道,相对于中心化数据库,区块链是很贵的。之所以使用区块链技术,唯一的原因就是去中心化。也就是说清除单一故障点,不让任何人控制。
这样一来,软件和数据库不能经常改变,甚至完全不改变。
许多行业不愿意这样。它们希望在必要时刻可以添加新功能,升级,可以自由改变或者拓展。因为区块链很难升级,很难改变,很难扩展,所以区块链对于大多行业没有太多用。
只有一样东西例外,那就是金钱。和大多行业不同,如果不变化,金钱系统会更好。规则不可变或者很难改变,对于金钱来说是一件好事,没有任何损害。正因如此,谈到比特币时,区块链才会成为最适合的工具。
有许多企业想使用区块链技术,但它们实际上并不是真的想要区块链,只是想给行业 IT 基础设施升升级。很好,但是如果非要扯上 " 区块链 " 这个术语,就有点不诚实了,而且过度夸大区块链的能力。
结论
在今天的世界,区块链已经成为流行术语。如果是中心化服务,中心化系统不能做的事区块链也做不到,而且开发中心数据库成本要低很多很多。如果是去中心化服务,你可能会欺骗自己,不去思考系统中存在的单点故障。在真正的去中心化服务中,根本不存在真正的 " 你 "。
回看 2000 年代初期,科技行业的许多高管都说要使用 Java 和 XML。它们都是工具,不是真正的产品,但是许多高管还是向两种技术的使用投入巨资,虽然技术本身与工程师想达到的目标完全不匹配。区块链有点相似。专注你所要解决的问题,工具会自然而然冒出来。如果你盯着自己想使用的工具,最终造出的只是古怪的东西,没有任何实际用处。
我有一种感觉:从概念上看,目前的区块链技术似乎想做不可能的事情。它们想变成安全的去中心化系统,由集中权力控制。这样的构想似乎想将两个世界的优点结合在一起,但是最终两边都不会好看。去中心化系统的成本劣势与开发难度会体现出来,中心化系统的出错模式也无法避免。
区块链术语有点使用过度,许多人打着区块链的牌子招摇撞骗。越早远离炒作可能越好。