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