区块链技术逐渐从小众的极客圈子走向规模化商用。
从整体来看,区块链技术的规模化商用还处在相对初期的阶段,企业对区块链技术性能、易用程度的较高需求,与区块链技术本身的可拓展性瓶颈及较低的运行效率构成了当前限制行业发展的主要矛盾。
基于自身大量的商业实践和对区块链商用的探索与创新,布比打造了完全自主知识产权、高性能可扩展、产品化成熟的商用级区块链底层平台BubiChain。
商用级区块链底层平台BubiChain取得底层技术关键突破:应用开发友好的智能合约、安全高效的共识算法、可靠的隐私保护、并行快速的多链,以及可扩展的跨链技术等创新;实现了产品化重要突破:应用可快速构建、可视化运维、技术合规及资金账户体系等,形成完整的产品服务能力。
本文为商用区块链BubiChain详解系列文章的第六篇——可扩展的同构/异构跨链互操作,以下为正文内容。
布比区块链跨链技术提出互联链体系结构,提供多种模式的跨链技术。布比链的跨链协议支持“基于多公证人机制”和“基于可信硬件机制”的主流模式。开发者可以先建立一条Relay Chain,利用SPV技术适配其他业务链,其次按照业务需求搭建平行链,平行链将按照预设的跨链协议对接到Relay Chain,从而与其他链进行互联互通,这样不仅可降低跨链架构复杂度,而且更灵活、更契合实际业务场景,布比区块链支持同构及异构跨链,不仅支持数字资产的跨链转账,也支持智能合约、分布式应用之间的跨链操作。
从布比跨链技术架构图可以看出,架构主要包括RelayChain(中继链)、Parallel Chain(平行链)、可插拔组件。中继链由多个验证节点组成,验证节点负责维护整个区块链安全稳定的运行,使用较高TPS的共识算法有效提高跨链的效率,满足平行链跨链对性能的不同要求。平行链是所有参与接入跨链生态的同构/异构区块链,可以是各种公链、联盟链、私链等。可插拔组件是中继链和平行链的桥梁,实现平行链/中继链与平行链互联互通跨链通信。
布比跨链技术是以高性能共识的中继链为核心的跨链网络结构以及平行链动态接入机制,使用可插拔组件作为跨链的桥接器,保证跨链技术的高效性、扩展性和安全性。
中继链跨链平台设计了安全的注册机制,保证注册的平行链是可控有效的。首先任一条想加入跨链平台接入中继链的平行链,都需要通过抵押的方式在中继链的注册合约中发起注册提案,共识完成后会给该平行链分配唯一的链ID标识。中继链也可以通过多个节点投票的方式注销恶意注册的信息,拒绝所有该恶意平行链信息的跨链请求。
可插拔组件使用了两种跨链方式公证人模式和可信硬件模式。两条平行链可以通过公证人组件进行跨链跨链操作,如果需要与更多平行链进行跨链操作使用中继平台是最好的选择。使用可信硬件组件+中继链的跨链组件能最大提高跨链的灵活性、安全性,可信硬件组件包含中继节点程序和SGX部分,负责跨链交易的可信计算签名和链间信息的转发。
1. 平行链注册
平行链需要跨链首先必须在中继链里注册。中继链的RMC合约负责平行链注册等管理,平行链的跨链申请者需提供平行链AMC资产管理合约地址、已在中继链部署的平行链SPV合约地址、平行链描述信息等。流程如下:
1) 平行链申请者在中继链中创建平行链的Proof合约,获取合约地址。
2) 申请者在平行链上创建AMC合约用于跨链交易处理。
3) 申请者向中继链的注册合约提交注册信息,包括AMC合约地址信息和Proof合约地址信息等。
4) 中继链共识完成后生成唯一的链ID分配给此平行链。
2. 公证人模式
在布比区块链中,使用公证人模式的可插拔组件可以看到,链间是通过公证人来监听交易的。公证人账户首先需要向平行链的AMC合约进行注册,平行链合约管理员授权公证人的接入承担跨链消息的转发。跨链交易产生之后,所有公证人都会监听并获取相关的跨链信息,分析并验证交易的正确性。之后公证人便将跨链数据进行签名并发送交易到另一条链的相关跨链合约中。多个公证人转发消息后,合约内部我们使用BFT(Byzantine Fault Tolerance)的算法共识跨链提案信息,只有达到一定公证人签名数量后跨链交易的合法性才会被确认。通过BFT算法保证了提案的正确性,即使少数公证人被攻击或者作恶都不会影响跨链系统的正常运行。
3. 可信硬件模式
布比跨链技术可插拔组件借助于因特尔处理器的SGX技术,英特尔® Software Guard Extensions(英特尔® SGX)是一组指令,该组指令增强应用程序代码和数据的安全性,为它们提供更强的保护以防泄漏或修改。开发人员可将敏感信息分区进入Enclave中,Enclave是内存中具有更强安全保护的执行区域。
网关节点-可信硬件模式通过远程认证可以验证发布的软件正常运行在一个SGX平台上,并且保证软件没有经过篡改。如此我们就可以相信SGX会按照正确的跨链过程执行,犹如一个合约一样。
网关节点需要在平行链的AMC合约中抵押并进行注册,平行链跨链管理审核完网关节点的注册后一旦抵押资产达到开启跨链的阈值要求,网关节点就开始进行跨链工作。
我们将网关节点分为两个部分:SGX程序和中继程序,
· SGX程序主要平行链SPV验证和跨链交易的签名。
· 中继程序用于中继链的数据转发和跨链交易转发。
4. 哈希时间锁模式
跨链的过程必须要保持状态的一致,保持跨链事务的原子性。这是跨链交易的基本要求也是必须解决的问题。布比跨链技术通过使用哈希时间锁定(HTLC)的方式来保证交易的原子性。如下图所示:
从上图可以看出我们的跨链流程中,ChainA中发生一笔跨链交易,合约通过计算关键跨链数据生成hash值并保存此次跨链交易,初始化交易状态。通过中继链转发到ChainB链后,会触发ChainB生成一个资产接收的证据,产生一个关键hash存证。网关节点监控到跨链交易成功数据后继续将跨链交易反馈数据,返回到ChainA中,直到跨链交易更新状态为已成功的状态。在一个长固定时间内,若没有受到关键字hash的跨链交易的反馈数据,则用户Alice可以向跨链合约申请退回跨链交易发起的资金,避免资金的损失。