zoukankan      html  css  js  c++  java
  • 为什么我们说区块链没有那么容易?

    Alt

    近年来,围绕区块链的讨论声音越来越大,区块链的作用也被夸得越来越大,有人说区块链现在可以:

    1、帮助解决收入不平等的问题

    2、确保所有数据的安全

    3、让很多事情都可以变得更加高效和更加去信任化

    区块链到底是个什么?它真的如大家所说的那么神秘且厉害吗?区块链真的能给诸如医疗保健、金融、供应链管理和音乐版权等各种各样的行业带来变革吗?认同比特币不就意味着你要支持区块链吗?你怎么能只认同比特币而否认其背后的技术呢?在本文中,我试图通过讨论区块链究竟是什么,来了解以上的这些问题。

    什么是区块链?

    首先,我们需要来看看区块链的定义是什么?

    有许多的公司会使用“区块链”一词来表示某种数据永远不会出现安全问题的神奇“设备”。但其实我们都知道,至少在现在的这个时代,这种设备是不存在的。

    Alt

    那么什么是区块链?从技术上讲,区块链是区块的链表,而区块是一组有序交易。如果你不理解最后一句话,可以将区块链视为数据库的子集,并具有一些其他属性。

    区块链和普通数据库的主要区别是,关于如何将数据放入数据库的规则。也就是说,它不能与数据库中已有的某些其他数据(一致)冲突,它只能追加(不可变),并且数据本身被锁定为所有者(可拥有),是可复制且可用的。最后,每个人都同意在没有中央参与者(去中心化)的情况下数据库中事物的状态(规范)。

    “分权”确实是区块链非常有吸引力的一部分,因为它意味着没有单点故障。也就是说,没有任何一个权威机构能够拿走你的资产或更改“历史记录”以满足他们的需求。你无需信任任何人的这条不变的审计线索就是使用这项技术的每个人都在寻努力达到的益处。然而,这种好处却需要付出巨大的代价。

    区块链的成本

    不受任何一方控制的不变的审计跟踪无疑是有用的,但是创建这样一个系统要付出很多成本。让我们先来看看一些问题。

    发展更严格和缓慢

    创建可证明一致的系统并非易事。一个小错误可能会破坏整个数据库或导致某些数据库与其他数据库不同。当然,已损坏或拆分的数据库不再具有任何一致性保证。此外,所有此类系统必须从一开始就进行设计以保持一致。区块链中没有“快速行动并打破事物”。如果你破坏事物,则会失去一致性,并且区块链将变得毫无价值。

    Alt

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

    激励结构设计不易

    添加正确的激励结构并确保系统中的所有参与者都不能滥用或破坏数据库也是一个重要的考虑因素。区块链可能是一致的,但是如果其中有很多琐碎、无用的数据,那么这并不是很有用,因为将数据放入其中的成本非常低。如果几乎没有数据,那么一致的区块链也没有用,因为将数据放入其中的成本太高了。

    Alt

    是什么赋予数据最终性?你如何确保奖励与网络目标一致?为什么节点会保留或更新数据?当两段数据冲突时,是什么使它们选择一段数据而不是另一段数据?

    这些问题都都还有待探索、解答,区块链不仅需要在开始时保持一致,还需要在未来的所有时间节点上保持一致。因为技术和公司会发生变化,否则区块链就没有用处。

    维护非常昂贵

    传统的集中式数据库只需写入一次。区块链需要被写入数千次。传统的集中式数据库只需要检查一次数据,区块链则需要检查数千次。传统的集中式数据库只需传输一次数据即可存储,区块链需要传输数据数千次。

    维护区块链的成本要高出几个数量级,而且成本需要通过效用来证明。大多数应用程序在寻找前面提到的某些属性(如一致性和可靠性)时,可以通过完整性检查、收据和备份来以更低的价格获得这些东西。

    用户优先

    这样真的很好,因为企业不喜欢对用户数据负责任。但是,如果用户“行为不端”,这就不好了。你没有办法驱逐那些在区块链上发大量垃圾信息的人,又或者找到了一种方式,但它可能又会让其他用户有一些别的不便。

    通过以上观察结果我们可以得出相关结论:激励结构必须设计得非常棒,在此激励结构下,如果用户发现了一个漏洞,尤其是如果还可以以此牟利的话,就不太可能放弃。

    可能你会认为能拒绝为恶意用户提供服务,这在中心化的服务中是非常容易的。

    然而,与中心化服务不同的是,(在去中心化中)拒绝服务是困难的,因为没有一个单一的实体有权力将任何人踢出去。区块链必须是公正的,并强制执行由软件所定义的规则。如果这些规则不足以阻止不良行为,那你就没那么幸运了。这里没有法律的“精神”。即使你需要简单地处理恶意的或行为不端的执行者,可能也需要很长一段时间。

    所有升级都是自愿的

    强制升级并不是一种好的选择。网络上的其他人没有资格来升级你的软件。如果他们这样做的话,这样的系统将变得更加容易、快捷和低成本地去构建为集中式系统。区块链的重点是,它不受单个实体的控制,而强制升级则违反了这个规则。

    Alt

    相反,所有升级都必须向后兼容。这显然是相当困难的,特别是当你想添加新功能时,并且从测试角度考虑时将会变得更加困难。软件的每个迭代版本都将会在测试矩阵中增加更多内容并将发布时间推迟更久。

    同样,如果这是一个集中式系统,修复这样一个不再为旧系统提供服务的系统将会变得很容易。但是在分散式系统中,你就无法如此简单的操作了,因为你不能强迫任何人执行任何操作了。

    扩展真的很难

    最后,与传统的集中式系统相比,扩展至少要困难几个数量级。原因显而易见。同样的数据必须存在于成百上千个地方,而不再是存储在同一个地方。传输、验证和存储的开销都将会是巨大的,因为数据库的每个副本都必须支付这些开销,而不是像在传统的集中式数据库中那样一次性支付这些开销。

    当然,你可以通过减少节点的数量来缓解这种负担。但那时候,你又为什么需要一个去中心化的系统呢?如果扩展成本是主要考虑的问题,那么又为什么不创建一个集中式数据库呢?

    中心化并不是易事

    可能你会注意到这样一个问题:去中心化的系统很难使用,维护起来又很贵,又很难升级,而且很难扩展。与区块链相比呢,集中式数据库更快、更便宜、甚至更容易维护和升级。那么,为什么人们总是使用区块链这个词,好像它是解决所有问题的灵丹妙药?

    Alt

    首先,许多在区块链上进行销售的这些行业确实早该进行IT基础设施升级了。众所周知,医疗保健软件非常糟糕,它们的财务结算甚至仍在70年代的老旧软件上进行,而供应链管理软件既难以使用又难以安装。这些行业的大多数公司因为害怕涉及风险而拒绝升级。许多基础设施的升级耗费了数亿美元,但最终还是被取消了。区块链是销售这些IT基础设施升级的更具吸引力的一种方式。

    其次,区块链是一种使你看起来处于技术领先地位的方法。不管你喜欢与否,“区块链”一词都有自己的生命。很少有人真正理解它的含义却想要显得时髦,因此可以使用这些词让自己听起来更聪明。就像“云”表示别人的计算机,“AI”表示经过调整的算法一样,“区块链”在这种情况下表示数据库缓慢而昂贵。

    结果是很多人在没有真正理解能力或成本的情况下就大肆宣誓自己已经在使用区块链。更糟糕的是,许多风险投资人和高管从中提取了实际的技术细节和成本,以至于模糊了区块链可以做什么和不能做什么。他们下面的每个人都变得害怕说皇帝没有衣服,而这,就是我们现在的状况。

    区块链的优势

    我们已经确定,相对于集中式数据库,区块链的成本会高很多。因此,大多数人使用区块链的唯一原因是去中心化。即,删除单点故障或控制。

    自然,这意味着软件或数据库一定不能经常更改(如果有的话)。升级应该没有太大的上升空间,而搞砸或改变规则应该有很多下降空间。

    Alt

    大多数行业都不是这样。大多数行业需要新功能或升级,并且需要根据需要自由更改和扩展。鉴于区块链难以升级,难以更改和难以扩展,大多数行业对区块链的使用并不多。

    但又一个例外——货币。与大多数工业用例不同,货币需要的是稳定。区块链的不变性和更改规则的困难对货币是有利的。这就是为什么区块链是承载比特币的正确工具的原因。

    显而易见的是,很多希望使用区块链的公司实际上根本就不是真的需要区块链,而是需要将特定行业的IT基础设施进行升级。因此,他们口中的“区块链”一词是不诚实的,并且过度夸大了它的能力。

    结论

    如今,区块链是一个流行的术语,不幸的是,这种“区块链不是比特币”的言论不会消失。如果你是集中式服务,区块链则无法为你提供任何你无法使用集中式数据库便宜一千倍的东西。如果你是去中心化服务,那么你可能会自欺欺人,而不考虑系统中存在的单点故障。真正的去中心化服务根本不会有“你”。

    原文链接:https://medium.com/@jimmysong/why-blockchain-is-hard-60416ea4c5c

    目前,京东云区块链项目BDS已开源,同时还在招募开发者加入!点击【阅读】可了解详情

    点击“京东云”了解更多精彩内容

    Alt

    以上信息来源于网络,由“京东云开发者社区”公众号编辑整理,不代表京东云立场。
    Alt

  • 相关阅读:
    May 1 2017 Week 18 Monday
    April 30 2017 Week 18 Sunday
    April 29 2017 Week 17 Saturday
    April 28 2017 Week 17 Friday
    April 27 2017 Week 17 Thursday
    April 26 2017 Week 17 Wednesday
    【2017-07-04】Qt信号与槽深入理解之一:信号与槽的连接方式
    April 25 2017 Week 17 Tuesday
    April 24 2017 Week 17 Monday
    为什么丑陋的UI界面却能创造良好的用户体验?
  • 原文地址:https://www.cnblogs.com/jdclouddeveloper/p/11834302.html
Copyright © 2011-2022 走看看