“Hyperledger Fabric 是假区块链!”
自 Libra 发布以来,沉寂已久的区块链社区又活跃了起来,一些探索区块链业务的公司也在暗地里较劲不甘落后。相信你也注意到了,这些大公司往往都对现有比特币、以太坊等区块链视而不见。这是因为它们深知数据的重要性,因而不会选用比特币、以太坊这些把数据开源公开的公有区块链,而是对可以控制参与者加入的私有区块链情有独钟。说到私有区块链,就不得不提到 IBM。IBM 可谓是私有区块链领域的领头羊,其区块链产品 Hyperledger Fabric 是许多区块链开发人员的首选,同时 IBM 还与沃尔玛、美国安泰保险金融集团这样的大公司强强联手,一起进行区块链落地场景的探索,以在企业区块链中抢占先机,扩大优势。推特上有人统计,仅在过去一年,IBM 区块链专利的数量就增长了 300%。
作为开源非营利组织 Hyperledger 基金会的众多贡献者(其中包括最近加入的微软以及客户关系管理平台 Salesforce)之一,IBM 可谓是花了血本来推动 Hyperledger Fabric 的发展,这意味着 Hyperledger Fabric 会有和比特币、以太坊这些常见区块链一样的特性,同时会在其中删除“并不适合企业场景”的特性。
虽然说 IBM 将 Hyperledger Fabric 称为区块链并以区块链的名义来营销,但无论是与许可区块链相比还是与公有区块链相比,Hyperledger Fabric 都牺牲了很多一个真正意义上的区块链应有的特性。
虽然 Hyperledger Fabric 的架构远比任何区块链平台复杂,但它在防篡改与防范攻击等安全性特性方面依然做得不尽人意。你可能还会觉得“私有”区块链至少能保证在可扩展性和性能上满足需求,但 Hyperledger Fabric 的这两个特性也会让你失望。简而言之,基于 Hyperledger Fabric 的实验将面临区块链复杂且不安全的问题,同时区块链的可拓展性可能也不能满足业务快速增长带来的需求。
对此,前摩根大通区块链团队领导人物Stuart Popejoy更是一针见血,声称 IBM 做了一个假的区块链! 为什么Stuart Popejoy 认为IBM 做了一个假的区块链?这篇文章告诉你。
Hyperledger Fabric 性能指标
具有误导性
2016年我在摩根大通工作时,我领导了一个专攻前沿技术的团队,来研究区块链在银行业中的潜在应用以及对区块链的战略投资。作为工作的一部分,我们深入分析了早期版本的 Hyperledger、Axoni、Symbiont、Ripple 以及以太坊。当时很明确的一点是,市场上的几个区块链项目从技术上来说都不适合真实的企业场景。不幸的是,时至今日 Hyperledger Fabric 还是没有解决这个核心问题。当时我们考虑到的细节包括:
区块链的智能合约语言如何安全、简单地表达出复杂的业务逻辑?
如何保证公钥签名的有效性?
区块链是否可以在不大幅度降低性能的前提下加入其他的参与者(节点),从而实现可拓展性?
那些目光长远的企业还会考虑到被选择的区块链将来能否可以轻松地与其他公有区块链或私有区块链进行互操作?
从这几个细节入手分析,我认为 IBM 的 Hyperledger Fabric 从根本上缺乏区块链的必要元素,其性能指标充满了误导性,在长期业务上的可行性也不禁让人打一个大大的问号。
我们从来没有将 TPS、节点数这些忽悠外行人的数字游戏看作是区块链的采用标准,但在经历多了这些数字游戏之后我们认为有必要告诉读者什么是区块链,而什么不是区块链。
什么是区块链?什么不是区块链?
为更好地理解 IBM 区块链的定位,我们需要回到区块链的定义。区块链的核心是一个去中心化的不可篡改的账本,账本中存储着事件或者交易,而往账本中加入哪些数据完全由共识机制来决定。在比特币和以太坊这样的公有区块链中,这种共识是通过工作量证明或称“挖矿”来实现的。在许可区块链中,参与者提供密码学签名来对共识的内容进行投票,从而达成共识。无论是哪种方式,都不会有中央机构进行干预。
而 IBM 对区块链的定义延续了去中心化和不可篡改这两个区块链的元素,但它为了方便省去了去中心化的共识机制,从某种程度上来说,Hyperledger Fabric 根本不需要一个真正的共识机制。相反,Hyperledger Fabric 推荐使用一个名为 Kafka 的“订购服务”。
但问题是,如果没有基于密码学算法的强制执行、没有高度的民主化、没有密码学机制保证参与者投票的安全,那么你就不能证明是否有人篡改了区块链这个账本。带有容错机制的共识是区块链的标志性特征,少了它,IBM 的“区块链”只不过是一个带时间戳的项目列表。
Hyperledger Fabric 的体系架构暴露出许多可能会被恶意参与者利用的漏洞。就比如说,它在“网络内部”引入了公钥加密机制和验证者签名,但是这些主要的安全保证只有在提交了外部签名的交易之后才产生。
这从根本上废除了比特币以及其他区块链久经时间验证的安全模型,其中任何交易的来源仅由外部用户的公钥签名来保证,并且系统不能以任何方式进行干涉。
与之形成鲜明对比的是,Hyperledger Fabric 中唯一一个重要的签名就是验证者的签名,而用户的签名则消失在通过区块链网络复制的任意数据库中。
页:
[1]