CN117333175A - 区块链系统、智能合约同步方法、计算机设备及存储介质 - Google Patents

区块链系统、智能合约同步方法、计算机设备及存储介质 Download PDF

Info

Publication number
CN117333175A
CN117333175A CN202210714143.3A CN202210714143A CN117333175A CN 117333175 A CN117333175 A CN 117333175A CN 202210714143 A CN202210714143 A CN 202210714143A CN 117333175 A CN117333175 A CN 117333175A
Authority
CN
China
Prior art keywords
contract
block
network node
target
intelligent
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
Application number
CN202210714143.3A
Other languages
English (en)
Inventor
崔嘉辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202210714143.3A priority Critical patent/CN117333175A/zh
Publication of CN117333175A publication Critical patent/CN117333175A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, 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/401Transaction verification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/12Accounting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3226Cryptographic 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 using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Technology Law (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请公开了一种区块链系统、智能合约同步方法、计算机设备及存储介质,属于区块链技术领域。本申请基于区块链系统中的第一网络节点分块智能合约得到多个合约块;基于多个合约块生成该智能合约的验证信息,并向第二网络节点发送;由第一网络节点响应于第二网络节点的合约同步请求,发送与其分支业务匹配的目标合约块,使得该第二网络节点基于该验证信息存储该目标合约块。上述技术方案中,通过将智能合约划分为多个合约块下发,大大节省了合约同步耗费的传输资源和存储资源,并通过提供可信任的验证信息,使得各个节点可以基于验证信息对接收到的合约块进行验证,从而有效保证了业务的私密性和安全性。

Description

区块链系统、智能合约同步方法、计算机设备及存储介质
技术领域
本申请涉及区块链技术领域,特别涉及一种区块链系统、智能合约同步方法、计算机设备及存储介质。
背景技术
区块链二层网络是一种针对区块链运算性能瓶颈问题提出的解决方案,通过将区块链系统划分为第一层网络和第二层网络,在第二层网络节点中处理交易,在第一层网络节点(也即是区块链主链)中对第二层网络节点返回的交易结果进行共识,减轻了区块链的运算负担。上述区块链系统中发生的交易可以通过智能合约实现。
目前,当智能合约运行在区块链二层网络中,通常由第二层网络节点从第一层网络节点中获取智能合约,以获取处理交易的逻辑。但是,目前的技术方案中下载完整的智能合约这一过程不仅极大地浪费了传输资源和存储资源,还会使得业务安全性受到很大影响。因此,亟需一种智能合约同步方法,能够有效节省传输资源和存储资源,提升业务的安全性。
发明内容
本申请实施例提供了一种区块链系统、智能合约同步方法、计算机设备及存储介质,能够有效节省传输资源和存储资源,提升业务的安全性。该技术方案如下:
一方面,提供了一种区块链系统,该系统包括一层网络和二层网络,该一层网络包括多个第一网络节点,该二层网络包括多个第二网络节点;
该第一网络节点,用于对智能合约进行分块,得到多个合约块,基于该多个合约块,生成该智能合约的验证信息,向该多个第二网络节点发送该验证信息,该合约块用于实现该智能合约对应业务中的至少一个分支业务;
该第一网络节点,还用于响应于任一该第二网络节点针对该智能合约的合约同步请求,向该第二网络节点发送目标合约块,该目标合约块是该多个合约块中与该第二网络节点的分支业务匹配的合约块;
该第二网络节点,用于基于该目标合约块和该智能合约的验证信息,在确定该目标合约块为该智能合约的合约块的情况下,存储该目标合约块。
一方面,提供了一种智能合约同步方法,由区块链系统中的第一网络节点执行,该区块链系统包括一层网络和二层网络,该一层网络包括多个该第一网络节点,该二层网络包括多个第二网络节点,该方法包括:
对智能合约进行分块,得到多个合约块,基于该多个合约块,生成该智能合约的验证信息,向该多个第二网络节点发送该验证信息,该合约块用于实现该智能合约对应业务中的至少一个分支业务;
响应于任一该第二网络节点针对该智能合约的合约同步请求,向该第二网络节点发送目标合约块,该目标合约块是该多个合约块中与该第二网络节点的分支业务匹配的合约块。
一方面,提供了一种智能合约同步方法,由区块链系统中的第二网络节点执行,该区块链系统包括一层网络和二层网络,该一层网络包括多个第一网络节点,该二层网络包括多个该第二网络节点,该方法包括:
向任一该第一网络节点发送针对智能合约的合约同步请求,该合约同步请求用于获取目标合约块,该目标合约块是该智能合约的多个合约块中与该第二网络节点的分支业务匹配的合约块,该智能合约的合约块用于实现该智能合约对应业务中的至少一个分支业务;
基于该智能合约的验证信息和该目标合约块,在确定该目标合约块为该智能合约的合约块的情况下,存储该目标合约块。
一方面,提供了一种智能合约同步方法,该方法包括:
对智能合约进行分块,得到多个合约块,基于该多个合约块,生成该智能合约的验证信息,发送该验证信息,该合约块用于实现该智能合约对应业务中的至少一个分支业务;
响应于针对该智能合约的合约同步请求,发送目标合约块,该目标合约块是该多个合约块中与该合约同步请求对应的分支业务匹配的合约块。
在一种可能实施方式中,该对智能合约进行分块,得到多个合约块,包括:
对该智能合约进行编译,确定该智能合约的语法信息,该语法信息指示该智能合约中用于实现该至少一个分支业务的代码起止范围;
基于该语法信息,对该智能合约进行分块,得到该多个合约块。
在一种可能实施方式中,该基于该多个合约块,生成该智能合约的验证信息,包括:
基于该多个合约块和该多个合约块在该智能合约中的分块顺序,生成该智能合约的默克尔树;
基于该默克尔树的默克尔根和该智能合约的合约标识,生成该智能合约的验证信息。
在一种可能实施方式中,该基于该默克尔树的默克尔根和该智能合约的合约标识,生成该智能合约的验证信息,包括:
基于验证密钥、该默克尔根和该智能合约的合约标识,生成该验证信息。
在一种可能实施方式中,该方法还包括:
发送该验证信息,以及,用于生成该验证信息的验证密钥,该验证密钥用于生成合约块对应的待验证信息。
在一种可能实施方式中,该响应于针对该智能合约的合约同步请求,发送目标合约块,包括:
基于该合约同步请求携带的节点标识,确定与发送该合约同步请求的节点的分支业务匹配的该目标合约块;
基于该目标合约块,获取该目标合约块对应的证明信息,该证明信息包括该目标合约块在该智能合约的默克尔树中的默克尔路径,该默克尔路径用于验证该目标合约块在该智能合约中的分块顺序;
该方法还包括:
发送该目标合约块和该证明信息。
在一种可能实施方式中,该方法还包括:
基于该合约同步请求携带的节点标识,确定发送该合约同步请求的节点针对该智能合约的权限信息,该权限信息指示该节点获取该智能合约的代码范围;
在该目标合约块超出该代码范围的情况下,向该节点返回该智能合约中该目标合约块对应的调用接口。
一方面,提供了一种智能合约同步方法,该方法包括:
发送针对智能合约的合约同步请求,该合约同步请求用于获取目标合约块,该目标合约块是该智能合约的多个合约块中与该合约同步请求对应的分支业务匹配的合约块,该智能合约的合约块用于实现该智能合约对应业务中的至少一个分支业务;
基于该智能合约的验证信息和该目标合约块,在确定该目标合约块为该智能合约的合约块的情况下,存储该目标合约块。
在一种可能实施方式中,该基于该智能合约的验证信息和该目标合约块,在确定该目标合约块为该智能合约的合约块的情况下,存储该目标合约块,包括:
基于该目标合约块的默克尔路径和该目标合约块,确定该目标合约块的待验证信息;
在该目标合约块的待验证信息和该智能合约的验证信息一致的情况下,确定该目标合约块为该智能合约的合约块,存储该目标合约块。
一方面,提供了一种计算机设备,该计算机设备包括一个或多个处理器和一个或多个存储器,该一个或多个存储器中存储有至少一条计算机程序,该计算机程序由该一个或多个处理器加载并执行以实现上述智能合约同步方法。
一方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条计算机程序,该计算机程序由处理器加载并执行以实现上述智能合约同步方法。
一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括程序代码,该程序代码存储在计算机可读存储介质中,计算机设备的处理器从计算机可读存储介质读取该程序代码,处理器执行该程序代码,使得该计算机设备执行上述智能合约同步方法。
通过上述技术方案,将智能合约划分为多个合约块下发,大大节省了合约同步耗费的传输资源和存储资源,并通过提供可信任的验证信息,使得各个节点可以基于验证信息对接收到的合约块进行验证,从而有效保证了业务的私密性和安全性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种区块链系统的结构示意图;
图2是本申请实施例提供的一种区块结构的示意图;
图3是本申请实施例提供的另一种区块链系统的结构示意图;
图4是本申请实施例提供的一种智能合约同步方法的流程图;
图5是本申请实施例提供的一种智能合约同步方法的流程图;
图6是本申请实施例提供的一种默克尔树的示意图;
图7是本申请实施例提供的一种智能合约同步方法的流程图;
图8是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
本申请中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。还应理解,尽管以下描述使用术语第一、第二等来描述各种元素,但这些元素不应受术语的限制。
这些术语只是用于将一个元素与另一个元素区别开。例如,在不脱离各种示例的范围的情况下,第一节点能够被称为第二节点,并且类似地,第二节点也能够被称为第一节点。第一节点和第二节点都可以是节点,并且在某些情况下,可以是单独且不同的节点。
其中,至少一个是指一个或一个以上,例如,至少一个节点可以是一个节点、两个节点、三个节点等任意大于等于一的整数个节点。而多个是指两个或者两个以上,例如,多个节点可以是两个节点、三个节点等任意大于等于二的整数个节点。
需要说明的是,本申请所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本申请中涉及到的智能合约都是在充分授权的情况下获取的。
为了便于理解本申请实施例的技术过程,下面对本申请实施例涉及的一些名词进行解释:
区块链(Blockchain):是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括基础服务以及智能合约等处理模块。其中,基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能。
平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。
联盟链(Alliance Chain):是指其共识过程受到预选的区块链节点控制的区块链。区块链账本可以将读取权限只限制于联盟成员内部,也可以对外提供读取能力。在联盟链中,只针对链内的区块链节点成员开放全部或部分功能,联盟链中的各个区块链节点可以基于需要定制读写权限、查询权限等。
共识机制(Consensus Mechanism):是区块链系统中实现不同节点之间建立信任、获取权益的数学算法。在区块链系统中,通过特殊节点或者全部节点的投票,可以在很短的时间内完成对交易的验证和确认。其中,对一笔交易,如果利益不相干的多个节点能够达成共识,就可以认为系统中的全部节点对此也能够达成共识。
本申请实施例涉及的区块链系统可以是由客户端、多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)通过网络通信的形式连接形成的分布式系统,参见图1,图1是本申请实施例提供的一种区块链系统的结构示意图,该区块链系统100由多个节点101(接入网络中的任意形式的计算设备,如服务器、用户终端)和客户端102形成,节点之间形成组成的点对点(P2P,Peer To Peer)网络,P2P协议是一个运行在传输控制协议(TCP,Transmission Control Protocol)协议之上的应用层协议。在上述区块链系统100中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。
参见图1示出的区块链系统中各节点的功能,涉及的功能包括:
1)路由,节点具有的基本功能,用于支持节点之间的通信。
2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
例如,应用实现的业务包括:
2.1)智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的交易资源转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。
2.2)共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链系统中的其他节点,其他节点验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,还可以向发起操作的节点发送确认。
3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。参见图2,图2是本申请实施例提供的一种区块结构(Block Structure)的示意图,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
基于上述对区块链系统100的介绍,本申请实施例提供了另一种区块链系统,参见图3,图3是本申请实施例提供的另一种区块链系统的结构示意图,该区块链系统300包括一层网络和二层网络。
其中,该一层网络包括多个第一网络节点301,该第一网络节点301参与区块链共识过程,能够将第二网络节点302返回的交易数据发送到区块链系统中的其他第一网络节点进行共识,使得其他第一网络节点能够验证交易数据来源以及完整性,从而在区块中记录验证成功的交易数据,实现区块链的构建,参见图中由区块1至区块n构成的区块链,其中,n为正整数。该第一网络节用于维护该区块链系统内的共识机制,以保证该区块链系统300的去中心化和安全。
其中,该二层网络包括多个第二网络节点302,该第二网络节点302不参与区块链共识过程,用于处理交易,以实现指定业务。可选地,该第二网络节点还能够提供交易数据的查询服务。可以理解地,该二层网络相当于在区块链系统的一层网络(也即是区块链主链)上进行的链下扩容,通过在第一网络节点中基于交易数据进行区块链的构建和节点共识,在第二网络节点中处理业务相关的交易,能够在保证去中心化和安全的基础上,有效提升区块链系统处理交易的速度和效率。
在本申请实施例中,该区块链系统中的业务能够基于智能合约实现。在一些实施例中,该多个第一网络节点基于完整的智能合约进行共识,再由任一该第一网络节点与第二网络节点进行智能合约的同步,使得该第二网络节点能够基于智能合约来实现其支持的业务。可以理解地,该智能合约的同步过程也即是第一网络节点向第二网络节点下发智能合约的过程。
在一些实施例中,该区块链系统300中的区块链是联盟链,该区块链的共识过程由预选的该多个第一网络节点控制。可选地,该第一网络节点基于该区块链系统中运行的智能合约对应的业务确定。例如,该智能合约用于实现电子发票业务,该区块链的一层网络是由负责电子发票申报业务的税务部门维护的共识网络,该一层网络中的多个第一网络节点则是税务部门运行的多个服务器或终端等计算机设备。相应地,该多个第二网络节点用于实现该智能合约对应业务包括的多个分支业务。例如,该区块链系统应用于电子发票业务,该电子发票业务包括开票和报销等多个分支业务,该二层网络则由向用户提供开票业务或报销业务的多个下游服务商节点或企业节点构成,该第二网络节点包括该下游服务商用于处理其分支业务的服务器或终端等计算机设备。由于智能合约对应的业务通常包括多个分支业务,且区块链系统中的第二网络节点通常仅提供部分的分支业务,因此,第一网络节点向第二网络节点发送完整的智能合约,以及,第二网络节点下载完整的智能合同,都对传输资源和存储资源造成了巨大浪费。
有鉴于此,本申请实施例提供了一种智能合约同步方法,能够应用于上述区块链系统300中,以有效节省传输资源和存储资源。图4是本申请实施例提供的一种智能合约同步方法的流程图,参见图4,该方法包括下述步骤401至步骤403。
401、第一网络节点对智能合约进行分块,得到多个合约块,基于该多个合约块,生成该智能合约的验证信息,向该多个第二网络节点发送该验证信息,该合约块用于实现该智能合约对应业务中的至少一个分支业务。
其中,该智能合约是部署在区块链系统的该第一网络节点中的代码,用于提供实现对应业务的交易处理逻辑。对智能合约对应业务和分支业务的说明参见上述对图3对应的区块链系统的介绍,在此不作赘述。
在本申请实施例中,该智能合约是基于区块链系统的一层网络中的多个第一网络节点共识之后存储在该第一网络节点中的,因此,该智能合约在该区块链系统中具有不可篡改和去中心化等可信任特性。
在本申请实施例中,该合约块用于提供分支业务对应的交易处理逻辑,该交易处理逻辑以代码的形式记录。
在一些实施例中,该第一网络节点以分支业务对应的代码片段为最小粒度对该智能合约进行分块,以得到该多个合约块。例如,该智能合约包括多个代码模块,分别用于实现开票和报销等多个分支业务,合约块1包括用于实现开票业务的代码片段,合约块2包括用于实现报销业务的代码片段。
在另一些实施例中,该第一网络节点以全局函数为最小粒度对该智能合约进行分块,以得到该多个合约块。在这种示例下,该合约块是智能合约中能够作为一个单元执行的代码片段,例如,该合约块是税率计算函数对应的代码片段。可选地,一个分支业务能够基于多个合约块实现,且,一个合约块能够用于实现多个不同的分支业务,本申请实施例对合约块的组合方式不做限定。
在本申请实施例中,该验证信息用于验证任一待验证的代码块是否为该智能合约的合约块。在一些实施例中,该验证信息基于该多个合约块的划分和分块顺序等不可篡改的信息生成,能够通过验证任一代码块是否与任一该合约块相同,以及,是否符合任一该合约块在该智能合约中的分块顺序,来实现针对代码的完整性和来源一致性的精准验证。
402、该第一网络节点响应于任一该第二网络节点针对该智能合约的合约同步请求,向该第二网络节点发送目标合约块,该目标合约块是该多个合约块中与该第二网络节点的分支业务匹配的合约块。
在一些实施例中,该合约同步请求指示该智能合约以及该第二网络节点的分支业务,以指示该第一网络节点确定该智能合约中与该分支业务匹配的该目标合约块,从而向该第二网络节点发送该目标合约块。
403、该第二网络节点基于该目标合约块和该智能合约的验证信息,在确定该目标合约块为该智能合约的合约块的情况下,存储该目标合约块。
其中,第二网络节点基于该智能合约的验证信息对接收到的该目标合约块进行验证,以确定接收到的代码片段是否为该智能合约的合约块,从而在保证代码完整性和代码来源与验证信息一致的情况下,存储该目标合约块,以完成智能合约的同步过程。
通过上述技术方案,在区块链系统的一层网络中,通过用于进行区块链共识的第一网络节点将智能合约划分为多个合约块下发,大大节省了合约同步耗费的传输资源和存储资源,并通过提供可信任的验证信息,使得各个节点可以基于验证信息对接收到的合约块进行验证,从而有效保证了业务的私密性和安全性。
接下来,通过一些实施例对本申请实施例的技术方案进行详细介绍。在本申请实施例提供的智能合约同步方法中,该第一网络节点用于执行智能合约的部署过程,从而在智能合约部署完毕之后,根据该第二网络节点的分支业务向其下发该智能合约的合约块,也即是,与第二网络节点进行智能合约的同步。图5是本申请实施例提供的一种智能合约同步方法的流程图,参见图5,该方法由上述区块链系统中的任一第一网络节点执行,该方法包括下述步骤501至步骤506。
501、第一网络节点基于智能合约,向区块链系统的一层网络发起共识,以在区块链中存储该智能合约。
其中,该智能合约、该区块链系统以及该一层网络的说明参见上述图3和图4对应的内容,在此不作赘述。
在一些实施例中,该第一网络节点向其他多个第一网络节点发送智能合约,以发起针对该智能合约的共识流程,在其他第一网络节点验证该智能合约的来源合法情况下,将该智能合约存储为该区块链系统中的区块,以完成该智能合约的在区块链上的存储过程,从而保证该智能合约在该区块链系统中的不可篡改和去中心化等可信任特性。
502、该第一网络节点对该智能合约进行编译,确定该智能合约的语法信息,该语法信息指示该智能合约中用于实现该至少一个分支业务的代码起止范围。
在一些实施例中,该语法信息根据对该智能合约进行编译得到的抽象语法树(Abstract Syntax Tree,AST)确定。其中,AST是源代码语法结构的树状表示,相当于是从语法结构出发对源代码进行理解的结果。对智能合约进行编译得到AST,相当于将由字符串构成的程序代码,翻译成存在嵌套关系的多个语法单元,其中,每个语法单元都指向用于实现某个操作所涉及的语法结构和语句。基于此,编译得到智能合约的AST,相当于以语句为基本粒度来理解该智能合约的交易处理逻辑,从而能够将该智能合约划分成用于实现不同操作的多个代码片段,也即是,多个语法单元。示例性地,智能合约的AST指示的多个语法单元对应该智能合约中的多个全局函数,每个全局函数都用于实现不同的操作,例如,获取发票编号、计算税率或计算金额等。
在一些实施例中,AST用于记录的每个语法单元在源代码中的代码起止范围,例如,用于标识语法单元在源代码中的开始行号和结尾行号。在这种示例下,该智能合约的AST能够记录其编译后划分出的各个全局函数对应的代码起止范围,基于该AST记录的代码起止范围,即可确定该智能合约的语法信息。例如,该智能合约code的语法信息表示为:“code={f1[1,10],f2[11,20],f3[21,80],f4[81,100]}”。
通过上述技术方案,基于智能合约的语法结构,以语句为基本粒度对源代码进行理解,从而能够针对不同的分支业务实现精细的代码分块,提升了分块的精确度和可信任度。
503、该第一网络节点基于该语法信息,对该智能合约进行分块,得到该多个合约块,该合约块用于实现该智能合约对应业务中的至少一个分支业务。
在本申请实施例中,该第一网络节点能够根据该智能合约对应业务中各个分支业务所涉及的操作,结合该语法信息指示的代码起止范围,对该智能合约进行分块,得到用于实现分支业务的多个代码片段,也即是,该多个合约块。
在一些实施例中,合约块包括至少一个全局函数对应的代码片段。在这种示例下,第一网络节点根据语法信息中指示的各个全局函数的代码起止范围,划分该智能合约得到多个代码片段,每个代码片段对应于一个全局函数。例如,划分得到的多个代码片段可以表示为:[TxA=code[1,10],TxB=code[11,20],TxB=code[21,80],TxD=code[81,100]];其中,TxA为函数f1对应的代码片段,TxB为函数f2对应的代码片段;TxC为函数f3对应的代码片段;TxD为函数f4对应的代码片段;相应地,合约块1可以是TxA,合约块2是TxB,合约块3是TxC;合约块4可以是TxD。
在一些实施例中,该第一网络节点为该智能合约多个合约块添加业务标识,该业务标识指示该合约块能够用于实现的分支业务。以该合约块对应于全局函数为例,该第一网络节点根据该语法信息包括的AST中对全局函数的调用语句,为该全局函数添加业务标识。例如,针对用于获取发票编号的函数1,根据调用该函数1的语句1指向的分支业务“开票”,以及,调用该函数1的语句2指向的分支业务“报销”,在函数1的业务标识中添加指示“开票”业务的标识“K”以及指示“报销”业务的标识“B”。
在一些实施例中,该第一网络节点可以根据各个合约块的业务标识,对该多个合约块进行组合,以得到粒度更大的合约块。例如,根据函数f1的业务标识“K”和“B”,以及,函数f2的业务标识“K”,将函数f1对应的代码片段TxA和函数f2对应的代码片段TxB组合得到合约块A。
通过上述技术方案,能够根据实现分支业务所涉及的操作,以多种粒度划分智能合约得到合约块,在保证智能合约的分块准确度的基础上,有效提升了分块的灵活度,使得本申请实施例提供的智能合约同步方法能够应用于不同的业务场景中。进一步地,通过上述技术方案得到了多个合约块,相当于为前端和后端提供了多个清晰、统一且便于调度的智能合约的业务接口,从而有效提升了基于智能合约的多个合约块来部署分支业务的效率。
504、该第一网络节点基于该多个合约块和该多个合约块在该智能合约中的分块顺序,生成该智能合约的默克尔树。
在本申请实施例中,该第一网络节点以该多个合约块(也即是智能合约的代码片段)为基础数据,基于该多个合约块在智能合约中的分块顺序,构建该智能合约的默克尔树(Merkle Tree)。
在一些实施例中,该多个合约块的分块顺序基于该多个合约块的代码起止范围在该智能合约中的顺序确定,例如,根据四个合约块TxA、TxB、TxC和TxD的代码起止范围:[TxA=code[1,10],TxB=code[11,20],TxB=code[21,80],TxD=code[81,100]],可以确定该四个合约块的分块顺序为TxA—TxB—TxC—TxD。在另一些实施例中,根据该智能合约的业务流转规则,基于该合约块对应的分支业务在该智能合约对应业务中的执行阶段,确定该多个合约块的分块顺序,例如,四个合约块TxA、TxB、TxC和TxD分别对应开票、审批、验收和入账四个顺序执行阶段,则按照电子发票业务的流转规则(申领人开票—税务机构审批—报销企业验收—入账),可以确定该四个合约块的分块顺序为TxA—TxB—TxC—TxD。
在一些实施例中,该第一网络节点基于该多个合约块的哈希值,确定该默克尔树的多个叶子节点,将该叶子节点两两进行哈希运算,得到倒数第二层的中间节点,以此类推,直到确定该默克尔树的根节点值,也即是,该默克尔树的根(Root)。在一些实施例中,该第一网络节点按照先左子树后右子树的构造方式,基于该多个合约块的分块顺序,依次将合约块的哈希值确定为默克尔树的叶子节点的值。示例性地,图6是本申请实施例提供的一种默克尔树的示意图,参见图6,其中,分块得到了智能合约的4个合约块:TxA、TxB、TxB和TxD,分块顺序为:TxA—TxB—TxC—TxD;该默克尔树的4个叶子节点HA、HB、HC和HD的值,分别为该4个合约块的哈希值:Hash(TxA)、Hash(TxB)、Hash(TxC)和Hash(TxD);该中间节点HAB的值为对Hash(TxA)和Hash(TxB)进行哈希运算得到的哈希值Hash(HA+HB),该中间节点HCD的值为对Hash(TxC)和Hash(TxD)进行哈希运算得到的哈希值Hash(HC+HD);该默克尔树的默克尔根HABCD为对该中间节点HAB和HCD的值进行哈希运算得到的哈希值Hash(HAB+HCD)。
需要说明的是,在上述示例中,以该默克尔树为二叉树进行说明,在另一些实施例中,该默克尔树可以是多叉树,也即是,该默克尔树的中间节点可以基于两个以上的合约块的哈希值确定,本申请实施例对此不作限定。
在一些实施例中,该第一网络节点将该智能合约的默克尔树存储到区块链系统中,以使该智能合约的分块过程透明、不可篡改且可追溯,以提升智能合约的合约块的可信任度。
505、该第一网络节点基于该默克尔树的默克尔根和该智能合约的合约标识,生成该智能合约的验证信息。
在一些实施例中,该第一网络节点基于该默克尔根和该智能合约的合约标识,即可生成唯一指示该智能合约的验证信息。
在一些实施例中,该第一网络节点能够基于验证密钥对该默克尔根和该智能合约的合约标识进行加密处理,从而生成能够带来更高的安全性和私密性的验证信息。示例性地,智能合约的验证信息可以通过下述公式(1)得到。
ID=F(name,root) (1)
公式(1)中,智能合约的验证信息ID由验证密钥F对该智能合约的合约标识name和该智能合约的默克尔根root进行加密处理得到。
在另一些实施例中,该第一网络节点能够基于任一种与第二网络节点达成共识的映射算法,基于该默克尔根和该智能合约的合约标识,映射得到该智能合约的验证信息,从而降低第二网络节点基于验证信息进行验证的数据处理难度,以节省计算资源,本申请实施例对生成该验证信息的方式不做限定。
506、该第一网络节点向多个第二网络节点发送该验证信息。
在本申请实施例中,该第一网络节点通过向该多个第二网络节点发送该验证信息,使得该多个第二网络节点能够基于该验证信息同步该智能合约。
在一些实施例中,该第一网络节点还向该多个第二网络节点发送用于生成该验证信息的验证密钥,以使该多个第二网络节点能够基于该验证密钥对接收到的任意合约块进行验证,该验证密钥用于生成合约块对应的待验证信息。
在一些实施例中,该第一网络节点向该多个第二网络节点发送智能合约的合约标识。可选地,该第一网络节点在该智能合约基于多个第一网络节点共识并保存在该第一网络节点中的情况下(也即是执行完步骤501),即向该多个第二网络节点发送该智能合约的合约标识。可选地,该第一网络节点在向该多个第二网络节点发送该智能合约的验证信息时(也即是执行本步骤506时),向该多个第二网络节点发送智能合约的合约标识,本申请实施例对此不作限定。
在一些实施例中,该第一网络节点在执行完步骤505之后,运行该智能合约,以得到该智能合约的初始状态信息,并将该初始状态信息存储至区块链系统中。可选地,该初始状态信息包括该智能合约声明的多个变量以及该多个变量的初始状态。通过存储该智能合约的初始状态信息,能够进一步保证该智能合约的安全性和确定性。
通过上述技术方案,在区块链系统的一层网络中,通过用于进行区块链共识的第一网络节点对智能合约进行分块并生成可信任的验证信息,针对区块链系统的二层网络中各个第二网络节点对应的分支业务,下发对应的目标合约块大大节省了合约同步耗费的传输资源和存储资源。第二网络节点基于验证信息即可对接收到的合约块进行验证,有效保证了业务的私密性和安全性。进一步地,能够基于多个分支业务的实现,以多种粒度划分智能合约得到合约块,保证智能合约的分块准确度,提升智能合约分块的灵活度,并提升基于智能合约来部署多个分支业务的效率。
在介绍完该第一网络节点部署执行智能合约的过程后,下面对该第一网络节点和该第二网络节点之间进行智能合约同步的过程进行详细说明,图7是本申请实施例提供的一种智能合约同步方法的流程图,参见图7,该应用于上述区块链系统中,基于区块链系统中的第一网络节点和第二网络节点之间的交互过程实现,该方法包括下述步骤701至步骤706。
701、第二网络节点向任一第一网络节点发送针对智能合约的合约同步请求。
其中,该合约同步请求指示该第一网络节点向该第二网络节点发送目标合约块,该目标合约块是该智能合约的多个合约块中与该第二网络节点的分支业务匹配的合约块,该智能合约的合约块用于实现该智能合约对应业务中的至少一个分支业务。本申请实施例中的智能合约和合约块参见上述图3、图4和图5对应的内容,在此不做赘述。
在一些实施例中,该合约同步请求指示该智能合约以及该第二网络节点的分支业务,以指示该第一网络节点向该第二网络节点下发该智能合约中与该分支业务匹配的该目标合约块。可选地,该合约同步请求携带该智能合约的合约标识,以指示该智能合约,该合约同步请求携带该第二网络节点的节点标识,以指示该第二网络节点的分支业务。其中,第二网络节点获取该智能合约的合约标识的过程,参见步骤506中的说明,在此不作赘述。
在一些实施例中,该第二网络节点响应于接收到该第一网络节点发送的该智能合约的验证信息,在确定该智能合约用于实现自身的分支业务的情况下,向任意该第一网络节点发送该合约同步请求,以同步该智能合约。在另一些实施例中,该第二网络节点每间隔目标时长,向任意第一网络节点发送针对该智能合约的合约同步请求,根据第一网络节点返回的消息,确定该智能合约是否发生更新,从而及时地同步最新的该智能合约。
在一些实施例中,该第二网络节点向目标第一网络节点发送该合约同步请求。可选地,该目标第一网络节点是向该第二网络节点发送该智能合约的验证信息的第一网络节点。可选地,该目标第一网络节点是与该第二网络节点处于同一网络区域的第一网络节点,例如,处于同一城域网。
702、该第一网络节点响应于该第二网络节点针对智能合约的合约同步请求,基于该合约同步请求携带的节点标识,确定与该第二网络节点的分支业务匹配的该目标合约块。
其中,该第二网络节点的节点标识指示该第二网络节点的分支业务。
在一些实施例中,该节点标识与合约块的业务标识之间存在对应关系,该业务标识指示合约块能够用于实现的分支业务,该业务标识的说明参见步骤503,在此不作赘述。基于此,该第一网络节点基于该节点标识和该智能合约多个合约块的业务标识,即可确定该目标合约块。
在一些实施例中,该节点标识与该业务标识对应,例如,对应于步骤503中对业务标识的说明,节点标识“K”指示“开票”业务,节点标识“B”指示“报销”业务。在这种示例下,该第一网络节点基于该节点标识,查询多个合约块的业务标识,即可确定出该目标合约块。
在另一些实施例中,该第一网络节点中存储有各个分支业务与该智能合约的合约块之间的映射表,从而基于节点标识查询该映射表,即可确定与该第二网络节点的分支业务匹配的该目标合约块。
在一些实施例中,该目标合约块包括用于实现该分支业务的至少一个合约块,本申请实施例对此不作限定。
703、第一网络节点基于该目标合约块,获取该目标合约块对应的证明信息,该证明信息包括该目标合约块在该智能合约的默克尔树中的默克尔路径,该默克尔路径用于验证该目标合约块在该智能合约中的分块顺序。
其中,对该分块顺序的说明以及该默克尔树的生成原理参考上述步骤504,在此不作赘述。
在一些实施例中,该第一网络节点基于该目标合约块包括的至少一个合约块,查询该智能合约的默克尔树,以得到该目标合约块在该默克尔树中的默克尔路径。以该目标合约块包括一个合约块TxC为例,参考图6中的默克尔树,该合约块TxC的默克尔路径是该合约块TxC的哈希值对应的叶子节点HC在该智能合约的默克尔树中的节点路径“[HAB,HD]”,按照生成默克尔树的原理,基于该“[HAB,HD]”即可用于验证该叶子节点HA是否存在,且,在该默克尔树中的位置是否正确,从而验证该目标合约块在该智能合约中的分块顺序是否正确。该目标合约块包括多个合约块的情况与确定该合约块TxA的默克尔路径的过程同理,在此不作赘述。需要说明的是,该默克尔路径指示用于验证的多个节点以及该多个节点对应的哈希值,例如,默克尔路径[HAB,HD]指示HAB对应的哈希值为Hash(HA+HB),HD对应的哈希值为Hash(TxD)。
通过上述技术方案,基于默克尔树的可分块验证特性,在保证分支业务和目标合约块之间的匹配无误的基础上,针对任意粒度的目标合约块,都能提供安全可信任的验证方式,从而保证了分块下发智能合约的安全性可靠性。
在一些实施例中,第一网络节点基于该合约同步请求携带的节点标识,确定该第二网络节点针对该智能合约的权限信息,该权限信息指示该第二网络节点获取该智能合约的代码范围。基于此,在该目标合约块超出该代码范围的情况下,向该第二网络节点返回针对该智能合约中该目标合约块对应的调用接口。示例性地,该权限信息指示该第二网络节点能够获取该智能合约中函数4对应的代码起止范围:code[81,100];在目标合约块包括该智能合约中函数1和函数4的情况下,由于该第二网络节点没有获取该函数1对应的代码片段code[1,10]的权限,也即是,该目标合约块超出该权限信息指示的代码范围。该第一网络节点基于该函数1的代码,生成通过该目标合约块调用该函数1的调用接口,将该目标合约块中该代码范围以外的代码以调用接口的形式替换,从而在该目标合约块中不包括函数1原始代码的情况下,也可调用该函数1实现对应操作。
通过上述技术方案,基于权限信息来处理目标合约块,能够进一步维护代码的私密性,从而保证智能合约的安全性。
704、该第一网络节点向该第二网络节点发送该目标合约块和该证明信息。
705、该第二网络节点基于该目标合约块的默克尔路径和该目标合约块,确定该目标合约块的待验证信息。
在本申请实施例中,该第二网络节点按照生成默克尔树的原理,对该目标合约块进行哈希运算得到目标哈希值,进而基于该目标哈希值和该默克尔路径包括的多个哈希值,按照默克尔路径指示的节点顺序,生成目标合约块对应的待验证默克尔根,该待验证默克尔根即可用于验证该目标合约块是否为该智能合约的合约块。
在一些实施例中,该第二网络节点基于用于生成智能合约的验证信息的验证密钥,对该智能合约的合约标识和该待验证默克尔根进行加密处理,生成该目标合约块的待验证信息。该验证密钥和该合约标识的获取过程参考步骤506,在此不作赘述。示例性地,该待验证信息可以通过下述公式(2)得到。
IDx=F(name,rootx) (2)
上述公式(2)中,该目标合约块的待验证信息IDx由验证密钥F对该智能合约的合约标识name和该待验证默克尔根rootx进行加密处理得到。
706、该第二网络节点在该目标合约块的待验证信息和该智能合约的验证信息一致的情况下,确定该目标合约块为该智能合约的合约块,存储该目标合约块。
在一些实施例中,该第二网络节点基于临时存储空间缓存该目标合约块和相关信息,以执行上述步骤705,在该目标合约块的待验证信息和该智能合约的验证信息一致的情况下,将该目标合约块持久化至内存中,以基于该目标合约块实现其分支业务。示例性地,该第二网络节点基于上述公式(2)计算得到的待验证信息IDx和该智能合约的验证信息ID进行对比,在IDx=ID的情况下,将该目标合约块持久化至内存中。其中,该ID的计算过程参考公式(1),在此不做赘述。
通过上述技术方案,针对区块链系统的二层网络中各个第二网络节点对应的分支业务,下发对应的目标合约块,大大节省了合约同步耗费的传输资源和存储资源。各个第二网络节点基于验证信息即可对接收到的合约块进行验证,有效保证了业务的私密性和安全性。进一步地,该第二网络节点能够基于安全可靠的方式,基于轻量级的验证信息和证明信息即可对该目标合约块进行验证,节省了计算资源的同时,保证了合约同步过程的安全性。并且,以合约块为单位来同步智能合约,实现了多个分支业务之间的代码隔离,在大大节省了传输资源和存储资源的基础上,有效保证的业务之间的私密性。
本申请实施例提供了另一种智能合约同步方法,能够由计算机设备执行,该智能合约同步方法包括下述步骤A和步骤B。
步骤A、计算机设备对智能合约进行分块,得到多个合约块,基于该多个合约块,生成该智能合约的验证信息,发送该验证信息,该合约块用于实现该智能合约对应业务中的至少一个分支业务。
在一些实施例中,该计算机设备对该智能合约进行编译,确定该智能合约的语法信息,该语法信息指示该智能合约中用于实现该至少一个分支业务的代码起止范围;基于该语法信息,对该智能合约进行分块,得到该多个合约块。
在一些实施例中,该计算机设备基于该多个合约块和该多个合约块在该智能合约中的分块顺序,生成该智能合约的默克尔树;基于该默克尔树的默克尔根和该智能合约的合约标识,生成该智能合约的验证信息。
在一些实施例中,该计算机设备基于验证密钥、该默克尔根和该智能合约的合约标识,生成该验证信息。
在一些实施例中,该计算机设备发送该验证信息,以及,用于生成该验证信息的验证密钥,该验证密钥用于生成合约块对应的待验证信息。
步骤B、该计算机设备响应于针对该智能合约的合约同步请求,发送目标合约块,该目标合约块是该多个合约块中与该合约同步请求对应的分支业务匹配的合约块。
在一些实施例中,该计算机设备基于该合约同步请求携带的节点标识,确定与发送该合约同步请求的节点的分支业务匹配的该目标合约块;基于该目标合约块,获取该目标合约块对应的证明信息,该证明信息包括该目标合约块在该智能合约的默克尔树中的默克尔路径,该默克尔路径用于验证该目标合约块在该智能合约中的分块顺序。
在一些实施例中,该计算机设备在发送该目标合约块时,发送该证明信息。
在一些实施例中,该计算机设备基于该合约同步请求携带的节点标识,确定发送该合约同步请求的节点针对该智能合约的权限信息,该权限信息指示该节点获取该智能合约的代码范围;在该目标合约块超出该代码范围的情况下,向该节点返回该智能合约中该目标合约块对应的调用接口。
上述步骤A和步骤B的实现原理参考上述图3至7对应的实施例,在此不作赘述。
通过上述技术方案,将智能合约划分为多个合约块下发,大大节省了合约同步耗费的传输资源和存储资源,并通过提供可信任的验证信息,使得各个节点可以基于验证信息对接收到的合约块进行验证,从而有效保证了业务的私密性和安全性。
本申请实施例提供了又一种智能合约同步方法,能够由计算机设备执行,该智能合约同步方法包括下述步骤1和步骤2。
步骤1、计算机设备发送针对智能合约的合约同步请求,该合约同步请求用于获取目标合约块,该目标合约块是该智能合约的多个合约块中与该合约同步请求对应的分支业务匹配的合约块,该智能合约的合约块用于实现该智能合约对应业务中的至少一个分支业务。
步骤2、该计算机设备基于该智能合约的验证信息和该目标合约块,在确定该目标合约块为该智能合约的合约块的情况下,存储该目标合约块。
在一些实施例中,该计算机设备基于该目标合约块的默克尔路径和该目标合约块,确定该目标合约块的待验证信息;在该目标合约块的待验证信息和该智能合约的验证信息一致的情况下,确定该目标合约块为该智能合约的合约块,存储该目标合约块。
上述步骤1和步骤2的实现原理参考上述图3至7对应的实施例,在此不作赘述。
通过上述技术方案,将智能合约划分为多个合约块下发,大大节省了合约同步耗费的传输资源和存储资源,并通过提供可信任的验证信息,使得各个节点可以基于验证信息对接收到的合约块进行验证,从而有效保证了业务的私密性和安全性。
本申请实施例提供了一种计算机设备,能够实现为上述第一网络节点、第二网络节点或计算机设备,以实现上述各个实施例提供的智能合约同步方法,下面对该计算机设备的结构进行介绍:
图8是本申请实施例提供的一种计算机设备的结构示意图,该计算机设备800可因配置或性能不同而产生比较大的差异,可以包括一个或多个处理器(Central ProcessingUnits,CPU)801和一个或多个的存储器802,其中,该一个或多个存储器802中存储有至少一条计算机程序,该至少一条计算机程序由该一个或多个处理器801加载并执行以实现上述各个方法实施例提供的方法。当然,该计算机设备800还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该计算机设备800还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括计算机程序的存储器,上述计算机程序可由处理器执行以完成上述实施例中的智能合约同步方法。例如,该计算机可读存储介质可以是只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括程序代码,该程序代码存储在计算机可读存储介质中,计算机设备的处理器从计算机可读存储介质读取该程序代码,处理器执行该程序代码,使得该计算机设备执行上述智能合约同步方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
上述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (20)

1.一种区块链系统,其特征在于,所述系统包括一层网络和二层网络,所述一层网络包括多个第一网络节点,所述二层网络包括多个第二网络节点;
所述第一网络节点,用于对智能合约进行分块,得到多个合约块,基于所述多个合约块,生成所述智能合约的验证信息,向所述多个第二网络节点发送所述验证信息,所述合约块用于实现所述智能合约对应业务中的至少一个分支业务;
所述第一网络节点,还用于响应于任一所述第二网络节点针对所述智能合约的合约同步请求,向所述第二网络节点发送目标合约块,所述目标合约块是所述多个合约块中与所述第二网络节点的分支业务匹配的合约块;
所述第二网络节点,用于基于所述目标合约块和所述智能合约的验证信息,在确定所述目标合约块为所述智能合约的合约块的情况下,存储所述目标合约块。
2.根据权利要求1所述的系统,其特征在于,所述第一网络节点,用于:
对所述智能合约进行编译,确定所述智能合约的语法信息,所述语法信息指示所述智能合约中用于实现所述至少一个分支业务的代码起止范围;
基于所述语法信息,对所述智能合约进行分块,得到所述多个合约块。
3.根据权利要求1所述的系统,其特征在于,所述第一网络节点,用于:
基于所述多个合约块和所述多个合约块在所述智能合约中的分块顺序,生成所述智能合约的默克尔树;
基于所述默克尔树的默克尔根和所述智能合约的合约标识,生成所述智能合约的验证信息。
4.根据权利要求3所述的系统,其特征在于,所述第一网络节点,用于:基于验证密钥、所述默克尔根和所述智能合约的合约标识,生成所述验证信息。
5.根据权利要求3或4所述的系统,其特征在于,所述第一网络节点,还用于:
向所述多个第二网络节点发送所述验证信息,以及,用于生成所述验证信息的验证密钥,所述验证密钥用于生成合约块对应的待验证信息。
6.根据权利要求1所述的系统,其特征在于,所述第一网络节点,用于:
基于所述合约同步请求携带的节点标识,确定与所述第二网络节点的分支业务匹配的所述目标合约块;
基于所述目标合约块,获取所述目标合约块对应的证明信息,所述证明信息包括所述目标合约块在所述智能合约的默克尔树中的默克尔路径,所述默克尔路径用于验证所述目标合约块在所述智能合约中的分块顺序;
所述第一网络节点,还用于向所述第二网络节点发送所述目标合约块和所述证明信息。
7.根据权利要求6所述的系统,其特征在于,所述第二网络节点,用于:
基于所述目标合约块的默克尔路径和所述目标合约块,确定所述目标合约块的待验证信息;
在所述目标合约块的待验证信息和所述智能合约的验证信息一致的情况下,确定所述目标合约块为所述智能合约的合约块,存储所述目标合约块。
8.根据权利要求1所述的系统,其特征在于,所述第一网络节点还用于:
基于所述合约同步请求携带的节点标识,确定所述第二网络节点针对所述智能合约的权限信息,所述权限信息指示所述第二网络节点获取所述智能合约的代码范围;
在所述目标合约块超出所述代码范围的情况下,向所述第二网络节点返回所述智能合约中所述目标合约块对应的调用接口。
9.一种智能合约同步方法,其特征在于,由区块链系统中的第一网络节点执行,所述区块链系统包括一层网络和二层网络,所述一层网络包括多个所述第一网络节点,所述二层网络包括多个第二网络节点,所述方法包括:
对智能合约进行分块,得到多个合约块,基于所述多个合约块,生成所述智能合约的验证信息,向所述多个第二网络节点发送所述验证信息,所述合约块用于实现所述智能合约对应业务中的至少一个分支业务;
响应于任一所述第二网络节点针对所述智能合约的合约同步请求,向所述第二网络节点发送目标合约块,所述目标合约块是所述多个合约块中与所述第二网络节点的分支业务匹配的合约块。
10.根据权利要求9所述的方法,其特征在于,所述对智能合约进行分块,得到多个合约块,包括:
对所述智能合约进行编译,确定所述智能合约的语法信息,所述语法信息指示所述智能合约中用于实现所述至少一个分支业务的代码起止范围;
基于所述语法信息,对所述智能合约进行分块,得到所述多个合约块。
11.根据权利要求9所述的方法,其特征在于,所述基于所述多个合约块,生成所述智能合约的验证信息,包括:
基于所述多个合约块和所述多个合约块在所述智能合约中的分块顺序,生成所述智能合约的默克尔树;
基于所述默克尔树的默克尔根和所述智能合约的合约标识,生成所述智能合约的验证信息。
12.根据权利要求11所述的方法,其特征在于,所述基于所述默克尔树的默克尔根和所述智能合约的合约标识,生成所述智能合约的验证信息,包括:
基于验证密钥、所述默克尔根和所述智能合约的合约标识,生成所述验证信息。
13.根据权利要求11或12所述的方法,其特征在于,所述方法还包括:
向所述多个第二网络节点发送所述验证信息,以及,用于生成所述验证信息的验证密钥,所述验证密钥用于生成合约块对应的待验证信息。
14.根据权利要求9所述的方法,其特征在于,所述响应于任一所述第二网络节点针对所述智能合约的合约同步请求,向所述第二网络节点发送目标合约块,包括:
基于所述合约同步请求携带的节点标识,确定与所述第二网络节点的分支业务匹配的所述目标合约块;
基于所述目标合约块,获取所述目标合约块对应的证明信息,所述证明信息包括所述目标合约块在所述智能合约的默克尔树中的默克尔路径,所述默克尔路径用于验证所述目标合约块在所述智能合约中的分块顺序;
所述方法还包括:
向所述第二网络节点发送所述目标合约块和所述证明信息。
15.一种智能合约同步方法,其特征在于,由区块链系统中的第二网络节点执行,所述区块链系统包括一层网络和二层网络,所述一层网络包括多个第一网络节点,所述二层网络包括多个所述第二网络节点,所述方法包括:
向任一所述第一网络节点发送针对智能合约的合约同步请求,所述合约同步请求用于获取目标合约块,所述目标合约块是所述智能合约的多个合约块中与所述第二网络节点的分支业务匹配的合约块,所述智能合约的合约块用于实现所述智能合约对应业务中的至少一个分支业务;
基于所述智能合约的验证信息和所述目标合约块,在确定所述目标合约块为所述智能合约的合约块的情况下,存储所述目标合约块。
16.一种智能合约同步方法,其特征在于,所述方法包括:
对智能合约进行分块,得到多个合约块,基于所述多个合约块,生成所述智能合约的验证信息,发送所述验证信息,所述合约块用于实现所述智能合约对应业务中的至少一个分支业务;
响应于针对所述智能合约的合约同步请求,发送目标合约块,所述目标合约块是所述多个合约块中与所述合约同步请求对应的分支业务匹配的合约块。
17.一种智能合约同步方法,其特征在于,所述方法包括:
发送针对智能合约的合约同步请求,所述合约同步请求用于获取目标合约块,所述目标合约块是所述智能合约的多个合约块中与所述合约同步请求对应的分支业务匹配的合约块,所述智能合约的合约块用于实现所述智能合约对应业务中的至少一个分支业务;
基于所述智能合约的验证信息和所述目标合约块,在确定所述目标合约块为所述智能合约的合约块的情况下,存储所述目标合约块。
18.一种计算机设备,其特征在于,所述计算机设备包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条计算机程序,所述计算机程序由所述一个或多个处理器加载并执行以实现如权利要求16或权利要求17所述的智能合约同步方法。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条计算机程序,所述计算机程序由处理器加载并执行以实现如权利要求16或权利要求17所述的智能合约同步方法。
20.一种计算机程序产品,其特征在于,所述计算机程序产品包括程序代码,所述程序代码存储在计算机可读存储介质中,计算机设备的处理器从计算机可读存储介质读取所述程序代码,所述处理器执行所述程序代码,使得所述计算机设备执行如权利要求16或权利要求17所述的智能合约同步方法。
CN202210714143.3A 2022-06-22 2022-06-22 区块链系统、智能合约同步方法、计算机设备及存储介质 Pending CN117333175A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210714143.3A CN117333175A (zh) 2022-06-22 2022-06-22 区块链系统、智能合约同步方法、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210714143.3A CN117333175A (zh) 2022-06-22 2022-06-22 区块链系统、智能合约同步方法、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN117333175A true CN117333175A (zh) 2024-01-02

Family

ID=89292053

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210714143.3A Pending CN117333175A (zh) 2022-06-22 2022-06-22 区块链系统、智能合约同步方法、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN117333175A (zh)

Similar Documents

Publication Publication Date Title
TWI724391B (zh) 基於區塊鏈的節點管理方法和裝置
US11139979B2 (en) Primary and secondary blockchain device
CN110912707B (zh) 基于区块链的数字证书处理方法、装置、设备及存储介质
US11336455B2 (en) Consensus protocol for blockchain DAG structure
CN110933163B (zh) 区块链合约部署方法、装置、设备以及存储介质
CN111144881A (zh) 对资产转移数据的选择性访问
CN112805694A (zh) 用于改进的实施区块链的智能合约的系统和方法
US20230316273A1 (en) Data processing method and apparatus, computer device, and storage medium
CN110598434B (zh) 基于区块链网络的房屋信息处理方法、装置、电子设备及存储介质
US20240022571A1 (en) Blockchain folding
CN115769241A (zh) 针对经许可的区块链的隐私保护架构
JP2023520859A (ja) ブロックチェーンのより高速なビュー変更
JP2023524715A (ja) ネットワーク間の識別情報プロビジョニング
CN111340483A (zh) 一种基于区块链的数据管理方法及相关设备
KR20190078668A (ko) 검증가능한 추첨을 위한 장치 및 방법
CN111698198B (zh) 秘密生成和份额分发
JP2023530594A (ja) 分散型データベースにおける許可されたイベント処理
CN115705571A (zh) 保护可审计的帐户的隐私
CN116975901A (zh) 基于区块链的身份验证方法、装置、设备、介质及产品
CN117333175A (zh) 区块链系统、智能合约同步方法、计算机设备及存储介质
JP2023551160A (ja) Dltネットワークの自動化されたマージ
Pintaldi Implementation of a Blockchain-based Distributed PKI for IoT using Emercoin NVS and TPM 2.0
US20050120207A1 (en) Method and system for enabling PKI in a bandwidth restricted environment
JP2023520634A (ja) 文脈完全性の維持
CN117716349A (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