论区块链的是与非
本文作者Jimmy Song,来源于medium.com,由Laura Li 翻译。
最近,区块链被吹上天了。所有的区块链项目都宣称可以:
1.解决收入不平等问题;
2.保障所有数据绝对安全;
3.使得所有交易更加高效可靠;
4.挽救处境艰难的企业。
说了这么多,区块链到底是什么呢?区块链真的可以实现这些功能吗?区块链真的能给医疗、金融、供应链和音乐等不同的行业带来新的改变吗?
此外,支持比特币和支持区块链可不可以划等号呢?你会一边夸赞比特币,一边数落它背后的技术吗?
在本文中,我将通过分析区块链是什么,以及区块链不是什么,来回答这些问题。
区块链是什么?
为了方便阐述,我们先给区块链一个定义。因为现在市场上,对区块链的定义有很多混淆之处。例如,许多公司声称拥有可以保证所有数据绝对准确的设备,他们给这个设备定义为“区块链”。当然,这样的设备是不存在的,至少在现实生活中不存在。
那么区块链是什么呢?技术上来说,区块链是由区块组成的“链”,而区块里又包含交易数据。如果你还不能理解,可以将区块链理解成一个附带其他功能的数据库。
而区块链与普通数据库最大的区别在于,区块链在将数据收入数据库时,需要遵循一套特定的规则。即:所收入的数据不能和库内已经存在的数据发生冲突(一致),数据被计入后不能更改(不可撤回),并且,数据本身会被锁定到唯一的所有者(可拥有)。数据是可复制的,也是可用的。最后,在去中心的情况下(分散的),每个人都认同数据库中数据的真实性(规范的)。
上面提到的“去中心”,正是区块链的精华所在。权力的分散非常具有吸引力,因为它意味着不再存在来自中心化权力机构的威胁。也就是说,没有任何一个机构/个人能够拿走你的资产,或篡改历史信息来满足他们的需求。区块链中你不需要相信任何人,因为有无法被篡改的数据库来保障你的财产和安全,这就是人们使用这项技术希望获得的好处。然而,在这种好处的背后,需要的成本也是巨大的。
区块链的成本
不受中心化权力控制的、无法被篡改的数据库肯定是好处多多,但创建这样一个系统需要很多成本。
开发过程严格和缓慢
创建一个可证明的、完全一致的系统,不是一件容易的事。一个小错误就可能破坏整个数据库,或者导致某些数据库与其他数据库不同。当然,损坏或拆分的数据库不具有任何一致性。此外,所有这类系统都必须从一开始就设计得前后一致。如果你破坏了规则,系统就失去一致性,意味着区块链被破坏,变得毫无价值。
你可能会问,那就不能把数据库修复一下,或者重新开始吗?这在中心化系统中确实很好实现,但是在分布式系统中,是难上加难的。因为更改数据库之前,需要获得系统中所有参与者的同意。区块链必须是个不受个体控制的公开资源,或者说如果有人试图在区块链中创建一个中心化数据库,是很困难的。
激励措施设计困难
采取适当的激励措施,并确保系统中的所有行为者都不能滥用或破坏数据库,也是一个重要的考虑因素。如果因为将数据放入区块的成本太低,而导致区块内有很多琐碎的、无用的数据,那这个区块链是没有多大价值的;但是如果因为成本太高,而导致没人愿意把数据存入区块中,那么这个区块链也是没有价值的。
数据的确定性从何而来?如何设计合理的激励制度满足节点需求?怎么样让节点参与保管或更新数据,以及当数据发生冲突时,如何决定选择其中一个数据而不是另一个数据?这就需要采取激励措施。而且激励措施不仅需要在开始时,而且要在未来的所有时刻都保持不变,否则区块链就没有价值了。
同样,你可能会问,为什么不能“修复”一些过时的激励措施?同样,在中心化系统中,这很容易,但在分布式系统中,没有共识,你根本无法改变任何事情。除非每个人都同意,否则就没有“修复”任何东西的可能。
维护费用高昂
传统的中心化数据库只需要写入一次数据,而区块链需要写入成千上万次;传统的中心化数据库只需要检查一次数据,区块链内的数据需要被检查成千上万次;传统的中心化数据库中,只需要传输一次就可以存储,区块链内的数据需要被传输成千上万次。
维护区块链的成本非常高,而这些成本付出的是否有必要,需要用最终实践来证明。大多数应用程序一边希望获得区块链的一致性和可靠性,一边通过使用完整性调查、收据和备份等方式,寻找降低成本的可能。
用户是独立的
这可能是个很好的现象,因为公司一开始就不想持有用户的数据;但如果用户行为不端,那么这也可能是不好的。没有办法阻止那些用垃圾数据来区块链捣乱的用户,也没有办法阻止有人钻空子,利用系统漏洞来非法盈利。所以,又回到上面提到的,要建立一个激励措施,并且这个激励措施最好是无懈可击。因为一旦区块链有漏洞,并且被居心不良的人发现,那么将造成很大的隐患。
你可能会问了,可不可以拒绝为恶意用户服务呢?当然,这在中心化机构里是很好实现的,但是在分布式系统里,没有一个个人/实体有这个权利。区块链必须公正,并且强制每个人都按计算机程序设定的规则执行。如果规则被钻空子,那你就倒霉了,不要指望这里有什么道德感和法律精神。目前来说,还是需要和这些恶意用户打交道,并且可能还要持续一段时间。
所有的升级都是自愿的
强制升级什么的,是不可能存在的。没有任何个人/实体有权利对你的软件进行任何操作。当然,在中心化机构里可能很容易,但是区块链的要点就是去中心化,即不受单个个人/实体控制。强制升级违背了区块链本质精神。
所有升级都必须向后兼容。如果你想要添加新特性,并且,如果还需要进行一下测试的话,那就更加困难。软件的每一版更新都增加了测试矩阵,延长了发布的时间。
同样地,如果是中心化机构,这是很容易做到的,不再服务旧系统就可以了。但是,在分布式系统中就不一样,因为没有人可以强迫其他人做任何事。
规模庞大也是个的问题
最后,与中心化系统相比,在区块链内定标至少要困难几个数量级。原因很显然,一个数据不再只是存放到中心化数据库,而是要存放进数百上千个节点。以前,数据传输、核查、存储只需要缴纳一次费用,而现在,数据的每一次调用都要支付费用。
当然,你也可以通过减少节点的方式来减轻负担。但是,如果真的这样,为什么还需要一个分散的系统呢?如果传输成本是最关键的问题,那为什么不直接建立一个中心化的数据库呢?
中心化系统就简单多了
上面提到,分布式系统使用困难、维护成本很高、升级难度很大、涉及规模也很大。与区块链相比,中心化数据库使用更快、更便宜、更易于维护和升级。但是,即便如此,为什么人们像如获至宝一样,总是提及区块链呢?
首先,许多利用区块链改革的行业,确实早就该升级IT基础设施了。医疗保健的软件不好用就不用说了,财务结算使用的是来自上世纪70年代的软件,而供应链管理软件安装和使用都很困难。这些行业大多不愿意升级,因为风险太大了。有许多公司花费数亿美元来升级基础设施,但最终还是被淘汰了。区块链是这些行业升级基础设施的一种方式,并且更有吸引力。
其次,区块链是非常前沿的技术。不管你信不信,现在很少有人能够真正理解“区块链”到底是什么,但是为了显得时髦,还是争先恐后用上这个名词。就像是把“云”理解为“别人的计算机”,“AI”理解成“经过调整的算法”,按这种理解,“区块链”就是“一个缓慢、昂贵的数据库”。
第三,人们不喜欢权利机构的控制,因为这些机构通常是运行缓慢、费用高昂的,人们需要一个全新的审判机制。对他们而言,“区块链”实际上是摆脱权利机构的一种方式。这其实超过了区块链真正的功能,因为区块链并不能消除人与人之间的冲突。
结果是,很多人在没有完全理解区块的概念,不了解区块链的运营成本的基础上,过分夸大区块链的作用。更糟的是,许多风投公司和企业高管在发言时,对技术细节和开发成本的表述十分模糊,以致于人们搞不清楚区块链到底能做什么,不能做什么。就像很多人不敢直说皇帝其实没有穿衣服,这也就是我们现在的处境。
所以区块链有什么优点呢?
可以确定的是,相比于中心化数据库,区块链的费用更加昂贵,所以使用区块链的唯一一个原因就是:去中心化。也就是说,去除单一的权力中心。
这意味着,软件和数据库一旦被确定,就不能再改变规则,也就是不能再进行升级。
大多数行业不是这样的。大多数行业都希望在运营过程中进行更新或升级,以及在必要时改变规则,或者扩展市场。考虑到区块链很难升级,很难改变,也很难扩展,所以,区块链对大多数行业没有多大用处。
但是,货币是个例外。与企业不同,稳定不变的环境对货币是有好处的。规则的一致性和唯一性对于货币是有利的,可以避免环境变化带来的币值波动问题。这也是为什么谈到比特币时,人们认为选择区块链技术是正确的。
很明显,许多想要加入区块链的公司需要的不是区块链技术,而是想对其特定行业进行IT升级。听上去不错,但是用“区块链”来达到这个目的是不可靠的,而且夸大了它的能力。
结论
区块链是当今流行的术语,不幸的是,这种“区块链而不是比特币”的迷因不会死。如果你提供的是中心化服务,区块链不会让你的服务更加廉价高效。如果你提供的是分散的服务,那么你可能是在欺骗自己,而不是考虑系统中存在的权力中心的问题。因为,在真正分散的服务中根本不需要“你”这个公司/个人的存在。
早在2000年代初,科技行业的许多高管就在推动使用Java和XML。尽管这两个都是工具,而不是实际产品,但许多高管坚持使用这些工具。区块链就是这样的。把注意力集中在你正在解决的问题上,这些工具将成为你实现目标的工具。把注意力集中在你想要使用的工具上,你最终就会制造出无用的机器。
从某种意义上说,目前很多人正在利用区块链概念做不可能的事情。他们既想要一个安全的分布式系统,又想拥有集中的控制权。这种想法是好的,希望融合两种模式的长处。但是,结果可能是获得两种模式的缺陷:付出构建分布式系统的成本,获得集中式系统的用户体验。
区块链作为一个流行语被过度消费,让人们错误的以为它是万能灵药。只有尽快摆脱炒作,区块链才能获得长足的发展。