区块链编辑导语:上周,国家互联网信息办公室审议和通过了《区块链信息服务管理规定》,将于 2019 年 2 月 15 日起施行。该文件对公链应用有限制,但鼓励技术发展,鼓励 2B 联盟链。以此,大家猜测往后联盟链将是红海!
随着 BATJ 等大厂不断涌入联盟链市场,大家对国产底层和国外底层之间的差异越来越感兴趣,本文拟通过对 BCOS 与 Fabric 等国外底层的若干比较,介绍下双方的区别,并提出一些对国产联盟链发展方向的思考。
一、共识方面
共识一度是区块链的“灵魂”,也是公链效率的一大瓶颈。联盟链由于在参与方式上注入了信任,因此,共识上转向了以提升效率为主,更接近于传统分布式数据库。
共识的发展方向目前主要是 BFT(拜占庭类)和非 BFT 两类,前者考虑节点“作恶”问题,即网络具有一定抗欺诈能力,后者则以考虑通讯故障为主,不考虑抗欺诈问题。
BCOS 目前同时支持两种共识方式:PBFT 和 RAFT。PBFT 是 BFT 类共识,这使得网络具有支持弱信任环境的能力。BCOS 平台对 PBFT 共识过程进行了优化,尽量让所有节点在每个阶段的计算都是并行发生,不需要互相等待,以充分提高共识效率。RAFT 方面 BCOS 平台采用的是标准 RAFT 协议,并进行了针对极端网络环境的优化。此外,BCOS 平台中的 RAFT 结合智能合约(BCOS 的节点管理、权限管理可以通过智能合约设置)可以支持节点动态增加和退出网络,这点是平台的一个优势。
Fabric 曾在 0.6 版中使用 PBFT 共识协议,在 1.0 版,转而采用 Kafka 方式实现共识,效率获得了较大提升。与 Fabric 不同,摩根大通主推的 Quorum 平台可以支持 IBFT 和 RAFT 两类协议的,微软的 Coco 采用的则是 Paxos 和 Caesar,Ripple 采用的是波纹协议共识算法(RPCA)。应该说国内外在共识方面都有多元化的倾向,这也是联盟链发展的一个特点。
从共识角度来讲,其实所有联盟链设计都应该考虑“联盟”的含义和性质,是高度可信的联盟还是松散、弱信任的联盟,不同的联盟类型确实需要不同的共识协议,提高对共识类型的支持能力,以更好地适应联盟环境是非常必要的。除此之外,也应当考虑共识范围,这么说可能有点儿“离经叛道”,但是现在联盟链都有支持数据有限可见范围的发展倾向,在这种条件下,所谓的共识究竟是什么含义?共识的方式和参与共识的节点范围,都应当做新的思考,而非继续沿用公链或者仅从数据库共识的角度考虑问题。
二、扩展性方面
参加到联盟链中的机构,最好能够具备独立的节点,这样可以减少网络中的“代理”行为,从而提高节点平等自主的参与能力,才能有利于实现更加真实的、由较多主体参与的多中心、弱中心生态环境。但这样就带来一个扩展性问题,需要联盟链架构能够支持更多的节点数。
联盟链解决扩展性问题目前主要是两种思路:提升单链性能和采用多链并行。在 2014 年,V 神的以太坊社区曾经讨论过“中心轮辐链模型”,这是多链结构应用在扩展性方面的早期想法,但是并没有继续下去。
Fabric 在设计上有“多链”的影子。其通道机制原本在白皮书中希望用于实现多种业务网络之间的连接,每个通道都有一个账本,实际上有多链的意思,应该也可以用于支持扩展性,但是实际操作中更多是被用于数据隔离了。其实在 1.2 版引入“私有数据”概念后,数据隔离问题已经可以通过“私有数据”方式加以解决,可以考虑将“多链”用于解决扩展问题,增强对通道机制的改进。但是国外其他主要联盟链底层平台几乎都没有采用或强调多链概念。
BCOS 是并行多链结构,设计思路是在一个区块链网络中设置多个分组,每个组是一个完整的区块链网络,有独立的软件模块和硬件资源,可独立完成机构间共识,有独立的数据存储。根据可定制的路由规则,网络中的所有机构、用户及不同类型的交易,都可以接入到不同的分组里,可以较为容易地增加分组,并在路由策略中进行设定,应用上也可以实现基于路由的跨链操作。其实多链结构在设计上会增加一定的复杂性,要尽可能保持各链规则一致以较少业务冲突,但还是在一定程度上解决了联盟链的扩展问题。国内还有迅雷链采用类似结构。
在扩展性方面,一些基于公链设计的联盟链较好地回避了节点数限制问题,考虑到平台生态的延展性和对更强大的行业覆盖能力的要求,节点扩展及由此带来的考验是联盟链平台设计必须关注的,以避免由于联盟链扩展能力的局限而产生一个个新的数据孤岛。
三、安全与隐私方面
国内应用与国外不同,隐私方面的处罚没有国外那么严格,Facebook 那种惊天罚单现阶段基本不会出现在国内。但是安全方面则有特殊要求,国家认可的 CA 认证和国密算法是非常重要的。此外,国内黑客攻击也越发频繁,区块链平台的安全性必须要重视。
BCOS 在安全方面可以支持第三方认证 CA,并定期检查证书有效性,这对国内应用而言是非常实在的。可以支持内置反洗钱名单,满足金融行业的 KYC 要求。允许采用高强度的加密数据信封进行保护,未参与交易的机构只能接收到密文,此外,对敏感数据采用脱敏上链、Hash 上链等方式进行保密处理。在公开测评方面,作为经中国人民银行批准成立的第三方检测机构,银行卡检测中心(BCTC)长期为金融行业提供合规性、安全性检测服务,对于区块链技术,BCTC 联合多方机构共同研究并形成了针对主流架构的联盟链评测方案,BCOS 则是首批通过该测评的项目之一。隐私方面,最重要的是 BCOS 支持国密算法,这对国内金融机构而言非常重要。交互方面,设计了 AMOP 协议,以提供机构间的点对点通信,通信信息属于链下信息,不在全网共享,链上部分在引入中央对手方提供信用背书的情况下,数据也仅在交易方和中央对手方之间共享。此外,BCOS 还支持了群签名、环签名、同态加密、零知识证明等保护手段。
Fabric 在安全和隐私方面,在 0.6 及 1.0 版本是通过通道和组织进行数据隔离与可见范围控制。在 1.1 版支持了账本加密,1.2 版增加了私有数据概念,更灵活地解决了数据可见范围控制问题。但目前还是无法直接支持第三方认证 CA,需要自行设计替换方式。国密也无法直接支持,应用上需要额外安排开发量。在最新的 1.3 版中,支持了使用 Identity Mixer 实现 MSP(零知识身份证明)。其实隐私保护方面,国外底层做的也都不错,但是由于面对的市场环境不同,它们基本都不会支持国密替换,需要开发者自行解决。
四、数据挖掘方面
目前区块链数据“易存难用”,由于账本数据多数采用 K-V 形式存储,且按照块链结构单向增长,所以,在数据利用方面存在不便,通常要自行开发解决。
在这方面,BCOS 为区块链设置了一个准实时的数据 ETL(Extract-Transform-Load),及时将链上新区块包含的交易列表、交易明细、交易结果、智能合约状态数据、链上配置信息等全部导入到链外的数据仓库里。数据仓库的数据只增不减,写入后不允许再发生变化,并随时可以和链上数据源进行对比验证,以保证其完整性和不可篡改性。通过数据仓库实现数据的查询、分析和挖掘,以对区块链上产生的数据进行复杂的整合和加工,满足更多应用上的需要。
Fabric 的数据库是账本数据库加状态数据库,状态数据库是基于账本数据进行的状态提取和更新,可以是 LevelDB 或者 CouchDB,后者支持富查询,但是效率比前者要低。但是二者仅限于对状态的存储,更多的数据加工还是要自行设计。多数国外联盟链平台都没有考虑数据加工问题,这应该是设计思路上的差别。
从设计角度来讲,联盟链首重的是联盟的构建和内部效率的提升,因此,在通过区块链技术构建可信连接的基础上,增加对应用便利性的支持是非常必要的,现有的联盟链多数在部署上都比较复杂,也缺少工具性支持,这点 BCOS 做的相对好些。无论从应用还是竞争的角度来讲,国产联盟链确实需要多加强这方面的工作。
五、开发主体方面
联盟链平台开发难度较高,但是区块链技术发展却比较快,所以,新技术手段的加入、平台升级、开发支持、运维支持都离不开平台提供者,这是联盟链与公链的一大显著区别,联盟链是有“主儿”的,而且离开了“主儿”的支持,在应用方面的确是挺艰难的。
BCOS 由金链盟推出,金链盟是由深圳市金融科技协会、深圳前海微众银行、深证通等二十余家金融机构和科技企业于 2016 年 5 月 31 日共同发起成立的非营利性组织,至今,金链盟成员已包括银行、基金、证券、保险、地方股权交易所、科技公司等众多行业的百余家机构。2017 年 11 月,在金链盟技术委员会下设立了开源工作组,由腾讯、华为、微众银行等九家成员机构牵头推动技术开源工作。BCOS 开发主体非常明确,这有利于平台的长期发展和对用户需求的响应。联盟链的部署通常有一定学习成本,而底层平台的改良需要“大厂”的支持,有确定的“后台”对用户而言是非常有利的。
Fabric 是 Linux 基金会和国际化社区在支持,但是主体显得有些模糊,虽然近来升级节奏有所加快,但是关键功能的推进始终差强人意。与之不同,Quorum、Coco、Ripple 等相外国联盟链底层也都是有明确的开发主体在支持。
无论国内还是国外,联盟链都已经发展为厂家的战场了。
六、应用方面
国外联盟链起步较早,应用方面也有较多推进。Fabric 在规模上依然优势很强,加上 IBM 的强大营销力量,案例已有数百个,且大用户不断有新动作。目前沃尔玛已经提出了强制使用区块链进行溯源的意向,国内最新大型案例是中行、中信和民生携手打造的信用证平台。摩根大通基于 Quorum 的 IIN 平台最近已经圈到了 75 家来自各国的银行,Ripple 的合作范围也到了上百家银行。
BCOS 作为后起力量,在短时间内也取得了应用上的较快发展,落地项目也有数百个,包括微众银行的机构间对账平台和仲裁链、四方精创的供应链金融、城商行旅游金融联盟的旅游金融等。其中,仲裁链于 2017 年 10 月左右上线,2018 年 2 月,广州仲裁委基于“仲裁链”出具了业内首个裁决书,成为了一个很有社会影响力的事件。截止目前,应用了多链技术的仲裁链,已有十余家存证机构和仲裁机构加入,已完成超过千万份合同的存证,涉及的资金规模超过千亿级。另一个较为有趣的应用则是安妮股份的版权存证平台,安妮股份是 Fabric 的国内早期先行者,目前该公司基于 BCOS 又发布了同类型应用,虽然暂时缺乏设计细节的披露,但相信对该案例的分析将会提供有益的平台应用方式对比。BCOS 也很注重与科研的核心力量之一——高校之间的合作,今年 5 月,中科院计算所正式加入金链盟,双方将努力突破区块链架构、通信协议、安全评测等关键技术领域的壁垒,共同打造新一代高通量区块链计算引擎。
国内的联盟链应用实际上是随着今年大厂的纷纷入局才真正有了起色,Fabric 近乎垄断的局面才被逐渐打破。
七、对国产平台的发展建议
BCOS 作为国产优秀平台,经过自己的努力,实现了很多有利于本土化的改良,但是,目前国内联盟链应用方面始终缺乏较为清晰的开发指引,也许是受制于商业利益等因素,方案披露常常语焉不详,比较像二三十年前软件架构面临的困境。这方面显然 Fabric 做的好些,至少市面上还找得到一些对设计有指导作用的书籍。建议以 BCOS 为代表的国产平台在开发者指引方面继续加大推广和培训力度。区块链发展已经有十年历史了,应用上的突破是所有人的期待,随着 BATJ 纷纷加入,联盟链的战国愈演愈烈。大型科技公司每年都把开发者大会搞成盛大的节日 Party,开发者就是科技公司的未来、技术的未来,所以,除了不断增强平台实力,务必要将开发者培育置于发展策略之首,开发者才是生态壮大的根源力量。
作者介绍:付晓岩,原国有大行资深业务架构师,负责业务架构设计、项目管理,热衷新技术探索与实践,具有丰富的银行业务经验和企业级项目业务架构设计经验,曾主导客户关系、金融市场、同业、资管、养老金等多个领域核心系统的业务架构设计。公众号:晓谈岩说。
评论