Home > 观点 > IBM的区块链,不属于真正的区块链
观点

IBM的区块链,不属于真正的区块链

任何一项创新技术的出现,都会伴随真伪面,区块链技术就是其中之一。初期阶段,由于该技术逻辑的隐蔽与专业性,关于什么叫区块链技术,除了极少数参与其中的专业人士外,其他基本属于吃瓜群众。为了便于大家一起学习与进步,今天我们分享的这一篇故事,希望能够帮助到您对区块链技术有一个更高台阶的了解。

图片来源:cointelegraph

斯图亚特·波普霍伊 (Stuart Popejoy)在金融行业搭建交易系统和交易构架领域有15年的经验。2016年,在与威尔·马蒂诺(Will Martino)一起创立Kadena之前,斯图亚特曾在摩根大通的新产品部门工作,负责领导和开发摩根大通的主要区块链产品Juno。斯图尔特还为摩根大通编写了算法交易脚本,那时他还创建了Kadena简单、专用的智能合约语言Pact。

IBM是企业级区块链领域的主要参与者,提供基于Hyperledger Fabric的区块链平台服务,并与沃尔玛和Aetna等大公司一起推出了区块链应用试点。

作为开源项目Hyperledger基金会的众多贡献者(包括最近宣布的微软和Salesforce)之一,IBM在把Fabric包装为私有或“许可”区块链方面进行了大量投资,这意味着Fabric可以提供如比特币或以太坊等知名区块链提供的通用功能,同时也删除了一些不适用于企业商用的功能。

然而,IBM实际销售并称之为“区块链”的技术-即Hyperledger Fabric,牺牲了无论对许可链或是公有区块链来说最为重要的特征。Fabric的架构远比任何区块链平台复杂,同时对抵御防篡改和攻击的能力也较低。大家可能会认为“私有”区块链至少在可扩展性方面表现优越,但Fabric在这方便也失败了。简而言之,基于Fabric试点项目的部署环境非常复杂,且存在安全隐患,无法与其业务进行扩展。

市场上的其他区块链项目

2016年,当我在在摩根大通工作时组建了一个新兴技术小组,负责研究和审查银行潜在或已经进行战略投资的区块链项目。我们对Hyperledger,Axoni,Symbiont,Ripple和以太坊早期的版本进行了深入分析,发现真正适合企业使用的区块链项目非常稀缺。不幸的是,我们今天看到Hyperledger Fabric依然存在同样的问题。

我们当时提出的问题包括:区块链的智能合约语言如何安全、简单地表达复杂的业务规则?如何保证公钥签名有效?系统是否具有扩展性?是否可以允许其他更多的参与者(节点)加入,其性能又不会显著降低?而且,对于具有长远战略思维的企业,是否可以轻松地与其他公链和私有区块链进行互操作?

如果以这些问题作为衡量的框架,我认为IBM的系统从根本上缺乏区块链的必要元素,不仅表现性能具有误导性,并且长期业务发展的可行性也有待商榷。虽然我和同事们没有看到具体数字(TPS:每秒事务处理量,节点数),这在当时是区块链是否被采用的唯一因素。但我们认为教育人们了解区块链是什么很重要,这有助于帮助每个人更好地了解区块链新兴技术的前景。

什么是区块链?

为了真正理解IBM区块链的立场,我们需要了解区块链本身的含义。区块链的核心是一个分布式的、不可篡改的账本,受到共识机制的监督,它可以真实地记录每一笔事务或交易。在比特币和以太坊这样的公有区块链中,这种共识是通过工作证明或“挖矿”来实现的。在许可区块链中,可以通过提供加密签名的参与者对所写内容进行投票来达成共识。无论是哪种方式,都没有中央权威机构对真实情况进行仲裁。

IBM对区块链的定义涵盖了区块链分布式和不可篡改的特性,但却忽略了分布式共识 – 这是因为Hyperledger Fabric根本不需要真正的共识机制。相反,它建议使用名为Kafka的“订购服务”。问题是,如果没有参与者之间强制执行的、民主的、由加密保证的投票安全,你就无法证明是否有人篡改账本。容错共识是区块链的标志性特征,没有它,IBM的“区块链”只不过是一个带时间戳的列表。

IBM的区块链,不属于真正的区块链

V1.0 of hyperledger Fabric

Fabric的体系结构暴露了许多可被恶意利用的漏洞。例如,它引入了“网络内部”的公钥加密和验证器签名,来提供主要的安全保证,但是该安全保证是在外部签名提交之后发挥作用。这从根本上使经过验证的比特币和其他实际区块链的安全模型无效,其中任何交易的输出仅由外部用户的公钥签名确保,并且系统不能以任何方式参与进来。

与此形成鲜明对比的是,Fabric上唯一重要的签名是验证器的签名,而用户签名则消失在通过网络复制的任意数据集中。

Fabric 的研究人员在性能数据的表现上反复无常,因为从根本上说,Fabric的架构无法在保持最佳性能的同时进行扩展。 Fabric使用多链环境(称为“通道”)来保证参与者之间通信的机密性。保证参与方通信的机密性是私有“企业”区块链的一个重要特征,这必然涉及到权衡。但多链解决方案不是解决可扩展性问题的最佳选择,它会使得部署非常复杂,还会出现节点不均匀,智能合约不可靠的问题,并且潜在失败的可能性也会增加。

因此,标准Fabric部署的性能启动并不令人满意,随着节点的增加还会迅速降级并且变为单通道:如果您想跨多个“通道”与整个网络进行交易,这些数字甚至无关紧要。

即便如此,在查看各通道时,该系统仍难以达到每秒800次以上的交易量(TPS),即使是设置16个通道,TPS也几乎无法超过1,500 ,还会有10-20秒的延迟,但这已经系统最高的吞吐量了。

最近Fabric声称TPS已经达到20,000,但研究人员对该架构所做的改变已经没有了区块链的影子,背书者不再充当验证者而“Kafka”被认为是唯一可能的订购服务(从理论上讲,Fabric可以接受真正的区块链共识,但他的处理速度很慢,没有人会在生产中使用它)。最后,这些仍然是单通道的性能,这意味着区块链作为共享真实数据来源的整个概念都是无效的。

为什么智能合约和混合期权很重要

在选择区块链时,最后的考虑因素是他们打算如何扩展私有数据库,以及他们的工具(如智能合约语言)如何帮助企业在更大范围内取得成功。智能合约不仅仅是一段代码,他是业务逻辑的体现,智能合约可以确保区块链上的房屋安全,确保数字身份,甚至可以托管买方和卖方二手车的交易。重要的是,智能合约非常可靠,并始终按照预先的设定执行。

在区块链上构建任何东西时,您需要通过智能合约实现您想要做的事情(购买,出售,打包数据等)。您使用的语言越简单,您就能越快地构建程序或系统并呈现给利益相关者。更重要的是,您希望智能合约的功能能够带来收益或者可以推动业务的发展。

IBM的区块链,不属于真正的区块链

Fabric “Hello World”

Hyperledger Fabric的智能合约(chaincode)支持多种编程语言编写,包括通用的Java或Go语言。但是在通用语言提供的便利性与特定编程语言提供的安全性之间要做出权衡。如果代码有缺陷或不正确(代码不是为区块链而设计的),可能会导致数百万美元的丢失。智能合约语言必须是专门设计的,并且是安全的。理想情况下,它也应该易于学习,并且易于在所需的区块链环境中使用。Chaincode在这方面很大程度上失败了,我们发现只需执行150行代码就可以执行经典的程序员教程“hello world”。而把这些大量的代码放在智能合约上可能会导致数百万美元的损失。

没有为未来做好准备

区块链生态系统中最有经验的观察者越来越意识到私有链和公有区块链并非存在于真空中,而是希望合作:私有区块链希望令牌可以在公有区块链上流通,供消费者使用,公有区块链分布式应用程序希望将敏感信息存储在私有区块链上。不幸的是,IBM Fabric(以及R3 Corda)的用户可能会因为架构的完全不兼容性,无法与公有区块链连接,而且它的智能合约语言也无法在公开和私人环境中无缝衔接。

IBM通过公布其合作伙伴关系占领了各大媒体的头条,因此深入了解该技术到底可以做些什么非常重要。IBM的“区块链”技术在很多方面都存在缺陷 – 包括安全性,性能和可靠性, 因此它无法为希望使用区块链技术改进业务的公司提供良好的解决方案。为了真正实现区块链的价值,成熟的客户将寻求真正的挑战者,他们可以提供更好的工具、更好的区块链解决方案和更好的愿景,他们也知道如何利用区块链这项技术。

参考原文:https://cointelegraph.com/news/why-ibms-blockchain-isnt-a-real-blockchain

http://xzh.i3geek.com
hao, zui
ChainDAO御用写手,专业编辑,高级打杂,专注区块链应用及国家政策

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据