本文为万向区块链蜂巢学院线上公开课第22期内容。在本期公开课中,边界智能研发总监胡智威,分享了他们的解决方案是如何解决联盟链存在的痛点,在联盟链实践方面提供了很多可供参考的经验。
蜂巢学院线上公开课每周都会邀请技术专家来进行分享,添加小助手微信号:fengchaoxueyuan,获取每周直播入口和时间。
大家晚上好!我是胡智威,来自边界智能。非常荣幸今天有这样的机会和大家分享联盟链技术的应用实践。
看到标题大家可能会有疑问,为什么是联盟链痛点?而不是联盟链解决某个业务痛点呢?这是因为我们在实践中发现许多联盟链在实施过程中并不能很好的解决业务场景中的业务痛点,由于一些技术实现上的限制,这些联盟链的特点反而变成了痛点。所以今天想和大家分享我们在联盟链的探索实践,特别是运用了跨链技术后在BSN等场景中的应用。
正式开始前,我先简单介绍下公司,边界智能成立于2016年,是国家高新技术企业。我们的产品和方案之前荣获了许多奖项,这些年也积累了很多的区块链项目开发实施经验,同时还有许多人工智能、大数据等方面的技术储备。
下面我来介绍一下联盟链的应用。联盟链,也被称作许可链、私有链等。在不同的场景里,我们会对它进行概念上的细分:例如需要许可才能参与共识的,一般可能会叫做许可链;更加私有一些的或者没办法访问到网络里面的数据的,可能会叫私有链。
今天介绍的更多会是广义上面的联盟链:如果需要做到网络授权或者做到网络许可的,我们都叫做联盟链。联盟链在业界很早就有很多产品和技术诞生了,这里我也简单列了一些比较知名的产品,包括Fabric、Quorum、BCOS等。
为什么你不需要区块链?或者你真的需要区块链吗?这个问题可以从两个方面来理解:
业务场景是不是真的需要
这里左侧我也列了张比较经典的图,什么场景下可能更需要区块链。比如说是不是需要数据库、是不是需要多人编辑,而且彼此是否可信以及是否有强信任中心,满足一定条件的情况下,这个业务场景才比较适合用区块链解决。
技术方面
我们可以看到有许多联盟链已经有不少应用落地的建设方案,包括应用案例。有些建设方案是值得商榷的,我们在探索当中发现,一些建设方案可能在未来发展当中不太能够满足未来场景的扩展,包括业务发展的需要。这也是今天我想和大家一起探讨的。
联盟链很多的共识协议可能没办法实现拜占庭容错。我们知道区块链里面比较核心的一个技术就是能够防篡改,拜占庭容错可以防止节点去作恶,但很多联盟链因为它的速度和性能上的要求,可能没有去采用拜占庭容错。所以这会导致联盟链很难在未来扩展到更大领域,而仅限于现有的一个小范围业务。
关于联盟链的资产建模,我也强调一下,和公有链上面的token是有本质区别的,更多是指实际业务场景里的资产,比如像应收账款、设备,或者其他业务的数据。
那怎样在链上能够对它进行很好的建模?实际上用区块链上面的资产,这种方式是非常适合的。但是一些联盟链为了避免和公有链上的token或者资产挂钩,有时候反而会弱化这种功能。
这也就导致了很多联盟链仅仅把业务数据作为一种账本信息或者要共享的数据来简单保存、记录一下。因此很多人都会提一个问题,为什么不直接用分布式数据库呢?这样可能会更快、更成熟,而且也更容易去开发出来。所以这种方式在我看来,可能会把一些简单的问题复杂化。
还有其他一些应用上的问题,比如说像系统和外入的难以交互,或者比较难集成,这也是因为缺少跨链的能力。
另外,联盟链会依赖于联盟里面单一的机构去管理和维护整个网络,整个运营、维护都可能会依赖于强中心。这在项目启动时是比较适合的,需要在联盟里面有一个强有力的机构去推动整个业务。但在未来发展起来后,如果要成为真正的联盟链,就是联盟里面都要有足够的质疑能力和维护能力,那长时间依赖于一个单一机构就不是那么合适了。
这是我们在联盟链探索里遇到的认为值得商榷的地方,我们也提出了一些解决的方法。现在IRITA联盟链产品,我们也是针对性的对这些问题进行了一些设计,像我们高效的Tendermint共识、业界顶尖的IBC跨链协议,以及隐私保护、资产建模、通过iService可以实现链上的痛点分析,以及对于数据方面的分析等。
上面这幅图的中心是联盟链的产品IRITA,可以支撑多种业务,包括供应链金融、医疗以及数据分析等不同领域里面业务的实践。我和大家分享下我们的一些解决办法。
第一,共识协议
刚才也提到很多联盟链采用的共识协议,比如说Raft等,其实很难实现。我们通常认为区块链是产生信任的机器。为什么呢?
因为这些共识是CFT,就是只能当一个节点崩溃的时候可以容错,防止分布式网络里面的单点宕机。但是狭义上,如果区块链要实现共识的话,其实更需要实现拜占庭容错,防止节点作恶,也就是BFT。
所以我们在联盟链产品中使用的是Tendermint,这应该是首个互联网级别可以应用的BFT 协议。去年有一个统计,Tendermint支持了40%以上的PoS公链。
第二,系统交互集成方面
系统交互集成包含2个方面:IBC跨链协议和iService。IBC我稍后会再具体介绍,先和大家介绍iService,这是我们独创的一个功能,可以认为是把整个区块链可以当成服务交易的市场或者平台。这样对于很多中心化系统,或已有的区块链网络,都可以把它自己的能力在联盟链里体现出来。
一方面是支撑到对于现有系统的访问或者联通,另一方面还能实现多种灵活的系统部署方式。
实际上在联盟链推广当中,很多联盟链里的业务伙伴或者客户的系统能力、实施能力或者IT能力,是有高有低的,甚至可能还没完全进入到信息化阶段,还是纸质的业务流程。
这里通过iService就可以有一个很好的支持,比如说有能力的完全可以部署一个节点,像提到的边缘服务器,也是我们的另一项产品,可以给用户无感化的链上操作;但如果没有太多运维能力,就可以访问我们提供的公共应用,只要有台上网终端就可以访问;有链的话,可以通过IBC的方式来进行交互;有中心系统的话,可以通过iService来集成。所以集成的方式非常灵活。
第三,系统维护与升级
联盟链一般都有个强有力的中心在推动,所以很多时候联盟链还是单一机构来运行和维护的;弱势的一方有点像搭便车,可能不会参与很多。
我们还是希望把联盟链真的做成联盟,就是联盟参与方都可以发起链上提案或者链上升级,系统也支持链上各个节点的治理。比如你需要一个新的功能,完全可以发起一个链上的提案,把自己做好的模块或者测试完成的模块发布出来,不用所有人都在某个时间点集中维护或者下线,这样在链上可以完成自动升级。
第四,资产建模
资产建模我们会围绕金融领域,因为我们认为联盟链可能在金融领域会落地最快,目前来看也是最合适的领域之一。所以,我们会围绕金融领域里的资产对象,采用一些方式进行多维度的工具和方法对它进行非常灵活、准确的建模,这样全生命周期都可以在链上进行对象化的跟踪。
第五,隐私计算能力
这是很多客户非常关心的一点,客户不理解区块链原理的时候,可能会提一个问题,所有业务的隐私、业务数据都在链上,公开可见、透明、不可篡改,是不是商务机密都全部暴露出来了?所以区块链上需要一个特别重要的能力——隐私计算能力。需要让业务的参与方,或者是在链上数据的所有者,他能够自主去控制自己的数据,当然有需要的时候也可以定向授权给申请者,数据通过加密的方式能让对方进行查看。
我们也设计了数据的粒度细分:并不是0和1的关系,而是可以定向选择其中的一些数据维度,自动进行加密、授权。
基于上述能力,这是我们的整体建设方案示例。整个建设方案是包括了链内、链外一整套的解决方案:左下角蓝色区域,这是链本身;右下角是链外平台;基于左下角蓝色区域,链上还会部署一些像边缘服务器,以支撑到不同业务的应用,会有链本身的支持能力;链外也会提供一些公共基础设施,像隐私计算的服务、分布式存储等。我们都会提供服务给那些没有太多IT实施能力的或者需要的业务场景。这是一整套的方案,而并不只是狭义的链本身。
终端产品展示,包括之前做的应用界面等。整个建设方案是供应链金融的一个案例,链上就是数字资产为核心,围绕它进行建模,以及提供链上应用、跨链交互等等。
BSN,这也是今天主要想和大家分享的。BSN整个平台未来会向供应链、联盟链、跨链三大领域提供对外服务能力。我们现在正在和BSN,以及其他合作伙伴一起开发基于BSN现有的链,使用IRITA联盟链的底层,用跨链服务把不同的联盟链集成起来,同时读取链外的数据,以及其他中心化系统的业务数据等。
比如大家基于BSN去开发的一些联盟链应用,可以很快地访问到链外数据,或者其他联盟链里面的应用或者数据,这样就可以把整个场景打通。
未来可能还会有更多的拓展,包括可能IRITA也会和公链领域里面的节点有数据的交互,这块也是在未来可能会逐步探索出来的一些技术方案或路线。
供应链金融场景,例如去集成OA、ERP的系统,这样可以把所有上下游企业能力集成起来。以上主要是对于联盟链方面目前存在的问题的思考、探索以及现在的解决方案。
下面我会分享跨链技术。跨链技术,大家会觉得这两个是分开的主题,为什么今天会在一个地方进行介绍,这个问题我先卖个小关子。
Hash Timelock Contracts是比特比闪电网络的主要组成部分,它们同时也是原子交换的关键组件之一。顾名思义,它们基于两个关键功能:Hashlock和timelock。
两个链之间其实并没有建立真正的对于交易的验证或者有效性的校验,所以这块严格来说并不算狭义上的跨链。
公证人技术也会有自己的优点,例如实施快,但也有它的缺点,需要信任公证人。
侧链可能对于不同的链需要开发、定制比较多的功能,所以现在的IBC协议可能会综合侧链、公证人等机制,然后建立一个更通用的协议,解决整个底层通信的问题以及上层业务应用的部分功能问题。这是目前业界正在探索的跨链前沿方向。
关于联盟链里跨链的一些应用,除了BSN之外,像蚂蚁链、BCOS、趣链等等国内的一些联盟链都有自己的一些跨链产品。我相信也是因为大家都看到了联盟链里跨链技术的需求和应用。
还有像Hyperledger,超级账本里面现在也有,应该至少有两个项目在做这方面的跨链探索。一个是Cactus,是由一些验证者来签名背书的跨链。另外一个Quilt,相当是实现了Interledger的协议。以上是从目前公开资料看到的联盟链的跨链探索。
但目前联盟链跨链探索还会有一个比较大的限制,或者未来要解决的阶段性问题,大家可能都会集中在向自家的产品和Fabric之间跨链;还有一些平台可能会使用像刚才提到的像HTLC等,做很简单的数据上的交换或互换,但实际上并没有实现更通用或者更广义上的,或者更适合未来扩展的跨链技术。所以这就需要IBC协议。
IBC实际上也和整个现代区块链开发架构比较相关。为什么说IBC会更适合联盟链的跨链?因为Cosmos/IRIS SDK基于的整个技术理念或者技术架构,和以太坊等不太一样,开发的是叫应用专有链。这个观点的基础是未来可能并没有大一统的链,更可能是百花齐放的。如果需要一种特定应用的话,可以开发一个单独的链。
但实际上这个和联盟链有异曲同工之妙,因为联盟链一般来说也是针对某一种业务场景或者业务痛点去开发的区块链。所以IBC基于这个假设也是非常适合联盟链间的跨链通信。
整个架构中的Hub,是跨链的枢纽。而 IRITA 本身就可以认为是一种IRITA Hub:它本身就是区块链,但是它有跨链的能力,可以支持连接到不同的区块链、联盟链或者其他某一特定场景的私有链。
大家现在对开源社区IBC的实现也是比较关心的,包括整个进度、计划。但是在联盟链里已经可以去应用部分IBC的功能或者设计。IBC应用于联盟链的跨链方面,可能还是需要进行一些特定的定制或者开发,部分设计可能会有所简化,部分设计可能会有所增强。
一方面,可以简化部分功能,因为不需要像公链领域对于安全性各方面的假设,在联盟链里面可以把这部分东西都简化掉。
另一方面,还会需要增强部分功能,比如对于不同的区块链需要定制化接口,把它做的更通用一些,可能也会需要企业级的应用,对消息可靠性用MQ等方式来进行更强的保障。因此当一些连接的联盟链要维护时,避免丢掉很重要的一些企业级的信息。
同时,联盟链的跨链可能也会综合使用分布式存储、共享数据等,以适合企业级大数据级别的信息交互和交换,这是跨链在联盟链领域内可以提供的非常好的支持。
今天的分享就到这里,谢谢大家。
互动问答
Q:是不是接入BSN的所有链都要通过IRITA?
胡智威:目前就我个人的理解来说,BSN现在还没有特别明确的说明。但是,IRITA可以提供给BSN底层跨链的能力,如果需要用到跨链服务方式的话,都会通过跨链服务枢纽的方式来访问到。这是IRITA可以贡献给BSN底层的,也是我们和BSN相关的几个合作伙伴在建设的工作。
Q:从您的角度看,跨链技术会在未来受到更多的重视和应用吗?
胡智威:我认为是的。还是刚才那个观点,我觉得联盟链目前来说落地越来越多,更像公有链里面,就应用专有链的场景了,这样其实跨链需求会非常之多。
大家也可能会比较奇怪,为什么链和链之间还需要跨链,通过互联网不能访问吗?这实际上涉及到跨链里更重要的技术,不同业务之间的可信、可验证。
联盟链内部一般来说都是可信的,可以通过共识协议来保证;但怎么样信任外部体系里的东西呢?这就需要跨链。信息交互是比较简单的,但如果实现可信的交互,就需要跨链技术。
所以,当落地的业务规模越来越大,国内区块链的落地越来越多的时候,不同的链之间可信交互的需求也会越来越大,所以我们认为跨链会在联盟链里应用的非常多,跨链在未来会有非常大的应用场景。
Q:边界智能专注于区块链打造分布式智能服务,可以给我们稍微介绍下你们在分布式智能方面的应用吗?
胡智威:好的,这是个非常好的问题,那我再切换到前面的公司介绍部分。
这页有我们以前非常多应用的案例,也是基于我们之前对于区块链的一些探索。像区块链边缘分析网络就结合了区块链以及大数据分析能力等等。
这些产品一方面可以将数据在链上进行可信的流转,包括加密信息的存储。另一方面,也会结合大数据的分析,实现更分布式的数据挖掘以及未来数据价值的释放。
这些产品和方案,获得了不少的奖项。一个比较典型的场景是:链上数据可加密、可信的授权给需要处理的一方,然后数据加工方在整理这些保密性数据时,可以充分地挖掘数据潜力。