一种完全去中心化的侧链跨链方法转让专利

申请号 : CN201911266455.7

文献号 : CN111047445B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 黄春刘一兰崔超陈诗宁丰东郑坚业张维超杨金仿

申请人 : 深圳区块大陆科技有限公司

摘要 :

本发明涉及侧链跨链技术领域,且公开了一种完全去中心化的侧链跨链方法,具有完全去中心的优点,轻客户端在智能合约中实现,当初始化了正确的起始区块信息,合约就可以完全自主验证后续所有区块的有效性,轻客户端无需连续同步原链所有区块头,只根据需要同步区块链的一部分片段即可获得可信区块用于验证交易,快速的跨链交易,一个跨链交易从产生到在目标链上产生对应交易只需要不到3分钟时间,跨链交易并行,不同的跨链交易之间互不影响,可以并行执行,因此支持很大的并发量,具有安全性,由于采用了生产者签名效验和严格的逻辑检查,可以保证轻客户端自身的正确性,无法被恶意攻击,因此可以安全的验证交易的真实性。

权利要求 :

1.一种完全去中心化的侧链跨链方法,其特征在于:包括以下步骤:S01:在主链上通过跨链合约发起跨链交易起始数据,并记录在起始数据表中;

S02:主链跨链插件会监听主链上发起的跨链交易;

S03:当主链跨链插件收到跨链交易成功后会发送给侧链跨链插件;

S04:当侧链跨链插件收到主链交易信息后,会调用侧链跨链合约使用轻客户端验证交易;

S05:当侧链跨链合约运行的轻客户端交易验证通过后,会调用货币交易函数发起侧链交易发行对应的代币;

S06:侧链跨链插件会监听侧链上发起的交易;

S07:当侧链跨链插件收到代币发行交易成功后会发送给主链跨链插件;

S08:当主链跨链插件收到侧链交易信息后,会调用主链跨链合约货币交易确定接口验证交易;

S09:当主链跨链合约使用轻客户端交易验证通过后,会从起始数据表中删除原始交易起始数据。

2.根据权利要求1所述的一种完全去中心化的侧链跨链方法,其特征在于:所述轻客户端主要用来收集区块的区块信息,不包括区块体,轻客户端占用很小的空间。

3.根据权利要求1所述的一种完全去中心化的侧链跨链方法,其特征在于:在跨链合约中引入了概念节点,一个节点记录的是一段连续的区块头信息,节点结构不存储具体的区块头信息。

4.根据权利要求1所述的一种完全去中心化的侧链跨链方法,其特征在于:所述轻客户端运行步骤:第一步,通过区块编号验证是否能够连接到最新的节点,第二步 ,是否需要处理分叉,删除旧数据,在合约中不会同时保存多个分支,而是以后者替代前者的方式实现对分叉的处理,第三步,通过区块id验证是否能够连接到最新的节点,第四步 ,构造区块头,并验证BP签名。

5.根据权利要求1所述的一种完全去中心化的侧链跨链方法,其特征在于:一笔成功的跨链交易只能执行一次货币交易,否则会造成重复货币交易。

说明书 :

一种完全去中心化的侧链跨链方法

技术领域

[0001] 本发明涉及侧链跨链技术领域,具体为一种完全去中心化的侧链跨链方法。

背景技术

[0002] 根据中国专利CN108256864B和中国专利CN103755842A,跨链技术:原本存储在特定区块链上的资产可以转换成为另一条链的资产,简单支付验证技术,用于验证一笔交易存在于区块链中,SPV client存储着连续的区块头,但没有区块体,因此只需占用很小的存储空间,当获得一笔交易和这笔交易的Merkle path后,可以验证这笔交易是否存在于区块链上,轻客户端,即SPV client,即由区块头组成的一条轻量的链,默克尔路径:是一种典型的二叉树结构,由一个根节点、一组中间节点和一组叶节点组成,代表区块间的承接关系,是基于DPOS机制的EOSIO体系公链用于决定生产区块权利的技术,新的bp schedule是由上一批bp schedule包含的Block Producers认证通过后生效以此确保严格的BP权利交接,在轻客户端中跟随对应主网的bp schedule是IBC系统逻辑的一项核心技术。

发明内容

[0003] (一)解决的技术问题
[0004] 针对现有技术的不足,本发明提供了一种完全去中心化的侧链跨链方法,具备完全去中心化的优点,解决了传统侧链跨链效率低下的问题。
[0005] (二)技术方案
[0006] 为实现上述完全去中心化的目的,本发明提供如下技术方案:一种完全去中心化的侧链跨链方法,包括以下步骤:
[0007] S01:首先我们在主链上通过跨链合约发起跨链交易起始数据,并记录在起始数据表中。
[0008] S02:主链跨链插件会监听主链上发起的跨链交易。
[0009] S03:当主链跨链插件收到跨链交易成功后会发送给侧链跨链插件。
[0010] S04:当侧链跨链插件收到主链交易信息后,会调用侧链跨链合约使用轻客户端验证交易。
[0011] S05:当侧链跨链合约运行的轻客户端交易验证通过后,会调用货币交易函数发起侧链交易发行对应的代币。
[0012] S06:侧链跨链插件会监听侧链上发起的交易。
[0013] S07:当侧链跨链插件收到代币发行交易成功后会发送给主链跨链插件。
[0014] S08:当主链跨链插件收到侧链交易信息后,会调用主链跨链合约货币交易确定接口验证交易。
[0015] S09:当主链跨链合约使用轻客户端交易验证通过后,会从起始数据表中删除原始交易起始数据,至此,一笔完整的跨链交易就完成了。
[0016] 优选的,所述轻客户端主要用来收集区块的区块信息,不包括区块体,轻客户端占用很小的空间。
[0017] 优选的,在跨链合约中引入了概念节点,一个节点记录的是一段连续的区块头信息,节点结构不存储具体的区块头信息。
[0018] 优选的,所述轻客户端运行步骤:第一步,通过区块编号验证是否能够连接到最新的节点,第二部,是否需要处理分叉,删除旧数据,在合约中不会同时保存多个分支,而是以后者替代前者的方式实现对分叉的处理,第三步,通过区块id验证是否能够连接到最新的节点,第四部,构造区块头,并验证BP签名。
[0019] 优选的,所述一笔成功的跨链交易只能执行一次货币交易,否则会造成重复货币交易。
[0020] (三)有益效果
[0021] 与现有技术相比,本发明提供了一种完全去中心化的侧链跨链方法,具备以下有益效果:
[0022] 该完全去中心化的侧链跨链方法,具有完全去中心的优点,轻客户端在智能合约中实现,当初始化了正确的起始区块信息,合约就可以完全自主验证后续所有区块的有效性,无需依赖对插件或合约外部信息的信任,轻量,轻客户端无需连续同步原链所有区块头,只根据需要同步区块链的一部分片段即可获得可信区块用于验证交易,快速的跨链交易,一个跨链交易从产生到在目标链上产生对应交易只需要不到3分钟时间,跨链交易并行,不同的跨链交易之间互不影响,可以并行执行,因此支持很大的并发量,具有安全性,由于采用了生产者签名效验和严格的逻辑检查,可以保证轻客户端自身的正确性,无法被恶意攻击,因此可以安全的验证交易的真实性。

附图说明

[0023] 图1为本发明系统流程步骤图。

具体实施方式

[0024] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0025] 请参阅图1,一种完全去中心化的侧链跨链方法,包括以下步骤:
[0026] S01:在主链上通过跨链合约发起跨链交易起始数据,并记录在起始数据表中。
[0027] S02:主链跨链插件会监听主链上发起的跨链交易。
[0028] S03:当主链跨链插件收到跨链交易成功后会发送给侧链跨链插件。
[0029] S04:当侧链跨链插件收到主链交易信息后,会调用侧链跨链合约使用轻客户端验证交易。
[0030] S05:当侧链跨链合约运行的轻客户端交易验证通过后,会调用货币交易函数发起侧链交易发行对应的代币。
[0031] S06:侧链跨链插件会监听侧链上发起的交易。
[0032] S07:当侧链跨链插件收到代币发行交易成功后会发送给主链跨链插件。
[0033] S08:当主链跨链插件收到侧链交易信息后,会调用主链跨链合约货币交易确定接口验证交易。
[0034] S09:当主链跨链合约使用轻客户端交易验证通过后,会从起始数据表中删除原始交易起始数据,至此,一笔完整的跨链交易就完成了。
[0035] 轻客户端主要用来收集区块的区块信息,不包括区块体,所以轻客户端只占用很小的空间,而使用SPV技术merkle路径是用来证明一个交易是否存在于某个区块中,轻客户端不需要同步全量区块头信息,当有2/3以上的BP正常运行的情况直接从不可逆块数据中验证,只在BP更换或跨链交易时,无法被2/3以上的BP进行确认,才需要同步区块,在跨链合约中引入了概念节点,一个节点记录的是一段连续的区块头信息,节点结构不存储具体的区块头信息,而是记录这一段区块头的第一个区块编号(first)和最后一个区块编号(last),具体区块头信息在链数据库中存储,每个节点都有一个有效值,在没有bp schedule更替的时候,只要有2/3的活跃BP在出块,就可认为区块是不可逆的,可以用验证跨链交易,当遇到BP更替,节点的有效值变为错误值,不再接受交易验证,知道更替完成,有效值重新变为正确值时,继续验证跨链交易,轻客户端运行步骤:第一步,通过区块编号验证是否能够连接到最新的节点,第二部,是否需要处理分叉,删除旧数据,在合约中不会同时保存多个分支,而是以后者替代前者的方式实现对分叉的处理,第三步,通过区块id验证是否能够连接到最新的节点,第四部,构造区块头,并验证BP签名,要想确保跨链交易完整性和可靠性,首先,一笔成功的跨链交易只能执行一次货币交易,否则会造成重复货币交易,其次,对于每一个货币交易,必须将其相关信息传回原链执行货币交易确定,以消除合约中记录的交易信息,否则出现即在目的链上给用户发行了代币,又将原链的代币退还给了用户,货币交易函数是跨链合约的核心逻辑,跨链合约中记录着最近执行货币交易的原始交易id,即origtrxid,并且新的货币交易的origtrx的区块编号必须大于或等于所有origtrx所在的区块编号,也就是说必须按原始交易在原链区块的顺序进行货币交易(执行货币交易时,原链某个区块的跨链交易顺序是无关紧要的),再结合trxid检查,可以确保一笔跨链交易智能执行一次货币交易,如果调用货币交易接口失败,未能成功跨链的交易会被回滚,即原路退还用户的资产,同样,货币交易确定接口会检查货币交易的编号顺序,此编号必须逐一递增,以确保所有在目的链上的货币交易都会删除在原链上的原始交易记录,从而确保不会出现双花的情况。
[0036] 工作原理:主要是通过跨链合约和跨链插件实现,我们将在主链和侧链上部署两个相同的合约,以及部署两个相同的插件,合约的主要功能是用来发起交易和运行采用交易验证技术的轻客户端(收集交易信息并验证),插件则是用于传递交易信息。
[0037] 尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。