System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种优化智能合约Gas开销的查询服务结算方法及系统技术方案_技高网
当前位置: 首页 > 专利查询>浙江大学专利>正文

一种优化智能合约Gas开销的查询服务结算方法及系统技术方案

技术编号:41066324 阅读:7 留言:0更新日期:2024-04-24 11:20
本发明专利技术公开了一种优化智能合约Gas开销的查询服务结算方法及系统,该查询服务结算系统包括:查询服务提供端、用户端、公证端、智能合约以及区块链浏览器,其中公证端用于解决查询服务提供端和用户之间的订单纠纷,处理超时订单付费;智能合约利用基于Merkle订单树的批量付费流程,完成用户与查询服务提供端间的订单费用结算;区块链浏览器为公证端查询区块链上的交易信息,帮助确认订单超时未付费。本发明专利技术通过智能合约实现基于Merkle订单树的批量结算方法,降低了Gas开销,同时保证付费交易公开透明、不可篡改、易于审计,提高了查询服务结算过程的公平性、安全性和高效性。

【技术实现步骤摘要】

本专利技术涉及区块链应用,尤其涉及一种优化智能合约gas开销的查询服务结算方法及系统。


技术介绍

1、区块链技术通过共识机制建立了一种不可篡改的分布式账本。当前区块链技术已经被广泛应用于跨境支付、供应链管理、交易结算、电子凭证等领域。比特币是最早的公有链技术代表之一。继比特币之后,新出现的公有链技术往往在一些关键方面进行了创新和改进,包括智能合约、共识协议、应用场景和激励机制等核心设计要素。智能合约被称为区块链的执行引擎,通过在智能合约中编写业务逻辑,可以充分利用区块链的安全可信执行环境,以实现需要多方信任的复杂业务场景。

2、1.智能合约与gas机制

3、当智能合约被部署到区块链上,其代码就将自动执行且不可篡改。智能合约的执行需要消耗计算资源。通过gas机制来衡量智能合约执行消耗的计算成本,可以防止合约进行无效计算或者陷入死循环。用户在执行智能合约时需要支付gas费用,这是为了补偿区块链网络中节点执行智能合约所消耗的计算成本。

4、2.外包查询的服务方式

5、外包查询的服务方式通常出现在数据提供端没有足够的计算资源直接为用户端提供查询服务的场景中。在外包查询的服务方式中,数据提供端向第三方查询服务提供端发送外包数据;而用户端则向第三方查询服务提供端发起查询请求,查询服务提供端在返回用户端查询结果r的同时,附带一个证明查询结果正确性的密码学证明(verificationobject,vo)。用户端使用查询结果r和vo在本地就可以验证查询结果的正确性。在外包查询结果正确的情况下,用户端需要向查询服务提供端支付查询费用,以覆盖查询服务提供端的计算成本。

6、3.基于字段存储的订单结算

7、为了实现一笔服务订单的结算,传统的订单结算智能合约需要将订单id、金额、用户端、查询服务提供端等信息全部存储在区块链智能合约中(区块链storage空间)。这种方式虽然直接和可靠,但是基于字段存储的订单结算方案的运行成本非常高。在区块链智能合约中的每次数据存储或修改操作都需要消耗大量gas,因此大量数据操作会导致显著的gas开销。由此产生了结算过程消耗大量gas的问题。

8、与之相比,通过合约调用交易的输入字段来添加订单关键信息的方法大幅减少了gas消耗。该方法不仅确保了订单信息在区块链账本空间上公开透明、不可篡改和易于审计的特点,同时也显著降低了结算过程中的gas。因此设计一种新型的订单结算方案,只在合约调用的输入交易中记录订单关键信息,同时实现订单批量结算的功能,将成为解决结算合约运行成本高昂问题的有效解决方案。


技术实现思路

1、针对在公链智能合约中实现查询服务结算过程需要消耗大量gas手续费的问题,本专利技术提出了一种优化智能合约gas开销的查询服务结算方法及系统,通过一种基于merkle订单树的批量付费流程,实现查询服务订单的大规模批量结算,保证付费交易的不可篡改、易于审计。同时设计了一种基于公证端查询订单纠纷解决方案,在用户端和查询服务提供端对订单产生纠纷时,有效完成对查询订单的处理与付费,保证结算过程公平、安全。

2、本专利技术首先提供了一种优化gas开销的查询服务结算系统,包括:查询服务提供端、用户端、公证端、智能合约和区块链浏览器;

3、所述智能合约用于记录公证端、查询服务提供端和用户端地址,为用户端预存费用以及完成用户端与查询服务提供端之间的订单费用结算;

4、所述查询服务提供端用于当用户端发起查询服务请求时为用户端提供查询服务,并向用户端返回包括查询订单、查询结果和查询结果密码学证明vo的查询信息;所述查询服务提供端还用于构建merkle订单树,并将merkle根存储到智能合约中,智能合约进行订单费用结算时仅需调用merkle根,从而降低智能合约的gas开销;所述查询订单包括订单号、订单金额以及用户端的公链地址;所述merkle订单树中包括k笔未付费的查询订单,k为大于等于1的整数;

5、所述用户端用于发起查询服务请求,接收查询服务提供端返回的查询信息并根据查询结果密码学证明vo对查询结果进行验证;所述用户端还用于根据查询订单为已经完成的查询服务支付费用;

6、所述公证端用于解决查询服务提供端与用户端之间关于查询订单的纠纷;

7、所述区块链浏览器用于为公证端获取公链上交易的具体信息并确认订单是否付费;所述交易的具体信息包括查询服务订单的创建时间、查询服务订单的金额、用户端账户余额、合约调用行为。

8、本专利技术还提供了一种基于上述查询服务结算系统的查询服务结算方法,包括以下步骤:

9、1)在公链中部署智能合约并在智能合约中记录公证端地址和查询服务提供端地址;

10、2)用户端在智能合约中预先存入费用,并将用户端的公链地址记录在智能合约中;

11、3)用户端向查询服务提供端发起查询请求,查询服务提供端接收用户端发起的查询请求后向用户端发送包括查询结果、查询结果密码学证明vo、查询订单以及查询服务提供端对查询信息的签名;且在未付费的服务订单没有累计到k笔订单前,查询服务提供端将订单存储在本地,在未付费的服务订单累计到k笔后,查询服务提供端基于k笔未付费的服务订单构建一颗merkle订单树,并将merkle根存储到智能合约中;

12、4)用户端接收到查询信息后对查询信息进行签名,并根据查询结果密码学证明vo对查询结果进行验证;当用户端验证查询结果的正确性后,调用智能合约向查询服务提供端支付查询订单的费用;

13、5)当用户端未在服务订单费用支付期限内完成支付时,查询服务提供端将查询信息发送给公证端,公证端通过区块链浏览器查询交易的具体信息,公证端验证查询结果并根据验证的查询结果正确性处理查询订单的付费问题。

14、作为本专利技术的优选方案,所述步骤4)中,用户端调用智能合约向查询服务提供端支付查询订单的费用具体包括以下步骤:

15、4.1)用户端向查询服务提供端查询支付订单的支付证明,其中多个支付订单使用一个支付证明实现批量结算;

16、4.2)查询服务提供端基于merkle订单树产生用户端付费订单对应的支付证明,并将支付证明发送给用户端;

17、4.3)用户端收到支付证明并传输给智能合约,智能合约验证支付证明后从用户端预先存入的费用中扣除订单总费用并转给查询服务提供端账户。

18、作为本专利技术的优选方案,所述步骤5)具体包括以下步骤:

19、5.1)在用户端收到查询结果且在等待时间阈值t内未进行付费时,查询服务提供端将包含查询服务提供端和用户端签名的查询订单和查询结果的接收信息发送给公证端;

20、5.2)公证端验证用户端与查询服务提供端双方对接收信息的签名,解析接收信息得到查询结果和服务订单的具体信息;并通过对区块链浏览器进行查询,确认该笔订单确实没有付费,并且已经超过支付时间阈值t;

21、5.3)公证端基于查本文档来自技高网...

【技术保护点】

1.一种优化智能合约Gas开销的查询服务结算系统,其特征在于,包括:智能合约、查询服务提供端、用户端、公证端和区块链浏览器;

2.一种基于权利要求1所述查询服务结算系统的查询服务结算方法,其特征在于,包括以下步骤:

3.根据权利要求2所述的查询服务结算方法,其特征在于,所述步骤3)中,查询服务提供端在确认用户端预存的余额充足的情况下,才为用户端提供查询服务;若用户端预存费用的余额不足,查询服务提供端将拒绝为用户端提供查询服务。

4.根据权利要求2所述的查询服务结算方法,其特征在于,所述步骤3)中,查询服务提供端构建的Merkle订单树中每个叶子节点的哈希值为一笔服务订单的哈希值由用户端公链地址哈希值订单金额哈希值以及订单编号哈希值组合后计算得出:

5.根据权利要求2所述的查询服务结算方法,其特征在于,所述步骤4)中,用户端调用智能合约向查询服务提供端支付查询订单的费用具体包括以下步骤:

6.根据权利要求2所述的查询服务结算方法,其特征在于,所述步骤4)中,在查询服务提供端中的未付费订单没有达到K笔前,查询服务提供端暂时不为用户提供支付证明,订单费用暂时不结算。

7.根据权利要求2所述的查询服务结算方法,其特征在于,查询服务提供端对发送给用户端的接收信息进行签名从而证明所述接收信息为该查询服务提供端发送,当用户端收到所述查询信息时也进行签名从而证明已接收所述接收信息。

8.根据权利要求2所述的查询服务结算方法,其特征在于,所述步骤5)具体包括以下步骤:

...

【技术特征摘要】

1.一种优化智能合约gas开销的查询服务结算系统,其特征在于,包括:智能合约、查询服务提供端、用户端、公证端和区块链浏览器;

2.一种基于权利要求1所述查询服务结算系统的查询服务结算方法,其特征在于,包括以下步骤:

3.根据权利要求2所述的查询服务结算方法,其特征在于,所述步骤3)中,查询服务提供端在确认用户端预存的余额充足的情况下,才为用户端提供查询服务;若用户端预存费用的余额不足,查询服务提供端将拒绝为用户端提供查询服务。

4.根据权利要求2所述的查询服务结算方法,其特征在于,所述步骤3)中,查询服务提供端构建的merkle订单树中每个叶子节点的哈希值为一笔服务订单的哈希值由用户端公链地址哈希值订单金额哈希值以及订单编号哈希值组合...

【专利技术属性】
技术研发人员:卢令令陈建海刘振广何钦铭
申请(专利权)人:浙江大学
类型:发明
国别省市:

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

1