围绕区块链的宣传是声势浩大的。有关区块链的宣传是,区块链将会:
解决收入不平等
确保所有数据永远安全
让一切变得更加高效和更可靠
拯救垂死的婴儿
到底什么是区块链?它真的能做所有这些事情吗?区块链能给医疗、金融、供应链管理和音乐权利等不同的行业带来惊喜吗?
那么,对于比特币来说,这是否意味着是支持区块链的呢?对于比特币,你怎么能不说它背后的技术有什么不好的地方呢?
在本文中,我试图通过查看区块链是什么和不是什么,来回答许多这样的问题。
什么是区块链?
为了研究其中的一些说法,我们必须给区块链下定义,这里有许多混淆之处。许多公司使用“区块链”这个词来表示某种神奇的设备,以此向用户表达出,他们的所有数据都不会出错。当然,至少在涉及到现实世界的时候,这样的设备是不存在的。
那么什么是区块链呢?从技术上讲,区块链是一个块的链表,一个块是一组有序的事务。如果您不理解最后一句话,您可以将区块链看作是数据库的一个子集,在这个数据库还有一些额外的属性。
区块链和普通数据库的主要区别是,对于如何将数据放入数据库,有一些特定的规则。也就是说,它不能与数据库中已经存在的其他数据冲突,它是只追加的不可变的,并且数据本身被锁定到所有者的话它是可复制的和可用的。最后,数据库不是去中心化的。
这最后一点才是区块链存在的真正意义。权力下放非常具有吸引力,因为它意味着不存在单一的失败点。也就是说,没有任何一个机构能够拿走你的资产或改变历史来满足他们的需求。在这种不变的审计线索中,你不需要相信任何人,这就是每个人使用这种技术所追求的好处。然而,这种好处的代价是巨大的。
区块链的成本
不受任何一方控制的不可变审计跟踪肯定是有用的,但是创建这样一个系统需要付出很多代价。让我们来研究一下其中的一些问题。
发展更加严格且缓慢
创建一个可证明一致的系统不是一件容易的工作。一个小错误会破坏整个数据库,或者导致某些数据库与其他数据库相冲突。当然,损坏或拆分的数据库不再具有任何一致性保证。此外,所有这类系统都必须从一开始就设计得前后一致。在区块链中没有“快速移动就能避免破坏的东西”。如果你破坏了东西,你就会失去一致性,区块链就会被破坏,然后变得毫无价值。
您可能会想,为什么不直接修复数据库或重新开始并继续前进呢?这在集中式系统中是很容易做到的,但在分散式系统中则很难做到。为了更改数据库,您需要一致的意见,或者系统中所有参与者的同意。因为区块链必须是一个公共资源,不在单个实体的控制之下。
激励结构难以设计
增加适当的奖励结构,并确保系统中的所有行为者都不滥用或破坏数据库,也是一个重要的考虑因素。一个区块链可能是一致的,但是如果它有很多琐碎的、无用的数据,那就不是很有用了,因为将数据放入其中的成本非常高。
是什么给出了数据的最终结论?如何确保奖励与网络目标一致?为什么节点要保持或要更新数据, 以及当它们处于冲突中时, 是什么使它们选择了一致性的数据?这些都是需要解决的具有激励性的问题, 数据不仅需要在一开始, 而且要在未来的所有点上都是一致的, 否则区块链将没有意义。
同样, 你可能会想知道为什么你不能 “修复” 一些破碎的奖励。再一次说明, 这在集中式系统中很容易实现, 但在一个分散的体系中, 你根本无法在没有共识的情况下改变任何事情。除非每个人都同意, 否则没有 你改变任何东西的权利。
维护成本很高, 传统的集中式数据库只需要写入一次。而区块链需要写上上千遍。传统的集中式数据库只需要检查一次数据。而区块链需要对数据进行上千次检查。传统的集中式数据库只需要传输一次存储数据。而区块链 需要将数据传输上千次。
维持 区块链 的成本是很高的。大多数应用程序在查找前面所述的一些属性时, 如一致性和可靠性, 可以使用完整性检查、收据和备份更便宜地获得这些东西。
用户主权
公司都不喜欢为用户的数据承担责任。但是, 如果用户 “行为不端”, 这可能会很糟糕。没有办法赶走那些用琐碎数据发送区块链的用户,或者想出一种以某种方式获利的方式,这会给其他用户带来很多不便。这与上述的观察相关联,即激励结构必须设计得非常非常好,那么用户不太可能放弃,特别是当用户有利润的时候。
您可能会想,您可以简单地拒绝对恶意用户的服务,这在集中式服务中是很容易做到的。但是,与集中式服务不同,在区块链中拒绝服务是困难的,因为没有一个实体有权将任何人踢出。区块链必须公正并执行软件定义的规则。如果这些规则不足以阻止不良行为,那你就倒霉了。这里没有法律的“精神”。你在处理恶意或行为不端的演员,可能需要很长时间。
所有升级都是自愿的
强制升级不是一个好的选项。网络上的其他玩家没有义务更改您的软件。如果他们这样做,这样系统将更容易、更快和更便宜地作为一个集中的系统来构建。区块链的意义在于,它不在单个实体的控制之下,并且所有用户都不能给被强制升级。
相反,所有升级必须是向后兼容的。这显然是相当困难的,尤其是如果您想添加新特性,并且从测试的角度进行思考时更难。软件的每个版本都为测试矩阵增加了很多内容,并延长了发布时间。
同样,如果这是一个集中式系统,那么不再维护较旧的系统就很容易纠正这一点。但是,在一个分散的系统中,您不能强迫任何人做任何事情。
缩放真的很难
最后,与传统的集中式系统相比,扩展至少要困难几个数量级。原因很明显,因为同样的数据必须存在于数百个或数千个地方,而不是在一个地方。传输、验证和存储的开销是巨大的,因为数据库的每一个副本都必须进行支付,而不是在传统的集中式数据库中只支付一次这些费用。
当然,您可以通过减少节点数量来减轻负担。但到了那个时候,为什么你还需要一个分散的系统呢?为什么不建立一个集中式数据库?
集中管理要容易得多
如果你注意到分散式系统很难使用,维护费用高,升级困难,规模大的痛苦,集中式数据库比区块链更快、更便宜、更容易维护和升级的话。那么,为什么人们总是用“区块链”这个词来进行标杆,好像它是解决他们所有问题的灵丹妙药呢?
首先,许多在区块链上出售的行业确实早就该升级IT基础设施了。70年代以来,财务结算仍在软件上运行,供应链管理软件既难以使用,也难以安装。这些行业的大多数公司都会因为涉及的风险而抵制升级。有许多基础设施进行了升级,花费了数亿美元,但最终还是被打回原形了。因此,区块链是一种销售这些IT基础设施升级的方式,区块链会使它们更有吸引力。
其次,区块链是一种让你看起来像是处于科技前沿的技术。不管你喜不喜欢,“区块链”这个词已经有了自己的生命。很少有人真正理解它是什么,但想显得时髦,所以用这些词来让自己听起来更加的牛。就像“云”指的是别人的电脑,“AI”指的是经过调整的算法,“区块链”在这个上下文中意味着一个缓慢而昂贵的数据库。
第三,人们确实不喜欢政府对某些行业的控制,他们希望有一个不同于法律框架的审判机制,而后者通常既慢又费钱。对他们来说,“区块链”只是摆脱政府管制机器的一种方式。这就是区块链的作用。但是区块链并不能神奇地带走人类的冲突。
结果是许多人在没有真正了解能力或成本的情况下就被这些承诺炒作了。更糟糕的是,实际的技术细节和成本从很多风投和高管那里被抽象出来,从而掩盖了区块链可以做什么和不能做什么。
那么区块链有什么用呢?
我们已经证明了区块链相对于集中式数据库来说是非常昂贵的。所以你还想使用区块链的唯一原因是其具有分散化。
这自然意味着软件或数据库一定不能经常改变周围的东西,如果有的话。升级应该没有什么好处,并且搞砸或改变规则也有很多坏处。
大多数行业都需要新的功能或升级,以及在必要时有能够进行更改和扩展的自由。考虑到区块链难以升级、难以改变、难以规模化,大多数行业对区块链的使用并不多。
我们发现的一个例外是“钱”。与大多数工业用例不同,如果不能够进行改变,钱会更好。规则的不变性和困难性对金钱是正面的,而不是有害的。这就是区块链在比特币问题上是合适的工具的原因。
我们必须明确一点的是,许多希望使用区块链的公司并不真正想要一个区块链,只是信息技术升级到它们的特定行业了。这一切都很好,但是用“区块链”这个词来达到这个目的是不显示的,因为这会过度消耗企业的能力。
结论
区块链是最近很流行的术语,不幸的是,这种“区块链而非比特币的”模因不会消亡。如果您是一个集中式的服务,那么区块链就不能为您提供比集中式数据库便宜一千倍的东西。如果您是一个分散的服务,那么您可能是在愚弄您自己,因为你没有考虑到系统中存在的单一故障点。在一个真正分散的服务中根本不会只有你存在。
早在2000年代初,科技行业的许多高管都在推动使用Java和XML。尽管这个都是工具而非实际产品,不管工程师们达到的目标有多么糟糕,许多高管坚持使用它们。区块链很像这样产品。如果,把注意力集中在你正在解决的问题上,工具就会很容易地显现出来。把注意力集中在你想要使用的工具上,你最终会生产出像Rube Goldberg这样的机器,而这些机器不会做得特别好。
从某种意义上说,现在的区块链概念是在试图做不可能的事情。他们希望分散式系统的安全性与集中式系统的控制相统一。他们想的是要利用这两种系统中最好的,但他们最终得到的却是两个系统中最糟糕的。
区块链作为一个时髦的词来进行炒作。因此,我们要尽快摆脱这种炒作,然后使自身越来越好就可以了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)