智能合约校验方法及装置和电子设备制造方法及图纸

技术编号:28872152 阅读:14 留言:0更新日期:2021-06-15 23:05
本说明书实施例提供一种智能合约校验方法及装置和电子设备,数据存储节点将客户端发起的目标交易广播给任意一个智能合约节点;所述智能合约节点响应所述目标交易,预执行所述目标交易对应的目标智能合约后,向所述数据存储节点返回预执行结果;所述数据存储节点将所述预执行结果发送给其它的智能合约节点;所述其它的智能合约节点根据所述预执行结果模拟执行所述目标智能合约,将模拟执行目标智能合约后得到的模拟预执行结果返回给所述数据存储节点;所述数据存储节点在确定所述模拟预执行结果与所述预执行结果一致时,确定所述预执行结果校验通过。

【技术实现步骤摘要】
智能合约校验方法及装置和电子设备
本说明书实施例涉及区块链
,尤其涉及一种智能合约校验方法及装置和电子设备。
技术介绍
区块链技术,也被称之为分布式账本技术,是一种由若干台计算设备共同参与“记账”,共同维护一份完整的分布式数据库的新兴技术。由于区块链技术具有去中心化、公开透明、每台计算设备可以参与数据库记录、并且各计算设备之间可以快速的进行数据同步的特性,使得区块链技术在众多的领域中广泛的进行应用。
技术实现思路
本说明书实施例提供的一种智能合约校验方法及装置和电子设备:根据本说明书实施例的第一方面,提供一种智能合约校验方法,所述方法包括:数据存储节点将客户端发起的目标交易广播给任意一个智能合约节点;所述智能合约节点响应所述目标交易,预执行所述目标交易对应的目标智能合约后,向所述数据存储节点返回预执行结果;所述数据存储节点将所述预执行结果发送给其它的智能合约节点;所述其它的智能合约节点根据所述预执行结果模拟执行所述目标智能合约,将模拟执行目标智能合约后得到的模拟预执行结果返回给所述数据存储节点;所述数据存储节点在确定所述模拟预执行结果与所述预执行结果一致时,确定预执行结果校验通过。根据本说明书实施例的第二方面,提供一种智能合约校验方法,所述方法包括:智能合约节点接收数据存储节点发送的预执行结果;其中,所述预执行结果为其它智能合约节点响应客户端发起的目标交易,预执行所述目标交易对应目标智能合约后得到的结果;根据本说明书实施例的第三方面,一种智能合约校验方法,所述方法包括:数据存储节点接收客户端发起的目标交易;将所述目标交易广播给任意一个智能合约节点;接收所述智能合约节点预执行所述目标交易对应的目标智能合约后返回的预执行结果;将所述预执行结果发送给其它智能合约节点,以使其它智能合约节点模拟执行目标智能合约;在所述其它节点返回的模拟执行结果与所述预执行结果一致时,确定所述预执行结果校验通过。根据本说明书实施例的第四方面,一种智能合约校验装置,所述装置包括:接收单元,智能合约节点接收数据存储节点发送的预执行结果;其中,所述预执行结果为其它智能合约节点响应客户端发起的目标交易,预执行所述目标交易对应目标智能合约后得到的结果;执行单元,根据所述预执行结果模拟执行所述目标智能合约,将模拟执行目标智能合约后得到的模拟预执行结果返回给所述数据存储节点;以供所述数据存储节点进行校验。根据本说明书实施例的第五方面,一种智能合约校验装置,所述装置包括:第一接收单元,数据存储节点接收客户端发起的目标交易;广播单元,将所述目标交易广播给任意一个智能合约节点;第二接收单元,接收所述智能合约节点预执行所述目标交易对应的目标智能合约后返回的预执行结果;发送单元,将所述预执行结果发送给其它智能合约节点,以使其它智能合约节点模拟执行目标智能合约;校验单元,在所述其它节点返回的模拟执行结果与所述预执行结果一致时,确定所述预执行结果校验通过。根据本说明书实施例的第六方面,提供一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为上述任一项智能合约校验方法。本说明书实施例,提供了一种智能合约校验方案,通过一个智能合约节点预执行目标智能合约所产生的读写集,使得其它智能合约节点无需再次访问数据存储节点,利用读写集就可以模拟执行目标智能合约;如果所述其它智能合约节点返回的模拟执行结果与之前的预执行结果一致,则可以确定校验通过。如此,一方面,通过逻辑校验可以提升智能合约执行的安全性,避免单一智能合约节点作恶。另一方面,进行逻辑校验的智能合约节点无需再次获取数据状态,减少了访问数据存储节点的次数。再一方面,将交易过程中的合约校验和数据校验解耦,分为独立的两个部分;合约管理系统中的节点设备只负责合约逻辑校验,数据存储系统中的节点设备只负责数据校验;简化了校验执行逻辑、缩减校验运行周期。附图说明图1a是本说明书一实施例提供的传统区块链系统的智能合约校验示意图;图1b是本说明书一实施例提供的合约管理系统和数据存储系统的示意图;图2是本说明书一实施例提供的基于图1b所示区块链的智能合约校验方法的流程图;图3是本说明书一实施例提供的智能合约节点向数据存储节点获取数据状态的流程示意图;图4是本说明书一实施例提供的基于传统区块链的智能合约校验方法的流程图;图5a是图4中步骤2具体流程图;图5b是图4中步骤3具体流程图;图6是图2中以数据存储节点为执行主体的方法流程图;图7是图2中以智能合约节点为执行主体的方法流程图;图8是本说明书一实施例提供的智能合约校验装置的硬件结构图;图9是本说明书一实施例提供的智能合约校验装置的模块;图10是本说明书一实施例提供的智能合约校验装置的模块。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。本说明书提供的智能合约校验方案,除了可以应用在区块链,还可以应用在非区块链中。以应用在区块链为例,智能合约(Smartcontract)是一种旨在应用在可以部署在区块链上的以信息化方式传播、验证或执行合同的计算机协议。通过在智能合约中声明业务逻辑可以实现执行相应操作。智能合约允许在没有第三方的情况下进行可信交易。这些交易可追踪且不可逆转。智能合约能够提供优于传统合同方法的安全,并减少与合同相关的其他交易成本。首先,介绍传统区块链中智能合约的部署方式。传统智能合约是直接部署在区块链中节点设备上,并在节点设备执行交易请求时,直接运行本地部署的相应智能合约;并且节点设备还存储有全量的交易数据。为了避免单个节点设备作恶例如篡改数据;如图1a所示的,传统区块链的智能合约校验过程为:本文档来自技高网...

【技术保护点】
1.一种智能合约校验方法,所述方法包括:/n区块链中的第一数据存储节点将目标交易广播给所述区块链中的第一智能合约节点;/n所述第一智能合约节点响应所述目标交易,预执行所述目标交易对应的目标智能合约后,向所述第一数据存储节点返回预执行结果;/n所述第一数据存储节点将所述预执行结果发送给所述区块链中的第二智能合约节点;/n所述第二智能合约节点根据所述预执行结果模拟执行所述目标智能合约,将模拟执行目标智能合约后得到的模拟预执行结果返回给所述第一数据存储节点;/n所述第一数据存储节点在确定所述模拟预执行结果与所述预执行结果一致时,确定所述预执行结果校验通过。/n

【技术特征摘要】
1.一种智能合约校验方法,所述方法包括:
区块链中的第一数据存储节点将目标交易广播给所述区块链中的第一智能合约节点;
所述第一智能合约节点响应所述目标交易,预执行所述目标交易对应的目标智能合约后,向所述第一数据存储节点返回预执行结果;
所述第一数据存储节点将所述预执行结果发送给所述区块链中的第二智能合约节点;
所述第二智能合约节点根据所述预执行结果模拟执行所述目标智能合约,将模拟执行目标智能合约后得到的模拟预执行结果返回给所述第一数据存储节点;
所述第一数据存储节点在确定所述模拟预执行结果与所述预执行结果一致时,确定所述预执行结果校验通过。


2.根据权利要求1所述方法,还包括:
所述第一数据存储节点将所述预执行结果发送给所述区块链中的第二数据存储节点进行共识。


3.根据权利要求1所述的方法,所述预执行结果为所述第一智能合约节点预执行目标智能合约过程中生成的读写集打包而成的结果集;所述模拟预执行结果为所述第二智能合约节点模拟执行目标智能合约过程中生成的读写集打包而成的结果集。


4.根据权利要求3所述的方法,所述第二智能合约节点根据所述预执行结果模拟执行所述目标智能合约,将模拟执行目标智能合约后得到的模拟预执行结果返回给所述第一数据存储节点,包括:
所述第二智能合约节点根据所述预执行结果的读写集中数据模拟执行所述目标智能合约;
将模拟执行目标智能合约的模拟结果集返回给所述第一数据存储节点。


5.根据权利要求1所述的方法,所述第一数据存储节点与第一智能合约节点,所述第一数据存储节点与第二智能合约节点之间通过衔接SDK进行数据交互。


6.根据权利要求5所述的方法,所述预执行目标智能合约的过程中通过衔接SDK从所述第一数据存储节点读取所需的状态数据。


7.一种智能合约校验方法,所述方法包括:
区块链中的第一数据存储节点将目标交易广播给所述区块链中的第一智能合约节点;
接收所述第一智能合约节点预执行所述目标交易对应的目标智能合约后返回的预执行结果;
将所述预执行结果发送给所述区块链中的第二智能合约节点;
在所述第二智能合约节点返回的模拟预执行结果与所述预执行结果一致时,确定所述预执行结果校验通过。


8.根据权利要求7所述的方法,还包括:
将所述预执行结果发送给所述区块链中的第二数据存储节点进行共识。


9.根据权利要求7所述的方法,所述预执行结果为所述第一智能合约节点预执行目标智能合约过程中生成的读写集打包而成的结果集;所述模拟预执行结果为所述第二智能合约节点模拟执行目标智能合约过程中生成的读写集打包而成的结果集。


10.根据权利要求7所述的方法,所述第一数据存储节点与第一智能合约节点,所述第一数据存储节点与第二智能合约节点之间通过衔接SDK进行数据交互。


11.根据权利要求7所述的方法,所述预执行目标智能合约的过程中通过衔接SDK从所述第一数据存储节点读取所需的状态数据。


12.一种智能合约校验方法,所述方法包括:
区块链中的第一智能合约节点接收所述区块链中的第一数据存储节点广播的目标交易;
预执行所述目标交易对应的目标智能合约后,返回预执行结果;其中,所述预执行结果用于供所述区块链中的第二智能合约节点根据所述预执行结果模拟执行所述目标智能合约以得到模拟预执行结果,并在所述模拟预执行结果与所述预执行结果一致时,确定所述预执行结果校验通过。


13.根据权利要求12所述的方法,所述预执行结果为所述第一智能合约节点预执行目标智能合约过程中生成的读写集打包而成的结果集;所述模拟预执行结果为所述第二智能合约节点模拟执行目标智能合约过程中生成的读写集打包而成的结果集。


14.根据权利要求12所述的方法,所述第一智能合约节点与第一数据存储节点之间通过衔接SDK进行数据交互。


15.根据权利要求14所述的方法,所述预执行目标智能合约的过程中通过衔接SDK从所述第一数据存储节点读取所需的状态数据。


16.一种智能合约校验方法,所述方法包括:
区块链中的第二智能合约节点接收所述区块链中的第一数据存储节点发送的预执行结果;其中,所述预执行结果为所述区块链中的第一智能合约节点预执行目标交易对应目标智能合约后得到的结果;
根据所述预执行结果模拟执行所述目标智能合约,将模拟执行目标智能合约后得到的模拟预执行结果返回给所述第一数据存储节点。


17.根据权利要求16所述的方法,所述预执行结果为所述第一智能合约节点预执行目标智能合约过程中生成的读写集打包而成的结果集;所述模拟预执行结果为所述第二智能合约节点模拟执行目标智能合约过程中生成的读写集打包而成的结果集。


18.根据权利要求16所述的方法,所述根据所述预执行结果模拟执行所述目标智能合约,将模拟执行目标智能合约后得到的模拟预执行结果返回给所述数据存储节点,具体包括:
根据预执行结果的读写集中数据模拟执行目标智能合约;
将模拟执行目标智能合约的模拟结果集返回给所述数据存储节点。


19.根据权利要求16所述的方法,所述第二智能合约节点与第一数据存储节点之间通过衔接SDK进行数据交互。


20.一种智能合约校验方法,所述方法包括:
区块链的SDK将交易发送给所述区块链中的第一节点设备;
所述第一节点设备预执行所述交易对应的智能合约,并返回预执行结果;
所述SDK将所述预执行结果发送给所述区块链中的第二节点设备;
所述第二节点设备根据所述预执行结果模拟执行所述智能合约,将模拟执行智能合约后得到的模拟预执行结果返回给所述SDK;
所述SDK在确定所述模拟预执行结果与所述预执行结果一致时,确定所述预执行结果校验通过。


21.根据权利要求20所述方法,还包括:
所述SDK将所述预执行结果发送给所述区块链中的所有节点进行共识。

【专利技术属性】
技术研发人员:冯志远
申请(专利权)人:创新先进技术有限公司
类型:发明
国别省市:开曼群岛;KY

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

1