公链 VS不发币的HyperLeger Fabric|专访IBM区块链开发工程师Tong Li
在区块链的世界里,加密货币总是和区块链联系在一起,很多项目和公链都会发行加密货币,似乎一个新的公链或者项目的出现都伴随着新的加密货币诞生。而HyperLeger Fabric则不同,它是一个不发币的区块链项目,在IBM的推动下被大企业采用最多的区块链项目。
HyperLeger Fabric是什么?
HyperLeger Fabric是超级账本(HyperLeger)的一个子项目。超级账本是一个开源的区块链项目,由 Linux基金会在2015年12月主导发起该项目,加入超级账本联盟的首批成员,大多是银行、金融服务公司或IT公司。但随着时间的推移,越来越多的公司加入了该项目,中国的成员有百度、阿里巴巴、京东和平安银行等大企业,现在成员超过270个。
Hyperledger Fabric作为一个区块链开发的基础平台,企业可以在其提供的基础设施上制定特定的区块链解决方案。例如,腾讯利用Hyperledger Fabric 构建了企业级区块链基础设施服务平台;京东的京小租业务数据存证是京东区块链技术在数字存证领域的应用场景之一,而平台就是基于Hyperledger Fabric开源的区块链结构。
Hyperledger Fabric是被大企业采用最多的区块链。在福布斯的区块链50强企业当中,超级账本调研了这些公司在区块链方面的发展,蚂蚁金服也是其中之一。调查显示有23个企业在基于Hyperledger Fabric的基础上运行。
作为一个被大企业广泛应用的区块链平台,为什么不发币呢?Hyperledger执行董事Brian Behlendorf表示:如果超级账本发币的话,将会面临严峻的监管形势,不利于超级账本的发展。
HyperLeger Fabric VS 公链
那HyperLeger Fabric和普通的公链有何不同呢?它的共识机制和我们所熟悉的POW、POS、DPOS等主流共识机制有何不同?
金色财经在Kubecon和CloudNativeCon联合举办的中国开源峰会上,金色财经采访了IBM的区块链开发工程师Tong Li。Tong Li是IBM的高级工程师,主要专注云计算、容器和和区块链开发,他对大型软件系统集成和自动化非常感兴趣。Tong Li同时是超级账本的子项目Cello项目的提交者。他不仅精通区块链代码,对整个区块链行业也有自己独到的见解。
图左为IBM的高级开发工程师Tong Li
HyperLeger Fabric是联盟链,Hyperledger Fabric的成员是需要权限才能参与的,每个成员都会保存一份共同的账本,从而实现去中心化的不可篡改区块链。在谈到Hyperledger Fabric与公链的区别时,Tong Li对金色财经表示:
HyperLeger Fabric与公链从功能上来讲,最大的区别是公链的信息是公开的,HyperLeger Fabric是基于许可的,也就是说你要有一定的权限,才能够看到链上的内容,尽管这个链上有很多组织。公链是只要你的信息一旦上链,信息就公开了。
有限权限的好处是只有有限的人才能看到链上的信息。例如银行,就会尝试采用HyperLeger Fabric,而不是公链,因为银行不想让所有的人看到自己的交易信息,这些交易信息对银行非常重要。再比如供货商跟商家的交易也不想让别人知道,从发货量到单价或者总价,这些东西都是商业机密,你是不想让全世界人都知道看到。
而在这些过程中区块链技术也是非常重要的,特别是供应链,每次交易不是一两家的问题,它可能涉及到很多家,而且供货商还需要了解下游商家是谁,因为这不仅涉及到商业因素,还涉及到一些法律上的因素。这些信息只想让同行业里的人知道,不想让行业外的人知道。即有些信息不想让所有人都看到,但必须又让有足够多的人知道,能够互相证明事件的真实性。在这种情况下,没法在公链上建立这种应用,而 Fabric就是一个比较好的选择。
基于Solo和Kafka共识算法的联盟链
与现在加密行业主流的共识机制,如POW、POS和DPOS不同,Fabric不需要复杂的Hash运算,目前Fabric提供的共识算法是基于Solo和kafka的,Solo模式用于开发测试的单点共识。
kafka模式是一种支持多通道分区的集群时序服务,可以容忍部分节点失效(crash),但不能容忍恶意节点,其基于zookeeper进行Paxos算法选举,支持2f 1节点集群,f代表失效节点个数。即kafka可以容忍少于半数的共识节点失效。
由于Fabric属于联盟链,不需要复杂的Hash运算,使得Fabric网络记录交易很快完成。有人提出质疑说,随着用户的增加,验证时间会增加,Fabric的速度会变慢。Long Li 向金色表示,
即使随着用户(peernodes/orderingnodes)的增加,HyperLeger Fabric网络速度不会变慢,除非你修改政策,比如这个链上有5家公司,只需要三家公司认证就可以了。但是现在扩展到20家,就需要13家左右的公司认证通过才行。所以不能用时间的长短来简单地衡量这个网络的表现。
Hyperledger Fabric支持多链。每个链对应一套账本。所以区块链每个peer节点会维护多套账本。在部署HF网络中,不同的应用优化peernodes和ordering nodes的情况也不同。
Tong Li补充说:
我可以分享一下大概的网络规划,关于优化peernodes和ordering nodes,以排序节点为例,排序节点后台目前支持两种消息系统,基于kafka 和基于raft。
即使是最小的网络,要确保网络不间断的服务,也需要有三个节点以上。 一般来说节点数目应该是单数的,因为如果一个节点down掉的话,系统选取leader节点的算法要求节点数目为奇数。对于Peer节点,一般的公司会在一个指定的应用上,最少部署两个节点,一般都是两三个节点。
如果公司有好多不同的应用,就需这些要应用使用不同的频道(channel)。这样把这些节点分开。不要所有的peer都去服务所有的应用。从而优化了管理。这样即使一部分系统崩溃了,其他系统还能用。
基于高隐私性需求下的Fabric的优势
作为联盟链里无可争议的第一名,Hyperledger Fabric在证券、保险、物流、版权等各个行业的不同企业都有很多应用的案例。包括IBM、Amazon、Microsoft和华为等企业的云平台也都已经开始提供Hyperledger Fabric的云服务(BaaS)。Hyperledger Fabric在性能、可扩展性、易用性、稳定性和生态建设方面都很有优势。不过Tong Li表示:
根据应用的领域不同,Hyperledger Fabric的优势程度不同。超级账本与其他公链不同的地方可以分为两点,一方面是超级账本是基于许可的,有权限的人才能访问。如果想要信息只让指定的人或公司看,又需要多方认证的,现在超级账本是最好的选择。而公链是全部透明公开的。
像银行有很多的业务只想让指定的人看,超级账本就非常适合。另一方面是,认证的方式不一样。公链很多是基于哈希运算的POW机制,非常耗电。而超级账本的认证机制是ordering机制,通过ordering节点来排序,每个节点运行下智能合约,验证结果,验证通过就可以了。所以认证花的时间短,而且比较省电。
当被问道加密货币市场对区块链普及或应用是否有帮助时,Tong Li表示:
当然了。我觉得当初如果没有比特币的话,我觉得像这种超级账本这种产品可能都不会有。 所以比特币、以太坊等这些加密货币对整个区块链的技术有很大促进,目前有更多的应用可以建立在区块链技术上面。
其实加密货币对区块链以及超级账本来讲的话,它只是其中的一个应用而已。但是能否可以进一步推动区块链的推广?我觉得很难说。因为加密货币市场和区块链技术现阶段是两个市场的发展,而且就像刚刚我说的加密货币市场只是区块链技术的一个应用。