当前位置: 首页 > 专利查询>中山大学专利>正文

区块链的合约验证方法、服务器和存储介质技术

技术编号:38136756 阅读:5 留言:0更新日期:2023-07-08 09:48
本申请提供一种区块链的合约验证方法、服务器和存储介质,涉及金融科技领域。该方法包括:当服务器确定存在待验证合约时,服务器可以获取该待验证合约的合约信息。合约信息中至少包括合约代码和合约意图。服务器可以根据合约代码确定函数调用关系图。服务器可以根据合约意图和合约调用关系图,从待验证合约的全部函数中选择部分相关函数。服务器可以使用这些相关函数构建合约模型。服务器可以将合约意图转化为断言语句。服务器可以根据合约模型和断言语句验证待验证合约的合约代码与合约意图的一致性,并得到验证结果。本申请的方法,降低了复杂合约的建模复杂度,实现了复杂智能合约的分析及验证。的分析及验证。的分析及验证。

【技术实现步骤摘要】
区块链的合约验证方法、服务器和存储介质


[0001]本申请涉及金融科技(Fintech)领域,尤其涉及一种区块链的合约验证方法、服务器和存储介质。

技术介绍

[0002]随着计算机技术的发展,金融领域中越来越多的功能实现了电子化。传统金融业正在逐步向金融科技(Fintech)转变。但由于金融行业对于安全性、实时性的特殊要求,也对功能的电子化提出了更高的要求。在区块链(Block Chain)上,功能可以通过合约实现。合约是区块链上包含代码和数据的可执行程序。一个合约的执行可以完成合约意图对应的功能。
[0003]合约不可篡改和强制执行的特性确保了其执行的透明与公平。同时,由于区块链上合约的不可篡改性,使合约一致性验证变得十分重要。合约一致性验证是指验证合约代码是否实现了合约意图所要求的功能。现有技术中,服务器可以使用建模语言(Process Meta Language,PROMELA)对合约代码中的函数进行建模和分析。具体地,服务器可以通过验证合约代码的函数的某些属性是否满足预设条件,实现一致性验证。
[0004]然而,由于现有的合约多为复杂合约,其中包含大量的函数,存在复杂合约的建模复杂度高的问题。

技术实现思路

[0005]本申请提供一种区块链的合约验证方法、服务器和存储介质,用以解决现有技术中复杂智能合约的建模复杂度高的问题。
[0006]第一方面,本申请提供一种区块链的合约验证方法,包括:
[0007]获取待验证合约的合约信息,所述合约信息中包括所述待验证合约的合约代码和合约意图;
[0008]根据所述合约代码和所述合约意图,构建待验证合约的合约模型,以及至少一条待验证的断言语句;
[0009]根据所述合约模型和所述断言语句验证所述待验证合约的所述合约代码与所述合约意图的一致性,并得到验证结果。
[0010]第二方面,本申请提供一种区块链的合约验证装置,包括:
[0011]获取模块,用于获取待验证合约的合约信息,所述合约信息中包括所述待验证合约的合约代码和合约意图;
[0012]处理模块,用于根据所述合约代码和所述合约意图,构建待验证合约的合约模型,以及至少一条待验证的断言语句;根据所述合约模型和所述断言语句验证所述待验证合约的所述合约代码与所述合约意图的一致性,并得到验证结果。
[0013]第三方面,本申请提供一种服务器,包括:存储器和处理器;
[0014]所述存储器用于存储计算机程序;所述处理器用于根据所述存储器存储的计算机
程序执行第一方面及第一方面任一种可能的设计中的区块链的合约验证方法。
[0015]第四方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,当服务器的至少一个处理器执行该计算机程序时,服务器执行第一方面及第一方面任一种可能的设计中的区块链的合约验证方法。
[0016]第五方面,本申请提供一种计算机程序产品,所述计算机程序产品包括计算机程序,当服务器的至少一个处理器执行该计算机程序时,服务器执行第一方面及第一方面任一种可能的设计中的区块链的合约验证方法。
[0017]本申请提供的区块链的合约验证方法、服务器和存储介质,通过在服务器确定存在待验证合约时,获取该待验证合约的合约信息,合约信息中至少包括合约代码和合约意图;根据合约代码确定函数调用关系图;根据合约意图和合约调用关系图,从待验证合约的全部函数中选择部分相关函数;使用这些相关函数构建合约模型;将合约意图转化为断言语句;根据合约模型和断言语句验证待验证合约的合约代码与合约意图的一致性,并得到验证结果手段,实现降低了复杂合约的建模复杂度,实现了复杂智能合约的分析及验证的效果。
附图说明
[0018]为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0019]图1为本申请一实施例提供的一种合约一致性验证场景的流程示意图;
[0020]图2为本申请一实施例提供的一种区块链的合约验证方法的流程图;
[0021]图3为本申请一实施例提供的一种合约验证工具界面示意图;
[0022]图4为本申请一实施例提供的一种区块链的合约验证方法的流程图;
[0023]图5为本申请一实施例提供的一种合约中的函数调用关系示意图;
[0024]图6为本申请一实施例提供的一种区块链的合约验证装置的结构示意图;
[0025]图7为本申请一实施例提供的一种服务器的硬件结构示意图。
具体实施方式
[0026]为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0027]本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换。例如,在不脱离本文范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或
对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0028]随着计算机技术的发展,金融领域中越来越多的功能实现了电子化。传统金融业正在逐步向金融科技(Fintech)转变。但由于金融行业对于安全性、实时性的特殊要求,也对功能的电子化提出了更高的要求。在区块链(Block Chain)上,功能可以通过合约实现。其中,区块链是点对点(P2P)网络上共享的数据账本。该区块链可以被实现为共识协议下,网络参与者接受的一系列区块。每个区块由一个区块头和一个区块体组成。区块头中包含对父区块的引用和用于区块验证的元数据。区块体中存储由参与者创建并添加到区块中的一系列交易。以太坊的交易是指一个账户转移资产给另一个账户,或者创建、调用某个合约的行为。该合约可以为智能合约。进一步地,该合约可以为复杂智能合约。
[0029]其中,合约是指区块链上包含函数和数据的可执行程序。具体地,该合约中可以包括合约代码。当该合约代码运行时,该合约被执行。该合约代码即为合约的源码。其中,数据是合约的状态,函数是合约的功能。合约还可以包括合约意图。合约意图用于指示该合约用于实现的功能。精确的合约意图声明通常使用一种以介于自然语言和程序语言之间的声明语言来编写。由于该合约意图的编写过程与合约代码本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种区块链的合约验证方法,其特征在于,所述方法包括:获取待验证合约的合约信息,所述合约信息中包括所述待验证合约的合约代码和合约意图;根据所述合约代码和所述合约意图,构建待验证合约的合约模型,以及至少一条待验证的断言语句;根据所述合约模型和所述断言语句验证所述待验证合约的所述合约代码与所述合约意图的一致性,并得到验证结果。2.根据权利要求1所述的方法,其特征在于,所述根据所述合约代码和所述合约意图,构建待验证合约的合约模型,以及至少一条待验证的断言语句,具体包括:扫描所述合约代码对应的抽象语法树,并根据所述抽象语法树中的函数声明节点和函数调用节点,生成所述待验证合约的函数调用关系;根据所述合约意图和所述函数调用关系,从所述合约代码的全部函数中筛选得到合约相关函数;根据所述合约相关函数及其对应的合约代码,构建所述待验证合约的合约模型;根据预设转换规则,将所述合约意图转换为至少一条待验证的断言语句。3.根据权利要求2所述的方法,其特征在于,所述根据所述合约相关函数及其对应的合约代码,构建待验证合约的合约模型,具体包括:根据第一筛选条件,从所述合约相关函数中筛选得到可以被外部调用的第一函数,并将所述第一函数构建为所述合约模型的入口;根据所述第一函数与其他函数的调用关系,确定每一所述合约模型入口对应函数组合;并根据所述第一函数对其他函数的调用顺序,确定每一所述函数组合中各个函数的顺序;在所述合约模型中,构建各个相关函数的参数传递通道,以获取各个所述相关函数的返回值;在所述合约模型中,将各个所述相关函数转换为进程;将所述合约代码中的变量,构建为所述合约模型的全局变量。4.根据权利要求3所述的方法,其特征在于,所述方法,还包括:根据所述合约代码和所述合约模型,生成动态库文件,并将所述动态库文件作为验证算法的库函数。5.根据权利要求2所述的方法,...

【专利技术属性】
技术研发人员:郑子彬李辉忠李卫南雨宏莫楠张开翔范瑞彬白兴强李成博
申请(专利权)人:中山大学
类型:发明
国别省市:

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

1