基于去中心化网关的通用跨链通信机制制造技术

技术编号:21159233 阅读:20 留言:0更新日期:2019-05-22 08:00
本发明专利技术基于去中心化网关的通用跨链通信机制,通过两个核心组件解决跨链通信和扩展问题:其一:跨链通信系统合约BCC(Blockchain Communication Contract),其二:去中心化跨链网关BG(Blockchain Gateway)。BCC是一个智能合约,部署在每条区块链上。BG是一个去中心化的网络,由多个节点组成,BG中的节点可以自由加入/退出,每个节点上都运行一个中继程序,可以配置连接两个或更多的区块链,在不同区块链之间传递价值和消息。

Universal Cross-Chain Communication Mechanism Based on Decentralized Gateway

Based on the general cross-chain communication mechanism of de-centralized gateway, the present invention solves the problem of cross-chain communication and expansion through two core components: one is BCC (Blockchain Communication Contract) of cross-chain communication system, and the other is BG (Blockchain Gateway) of de-centralized cross-chain gateway. BCC is a smart contract deployed on each block chain. BG is a decentralized network consisting of multiple nodes. Nodes in BG can join or exit freely. Each node runs a relay program, which can be configured to connect two or more block chains to deliver values and messages between different block chains.

【技术实现步骤摘要】
基于去中心化网关的通用跨链通信机制
本专利技术提供了一种通用的不依赖于中心的多个区块链系统间进行价值交换和通信的方法,不仅可以解决不同区块链的互联问题,还可以通过互联解决单个区块链的扩展性问题,类似于多台单机通过互联组成集群解决单机的扩展性问题。
技术介绍
目前的区块链系统大多是孤岛,类似于早期的没有联网功能的单台电脑,不同区块链之间难以通信,单条区块链也难以通过互联进行扩展。中心化交易所,中心化网关(比如CosmosNetwork),RTCRelay,以太坊的Plasma。通过中心化的交易所,用户可以在不同区块链之间完成价值交换,但这种方式需要用户在交易所有账户,需要手工操作,不是一种自动化的技术手段,它也只能完成价值交换,而不是一种通用的通信机制。通过中心化的网关(比如CosmosNetwork),用户可以实现不同区块链之间的价值交换和通信,但网关是中心化的,牺牲了区块链最重要的去中心化的特性。RTCRelay和以太坊的Plasma解决了一些特定的跨链问题,但并不是通用的区块链之间的价值交换和通信方法。RTCRelay用于连接比特币和以太坊,但它只能用于这两条链,也只能用于验证比特币交易。Plasma可以在以太坊的POW主链和子链之间传递代币,但它要求子链采用UTXO模型,限制很大,也只能传递代币,而不是通用的通信机制。
技术实现思路
本专利技术的目的在于提供一种通用的不依赖于中心的多个区块链系统间进行价值交换和通信的方法,不仅可以解决不同区块链的互联问题,还可以通过互联解决单个区块链的扩展性问题,类似于多台单机通过互联组成集群解决单机的扩展性问题。本专利技术首先提供如下方案。基于去中心化网关的通用跨链通信机制,包含跨链通信系统合约及去中心化跨链网关两个部分,跨链通信系统合约部署在每条区块链上,去中心化跨链网关由多个节点组成,每个节点上都运行一个中继程序,配置连接两个或多个的区块链,在不同区块链之间传递价值和消息;跨链通信系统合约包含发送接口、转发接口和响应接口,其中,发送接口和转发接口是接受用户支付的;发送接口通过用户或合约调用,触发跨链转账和/或通用通信,入口参数至少包含:源地址,目标链,目标地址和请求消息;转发接口通过中继节点调用,转发请求消息给目标链,入口参数至少包含:源链,请求序号,源地址,目标地址和请求消息;响应接口通过中继节点调用,转发目标链的响应消息给源链,入口参数至少包含:目标链,请求序号,转账是否成功和响应消息;跨链通信系统合约还包含:发送消息队列、接受消息队列及发送消息确认序号;发送接口发出的消息放入发送消息队列,队列按目标链分开保存,转发接口收到请求消息后,处理消息,将处理结果放入接受消息队列,接受消息队列按源链分开保存;发送消息确认序号按目标链分开保存,源链通过响应接口调用收到目标链的响应后,更新针对目标链的确认序号;跨链通信系统合约还包含:请求事件和响应事件;请求事件产生新的请求消息,发送接口将请求消息放入发送消息队列后发出,请求事件信息包含目标链和请求序号;响应事件产生新的响应消息,由转发接口生成响应消息,放入接受消息队列后发出,响应事件信息包括源链、消息序号、是否成功和响应消息。基于上述架构的跨链通信请求响应流程如下:S1:用户或智能合约发起跨链转账或通信,调用本地链上发送接口,传递源地址、目标链地址、目标地址、请求消息;S2、源链将消息存储到本地请求队列,队列按目标链分开存储,请求序号从1开始分配,顺序增加,每个队列都保存有最后的请求消息序号,消息保存后触发请求事件;S3、跨链网关节点监听到请求事件,连接源链获取请求详情;S4、跨链网关转发请求,调用目标链上的转发接口;S5、目标链的智能合约处理消息,处理后,根据处理结果构造响应消息并放入响应队列,响应消息按源链分开保存,每个队列都保存有最后的接受消息序号,保存后触发响应事件;S6、跨链网关节点监听到响应事件,调用源链上的智能合约响应接口转发响应;S7、源链上的响应接口内部更新队列状态,更新针对目标链的确认序号,处理可能的失败回滚,并调用用户提供的回调函数。此外,本专利技术中去中心化跨链网关包含同步源链与目标链的包含同步程序,其内容为:当确认序号(lastAckId)大于等于最后的发送消息序号(lastSentId),表明源链发出去的所有消息都收到响应了,同步结束;当确认序号(lastAckId)小于最后的发送消息序号(lastSentId),最后的接受消息序号(lastRecvMsgId)对消息进行分别处理,针对最后的接受消息序号(lastRecvMsgId)+1到最后的发送消息序号(lastSentId)之间的消息,还没有被转发过,调用目标链上的转发接口进行转发,针对确认序号(lastAckId)+1到最后的接受消息序号(lastRecvMsgId)之间的消息,响应还没有被转发,调用源链上的响应接口转发响应。其中,转发接口内部,会要求请求消息序号等于最后的接受消息序号(lastRecvMsgId)+1,如果不是,会返回错误;响应接口内部,会要求响应消息序号等于确认序号(lastAckId)+1,如果不是,同样会返回错误。基于本专利技术中跨链通信系统合约及去中心化跨链网关,本专利技术还提供了一种跨链转账流程,如下:S1、用户调用发送接口,将代币转给源链智能合约本身;S2、中继节点调用转发接口,将自己在目标链上的代币转给目标链上的智能合约本身;S3、目标链在转发接口内部,将代币转给目标链上的目标地址;S4、源链在处理响应接口时,如果请求成功,则支付给网关账户,否则退给用户。本专利技术系统架构有如下特点:本专利技术是一种通用方案。不仅可以转账,还可以实现通用的跨链请求和响应,这可以用于扩展单条链的处理能力,类似于网络连接功能可以扩展单台机器的处理能力。本专利技术中的跨链转账和通信是可靠的。智能合约维护消息状态,每条消息都必须要有确认,消息id都会进行匹配检查,失败会回滚,网关可以有多个,会自动同步消息等,通过这些实现了消息的可靠传输和价值的可靠转移。本专利技术中的跨链网关是去中心化的:1、用户无需信任网关。用户并非转账给网关,而是转给智能合约,收到目标链确认后智能合约才转给网关,网关也无需担心用户,因为智能合约一旦验证成功就会支付给网关。2、网关可以有多个,可以随时加入/退出。网关不维护状态,状态维护在智能合约中,网关可以随时加入,通过同步算法获得同步并开始请求/响应的转发;网关也可以有很多,竞争参与同一对链的请求/响应转发,智能合约会确保消息的一致性;网关还可以随时退出,其他网关可以代替转发,如果某一时刻或一段时间,没有任何网关负责请求/响应转发,请求和响应会保持在智能合约中,网关恢复后会进行同步。附图说明图1为本专利技术的系统架构图。图2为本专利技术中跨链系统合约的主要API、存储模型和事件。图3为本专利技术的跨链通信请求响应流程。图4为本专利技术的跨链网关同步算法。图5为本专利技术的跨链转账流程。具体实施方式本专利技术基于去中心化网关的通用跨链通信机制,请参阅图1所示,通过两个核心组件解决跨链通信和扩展问题:其一:跨链通信系统合约BCC(BlockchainCommunicationContract),其二:去中心化跨链网关BG(BlockchainGateway本文档来自技高网...

【技术保护点】
1.基于去中心化网关的通用跨链通信机制,其特征在于:包含跨链通信系统合约及去中心化跨链网关两个部分,跨链通信系统合约部署在每条区块链上,去中心化跨链网关由多个节点组成,每个节点上都运行一个中继程序,配置连接两个或多个的区块链,在不同区块链之间传递价值和消息;跨链通信系统合约包含发送接口、转发接口和响应接口,其中,发送接口和转发接口是接受用户支付的;发送接口通过用户或合约调用,触发跨链转账和/或通用通信,入口参数至少包含:源地址,目标链,目标地址和请求消息;转发接口通过中继节点调用,转发请求消息给目标链,入口参数至少包含:源链,请求序号,源地址,目标地址和请求消息;响应接口通过中继节点调用,转发目标链的响应消息给源链,入口参数至少包含:目标链,请求序号,转账是否成功和响应消息;跨链通信系统合约还包含:发送消息队列、接受消息队列及发送消息确认序号;发送接口发出的消息放入发送消息队列,队列按目标链分开保存,转发接口收到请求消息后,处理消息,将处理结果放入接受消息队列,接受消息队列按源链分开保存;发送消息确认序号按目标链分开保存,源链通过响应接口调用收到目标链的响应后,更新针对目标链的确认序号;跨链通信系统合约还包含:请求事件和响应事件;请求事件产生新的请求消息,发送接口将请求消息放入发送消息队列后发出,请求事件信息包含目标链和请求序号;响应事件产生新的响应消息,由转发接口生成响应消息,放入接受消息队列后发出,响应事件信息包括源链、消息序号、是否成功和响应消息。...

【技术特征摘要】
1.基于去中心化网关的通用跨链通信机制,其特征在于:包含跨链通信系统合约及去中心化跨链网关两个部分,跨链通信系统合约部署在每条区块链上,去中心化跨链网关由多个节点组成,每个节点上都运行一个中继程序,配置连接两个或多个的区块链,在不同区块链之间传递价值和消息;跨链通信系统合约包含发送接口、转发接口和响应接口,其中,发送接口和转发接口是接受用户支付的;发送接口通过用户或合约调用,触发跨链转账和/或通用通信,入口参数至少包含:源地址,目标链,目标地址和请求消息;转发接口通过中继节点调用,转发请求消息给目标链,入口参数至少包含:源链,请求序号,源地址,目标地址和请求消息;响应接口通过中继节点调用,转发目标链的响应消息给源链,入口参数至少包含:目标链,请求序号,转账是否成功和响应消息;跨链通信系统合约还包含:发送消息队列、接受消息队列及发送消息确认序号;发送接口发出的消息放入发送消息队列,队列按目标链分开保存,转发接口收到请求消息后,处理消息,将处理结果放入接受消息队列,接受消息队列按源链分开保存;发送消息确认序号按目标链分开保存,源链通过响应接口调用收到目标链的响应后,更新针对目标链的确认序号;跨链通信系统合约还包含:请求事件和响应事件;请求事件产生新的请求消息,发送接口将请求消息放入发送消息队列后发出,请求事件信息包含目标链和请求序号;响应事件产生新的响应消息,由转发接口生成响应消息,放入接受消息队列后发出,响应事件信息包括源链、消息序号、是否成功和响应消息。2.如权利要求1所述的基于去中心化网关的通用跨链通信机制,其特征在于:基于上述架构的跨链通信请求响应流程如下:S1:用户或智能合约发起跨链转账或通信,调用本地链上发送接口,传递源地址、目标链地址、目标地址、请求消息;S2、源链将消息存储到本地请求队列,队列按目标链分开存储,请求序号从1开始分配,顺序增加,每个队列都保存有最后的请求消息序号,消息保存后触发请求事件;S3、跨链网关节点监听到请求事件,连接源链获取请求详情;S4、跨链网关转发请求...

【专利技术属性】
技术研发人员:马俊昌刘迎宾霍晓栋王虹妍孙玉俐夏冰
申请(专利权)人:广州蓝石信息技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1