围绕着区块链所进行的炒作多如牛毛。区块链的炒作者们说,区块链现在将解决如下问题:
(1)解决收入不平等问题
(2)永远保证所有数据的安全
(3)让一切更有效率和信任
(4)拯救垂死的婴儿
然而,区块链到底是什么?它真的可以做到所有这些事情吗?区块链能为医疗,金融,供应链管理和音乐版权等众多行业带来惊人变化吗?
支持比特币不就意味着支持区块链吗?你怎么能手里拿着比特币,却对它背后的技术说三道四呢?
是的,在本文中,我试图通过剖析“区块链是什么”来回答这些问题,更重要的是,我试图说明“区块链不是什么”。
什么是区块链?
为了探究鼓吹者们的一些观点,我们必须弄清楚区块链是什么,因为这里存在很多混乱。许多公司使用“区块链”这个词来代表某种神奇的装备—-通过这种装备,他们的所有数据都不会出错。当然,在涉及现实世界时,这样的装备并不存在。
什么是区块链?从技术上讲,区块链是区块的链接串,区块是一组有序的交易。如果你不理解最后一句话,你可以将区块链视为数据库的子集,并伴有一些其他属性。
区分区块链与普通数据库的主要区别在于,“如何将数据放入数据库”的特定规则。也就是说,它不能与已经存在于数据库中的其他数据冲突(一致的),它只是附加进去(不可变的),数据本身被锁定给数据的拥有者(可拥有的),它是可复制的和可用的。最后,每个人都同意数据库中的数据状态(规范的),没有中心方(去中心化的)。
这最后一点确实是区块链的圣杯。权力下放非常有吸引力,因为它意味着没有单一的失败点。也就是说,没有任何一个机构能够剥夺你的资产或改变“历史”以满足他们的需求。这种不可改变的审计踪迹使你不必信任任何人,这是使用此技术的每个人都在寻找的好处。然而,这种好处却需要很高的成本。
区块链的成本
任何一方都可不受控制地进行不可变的审计跟踪,肯定是很有用的,但创建这样一个系统需要很高的成本。我们来看看其中的一些问题。
发展更加严格和缓慢
创建一个可证明的一致系统并非易事。一个小错误可能会破坏整个数据库或导致某些数据库与其他数据库不同。当然,已被损坏或拆分的数据库不再具有任何一致性。此外,所有这些系统必须从一开始就设计成一致的。区块链中不存在“快速移动并分解事物”。如果你分解了区块链中的事物,就会使它们失去一致性,区块链就会变得腐败无价值。
你可能在想,为什么不能只修复数据库或重启并继续?在中心化系统中这很容易做到,但在去中心化系统中却非常困难。你需要达成共识,或者取得系统中所有参与者的同意才能更改数据库。区块链必须是不受单个实体控制的公共资源(去中心化的,记住了吗?),否则,整个工作就是用一种非常昂贵的方式来创建缓慢的中心化数据库了。
激励结构很难设计
设计正确的激励结构、并确保系统中的所有参与者不会滥用或破坏数据库,同样是一个重要的考虑因素。区块链本身虽然是一致的,但如果它中包含大量无聊、无用的数据,那么它就不是很有用,因为将数据放入其中的成本非常低。但是,如果区块链中几乎没有数据,那么一致的区块链也不会有用,因为将数据放入其中的成本非常高。
什么能赋予数据的终极性?你如何确保奖励与网络目标保持一致?为什么节点会保留或更新数据?是什么让他们在发生冲突时选择其中一个数据而不是另一个?这些都是需要良好答案的激励性问题,它们不仅需要在开始时保持一致,而且需要在未来—-随着技术和公司的变化—-而保持一致,否则区块链就无用了。
同样,你可能想知道为什么你不能“修复”一些破碎的激励。同样,这在中心化系统中很容易,但在去中心化的系统中,如果没有达成共识,你就无法改变任何事情。除非得到所有人的同意,否则就不能“修复”任何东西。
维护成本很高
传统的中心化数据库只需要写入一次。区块链则需要写入数千次。传统的中心化数据库只需要检查一次数据。区块链需要数千次检查数据。传统的中心化数据库只需传输一次数据即可存储。区块链需要传输数千次。
维护区块链的成本要高出几个数量级,并且这个成本需要通过实用性来证明。大多数应用程序在寻找较早时声称的那些属性(如一致性和可靠性)时,其实可以使用完整性检查、收据和备份来降低这些成本。
用户即主权
这一点可能非常好,因为公司不会把保存用户数据的责任放在第一位。但是,如果用户“行为不端”,可能就会很糟了。因为,公司没有办法摒弃那些用无聊数据向你的区块链发送垃圾邮件的用户,或者,虽然公司找到了一种获利方式,但这方式会给其他用户带来很多不便。因此,激励结构必须设计得非常好,因为找出并利用漏洞的用户(羊毛党)不太可能放弃,特别是在有利润的情况下。
你可能认为你可以简单地拒绝向恶意用户提供服务,这在中心化服务中非常容易。但是,与中心化服务不同,去中心化系统中,要拒绝服务就很困难,因为没有任何一个实体有权将任何人踢出去。区块链必须是公正的,且要执行软件定义的规则。如果规则不足以阻止不良行为,那你就倒霉了。这里没有法律的“精神”。你只能去需要处理恶意或不良因素,可能这个过程需要持续很长时间。
所有升级都是自愿的
强制升级并不能作为一种选项。网络上的其他玩家没有义务改变你的软件。其实,如果他们真这样做,系统将更容易、更快、更便宜地构建成中心化系统。区块链的重点在于它不受单个实体的控制,并且强制升级会违反这个原则。
相反,所有升级都必须向后兼容。这显然非常困难,特别是如果你想要从测试角度考虑添加新功能时。每个版本的软件都会为测试矩阵增加很多负荷,并延长发布时间。
同样,如果这是一个中心化系统,那么就可以直接不再为旧系统提供服务,升级就非常容易。但是,在去中心化的系统中你不能强迫任何人做任何事情。
规模化真的很难
最后,区块链系统的规模化要比传统中心化系统难几个数量级。原因很明显:相同的数据必须存在于数百或数千个地方而不是单个地方。传输,验证和存储的花费非常大,因为数据库的每个副本都必须为此支付,而在传统的中心化数据库中,只需支付一次这些费用。
当然,你可以通过减少节点数来减轻负担。但那时,为什么你需要一个去中心化的系统呢?如果扩展成本是主要顾虑所在,那为什么不建立一个中心化数据库呢?
中心化要容易得多
你可能已注意到:去中心化的系统很难处理,维护成本高,难以升级并且难以扩展。与区块链相比,中心化数据库更快,更便宜,更易于维护且更易于升级。那么,为什么人们会一直使用区块链这个词,就好像它是解决所有问题的灵丹妙药呢?
首先,许多基于区块链来销售的行业实际上是已经过期IT基础设施升级。健康保护领域有众所周知的可怕软件。财务结算仍在使用70年代的软件。供应链管理软件既难使用又安装。由于涉及风险,这些行业的大多数公司都抵制升级。有许多基础架构升级需要花费数亿美元,且最终还是会被回滚。区块链是销售这些IT基础架构升级的一种方式。
其次,区块链看起来像一种技术前沿与风口。无论喜欢与否,“区块链”这个词已经具有了自己的生命。很少有人真正理解它是什么,但想要显得时髦,就使用这些词,它可以让人显得更聪明。就像“云”意味着别人的计算机和“AI”意味着一个经过调整的算法一样,在这种情况下,“区块链”其实只意味着一个缓慢、昂贵的数据库。
第三,人们真的不喜欢政府对某些行业的控制,并且希望采用与法律框架不同的裁决机制,而法律框架通常既缓慢又昂贵。对他们而言,“区块链”实际上只是摆脱政府监管手段的一种方式而已。这其实已超出了区块链的作用范畴,区块链并不能神奇地消除人类冲突。
结果是,很多人在没有真正理解区块链的能力或成本的情况下,大肆宣传区块链的未来。更糟糕的是,实际的技术细节和成本,被很多风险投资公司和高管抽象出来,以掩盖区块链能做什么和不做什么。现在存在的一种情况是:他们下面的每个人都害怕说皇帝没有衣服。
区块链对什么有益?
我们已经确定:区块链相对于中心化数据库非常昂贵。所以,你应该使用区块链的唯一原因是去中心化。也就是说,消除单点故障或控制。
这自然意味着,软件或数据库不能经常改变,或根本不用变。升级或改变规则应该没什么好处,且有很多害处。
但是,大多数行业都不是这样的。大多数行业都需要新功能或升级,并可根据需要自由更改和扩展。鉴于区块链难以升级、改变和扩展,区块链对大多数行业没有多大用处。
我们发现的一个例外是金钱。与大多数工业案例不同的是,如果不做改变,金钱会更好。规则不可变性和改变的难以实施性对金钱而言是积极的,而不是有害的。这就是为什么说区块链适合比特币。
很明显,很多利用区块链的公司其实根本不想要区块链,而是要对其特定行业进行IT升级。这一切都很好,但使用“区块链”这个词来达到目的是不诚实的,且超越了它的能力。
结论
如今,区块链是一个受欢迎的术语;然而,不幸的是,“区块链不是比特币”的模因不会消失。如果你提供一种中心化服务,那么没有哪个区块链产品是你用便宜一千倍的中心化数据库做不了的。如果你提供一种去中心化的服务,那么你可能会愚弄自己,而不是考虑系统中存在的单点故障。在真正的去中心化的服务中,根本就没有“你”。
早在2000年代早期,科技行业的许多高管就推动使用Java和XML。尽管这个都是工具而不是实际产品,但许多高管都坚持使用它们,无论它们与工程师想要达到的程度相差多少。区块链现在就属于这种情况。所以,若专注于你正在解决的问题,合适的工具就很快浮现。若专注于你想要使用的工具,你最终会使杀鸡都用牛刀,这样是不可能做把什么事情做的特别好的。
从某种意义上说,目前区块链的概念正在试图去做不可能做到的事。 他们及想要去中心化系统的安全性又想要中心化控制。 欲望是两个世界中最好的,但他们最终获得的可能是两个世界中最糟糕的。 你可能得到的是中心化系统的故障模式和去中心化系统的巨大成本和难度。
区块链已经当作一个流行词,用以销售大量无用的“万金油”。我们摆脱炒作的速度越快,从长期来看,对我们的成长越好。
作者已允许其作品被翻译。
作者:Jimmy Song
译者:爱乐牛
原文链接:https://medium.com/@jimmysong/why-blockchain-is-hard-60416ea4c5c