CN117911112A - 一种优化智能合约Gas开销的查询服务结算方法及系统 - Google Patents
一种优化智能合约Gas开销的查询服务结算方法及系统 Download PDFInfo
- Publication number
- CN117911112A CN117911112A CN202410079947.XA CN202410079947A CN117911112A CN 117911112 A CN117911112 A CN 117911112A CN 202410079947 A CN202410079947 A CN 202410079947A CN 117911112 A CN117911112 A CN 117911112A
- Authority
- CN
- China
- Prior art keywords
- query
- order
- inquiry
- terminal
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 230000008569 process Effects 0.000 claims abstract description 9
- 230000000977 initiatory effect Effects 0.000 claims description 3
- 238000012550 audit Methods 0.000 abstract description 5
- 238000012545 processing Methods 0.000 abstract description 2
- 238000012946 outsourcing Methods 0.000 description 6
- 238000012795 verification Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000013068 supply chain management Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0633—Lists, e.g. purchase orders, compilation or processing
- G06Q30/0635—Processing of requisition or of purchase orders
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种优化智能合约Gas开销的查询服务结算方法及系统,该查询服务结算系统包括:查询服务提供端、用户端、公证端、智能合约以及区块链浏览器,其中公证端用于解决查询服务提供端和用户之间的订单纠纷,处理超时订单付费;智能合约利用基于Merkle订单树的批量付费流程,完成用户与查询服务提供端间的订单费用结算;区块链浏览器为公证端查询区块链上的交易信息,帮助确认订单超时未付费。本发明通过智能合约实现基于Merkle订单树的批量结算方法,降低了Gas开销,同时保证付费交易公开透明、不可篡改、易于审计,提高了查询服务结算过程的公平性、安全性和高效性。
Description
技术领域
本发明涉及区块链应用技术领域,尤其涉及一种优化智能合约Gas开销的查询服务结算方法及系统。
背景技术
区块链技术通过共识机制建立了一种不可篡改的分布式账本。当前区块链技术已经被广泛应用于跨境支付、供应链管理、交易结算、电子凭证等领域。比特币是最早的公有链技术代表之一。继比特币之后,新出现的公有链技术往往在一些关键方面进行了创新和改进,包括智能合约、共识协议、应用场景和激励机制等核心设计要素。智能合约被称为区块链的执行引擎,通过在智能合约中编写业务逻辑,可以充分利用区块链的安全可信执行环境,以实现需要多方信任的复杂业务场景。
1.智能合约与Gas机制
当智能合约被部署到区块链上,其代码就将自动执行且不可篡改。智能合约的执行需要消耗计算资源。通过Gas机制来衡量智能合约执行消耗的计算成本,可以防止合约进行无效计算或者陷入死循环。用户在执行智能合约时需要支付Gas费用,这是为了补偿区块链网络中节点执行智能合约所消耗的计算成本。
2.外包查询的服务方式
外包查询的服务方式通常出现在数据提供端没有足够的计算资源直接为用户端提供查询服务的场景中。在外包查询的服务方式中,数据提供端向第三方查询服务提供端发送外包数据;而用户端则向第三方查询服务提供端发起查询请求,查询服务提供端在返回用户端查询结果R的同时,附带一个证明查询结果正确性的密码学证明(VerificationObject,VO)。用户端使用查询结果R和VO在本地就可以验证查询结果的正确性。在外包查询结果正确的情况下,用户端需要向查询服务提供端支付查询费用,以覆盖查询服务提供端的计算成本。
3.基于字段存储的订单结算
为了实现一笔服务订单的结算,传统的订单结算智能合约需要将订单ID、金额、用户端、查询服务提供端等信息全部存储在区块链智能合约中(区块链Storage空间)。这种方式虽然直接和可靠,但是基于字段存储的订单结算方案的运行成本非常高。在区块链智能合约中的每次数据存储或修改操作都需要消耗大量Gas,因此大量数据操作会导致显著的Gas开销。由此产生了结算过程消耗大量Gas的问题。
与之相比,通过合约调用交易的输入字段来添加订单关键信息的方法大幅减少了Gas消耗。该方法不仅确保了订单信息在区块链账本空间上公开透明、不可篡改和易于审计的特点,同时也显著降低了结算过程中的Gas。因此设计一种新型的订单结算方案,只在合约调用的输入交易中记录订单关键信息,同时实现订单批量结算的功能,将成为解决结算合约运行成本高昂问题的有效解决方案。
发明内容
针对在公链智能合约中实现查询服务结算过程需要消耗大量Gas手续费的问题,本发明提出了一种优化智能合约Gas开销的查询服务结算方法及系统,通过一种基于Merkle订单树的批量付费流程,实现查询服务订单的大规模批量结算,保证付费交易的不可篡改、易于审计。同时设计了一种基于公证端查询订单纠纷解决方案,在用户端和查询服务提供端对订单产生纠纷时,有效完成对查询订单的处理与付费,保证结算过程公平、安全。
本发明首先提供了一种优化Gas开销的查询服务结算系统,包括:查询服务提供端、用户端、公证端、智能合约和区块链浏览器;
所述智能合约用于记录公证端、查询服务提供端和用户端地址,为用户端预存费用以及完成用户端与查询服务提供端之间的订单费用结算;
所述查询服务提供端用于当用户端发起查询服务请求时为用户端提供查询服务,并向用户端返回包括查询订单、查询结果和查询结果密码学证明VO的查询信息;所述查询服务提供端还用于构建Merkle订单树,并将Merkle根存储到智能合约中,智能合约进行订单费用结算时仅需调用Merkle根,从而降低智能合约的Gas开销;所述查询订单包括订单号、订单金额以及用户端的公链地址;所述Merkle订单树中包括K笔未付费的查询订单,K为大于等于1的整数;
所述用户端用于发起查询服务请求,接收查询服务提供端返回的查询信息并根据查询结果密码学证明VO对查询结果进行验证;所述用户端还用于根据查询订单为已经完成的查询服务支付费用;
所述公证端用于解决查询服务提供端与用户端之间关于查询订单的纠纷;
所述区块链浏览器用于为公证端获取公链上交易的具体信息并确认订单是否付费;所述交易的具体信息包括查询服务订单的创建时间、查询服务订单的金额、用户端账户余额、合约调用行为。
本发明还提供了一种基于上述查询服务结算系统的查询服务结算方法,包括以下步骤:
1)在公链中部署智能合约并在智能合约中记录公证端地址和查询服务提供端地址;
2)用户端在智能合约中预先存入费用,并将用户端的公链地址记录在智能合约中;
3)用户端向查询服务提供端发起查询请求,查询服务提供端接收用户端发起的查询请求后向用户端发送包括查询结果、查询结果密码学证明VO、查询订单以及查询服务提供端对查询信息的签名;且在未付费的服务订单没有累计到K笔订单前,查询服务提供端将订单存储在本地,在未付费的服务订单累计到K笔后,查询服务提供端基于K笔未付费的服务订单构建一颗Merkle订单树,并将Merkle根存储到智能合约中;
4)用户端接收到查询信息后对查询信息进行签名,并根据查询结果密码学证明VO对查询结果进行验证;当用户端验证查询结果的正确性后,调用智能合约向查询服务提供端支付查询订单的费用;
5)当用户端未在服务订单费用支付期限内完成支付时,查询服务提供端将查询信息发送给公证端,公证端通过区块链浏览器查询交易的具体信息,公证端验证查询结果并根据验证的查询结果正确性处理查询订单的付费问题。
作为本发明的优选方案,所述步骤4)中,用户端调用智能合约向查询服务提供端支付查询订单的费用具体包括以下步骤:
4.1)用户端向查询服务提供端查询支付订单的支付证明,其中多个支付订单使用一个支付证明实现批量结算;
4.2)查询服务提供端基于Merkle订单树产生用户端付费订单对应的支付证明,并将支付证明发送给用户端;
4.3)用户端收到支付证明并传输给智能合约,智能合约验证支付证明后从用户端预先存入的费用中扣除订单总费用并转给查询服务提供端账户。
作为本发明的优选方案,所述步骤5)具体包括以下步骤:
5.1)在用户端收到查询结果且在等待时间阈值T内未进行付费时,查询服务提供端将包含查询服务提供端和用户端签名的查询订单和查询结果的接收信息发送给公证端;
5.2)公证端验证用户端与查询服务提供端双方对接收信息的签名,解析接收信息得到查询结果和服务订单的具体信息;并通过对区块链浏览器进行查询,确认该笔订单确实没有付费,并且已经超过支付时间阈值T;
5.3)公证端基于查询结果密码学证明VO和查询结果确认查询结果的正确性,当查询结果为错误时,则不进行任何操作;当查询结果为正确时,公证端向查询服务提供端查询订单对应的支付证明,且查询服务提供端已经将接收信息发送给公证端,公证端解析后可以得到订单ID、金额和用户端地址;
5.4)公证端使用支付证明和订单信息调用智能合约的SettlePay函数,智能合约验证支付证明后从用户端预先存入的费用中扣除订单总费用并转给查询服务提供端账户。
与现有技术相比,本发明的有益效果为:
1)给出了一个优化Gas开销的查询服务结算系统的组织架构。通过智能合约实现批量结算,服务订单的关键参数无需直接存储在区块链的Storage空间中,而只需要作为合约调用交易的输入被记录在区块链的账本空间中,从而在降低Gas费用的同时,保证结算交易公开透明、不可篡改、方便审计。
2)提出了一套基于Merkle订单树的批量付费流程,并给出了Merkle订单树的构建方法,为多个订单产生批量付费证明的Proof生成方法,以及基于智能合约的Proof验证方法;实现了一种节省Gas的服务订单费用支付方案。
3)首次提出一种基于公证端的订单纠纷解决方案。由于服务订单和查询结果具有用户端和查询服务提供端的双方签名,因此公证端验证消息有效性和查询结果正确性后,同样使用批量付费流程对有效订单进行支付结算。
附图说明
图1为一个优化Gas开销的查询服务结算系统的架构示意图;
图2为外包查询服务过程的流程图;
图3为Merkle订单树的示意图;
图4为公证端处理用户端与查询服务提供端之间的纠纷的流程图。
具体实施方式
下面结合具体实施方式对本发明做进一步阐述和说明。所述实施例仅是本公开内容的示范且不圈定限制范围。本发明中各个实施方式的技术特征在没有相互冲突的前提下,均可进行相应组合。
如图1所示,本发明一个优化Gas开销的查询服务结算系统的参与实体包括服务端、用户端、公证端、智能合约和区块链浏览器。
所述查询服务提供端用于当用户端发起查询服务请求时为用户端提供查询服务,并向用户端返回包括查询订单、查询结果和查询结果密码学证明VO的查询信息;所述查询服务提供端还用于基于K笔未付费的查询订单构建Merkle订单树;所述查询订单包括订单号、订单金额以及用户端的公链地址;
所述用户端用于发起查询服务请求,接收查询服务提供端返回的查询信息并根据查询结果密码学证明VO对查询结果进行验证;所述用户端还用于根据查询订单为已经完成的查询服务支付费用;
所述公证端用于解决查询服务提供端与用户端之间关于查询订单的纠纷;例如在用户端收到查询结果但迟迟不进行付费的情况下,查询服务提供端可以向公证端发起请求,将包含查询服务提供端与用户端双方签名的查询结果和服务订单发送给公证端。公证端验证签名的有效性后,再验证查询结果的正确性,实现该笔服务订单的费用结算。公证端能够公平公正地解决纠纷,同时保证用户端和查询服务提供端的权益。
所述智能合约用于记录用户端、公证端地址和查询服务提供端地址,为用户端预存费用并基于Merkle订单树完成用户端与查询服务提供端之间的订单费用结算;
所述区块链浏览器用于为公证端获取公链上交易的具体信息并确认订单是否付费;所述交易的具体信息包括查询服务订单的创建时间、查询服务订单的金额、用户端账户余额、合约调用行为。
如图2所示,本发明还提供了一种基于上述查询服务结算系统的查询服务结算方法,包括以下步骤:
1)在公链中部署智能合约并在智能合约中记录公证端地址和查询服务提供端地址;
2)用户端在智能合约中预先存入费用,并将用户端的公链地址记录在智能合约中;
在本发明的一个具体实施方式中,用户端申请向智能合约中预先存入费用C,用户端的公链地址被记录在智能合约中。查询服务提供端同意用户端的费用存储申请,用户端成功从自己的账户余额中转移一部分费用C到智能合约中。智能合约的代码一旦被部署到公链中就是不可篡改的。在合约逻辑中除了用户端自己可以申请取出费用C,其他任何人都不能转移费用C。在用户端申请取出剩余的费用时,必须要查询服务提供端或者公证端审核通过,才能实现剩余费用的取出。
3)用户端向查询服务提供端发起查询请求,查询服务提供端接收用户端发起的查询请求后向用户端发送包括查询结果、查询结果密码学证明VO、查询订单以及查询服务提供端对查询信息的签名;且在未付费的服务订单没有累计到K笔订单前,查询服务提供端将订单存储在本地,在未付费的服务订单累计到K笔后,查询服务提供端基于K笔未付费的服务订单构建一颗Merkle订单树,并将Merkle根存储到智能合约中;
如图2所示,在本发明的一个具体实施方式中,用户端向查询服务提供端发起查询请求Q。查询服务提供端生成Q对应的查询订单,查询订单中记录订单号ID、订单金额fee以及用户端的地址ADDuser。查询服务提供端在本地执行Q,并将查询结果R返回给用户端,附带证明查询结果正确性的密码学证明VO;同时将服务订单的订单号ID与订单金额fee也发送给用户端。
假设查询服务提供端本地存在K-1笔未付费的服务订单,其中包含查询服务提供端和其他用户端之前的未付费订单。那么查询服务提供端在本地构建如图3所示的Merkle订单树,并将Merkle根存储到智能合约中。
查询服务提供端构建Merkle订单树的方法如下。Merkle订单树中的每一个叶子节点都是一笔服务订单的哈希值。查询服务提供端基于K笔未付费的服务订单构建一颗Merkle订单树。在没有累计到K笔订单前,查询服务提供端先暂时将订单存储在本地。对订单数量规模庞大的查询服务提供端来说,未付费的服务订单累积速度很快。Merkle订单树的叶子节点哈希的定义如公式(1),其中“|”是连接符。如公式(1)所示,一笔服务订单的哈希值,由用户端公链地址哈希值、订单金额哈希值以及订单编号哈希值组合后计算得出。
查询服务提供端在本地构建好Merkle订单树后,通过调用智能合约的StoreRoot函数,将Merkle订单树的Merkle根存储到区块链上。
4)用户端接收到查询信息后对查询信息进行签名,并根据查询结果密码学证明VO对查询结果进行验证;当用户端验证查询结果的正确性后,调用智能合约向查询服务提供端支付查询订单的费用;
在本发明的一个具体实施方式中,查询服务提供端对返回给用户端的消息进行签名,说明该消息确实是其发送的。用户端也对该消息进行签名,说明用户端确实收到了该消息。用户端收到查询结果R和对应的证明VO。在本地执行查询结果验证算法。如果用户端验证后发现查询结果错误,则无需任何操作,也无需进入后续的订单付费步骤。
用户端向查询服务提供端查询服务订单的支付证明Proof。多个订单可以使用一个Proof实现批量结算。查询服务提供端基于Merkle订单树,产生用户端多个订单对应的Proof。用户端将支付证明Proof发送给智能合约,合约验证Proof后将扣除订单总费用给查询服务提供端账户。如果用户端的订单为N5和N6,那么查询服务提供端基于如图3所示的Merkle订单树将会产生支付证明用户端调用智能合约的VerifyPay函数,将Proof和服务订单的金额、ID发送到智能合约中,用户端调用合约的地址即是Adduser,因此在合约中可以计算得到/>如果该值与查询服务提供端在步骤2-5)中存储的Merkle根一致,那么合约可以验证Proof与订单的正确性,从而实现对订单N5和N6的批量付费:从智能合约预存的费用C中扣除N5和N6订单的fee,并将其转移给查询服务提供端。
5)当用户端未在服务订单费用支付期限内完成支付时,查询服务提供端将查询信息发送给公证端,公证端通过区块链浏览器查询交易的具体信息,公证端验证查询结果并根据验证的查询结果正确性处理查询订单的付费问题。
在用户端和查询服务提供端产生纠纷的情况下,公证端需要验证查询结果,处理服务订单的付费问题;
如图4所示,在本发明的一个具体实施方式中,如果用户端在收到查询结果后,迟迟不进行付费操作,在等待时间阈值T后,查询服务提供端将包含查询服务提供端和用户端签名的查询订单和查询结果接收消息发送给公证端。公证端验证用户端与查询服务提供端双方对消息的签名,解析消息得到查询结果和服务订单的具体信息;并通过对区块链浏览器进行查询,确认该笔订单确实没有付费,并且已经超过支付时间阈值T。公证端基于密码学证明VO和查询结果R执行验证算法,确认外包查询结果的正确性,如果查询错误,则无需进行任何操作。如果查询结果正确,公证端向查询服务提供端查询订单对应的支付证明Proof。在本发明的一个具体实施例中,如果用户端的订单为N5和N6,那么查询服务提供端产生支付证明的方法与用户支付费用的方法一致。此外,由于查询服务提供端已经将服务订单发送给公证端,公证端解析后可以得到订单ID、金额和用户端地址。
公证端使用Proof和订单信息调用智能合约的SettlePay函数,合约验证Proof后将扣除相应费用给查询服务提供端账户。在本发明的一个具体实施例中,如果用户端的订单为N5和N6,公证端将Proof和服务订单的金额、ID、用户端地址Adduser发送到智能合约中,因此在合约中可以计算得到如果该值与查询服务提供端预先在合约中存储的Merkle根一致,那么合约可以验证Proof与订单的正确性,从而实现对订单N5和N6的批量付费。
通过本发明的查询服务结算方法,服务订单的关键参数无需像传统结算智能合约一样,使用字段记录的方式存储在公链的Storage空间中,而只需要作为交易的输入被记录在区块链的账本空间中,就能保证结算交易公开透明、不可篡改、方便审计。由于使用字段存储在Storage空间中的Gas费用远远超过使用交易输入存储在账本空间中的Gas费用,因此基于Merkle订单树的批量付费流程不仅实现了订单的批量付费功能,还降低了服务结算需要消耗的Gas费用。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
Claims (8)
1.一种优化智能合约Gas开销的查询服务结算系统,其特征在于,包括:智能合约、查询服务提供端、用户端、公证端和区块链浏览器;
所述智能合约用于记录公证端、查询服务提供端和用户端的地址,为用户端预存费用以及完成用户端与查询服务提供端之间的订单费用结算;
所述查询服务提供端用于当用户端发起查询服务请求时为用户端提供查询服务,并向用户端返回包括查询订单、查询结果和查询结果密码学证明VO的查询信息;所述查询服务提供端还用于构建Merkle订单树,并将Merkle根存储到智能合约中,智能合约进行订单费用结算时仅需调用Merkle根,从而降低智能合约的Gas开销;所述查询订单包括订单号、订单金额以及用户端的地址;所述Merkle订单树中包括K笔未付费的查询订单,K为大于等于1的整数;
所述用户端用于发起查询服务请求,接收查询服务提供端返回的查询信息并根据查询结果密码学证明VO对查询结果进行验证;所述用户端还用于根据查询订单为已经完成的查询服务支付费用;
所述公证端用于解决查询服务提供端与用户端之间关于查询订单的纠纷;
所述区块链浏览器用于为公证端获取公链上交易的具体信息并确认订单是否付费;所述交易的具体信息包括查询服务订单的创建时间、查询服务订单的金额、用户端账户余额、合约调用行为。
2.一种基于权利要求1所述查询服务结算系统的查询服务结算方法,其特征在于,包括以下步骤:
1)在公链中部署智能合约并在智能合约中记录公证端和查询服务提供端;
2)用户端在智能合约中预先存入费用,并将用户端公链地址记录在智能合约中;
3)用户端向查询服务提供端发起查询请求,查询服务提供端接收用户端发起的查询请求后向用户端发送包括查询结果、查询结果密码学证明VO、查询订单以及查询服务提供端对查询信息的签名;且在未付费的服务订单没有累计到K笔订单前,查询服务提供端将订单存储在本地,在未付费的服务订单累计到K笔后,查询服务提供端基于K笔未付费的服务订单构建一颗Merkle订单树,并将Merkle根存储到智能合约中;
4)用户端接收到查询信息后对查询信息进行签名,并根据查询结果密码学证明VO对查询结果进行验证;当用户端验证查询结果的正确性后,通过智能合约向查询服务提供端支付查询订单的费用;
5)当用户端未在服务订单费用支付期限内完成支付时,查询服务提供端将查询信息发送给公证端,公证端通过区块链浏览器查询交易的具体信息,公证端验证查询结果并根据验证的查询结果正确性处理查询订单的付费问题。
3.根据权利要求2所述的查询服务结算方法,其特征在于,所述步骤3)中,查询服务提供端在确认用户端预存的余额充足的情况下,才为用户端提供查询服务;若用户端预存费用的余额不足,查询服务提供端将拒绝为用户端提供查询服务。
4.根据权利要求2所述的查询服务结算方法,其特征在于,所述步骤3)中,查询服务提供端构建的Merkle订单树中每个叶子节点的哈希值为一笔服务订单的哈希值由用户端公链地址哈希值/>订单金额哈希值以及订单编号哈希值组合后计算得出:
其中“|”是连接符,h(.)为哈希函数;查询服务提供端在本地构建好Merkle订单树后,通过调用智能合约的StoreRoot函数,将Merkle订单树的Merkle根存储到公链上。
5.根据权利要求2所述的查询服务结算方法,其特征在于,所述步骤4)中,用户端调用智能合约向查询服务提供端支付查询订单的费用具体包括以下步骤:
4.1)用户端向查询服务提供端查询支付订单的支付证明,其中多个支付订单使用一个支付证明实现批量结算;
4.2)查询服务提供端基于Merkle订单树产生用户端付费订单对应的支付证明,并将支付证明发送给用户端;
4.3)用户端收到支付证明并传输给智能合约,智能合约验证支付证明后从用户端预先存入的费用中扣除订单总费用并转给查询服务提供端账户。
6.根据权利要求2所述的查询服务结算方法,其特征在于,所述步骤4)中,在查询服务提供端中的未付费订单没有达到K笔前,查询服务提供端暂时不为用户提供支付证明,订单费用暂时不结算。
7.根据权利要求2所述的查询服务结算方法,其特征在于,查询服务提供端对发送给用户端的接收信息进行签名从而证明所述接收信息为该查询服务提供端发送,当用户端收到所述查询信息时也进行签名从而证明已接收所述接收信息。
8.根据权利要求2所述的查询服务结算方法,其特征在于,所述步骤5)具体包括以下步骤:
5.1)在用户端收到查询结果且在等待时间阈值T内未进行付费时,查询服务提供端将包含查询服务提供端和用户端签名的查询订单和查询结果的接收信息发送给公证端;
5.2)公证端验证用户端与查询服务提供端双方对接收信息的签名,解析接收信息得到查询结果和服务订单的具体信息;并通过对区块链浏览器进行查询,确认该笔订单确实没有付费,并且已经超过支付时间阈值T;
5.3)公证端基于查询结果密码学证明VO和查询结果确认查询结果的正确性,当查询结果为错误时,则不进行任何操作;当查询结果为正确时,公证端向查询服务提供端查询订单对应的支付证明,且查询服务提供端已经将接收信息发送给公证端,公证端解析后得到订单ID、金额和用户端公链地址;
5.4)公证端使用支付证明和订单信息调用智能合约的SettlePay函数,智能合约验证支付证明后从用户端预先存入的费用中扣除订单总费用并转给查询服务提供端账户。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410079947.XA CN117911112A (zh) | 2024-01-19 | 2024-01-19 | 一种优化智能合约Gas开销的查询服务结算方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410079947.XA CN117911112A (zh) | 2024-01-19 | 2024-01-19 | 一种优化智能合约Gas开销的查询服务结算方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117911112A true CN117911112A (zh) | 2024-04-19 |
Family
ID=90681663
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410079947.XA Pending CN117911112A (zh) | 2024-01-19 | 2024-01-19 | 一种优化智能合约Gas开销的查询服务结算方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117911112A (zh) |
-
2024
- 2024-01-19 CN CN202410079947.XA patent/CN117911112A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220084020A1 (en) | System and method for scaling blockchain networks with secure off-chain payment hubs | |
US11809608B2 (en) | Methods and systems for using digital signatures to create trusted digital asset transfers | |
JP7316392B2 (ja) | ブロックチェーンが実現される方法及びシステム | |
JP7543288B2 (ja) | ブロックチェーンネットワークを介した移転を実施するためのコンピュータで実施されるシステムおよび方法 | |
CN108009811B (zh) | 一种面向云际计算环境价值交换的跨链通信方法 | |
CN112020705B (zh) | 区块链随机计时器事务同步 | |
KR101837166B1 (ko) | 블록체인 내의 블록별로 발란스 데이터베이스를 관리하여 통화를 발행 및 지급 결제하는 방법과 이를 이용한 서버 | |
US6341273B1 (en) | Electronic coin stick with potential for future added value | |
CN110659906B (zh) | 票据信息处理方法、相关设备及介质 | |
CN108764870A (zh) | 基于区块链的交易处理方法及装置、电子设备 | |
US20200099518A1 (en) | Methods and systems for using digital signatures to create trusted digital asset transfers | |
Nissl et al. | Towards cross-blockchain smart contracts | |
KR101837167B1 (ko) | Utxo 기반 프로토콜에서 머클 트리 구조를 사용하여 통화를 발행 및 지급 결제하는 방법과 이를 이용한 서버 | |
CN108009818B (zh) | 一种基于分布式网络的线上支付方法及系统 | |
WO2020220740A1 (zh) | 基于区块链的发票创建方法和装置、电子设备 | |
WO2021203739A1 (zh) | 区块链回滚保险方法、设备和存储介质 | |
CN110910000A (zh) | 一种区块链资产管理方法和装置 | |
WO2018192931A1 (en) | Delivery versus payment mechanism | |
WO2020103573A1 (zh) | 一种基于区块链网络交易的签名方法、装置及终端设备 | |
CN111915308A (zh) | 一种区块链网络的交易处理方法及区块链网络 | |
CN115619395A (zh) | 基于区块链的数据处理方法及相关设备 | |
CN113034137A (zh) | 基于区块链的数据处理方法、装置及相关设备 | |
CN112740250A (zh) | 一种基于区块链的数字货币交易方法、装置及系统 | |
CN117911112A (zh) | 一种优化智能合约Gas开销的查询服务结算方法及系统 | |
CN112788555A (zh) | 跨运营商话费转移结算方法、装置及计算设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |