System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于DockerVM的链下智能合约执行方法技术_技高网

一种基于DockerVM的链下智能合约执行方法技术

技术编号:42717036 阅读:0 留言:0更新日期:2024-09-13 12:06
本发明专利技术公开了一种基于DockerVM的链下智能合约执行方法,属于区块链领域,包括四个阶段,分别为部署链上状态管理合约、添加链下应用合约、调用链下应用合约及更新检查点;参与主体包括链上状态管理合约、链下运营者节点和链下用户。本发明专利技术采用上述的一种基于DockerVM的链下智能合约执行方法,使用DockerVM作为链下应用合约的执行环境,构建安全高效的链下应用合约执行机制,致力于把链上的合约事务转移到链下执行,在保证链下应用合约执行有效性的同时缓解链上事务压力。

【技术实现步骤摘要】

本专利技术涉及区块链,尤其是涉及一种基于dockervm的链下智能合约执行方法。


技术介绍

1、区块链提供了各方可以透明、安全地进行点对点交互的环境,而无需可信的第三方。各方可以信任交易的完整性和正确性以及系统内区块链(智能合约)上二进制代码的可验证执行。但是在以太坊等典型区块链中,每个节点存储所有智能合约的副本。为了达到全局共识,每个节点都需要冗余执行所有智能合约事务。这种全局复制的存储和执行模型提供了较差的可扩展性,因此以太坊的智能合约平台严格限制了合约的计算复杂性和大小。另一方面,由于区块链的透明性特点,智能合约的执行和交易数据对所有网络参与者可见,这在某些情况下可能会暴露敏感信息,引发隐私保护的担忧。

2、为了解决区块链的可扩展性和隐私性问题,链下处理技术被提出。链下处理指的是在区块链主网之外处理交易或数据的技术,旨在减轻主网的负担,提高处理速度和降低交易成本。现在亟需一种方案在把链上应用合约事务转移到链下的同时能够满足隐私合约的业务需求。


技术实现思路

1、本专利技术的目的是提供一种基于dockervm的链下智能合约执行方法,以解决上述
技术介绍
中提到的问题。

2、为实现上述目的,本专利技术提供了一种基于dockervm的链下智能合约执行方法:包括四个阶段,分别为部署链上状态管理合约、添加链下应用合约、调用链下应用合约及更新检查点;参与主体包括链上状态管理合约、链下运营者节点和链下用户;

3、部署链上状态管理合约,在区块链平台上部署链上状态管理合约后得到一个具有标识的合约地址,链上状态管理合约初始化适用于具有智能合约功能的所有区块链平台,针对不同的区块链平台,采取不同的工具链部署通道智能合约;

4、添加链下应用合约,链下用户首先根据合约模板编写相应的应用合约,在链上部署应用合约后得到一个应用id,然后通过链上状态管理合约把所部署的应用合约地址添加到链上状态管理合约的应用列表,最后链下运营者节点将应用合约部署到本地虚拟机环境(dockervm);

5、调用链下应用合约,链下用户向链下运营者节点请求调用链下应用合约,链下运营者节点对交易验证并执行后返回执行的回执,同时根据每一笔交易的信息执行链下应用合约并更新链下状态数据库;

6、更新检查点,若链下用户发现链下运营者节点没有正确的执行交易或没有更新链下数据库,链下用户在链上状态管理合约根据挑战机制发起挑战,若挑战成功则回滚链下状态。

7、优选的,部署链上状态管理合约包括以下步骤:

8、sa1、链下运营者节点在区块链网络上部署链上状态管理合约,部署后得到合约地址;

9、sa2、链下运营者节点在链上状态管理合约注册身份,注册成功后在链上状态管理合约公开链下运营者节点的网络地址;

10、sa3、链下运营者节点运行链下服务,接收链下用户的链下应用合约部署和执行请求。

11、优选的,添加链下应用合约具体包括以下步骤:

12、sb1、链下用户根据合约模板编写应用合约代码;

13、sb2、链下用户在本地编译应用合约并在区块链上部署应用合约,得到链上应用合约的链上地址,链上应用合约和链下应用合约的内容保持一致;

14、sb3、链下用户向链上状态管理合约发送应用合约添加消息,其中添加消息包括应用合约的哈希和链上应用合约地址;

15、sb4、链下用户向链下运营者节点发送链下应用合约的文件和哈希;

16、sb5、链下运营者节点检查链下应用合约的文件和哈希是否与状态管理合约所注册的链上应用合约哈希一致;

17、sb6、sb5的验证通过后,链下运营者节点在本地的dockervm部署链下应用合约。

18、优选的,调用链下应用合约的步骤包括:

19、sc1、链下用户向链下运营者节点发起链下应用合约执行请求,执行请求包括执行的合约id和执行的操作;

20、sc2、链下运营者节点检查sc1中的执行请求的合法性;

21、sc3、在dockervm中根据执行请求提供的合约id和输入操作op执行链下应用合约,实现从stateidi到stateidi+1的更新;

22、sc4、链下运营者节点根据链下应用合约的执行结果修改链下的状态数据库,同时链下运营者节点每执行一次链下应用合约都会生成一个新的执行状态esi:

23、esi=h(stateidi||txi);

24、sc5、链下运营者节点向链下用户返回执行合约的执行结果;

25、sc6、链下运营者定期向链上状态管理合约提交检查点,其中检查点包括定期内的执行状态序列;

26、sc7、若链下运营节点提交的检查点是正确的,则该检查点在给定挑战期后生效,否则链下用户将发起挑战。

27、优选的,挑战机制步骤如下:

28、sd1、把链下用户的初始状态stateidi-1、上一笔执行交易txi-1,当前执行交易txi,执行后的状态stateidi以及应用的标识appid提交到链上状态管理合约;

29、sd2、检查指定的链上应用合约的应用appid是否存在;

30、sd3、根据初始状态stateidi-1和执行的交易txi-1生成执行状态esi-1',判断所生成的执行状态与链上状态管理合约的esi-1相等;

31、sd4、调用链上指定的链上应用合约,把初始状态stateidi-1和执行交易txi-1,输入到链上应用合约;

32、sd5、判断链上应用合约返回的esi'与链上状态管理器的esi是否一致,若不一致则挑战成功;

33、sd6、删除链上状态管理合约上esi以后的执行状态。

34、因此,本专利技术采用上述的一种基于dockervm的链下智能合约执行方法,具备以下有益效果:

35、(1)显著提高交易处理速度、大幅降低执行合约的成本、提升整个系统的可扩展性、增强用户隐私保护、提供设计灵活性和促进不同区块链平台之间的互操作性;

36、(2)链下智能合约还能减轻主链的压力,维持区块链网络的高效运行和稳定性,同时促进了区块链技术的创新和各种区块链应用的开发;

37、(3)使得链下智能合约成为解决区块链面临的核心挑战,为去中心化应用提供了更高的效率和更低的成本,推动了dapps的创新和多样化发展。

38、下面通过附图和实施例,对本专利技术的技术方案做进一步的详细描述。

本文档来自技高网...

【技术保护点】

1.一种基于DockerVM的链下智能合约执行方法,其特征在于:包括四个阶段,分别为部署链上状态管理合约、添加链下应用合约、调用链下应用合约及更新检查点;参与主体包括链上状态管理合约、链下运营者节点和链下用户;

2.根据权利要求1所述的一种基于DockerVM的链下智能合约执行方法,其特征在于,部署链上状态管理合约包括以下步骤:

3.根据权利要求2所述的一种基于DockerVM的链下智能合约执行方法,其特征在于,添加链下应用合约具体包括以下步骤:

4.根据权利要求3所述的一种基于DockerVM的链下智能合约执行方法,其特征在于,调用链下应用合约的步骤包括:

5.根据权利要求4所述的一种基于DockerVM的链下智能合约执行方法,其特征在于,SC7中的挑战机制步骤如下:

【技术特征摘要】

1.一种基于dockervm的链下智能合约执行方法,其特征在于:包括四个阶段,分别为部署链上状态管理合约、添加链下应用合约、调用链下应用合约及更新检查点;参与主体包括链上状态管理合约、链下运营者节点和链下用户;

2.根据权利要求1所述的一种基于dockervm的链下智能合约执行方法,其特征在于,部署链上状态管理合约包括以下步骤:

3.根据...

【专利技术属性】
技术研发人员:邱望洁何锦淳于永康徐昕玮褚振郑宏威郑志明董进
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:

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

1