美文网首页
深度 | 为什么区块链很难落地?

深度 | 为什么区块链很难落地?

作者: BTCUP | 来源:发表于2018-11-26 19:07 被阅读0次

    目前,就区块链进行的炒作是巨大的。说起区块链,大家认为它可以:

    解决收入不平等问题

    永远保证所有数据的安全

    让一切更有效率和信任

    拯救垂死的婴儿...

    无论如何,区块链到底是什么?它真的可以做所有这些事情吗?区块链能为医疗、金融、供应链管理和音乐权利等多种行业,真的带来惊人的东西吗?

    是不是拥有比特币就意味着你是区块链的支持者?或者你是为比特币而来,但说它背后的技术就是垃圾?

    在本文中,我试图通过深入分析区块链是什么,来回答这些问题;更重要的是,它不是什么。

    什么是区块链?

    为了研究其中的一些主张,我们必须定义区块链是什么,这里存在很多混乱。许多公司使用“区块链”这个词来表示某种神奇的设备,通过这种设备,他们的所有数据都不会出错。目前至少在涉及现实世界时,这样的设备压根不存在。

    什么是区块链?从技术上讲,区块链是一系列区块的链接列表,其中每个区块是一组有序的事务。如果您不理解最后一句话,您可以将区块链视为数据库的子集,并具有一些其他属性。

    区块链与普通数据库的主要区别在于,是如何将数据放入数据库的特定规则。也就是说,它不能与已经存在于数据库中的其他数据冲突(一致性),数据只是增加(不像普通数据库可以修改、删除),数据本身被锁定至所有者(明确归属),它是可复制的和可用的。最后,在没有中央方(去中心化)的前提下,每个人都同意数据库中的数据状态(规范性)。

    上面文字中的最后一句是区块链的圣杯。权力下放非常有吸引力,因为它意味着没有单一的“故障点”。也就是说,没有任何一个机构能够剥夺您的资产或改变“历史”以满足他们的需求。有了这种不可改变的审计跟踪,您不必信任任何人,这是使用此技术的每个人都在寻找的好处。然而,这种好处需要很高的成本。

    区块链的成本

    不受任何一方控制的不可变审计跟踪,肯定是有用的,但创建这样一个系统需要很多成本。我们来看看这样一些问题。

    发展更加严格和缓慢

    创建一个可证明的一致性系统并非易事。一个小错误可能会破坏整个数据库,或导致其中某些数据库与其他数据库不同。当然,损坏或拆分的数据库不再具有任何一致性保证。此外,所有这些系统必须从一开始就设计成一致的。区块链很难进行“小步快跑、快速迭代”,如果数据被破坏,数据库就会失去一致性,区块链就会变得毫无价值。

    您可能在想,为什么不能只修复数据库,或重新开始并继续前进?在集中式系统中这很容易做到,但在分布式系统中这非常困难。你需要达成共识,比如获得系统中所有参与者的同意才能更改数据库。区块链必须是不受单个实体控制的公共资源(去中心化的,记住了吗?),否则整个工作就是创建缓慢的、中心化数据库的一种非常昂贵的方式。

    激励结构很难设计

    添加正确的激励结构并确保系统中的所有参与者不会滥用或破坏数据库,同样是一个重要的考虑因素。区块链可能是一致的,但如果因为将数据放入其中的成本非常低,导致其中包含大量无聊、无用的数据,那么它就不是很有用;反之,如果因为将数据放入其中的成本非常高,导致几乎没有数据,这样的一致性区块链价值都是非常有限的。

    什么赋予数据最终性?你如何确保奖励与网络目标保持一致?为什么节点会保留或更新数据?是什么让他们在面临数据冲突时选择一个数据而不是另一个?这些都是需要正确回答的激励性问题。它们不仅需要在开始时保持一致,而且需要在未来随着技术和公司的变化而保持一致,否则区块链就无用了。

    同样,你可能想知道为什么你不能“修复”一些“不靠谱的”激励。再一次强调,这在中心化的系统中很容易,但在去中心化的系统中,如果没有达成共识,你就无法改变任何事情。除非得到所有人的同意,否则你无法“修复”任何东西。

    -- 译者注:这里所述的“修复”过程如果没有达成一致,在现实的区块链项目中会引起分叉。其实分叉在区块链项目中已经越来越普遍,也是系统优化的一种方式,因此译者认为激励结构以及数据库等方面的“修复”都是可以较低代价实现的。

    维护成本很高

    对于日常的一次数据更新:

    传统的中心化数据库只需要写入一次;而区块链需要写入数千次。

    传统的中心化数据库只需要检查一次数据,而区块链需要数千次检查数据。

    传统的中心化数据库只需传输一次数据即可存储,区块链需要传输数千次。

    因此可以看出,维护区块链的成本要高出几个数量级,并且成本的增加需要效用的提升来证明其有效性。大多数应用程序在寻找早期声明的一些属性(如一致性和可靠性)时,可以使用完整性检查、收据和备份来降低这些成本。

    用户主权

    这可能非常好,因为通常的公司都不喜欢将保护用户数据作为其首要任务。但是,如果用户“行为不端”,这可能会很糟糕。没有办法摒弃这样的用户:用无聊的数据向你的区块链发送垃圾邮件,或者找到了一种以某种方式获利的方式,而这会给其他用户带来很多不便。这与前面观点相呼应,即激励结构必须设计得非常好,因为找出漏洞的用户不太可能放弃这种行为,特别是如果用户可以因此获利的话。

    你也许认为可以简单地拒绝向恶意用户提供服务,这在中心化服务中非常容易。但是,区块链项目拒绝服务很困难,因为没有任何一个实体有权将任何人踢出去。区块链必须是公正的,并严格执行软件定义的规则。如果规则不足以阻止不良行为,那你就不走运了。这里没有法律的“精神”。你只能去(不停地)对付这些恶意或行为不端的“演员”,可能需要很长时间。

    译者注:前一段时间Fomo3D的区块链“彩票”游戏中,一个聪明的黑客在即将开奖的前几十秒,用大量小额的转账成功地堵塞了区块链网络,导致其它所有玩家无法进入,从而成功地拿到了大奖;并且,TA也在其它类似的游戏中如法炮制,收益颇丰。这就是恶意用户行为不端、却没有行之有效办法的例子。

    所有升级都是自愿的

    强制升级不是一种选择,区块链网络上的其他玩家没有义务更新到最新版本。如果他们这样做,作为一个中心化的系统反而会更容易、更快、更便宜实现。区块链的原则在于它不受单个实体的控制,而强制升级的机制会违反这个原则。

    相反,所有升级都必须向后兼容。这显然非常困难,特别是如果您想要从测试角度思考时,添加新功能甚至更难,每个版本的软件都会为测试矩阵增加很多工作量,并推迟发布时间。

    同样,如果这是一个中心化系统,那么通过不再为旧系统提供服务,这将非常容易纠正。但在这里你不能这样做,因为在分布式系统中你不能强迫任何人做任何事情。

    扩展性不好

    最后,比传统的中心化系统相比,区块链扩大规模的难度要高几个数量级。原因很明显,相同的数据必须存在于数百或数千个地方而不是单个地方,因此传输、验证和存储的开销非常大,因为数据库的每个副本都必须支付它们,而不是在传统的集中式数据库中只须支付一次这些费用。

    当然,您可以通过减少节点数来减轻负担。最极端的是减少至一个节点,那为什么不建立一个中心化数据库呢?

    集中化要容易得多

    从上述文字你可以看到,那就是去中心化的系统处理难度很大,包括维护成本高、难以升级、难以扩展等等。与区块链相比,中心化数据库更快、更便宜、更易于维护且更易于升级。那么为什么人们继续使用区块链这个词,就好像它是解决所有问题的灵丹妙药呢?

    首先,许多区块链行业应用实际上是为已经过时的IT基础设施升级

    我们知道,医疗保健系统使用的是众所周知的可怕的软件,金融结算仍在使用70年代的软件,而供应链管理软件既难以使用又难以安装...由于涉及风险,这些行业的大多数公司都抵制升级。有的基础架构升级花费了数亿美元,最终还是升级失败,又恢复至原有版本。区块链是销售这些IT基础架构升级的一种方式,使它们听起来更高大上。

    其次,区块链让你看起来更牛X。

    无论喜欢与否,“区块链”这个词已经具有了自己的生命。很少有人真正理解它是什么,但想要显得时髦,所以经常使用这些词汇,看起来更牛X。就像“云”意味着别人的计算机,“AI”(人工智能)意味着一个经过调整的算法,在这种情况下,“区块链”意味着一个缓慢,昂贵的数据库。

    第三,无政府主义的乌托邦

    人们真的不喜欢政府对某些行业的控制,并且希望采用与法律框架不同的裁决机制,而法律框架通常既缓慢又昂贵。对他们而言,“区块链”实际上只是摆脱政府监管的重要手段的一种方式。这可能超出了区块链的作用,目前区块链并没有神奇地消除人类冲突。

    结果是,很多人在没有真正理解能力或成本的情况下大肆宣传承诺。更糟糕的是,实际的技术细节和成本从很多风险投资公司和高管中抽象出来,以掩盖区块链能做什么和不做什么。他们下面的每个人都害怕说其实皇帝没有穿衣服,我们现在已经有了这种情况。

    那么区块链适合做什么呢?

    我们已经确定区块链相对于中心化数据库非常昂贵。所以你应该使用区块链的唯一原因是分散,也就是说,消除单点故障或控制。

    这自然意味着软件或数据库不得经常改变,系统升级或改变规则的升级通常没什么好处。

    然而,大多数行业都不是这样的,它们都需要新功能或升级,并希望可根据需要,自由更改和扩展。鉴于区块链难以升级、难以改变且难以扩展,区块链对大多数行业来说没有多大用处。

    我们发现的一个例外是金钱。与大多数行业应用不同,如果不改变,金钱会更好。规则的不可变性和改变规则的困难对金钱是积极的,而不是有害的。这就是为什么在比特币方面,区块链率先取得了巨大成功。

    很明显,很多想要使用区块链的公司根本不想要区块链,而是需要对其特定行业进行IT升级。这一切都很好,但使用“区块链”这个词来达到目的,是不诚实的,并超越了它的能力。

    结论

    如今,区块链是一个受欢迎的术语,不幸的是,这种“区块链不是比特币”的模式不会死。

    如果是一个中心化服务,区块链不能为你提供任何使用中心化数据库不能提供的服务,哪怕这个区块链数据库比原有的中心化数据库造价高千倍。

    如果你是一个去中心化的服务,那么你可能在愚弄自己,而不是考虑系统中存在的单点故障。因为在真正的去中心化服务中,根本就没有“你”。

    早在2000年代早期,科技行业的许多高管就推动使用Java和XML。尽管这两件事都是工具而不是实际产品,但许多高管都坚持使用它们,无论它们与工程师想要达到的程度有多差。区块链就是这样的。专注于您正在解决的问题,工具将使自己变得显而易见。专注于您想要使用的工具,您最终会陷入小题大做、杀鸡用牛刀的尴尬境地。

    从某种意义上说,目前区块链的概念正在试图做到不可能。他们希望去中心化系统的安全性能够被中心化地控制。这两个愿望是两个中心化和去中心化的世界中都是最好的,但他们最终只能获得两个世界中最糟糕的结果-----用分布式系统的成本和难度,获得了中心化系统单点故障模式。

    现在,区块链被用作销售大量无用“蛇油”的流行词。我们摆脱炒作的速度越快,区块链长期的效用才会越好。

    本文主要译自:Why Blockchain is Hard

    转载请标明来自币投财经https://bitoucaijing.net/original/14386.html

    相关文章

      网友评论

          本文标题:深度 | 为什么区块链很难落地?

          本文链接:https://www.haomeiwen.com/subject/wtqiqqtx.html