计世网

难道领导不知道区块链有这么多多多多多多多多问题吗!!
作者:Lucas Mearian | 来源:计算机世界
2019-09-11
虽然区块链有望重塑业务流程,但是它们仍然是一种处于开发中的技术,存在适用的生产系统少等问题,更不用说必须要解决的治理问题和漏洞问题。

 

虽然区块链在创建新的金融、供应链和数字身份系统等方面有着巨大的潜力,但是它们常常被错误地视为解决业务问题的灵丹妙药。

虽然由大型企业和政府部门实施的大量试点项目和概念验证项目表明,区块链技术确实有望解决业务问题,但是这些项目有时候并不比以其他方式实现的业务用例更成效显著。例如,像关系型数据库这样经过验证的技术有时可以比基于P2P技术的分布式账本更为高效地执行任务,因为分布式账本技术需要复杂的管理和规则。

在整个价值链中提供完全可见性的区块链可能会具有许多重大意义,但是当我们权衡建立相关生态系统和构建该区块链的成本时,会发现它们可能在财务上并没有什么意义。

市场研究机构IDC负责全球区块链战略的研究主管James Wester称:“谁将为此买单?如何让参与者获得直观的利益?如果成本是共享的,那么成果是否共享?投资回报是否共享?这些都是非常棘手的问题,并且随着试点项目转化为生产项目,问题会变得越来越严重。换句话说,试点项目只是证明了这个概念是有效的,但是规模、成本和其他因素的影响正变得越来越大。”

部分问题与区块链项目的出资方式有关。试点项目和概念验证的资金往往来自创新或研发预算,但是一旦投入生产,成本必须算到业务部门或公司头上。当区块链涉及合作伙伴共同致力于一个开放式分类账时,合作伙伴之间必须就复杂的规则和项目的资金来源达成一致。

Wester说:“如果没有引人注目的业务用例,这些成本可能就会缺乏吸引力。鉴于区块链的分布式特性,如果有一方决定不参与,那么整个事情就会崩溃。”

以下是企业在区块链上可能遇到的主要问题:

区块链仍不成熟且软件存在缺陷

虽然第一个分布式区块链在2008年被“中本聪”(化名)概念化,但是该技术的实际应用只有几年的历史。

Hyperledger和以太坊这两个最流行的区块链平台都缺乏成熟度,这可能会导致在部署中出现无法预料的问题。市场研究机构Forrester Research的首席分析师Martha Bennett指出,首席信息官及其团队应该考虑软件中可能存在着严重的漏洞。他们甚至可能需要在遇到软件故障后废弃区块链项目并再次从头开始。

例如,以太坊用于执行智能合约的脚本Solidity目前不支持使用小数点,这需要开发人员创建变通的方法或重新开始。

Bennett说:“我已经看到在很多场合都出现过这种情况。当我与从事这些项目的工作人员交谈时,他们也提到,随着从事这项技术的时间越长,他们就越发地意识到这一技术是多么的不成熟。”

目前的变化是,初创企业和领先的企业技术供应商,如IBM和甲骨文,正在稳步地开展研究工作,以提供从特定编程环境的底层复杂性中抽象出相关的工具,以及可提供适当引导的智能合约脚本语言。

Bennett说:“总体而言,值得指出的是,不仅仅是工具正在改进,而且目前还出现了不少服务,企业可以轻松地通过这些服务让区块链网络保持正常运行。”

很少有业务领导者

能够充分了解区块链和相关技术

区块链通常是对大量附带技术、架构、用例甚至哲学内容的一种速记形式。

从本质上说,它由一组协议和区块链组合而成的一个基于P2P的分布式分类账或数据库,这意味着一系列加密的数据集。虽然这样做可能相对简单些,但是根据技术的实施方式,定义可能会变得很复杂。

Wester经常被要求定义区块链以及与“区块链”有关的“一揽子技术”,包括标记化资产、加密货币、加密钱包、分布式账本、智能合约和自我主权身份。这些相关技术只是可以在区块链网络上运行的应用程序或体系结构,并不是区块链技术本身的一部分。

Wester说:“我们目前仍处于解释该技术如何运作的阶段。我们也是在没有真正了解其中差异的情况下对这一技术展开了一些相对明智的讨论,然而许多一知半解的人根本不想深入学习这些术语和技术。”

区块链并不总是适合存储数据

区块链最大的优势之一是它们在一次写入的同时附加了许多分散的特性,可在Web上的不同节点上轻松部署,但每条记录都包含自己的哈希值,使其保持不可变。

通过基于区块链网络,分布式账本可以提供更为丰富且更为全面的交易历史记录。而用户通过内部系统或黑名单查看到的交易记录只是片面的且不完整的。

尽管如此,这并不意味着与交易相关的数据必须是该链的一部分。

例如,如果区块链用户将图像作为其交易的一部分包含在内,那么数据量将会迅速增长,同时网络开销也会增加,因为只能够添加的数据存储会随着时间的推移变得越来越大。Bennett解释道,由于区块链的分布式特性,所有数据必须复制到链中的所有节点上。

对于某些事务性任务,最好使用具有单独网络存储的关系型数据库,而不是使用区块链,因为不断增长的区块链最终会失控。Bennett称:“经验法则告诉我们,如果关系型数据库能完成这项工作时,永远不要选择基于区块链的架构。”

Bennett表示,虽然并非所有的区块链框架都需要跨节点完全复制数据,但是所有系统都需要经过精心设计,以解决监管要求、机密性需求、可能的延迟问题。她说:“这决定了链条上会发生什么,不会发生什么。”

扩展仍然是一个问题

区块链面临的一个主要问题是可扩展性,也就是在不消耗越来越多的CPU容量的情况下提升近乎实时地完成交易的能力,例如信用卡清算付款。Visa称其VisaNet网络每秒可处理多达6.5万笔交易。

由于区块链的链式特性,插入区块链的每个新记录都必须被序列化,这意味着它们的更新速率要比传统数据库慢,因为后者可以并行更新数据。

虽然区块链联盟和初创企业都在使用区块链,并且这些区块链每秒可以处理上万次交易,甚至比VisaNet的网络容量更大,但是大多数仍然受到扩展问题的阻碍。流行的区块链协议(如比特币)每秒仅支持3到5次交易,以太坊每秒也仅支持约20次交易。

可扩展性虽然是一个问题,但是它们在框架和治理模式之中所表现出来的严重性是不同的。例如,以太坊基金会正致力于使用权益证明共识模型和分片等技术来提高其协议的性能。

Bennett说:“构建网络的方式也很重要,延迟可能比计算能力更具挑战性。我看到了一些令人印象非常深刻的测试结果,但是如果这些结果的取得是通过租用庞大的AWS集群实现的,那么它们就毫无意义。

市场研究机构Gartner的研究副总裁Avivah Litan表示,与技术问题相比,目前的可扩展性更像是一个治理问题。

Litan说:“特许区块链的出现导致零信任模式的概念土崩瓦解。由于见证节点操作和共识过程的证人数量有限,因此你实际上需要相信各方,需要一些法律框架以防止他们出错。对我来说,这不是真正的可扩展性。

在区块链背景下,我们经常使用的度量标准,即“每秒交易次数”也相对变得毫无意义。Bennett说:“首先是你如何定义‘交易’?其次,如果你无法完成它们,那么对大量交易的处理就变得无关紧要了。”

区块链需要管理

区块链本身并没有消除中央机构。美国明尼阿波利斯联邦储备银行最近的一份报告显示,它们只是将一种机构或信托模式替换成了另一种而已。

报告指出,“在促进交换的过程中,对中介或中央银行等中央机构的信任取而代之的是参与者必须信任区块链系统的设计和技术,以及网络规则。在制订、实施和执行规则以及应对意外的系统问题和特殊情况方面,它们并没有消除对某种形式的管理机构的需求。虽然管理机构的成员可能是分散的,但是解决运营问题仍然需要管理。

Bennett指出,争议解决方案或者在出现问题时如何达成协议,仍然是一个关键的管理问题。例如,区块链参与者需要就如何遵守智能合约达成一致,以及在有争议的合约出现时应该做些什么。

Bennett说:“如果发生了忘记向区块链中编码的情况,那么你需要采用脱链的方式对其进行编码。如果它们以一种非预期的方式开始执行,那么就需要‘切断开关’。”

默认情况下,

区块链会共享用户可能并不想共享的信息

公共区块链作为最流行的形式,是开放且透明的。这意味着链中的任何人都可以看到每笔交易。比特币就是这种情况。

公共区块链还具有新的防篡改能力,因为它们可以扩展到数千个(甚至数百万个)节点,就像一台巨大的分布式计算机。节点越多,不良行为者就越难以控制大部分计算能力。

另一方面,在商业环境中,完全透明并不是一件好事。例如,如果区块链技术被用作股票交易平台的一部分,作为即时结算机制,则链中的每个参与者都可以看到每个其他用户正在做什么。这将导致一个用户实时狙击另一个用户的交易。

又例如,如果制造商使用区块链作为其供应商的开放式分类账,那么这将导致一家承包商能够查看链中的所有其他分包商。

Bennett说:“我可能不希望客户看到我的所有分包商都是谁,即使他们可能想要的是链上的特定交易流也不行。因此你需要立即考虑如何保持交易数据的机密性。”

有一些方法可以在区块链上创建排他性,这样只有部分用户才能看到机密或敏感数据。例如,Linux基金会旗下的开源区块链项目Hyperledger使用“渠道”或子链来确保只有一些授权用户可以看到敏感信息。

最薄弱的环节决定了区块链的安全性

如上所述,区块链有两种常见类型,即公共区块链和私有区块链。公共区块链允许任何人加入。比特币就是公共区块链的一个优秀示例,任何想要购买加密货币的人都可以加入这个链条。它们是开放且透明的,这意味着链中的每个人都可以看到所有交易。如果一个或是许多个参与者试图欺骗系统,那么他们将会被必须要验证新交易有效性的大多数用户所发现。

Litan称:“最重要的是你不用在大型公共区块链网络中必须信任你的同行了。也就是说,公共区块链解决了‘拜占庭将军问题’[译者注:指一方向另一方发送消息,另一方没有收到,或者收到了错误信息的情形]。”

与公共区块链相反,私有的或特许区块链是集中管理的,需要获得许可才能加入。它们适合在单独的组织机构内部或是在合作的组织机构中使用。只有授权用户才能加入。

公共和私有区块链本身都是安全的,因为它们是不可变的(即每个记录或块都是不可更改的并且与所有其他区块相互关联),并且添加新块需要用户之间达成共识,共识得有多大规模取决于使用的区块链。对于一些区块链来说,50%即可; 对于其他的区块链来说,这一比例可能还需要更高。尽管区块链的不可变性和共识要求使得它们本身比大多数的其他网络技术更为安全,但是它们的实际安全性还要取决于体系结构、谁在运行这些节点以及区块链易受攻击的弱点。

虽然区块链提供的安全性与区块链上记录的数据的完整性密切相关,但是明尼阿波利斯联邦储备银行的报告指出,在没有其他技术或系统的情况下,区块链本身并不能防止未经授权的访问,例如数据泄露。

例如,最近出现的针对以太坊经典(ETC)令牌交换的“51%攻击”表明,即便是区块链也不是无法欺骗的。51%攻击是指在加密货币挖掘池中获得对大多数CPU的控制权的不良行为者。此类攻击通常仅限于节点较少的小型区块链,因为它们更容易由个人获得基于PoW(工作证明)共识机制的控制权。

数据透明度,即区块链上所有各方查看交易的能力使得不良行为者在企图添加未经验证的数据时能够被快速识别出来。但是数据的透明度也可能成为威胁。美联储在报告中指出,系统数据透明就是一种安全风险,因为在金融机构的结算或清算系统中,保密性可以说是安全性的核心部分。

报告称:“如果既要有透明度,同时又需要保密,那就需要对链上的数据进行加密或者进行强身份验证访问。机密性和访问控制可以内嵌在区块链中,不过这并不是区块链原生的属性,因为区块链本身并不提供身份验证。”

换句话说,不要想当然地认为某个区块链包含了私密性、透明度或强大的用户身份验证等功能,那么其他的区块链就也应该具有这些功能。

Bennett指出,为区块链提供信息的系统,例如智能合约,也可以成为攻击向量,因为它们没有去中心化,会出现单点故障。

智能合约既不智能也非合约

智能或自动执行合约是在区块链上构建的业务自动化工具。它们是区块链技术中极具吸引力的功能之一,因为它们能够消除管理开销。基本上,一旦达到合约的某些条件,收据信息、资金、财产或货物将会被自动释放。

例如,保险公司可以使用智能合约,根据洪水、飓风或干旱等事件中的受损情况发放赔偿金。或者,在货物到达入境口岸时,集装箱内的物联网传感器确认内容未打开且存放温度适当等,提单将会被自动签发。

尽管如此,Bennett认为,所谓的智能合约在法律意义上既不智能也不是合约。对程序员来说,由于学习曲线非常陡峭,加之区块链脚本语言尚不成熟,因此可能会出现错误或漏洞。

根据Bennett的说法,虽然智能合约与创建自动化流程的规则和软件一样好用,但是这已然成为了一个问题。

“我们已经看到出现了一些允许将智能合约的基础整合起来的工具,”她说。“这只是一个开始,正如一些企业已经发现的那样,确保每个网络参与者都运行相同版本的智能合约是一项挑战。”

其他的挑战还包括确保智能合约本身不会出现任何安全问题,确保智能合约的任何外部输入都是有效和正确的。

Bennett指出,应当确保数据输入的准确并在源头上进行验证。她说:“正如我一直说的那样,仅凭它们在区块链上并不意味着它们是真实的。智能合约跟那些为了让团队能够共同实现流程自动化而制订的规则是一样的,它们的好坏取决于编程的质量。”

区块链参与者需要就如何遵守智能合约达成一致,以及在有争议的合约出现时应该做些什么。创建一个新的业务流程需要不同用户之间就相关条件达成一致。如果参与各方无法对运营条件达成一致,那么区块链项目就会被搁置。因此区块链既与IT有关,也与合同协议有关。

“最近有人对我说,区块链是80%的业务加20%的技术,”Bennett说。

此外,虽然区块链可能分散在数十个或数千个节点上,但是智能合约却并非如此。这意味着区块链节点无法了解智能合约的工作方式。换句话说,作为区块链网络一部分的企业联盟必须依靠一个实体来获取智能合约中的信息。

区块链网络使用被称之为“oracle”(预言机)的集中式软件代理来查找和验证已发生的真实事件,然后再触发智能合约,根据预先定义的条件进行执行。例如,从加利福尼亚运往丹麦的药品的温度可以通过运输容器中的物联网传感器进行监测。传感器信息由oracle软件收集,然后发送给智能合约,如果在整个旅程中满足温度范围,则可通过区块链触发事件,例如签发提单或支付运费。

如果你的企业是供应链等区块链联盟的一部分,那么你是无法知道什么东西正在智能合约中的运行,并且没有可证实性。从本质上讲,你必须相信企业运行的服务器,因为oracle和智能合约会将反馈给区块链的信息驻留在服务器上。

Gartner的Litan称:“你必须找到一个源、一个表单、一个oracle来获取这些数据。对于数据的验证还没有一个标准的流程。这将有可能会成为一个严重的问题。”

Litan指出,“我曾经与联盟中的成员企业探讨过关于‘你们是如何知道智能合约正在做什么的?’这一问题。他们给出的答案是,他们根本就不知道。如果这些智能合约关系到企业的存亡,你难道就不想知道它们正在做什么吗?”

作者:Lucas Mearian为资深记者,长期关注包括区块链在内的金融服务IT、医疗保健IT以及包括移动管理、安全、硬件和应用程序等在内的企业移动问题。

编译:陈琳华

原文网址:https://www.computerworld.com/article/3236480/top-8-problems-with-blockchain.html?nsdr=true

责任编辑:周星如