前言:当我们在谈论区块链的好处时,是否看到区块链背后的成本、速度、扩展性、效率?区块链显然不是万能的。越早认识到这一点,对区块链的发展越有利。
围绕区块链的炒作很多,你会听到一系列的夸大宣传,区块链将会:
1. 解决收入不平等;
2. 保证所有数据永远安全;
3. 让一切都变得更高效,更加去信任化;
4. 拯救垂死的婴儿。
区块链到底是个什么东东?它真的能做所有事情吗?区块链能给诸如医疗保健、金融、供应链管理和音乐版权等各种各样的行业带来惊喜吗?认同比特币不就意味着你要支持区块链吗?你怎么能只认同比特币而否认其背后的技术呢?
在这篇文章中,我通过审视什么是区块链来解答这众多的问题。
什么是区块链?
为了检验其中的一些说法,我们必须定义区块链是什么,以及在此罗列出许多不同观点。许多公司使用“区块链”一词来表示使所有的数据永远不会出错的某种神奇的设备。当然,这样的设备并不存在,至少在现实世界中是这样的。
那么什么是区块链?从技术上讲,区块链是区块的链接,一个区块是一组有序的交易。如果你不理解最后一句话,你可以把区块链看作是一个拥有一些附加属性的数据库的一个子集。
区分区块链与普通数据库,最主要的一点是将数据放入数据库中的特定规则不同。也就是说,它不能与已经在数据库中的其他数据相冲突,它是只添加的、不可变的,并且数据本身锁定给一个所有者(可拥有的),它是可复制的和可用的。最后,每个人都同意无中心(去中心化)的数据库中数据的状态是合规的。
去中心化很有吸引力,因为它意味着没有单点故障。也就是说,没有任何一个单一的权威机构能够拿走你的资产,或者改变“历史”来满足他们的需求。这个无需相信任何人的不可改变的审计追踪,是所有使用这项技术的人都在寻找的有益之处。然而,为了获得这一益处也付出了巨大的成本。
区块链的成本
不受任何一方受控制的不可变的审计追踪当然是有用的,但是创建这样一个系统需要很多成本。让我们来看看其中的一些问题。
发展更加严格和缓慢
创建一个可验证的一致性系统不是一件容易的事情。
一个小错误可能会破坏整个数据库,或者导致一些数据库与其他数据库不同。当然,一个损坏或分割的数据库不再有任何一致性保证。此外,所有这些系统都必须从一开始就设计成一致性的。在区块链中,没有“快速移动和破坏事物”。如果你破坏了某些东西,你就会失去一致性,区块链就会崩溃和毫无价值。
你可能在想,为什么你不能修复数据库或者重启它?
这在一个中心化的系统中很容易做到,但是在一个去中心化的系统中这是非常困难的。你需要共识,或者系统中所有参与者的同意,才可以更改数据库。区块链必须是一种不受单个实体控制(去中心化,切记)的公共资源,要么倾其所有努力,以一种极其昂贵的方式创建一个缓慢的、中心化的数据库。
激励结构很难设计
增加正确的激励结构,并确保系统中的所有参与者不能滥用或破坏数据库,这也是一个必须要考虑的因素。
区块链可能是具有一致性的,但如果它有很多琐碎的、无用的数据,那它就不是很有用了,因为把数据放入其中的成本很低。如果它几乎没有数据,那么一个具有一致性的区块链也不会有用,因为将数据放入其中的成本非常高。(译者注:以上分析了数据放入成本过高和过低的两种假设所造成的结果。)
是什么赋予数据最终性?你如何确保奖励与网络目标一致?为什么节点会保留或更新数据?当两段数据冲突时,是什么使它们选择一段数据而不是另一段数据?
这些问题都都还有待探索、解答,区块链不仅需要在开始时保持一致,还需要在未来的所有时间节点上保持一致。因为技术和公司会发生变化,否则区块链就没有用处。
维护成本非常高
传统的中心化数据库只需要写入一次,而区块链需要被写入成千上万次;传统的中心化数据库只需要检验一次数据,区块链需要对数据进行成千上万次检验;传统的中心化数据库只需要传输一次数据就可以储存,区块链需要将数据传输成千上万次。
维护区块链的成本量级要高得多,而且成本需要通过效用来证明。大多数应用程序在寻找一些先前声明的属性(如一致性和可靠性)时,可以使用完整性检查、回执和备份来降低这些成本。
用户至上
这样真的很好,因为企业不喜欢对用户数据负责任。但是,如果用户“行为不端”,这就不好了。你没有办法驱逐那些在区块链上发大量垃圾信息的人,又或者找到了一种方式,但它可能又会让其他用户诸多不便。
通过以上观察结果我们可以得出相关结论:激励结构必须设计得非常棒,在此激励结构下,如果用户发现了一个漏洞,尤其是如果还可以以此牟利的话,就不太可能放弃。
可能你会认为能拒绝为恶意用户提供服务,这在中心化的服务中是非常容易的。
然而,与中心化服务不同的是,(在去中心化中)拒绝服务是困难的,因为没有一个单一的实体有权力将任何人踢出去。区块链必须是公正的,并强制执行由软件所定义的规则。如果这些规则不足以阻止不良行为,那你就没那么幸运了。这里没有法律的“精神”。即使你需要简单地处理恶意的或行为不端的执行者,可能也需要很长一段时间。
所有的升级都是自发的
强制升级不是最优选择,网络上的其他玩家也没有义务优化你的软件。如果他们这样做了,作为中心化系统将会变得更容易、更快、更便宜。区块链最重要的一点在于它不是在单个实体的控制之下,不可能强制升级。
相反,所有的升级都必须向后兼容。这显然是相当困难的,尤其是如果你想要添加新特性,以及从测试的角度考虑时会更加困难。软件的每个版本都为测试矩阵添加了很多内容,并延长了发布时间。
同样,如果这是一个中心化的系统,那么不用借助于追溯旧系统就能纠错。但是在一个去中心化的系统中你无法这样做,你不能强迫任何人做任何事情。
扩展很困难
最后,扩展的困难程度至少比传统的中心化系统高出几个量级。
原因显而易见。同样的数据必须存在于成百上千个地方,而不是在一个单一的地方。传输、验证和存储的成本是巨大的,因为必须用支付数据库中的每一个独立节点的成本,来代替传统的中心化数据库中只支付一次的成本。
当然,你可以通过减少节点数量来减轻负担。但在这个问题上,为什么你需要一个去中心化的系统?如果扩展成本是主要的问题,那为什么不去建立一个中心化的数据库呢?
中心化更容易
去中心化的系统很难处理,维护昂贵,升级困难,扩展繁琐。一个中心化的数据库比区块链更快,成本更低,维护起来更容易,也更容易升级。那么,为什么人们一直使用“区块链”这个词,就好像它是解决所有问题的灵丹妙药一样?
首先,许多在区块链上出售产品的想法实际上早已过时,早就应该进行IT基础设施升级了。健康保健行业还用着糟糕软件,金融结算行业仍在使用70年代的软件,供应链管理软件既难以使用,又难以安装。由于涉及到的风险,这些行业的大多数公司都拒绝升级。有很多基础设施升级花费了数亿美元,最后还是以回滚(失败)告终。区块链是一种销售这些IT基础设施的方式,使它们变得更合人心意。
其次,使用区块链一词使你看起来处于前沿科技地位。不管你喜欢与否,“区块链”这个词已经有了它自己的生命。其实很少有人真正理解它是什么,成天念叨着“区块链”的人,大部分是想让别人觉得自己紧跟科技技术潮流。就像“云”意味着其他人的电脑,“人工智能(AI)”是一种调整的算法,在这种情况下,“区块链”意味着一个缓慢而昂贵的数据库。
第三,人们真的不喜欢监管层对某些行业的控制,他们想要的是一种不同的裁决机制,而不是执行缓慢而昂贵的法律框架。对他们来说,“区块链”实际上只是一种摆脱监管所带来的繁复冗杂的一种方式。这是在过度吹嘘区块链的作用,区块链不会奇迹般地消除人类的冲突。
其结果是,许多人在没有真正理解(区块链)功能或成本的情况下,对其所“承诺”的事情进行炒作吹捧。更糟糕的是,许多风投(VC)和高管对实际的技术细节和成本避而不谈,模糊区块链所能做的事情和不能做的事情。
那么区块链有什么用处?
我们已经得出结论,相对于中心化数据库,区块链是非常昂贵的,所以你使用区块链的唯一原因是去中心化。也就是说,避免单点的故障或控制。
如果应用区块链的话,这自然意味着不能经常改变软件或数据库,升级变得困难,同时也不容易破坏或改变规则。
其实大多数行业都不是这样的,都需要新的特性或升级,以及进行更改和扩展的自由。考虑到区块链很难升级,很难改变,很难扩展,它对于大多数行业来说没有多大用处。
我们发现货币是例外。
与大多数例子不同,如果可以稳定不变,这对货币来说再好不过了。规则的不变性与稳定性对货币来说是有利而无害的。这就是为什么当区块链随着比特币的诞生而来到我们面前时,它可以胜任这项职能。
有一点很清楚,很多想要使用区块链的公司并不是真的需要区块链,而是需要对其特定行业进行IT基础设施进行升级。但是胡乱使用“区块链”这个词是不诚实的,并且过度夸大它的能力。
结论
如今,区块链成了一个流行词语,不幸的是,“区块链非比特币”的言论不会消亡。如果“你”是一个中心化的服务,区块链不会给“你”带来任何东西,“你”不可能放弃使用一个成本便宜上千倍的中心化数据库。如果“你”是一个去中心化的服务,那么很可能“你”是在欺骗自己,因为“你”没有去思考系统中单一节点的故障。在真正的去中心化的服务中,根本不会有“你”。