CN115375303A - 智能合约的调用方法、装置、计算机可读介质及电子设备 - Google Patents

智能合约的调用方法、装置、计算机可读介质及电子设备 Download PDF

Info

Publication number
CN115375303A
CN115375303A CN202110542432.5A CN202110542432A CN115375303A CN 115375303 A CN115375303 A CN 115375303A CN 202110542432 A CN202110542432 A CN 202110542432A CN 115375303 A CN115375303 A CN 115375303A
Authority
CN
China
Prior art keywords
contract
rule
intelligent contract
calling
rule information
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
CN202110542432.5A
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 CN202110542432.5A priority Critical patent/CN115375303A/zh
Publication of CN115375303A publication Critical patent/CN115375303A/zh
Pending legal-status Critical Current

Links

Images

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/3827Use of message hashing
    • 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
    • G06Q20/4014Identity check for transactions
    • 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/405Establishing or using transaction specific rules

Abstract

本申请的实施例提供了一种智能合约的调用方法、装置、计算机可读介质及电子设备。该智能合约的调用方法包括:接收合约调用方发送的用于调用目标智能合约的交易请求,交易请求中包含有第一规则信息和所述目标智能合约中的规则生成方法所对应的调用参数,第一规则信息是所述合约调用方通过调用规则生成方法所获得的;根据规则生成方法所对应的调用参数,发起对目标智能合约中的规则生成方法的调用,以获取第二规则信息;若第一规则信息与第二规则信息相匹配,则根据交易请求调用并执行目标智能合约,得到交易结果;将交易结果返回至合约调用方。本申请实施例的技术方案实现了智能合约执行与规则信息的相绑定,为智能合约执行的合法性提供了保障。

Description

智能合约的调用方法、装置、计算机可读介质及电子设备
技术领域
本申请涉及互联网技术领域,具体而言,涉及一种智能合约的调用方法、装置、计算机可读介质及电子设备。
背景技术
智能合约是一种存储在区块链节点的可执行的代码,该代码指定了智能合约的执行过程和处理逻辑,例如输入、输出、中间转换逻辑等等。然而现有的智能合约更关注于计算机的识别以及无误执行,而无法反映相关方的真实意图,也无法解决相关方权益责任界定问题,例如,A利用智能合约向B转了一定数量的虚拟资源来购买加密硬件。对于智能合约来说,只是完成了虚拟资源转移的动作,并不理解虚拟资源转移背后的业务。如果B没给A发货,智能合约并不会察觉到问题。
发明内容
本申请的实施例提供了一种智能合约的调用方法、装置、介质及电子设备,进而至少在一定程度上实现了智能合约执行与规则信息的相绑定,为智能合约执行的合法性提供了保障。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请实施例的一个方面,提供了一种智能合约的调用方法,包括:接收合约调用方发送的用于调用目标智能合约的交易请求,所述交易请求中包含有第一规则信息和所述目标智能合约中的规则生成方法所对应的调用参数,所述第一规则信息是所述合约调用方通过调用所述规则生成方法所获得的;根据所述规则生成方法所对应的调用参数,发起对所述目标智能合约中的规则生成方法的调用,以获取第二规则信息;若所述第一规则信息与所述第二规则信息相匹配,则根据所述交易请求调用并执行所述目标智能合约,得到交易结果;将所述交易结果返回至所述合约调用方。
根据本申请实施例的一个方面,提供了一种智能合约的调用方法,包括:向区块链网络发起对目标智能合约中的规则生成方法的调用请求,以获取第一规则信息;若接收到对所述第一规则信息的确认指令,则生成用于调用所述目标智能合约的交易请求,所述交易请求中包含有所述规则生成方法所对应的调用参数和所述第一规则信息;向所述区块链网络发送所述交易请求,所述交易请求用于使所述区块链网络在所述第一规则信息与第二规则信息相匹配时,根据所述交易请求调用并执行所述目标智能合约,得到交易结果,所述第二规则信息是所述区块链网络根据所述调用参数调用所述规则生成方法获得的;接收所述区块链网络返回的所述交易结果。
根据本申请实施例的一个方面,提供了一种智能合约的调用装置,包括:第一接收单元,配置为接收合约调用方发送的用于调用目标智能合约的交易请求,所述交易请求中包含有第一规则信息和所述目标智能合约中的规则生成方法所对应的调用参数,所述第一规则信息是所述合约调用方通过调用所述规则生成方法所获得的;第一发起单元,配置为根据所述规则生成方法所对应的调用参数,发起对所述目标智能合约中的规则生成方法的调用,以获取第二规则信息;第一发送单元,配置为若所述第一规则信息与所述第二规则信息相匹配,则根据所述交易请求调用并执行所述目标智能合约,得到交易结果;返回单元,配置为将所述交易结果返回至所述合约调用方。
在本申请的一些实施例中,基于前述方案,在所述第一接收单元配置为接收合约调用方发送的用于调用目标智能合约的交易请求之前,所述第一接收单元还配置为:接收所述合约调用方发送的规则查询请求,所述规则查询请求中包含有所述目标智能合约的调用方法和所述规则生成方法所对应的调用参数;根据所述调用方法和所述调用参数,发起对所述规则生成方法的调用,以获取所述第一规则信息;将所述第一规则信息返回至所述合约调用方。
在本申请的一些实施例中,基于前述方案,所述装置还包括:获取单元,配置为获取对所述第一规则信息进行哈希运算所得到的第一哈希值;运算单元,配置为对所述第二规则信息进行哈希运算,得到第二哈希值;确定单元,配置为若所述第一哈希值与所述第二哈希值相同,则确定所述第一规则信息与所述第二规则信息相匹配。
在本申请的一些实施例中,基于前述方案,所述第一发起单元包括:第一获取子单元,配置为获取所述合约调用方发送的针对所述交易请求的签名信息,所述签名信息是所述合约调用方采用所述合约调用方的私钥对所述交易请求进行签名生成的;第一验证子单元,配置为若对所述签名信息进行验证且验证通过,则根据所述规则生成方法所对应的调用参数,发起对所述规则生成方法的调用。
在本申请的一些实施例中,基于前述方案,所述第一获取子单元还配置为:获取所述合约调用方的公钥,并采用所述合约调用方的公钥对所述签名信息进行解密;若对所述签名信息解密成功,则确定对所述签名信息验证通过。
在本申请的一些实施例中,基于前述方案,所述返回单元还配置为:若所述第一规则信息与所述第二规则信息不匹配,则向所述合约调用方返回拒绝响应消息。
在本申请的一些实施例中,基于前述方案,所述装置还包括:发布请求接收单元,配置为接收合约发布方发送的智能合约发布请求,所述智能合约发布请求中包含有待发布智能合约的合约代码,所述合约代码中包含有规则生成方法代码;校验单元,配置为响应于所述智能合约发布请求,对所述合约代码进行校验;发布单元,配置为若对所述合约代码校验通过,则将所述待发布智能合约发布至所述区块链网络中。
在本申请的一些实施例中,基于前述方案,所述校验单元还配置为:根据所述待发布智能合约的合约类型,创建对应的虚拟机;通过所述虚拟机执行所述合约代码,得到执行结果;若所述虚拟机在执行所述合约代码后返回合约执行成功的结果,则确定对所述合约代码校验通过。
在本申请的一些实施例中,基于前述方案,所述校验单元包括:第二获取子单元,配置为获取所述合约发布方发送的针对所述智能合约发布请求的签名信息,所述签名信息是所述合约发布方采用所述合约发布方的私钥对所述智能合约发布请求进行签名生成的;第二验证子单元,配置为若对所述签名信息进行验证且验证通过,则响应于所述智能合约发布请求,对所述合约代码进行校验。
在本申请的一些实施例中,基于前述方案,所述第二获取子单元还配置为:获取所述合约发布方的公钥,并采用所述合约发布方的公钥对所述签名信息进行解密;若对所述签名信息解密成功,则确定对所述签名信息验证通过。
根据本申请实施例的一个方面,提供了一种智能合约的调用装置,包括:第二发起单元,配置为向区块链网络发起对目标智能合约中的规则生成方法的调用请求,以获取第一规则信息;生成单元,配置为若接收到对所述第一规则信息的确认指令,则生成用于调用所述目标智能合约的交易请求,所述交易请求中包含有所述规则生成方法所对应的调用参数和所述第一规则信息;第二发送单元,配置为向所述区块链网络发送所述交易请求,所述交易请求用于使所述区块链网络在所述第一规则信息与第二规则信息相匹配时,根据所述交易请求调用并执行所述目标智能合约,得到交易结果,所述第二规则信息是所述区块链网络根据所述调用参数调用所述规则生成方法获得的;接收单元,配置为接收所述区块链网络返回的所述交易结果。
根据本申请实施例的一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述实施例中所述的智能合约的调用方法。
根据本申请实施例的一个方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中所述的智能合约的调用方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实施例中提供的智能合约的调用方法。
在本申请的一些实施例所提供的技术方案中,区块链节点通过接收合约调用方发送的用于调用目标智能合约的交易请求,交易请求中包含有第一规则信息和目标智能合约中的规则生成方法所对应的调用参数,第一规则信息是合约调用方通过调用规则生成方法所获得的,进一步,区块链节点可以根据规则生成方法所对应的调用参数,发起对目标智能合约中的规则生成方法的调用,以获取第二规则信息,如果第一规则信息与第二规则信息匹配,则区块链节点可以根据交易请求调用并执行目标智能合约,得到交易结果,最后,将交易结果返回至合约调用方。在本申请实施例的技术方案中,实现了将智能合约调用执行与规则信息的相互绑定,克服了现有技术中智能合约难以反映相关方的真实意图,也无法解决相关方权益责任界定的问题,一方面可以使得合约调用方更清晰无误地使用智能合约,另一方面通过规则信息可以对合约所有方与合约调用方进行规则约束,有利于后续相关权益与责任的厘清,赋予了智能合约执行的合法性保障,扩大了智能合约的应用场景,更好地切合真实业务的需要。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了一种区块链网络的结构示意图;
图2示出了一种区块链的结构示意图;
图3示出了一种区块链中新区块生成的示意图;
图4示出了可以应用本申请实施例的技术方案的示例性系统架构的示意图;
图5示出了根据本申请一个实施例的智能合约的调用方法的流程图;
图6示出了根据本申请一个实施例的智能合约的调用方法的流程图;
图7示出了根据本申请一个实施例的智能合约的调用方法的流程图;
图8示出了根据本申请一个实施例的智能合约的调用方法的流程图;
图9示出了根据本申请一个实施例的智能合约的调用方法的流程图;
图10示出了根据本申请的一个实施例的智能合约的调用方法的流程图;
图11示出了根据本申请一个实施例的智能合约的调用方法的流程图;
图12示出了根据本申请一个实施例的智能合约的调用方法的交互流程图;
图13示出了根据本申请的一个实施例的智能合约的调用装置的框图;
图14示出了根据本申请的一个实施例的智能合约的调用装置的框图;
图15示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
需要说明的是,本申请的说明书和权利要求书及上述附图中使用的术语仅用于描述实施例,并不旨在限制本申请的范围。应该理解的是,术语“包括”、“包含”、“具有”等在本文中使用时指定存在所陈述的特点、整体、步骤、操作、元件、组件和/或其群组,但并不排除存在或添加其他特点、整体、步骤、操作、元件、组件和/或其群组中的一个或多个。
将进一步理解的是,尽管术语“第一”、“第二”、“第三”等可以在本文中用于描述各种元件,但是这些元件不应受这些术语的限制。这些术语仅用于区分一个元件和另一个元件。例如,在不脱离本发明的范围的情况下,第一元件可以被称为第二元件。类似地,第二元件可以被称为第一元件。如本文所使用的,术语“和/或”包含关联的列出的项目中的一个或多个的任何和所有组合。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
智能合约:是一种旨在以信息化方式传播、验证或执行合同的计算机协议,允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转,在区块链环境里,智能合约表现为可执行代码。
区块链网络:是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了信息,用于验证其信息的有效性(防伪)和生成下一个区块。
图1示出了一种区块链网络的结构示意图。
参见图1所示的区块链网络101,区块链网络101是指用于进行节点与节点之间数据共享的系统,每个节点A在进行正常工作可以接收到输入信息,并基于接收到的输入信息维护该区块链网络101内的共享数据。为了保证区块链网络101内的信息互通,区块链网络101中的每个节点A之间可以存在信息连接,节点A之间可以通过上述信息连接进行信息传输。例如,当区块链网络101中的任意节点A接收到输入信息时,区块链网络101中的其他节点A便根据共识算法获取该输入信息,将该输入信息作为共享数据中的数据进行存储,使得区块链网络101中全部节点A上存储的数据均一致。
对于区块链网络101中的每个节点A,均具有与其对应的节点标识,而且区块链网络101中的每个节点A均可以存储有区块链网络101中其他节点A的节点标识,以便后续根据其他节点A的节点标识,将生成的区块广播至区块链网络101中的其他节点A。每个节点A中可维护一个如下表所示的节点标识列表,将节点名称和节点标识对应存储至该节点标识列表中。其中,节点标识可为IP(Internet Protocol,网络之间互联的协议)地址以及其他任一种能够用于标识该节点的信息,表1中仅以IP地址为例进行说明。
节点名称 节点标识
节点1 117.114.151.174
节点2 117.116.189.145
节点N 119.123.789.258
表1
图1中所示的区块链网络101中的每个节点均存储一条相同的区块链。区块链由多个区块组成,参见图2,区块链由多个区块组成,创始块中包括区块头和区块主体,区块头中存储有输入信息特征值、版本号、时间戳和难度值,区块主体中存储有输入信息;创始块的下一区块以创始块为父区块,下一区块中同样包括区块头和区块主体,区块头中存储有当前区块的输入信息特征值、父区块的区块头特征值、版本号、时间戳和难度值,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中输入信息的安全性。
在生成区块链中的各个区块时,参见图3,区块链所在的节点在接收到输入信息时,对输入信息进行校验,完成校验后,将输入信息存储至内存池中,并更新其用于记录输入信息的哈希树;之后,将更新时间戳更新为接收到输入信息的时间,并尝试不同的随机数,多次进行特征值计算,使得计算得到的特征值可以满足下述公式:
SHA256(SHA256(version+prev_hash+merkle_root+ntime+nbits+x))<TARGET
其中,SHA256为计算特征值所用的特征值算法;version(版本号)为区块链中相关区块协议的版本信息;prev_hash为当前区块的父区块的区块头特征值;merkle_root为输入信息的特征值;ntime为更新时间戳的更新时间;nbits为当前难度,在一段时间内为定值,并在超出固定时间段后再次进行确定;x为随机数;TARGET为特征值阈值,该特征值阈值可以根据nbits确定得到。
这样,当计算得到满足上述公式的随机数时,便可将信息对应存储,生成区块头和区块主体,得到当前区块。随后,区块链所在节点根据区块链网络101中其他节点A的节点标识,将新生成的区块分别发送给其所在的区块链网络101中的其他节点A,由其他节点A对新生成的区块进行校验,并在完成校验后将新生成的区块添加至其存储的区块链中。
图4示出了可以应用本申请实施例的技术方案的示例性系统架构100的示意图。
如图4所示,系统架构100可以包括区块链网络101和网络设备102。网络设备102的形态和数量用于举例,并不构成对本申请实施例的限定。例如,可以包括两个或者更多数量的网络设备102。
其中,网络设备102可以为以下任一种:终端、独立的应用程序、应用程序编程接口(Application Programming Interface,API)或者软件开发工具包(SoftwareDevelopment Kit,SDK)。其中,终端可以包括但不限于:智能手机(如Android手机、IOS手机等)、平板电脑、便携式个人计算机、移动互联网设备(Mobile Internet Devices,MID)、服务器等,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
实际应用中,一个或多个用户可以操作网络设备102,本申请实施例中以一个用户操作一个网络设备为例。示意性地,用户可以操作网络设备102向区块链节点发送用于调用目标智能合约的交易请求,用户也可以操作网络设备102向区块链节点发送智能合约发布请求,换言之,网络设备102可以是合约调用方,也可以是合约发布方。
在本申请的一个实施例中,作为合约调用方的网络设备102可以向区块链网络101中的区块链节点发起对目标智能合约中的规则生成方法的调用,以获取第一规则信息,网络设备102在获取第一规则信息后,则可以向区块链节点发送用于调用目标智能合约的交易请求,交易请求中可以包含有第一规则信息和目标智能合约中的规则生成方法所对应的调用参数,区块链节点在接收到交易请求之后,则可以根据调用参数,发起对规则生成方法的调用,通过调用规则生成方法获取第二规则信息,区块链节点可以比较第一规则信息与第二规则信息是否相匹配,若第一规则信息与第二规则信息相匹配,则说明第一规则信息不是伪造的,因而,区块链节点可以响应交易请求,根据交易请求调用并执行目标智能合约,得到交易结果,然后将交易结果返回至作为合约调用方的网络设备102。
在本申请的一个实施例中,开发人员可以在网络设备102上编写智能合约的合约代码,合约代码中可以包含有规则生成方法代码,开发人员编写合约代码之后,则可以通过网络设备102向区块链网络101的区块链节点发送智能合约发布请求,智能合约发布请求用于请求将待发布智能合约发布至区块链网络101中,区块链节点接收到智能合约发布请求之后,可以响应智能合约发布请求,对待发布智能合约的合约代码进行校验,如果区块链节点对待发布智能合约的合约代码校验通过,则区块链节点可以将待发布智能合约发布至区块链网络101中。
以下对本申请实施例的技术方案的实现细节进行详细阐述:
图5示出了根据本申请的一个实施例的智能合约的调用方法的流程图,该智能合约的调用方法可以由区块链网络中任一区块链节点来执行,该区块链节点可以是图4或图1中所示的区块链网络101中的任一区块链节点。参照图5所示,智能合约的调用方法包括:
步骤S510、接收合约调用方发送的用于调用目标智能合约的交易请求,交易请求中包含有第一规则信息和目标智能合约中的规则生成方法所对应的调用参数,第一规则信息是合约调用方通过调用所述规则生成方法所获得的;
步骤S520、根据规则生成方法所对应的调用参数,发起对目标智能合约中的规则生成方法的调用,以获取第二规则信息;
步骤S530、若第一规则信息与第二规则信息相匹配,则根据交易请求调用并执行目标智能合约,得到交易结果;
步骤S540、将交易结果返回至合约调用方。
下面对这些步骤进行详细描述。
步骤S510、接收合约调用方发送的用于调用目标智能合约的交易请求,交易请求中包含有第一规则信息和目标智能合约中的规则生成方法所对应的调用参数,第一规则信息是合约调用方通过调用所述规则生成方法所获得的。
在区块链网络中,通过向区块链节点提交相应的交易请求,可以由交易请求触发执行对应的智能合约,可以通过调用智能合约实现复杂的功能。而智能合约是区块链上预先部署的可执行代码,智能合约允许在没有第三方的情况下进行可信交易,且该交易可追踪且不可逆转。智能合约中可以定义一个或多个接口,每一接口用于实现相应的功能。在通过区块链交易调用智能合约时,可以声明调用该智能合约中定义的哪个或哪些接口,以实现相应的功能。
可以理解的是,区块链网络中可能存在多个智能合约,而客户端发送的合约调用请求可以是针对目标智能合约,目标智能合约可以是指用户处理实际业务需要调用的一个智能合约,例如:用户在保险机构购买保险后与保险机构签订的智能合约、用户在某工厂采购设备后与工厂签订的智能合约,等等,该目标智能合约可能包括多个接口,例如:接口A、接口B、接口C,每个接口用于实现相应的功能。
然而,在智能合约的调用执行过程中,由于智能合约是预先部署的可执行代码,这也就决定了智能合约更加关注的是计算机执行,为了保证智能合约能够被计算机识别以及无误地执行,智能合约必须使用高度精确的硬编码指令进行编码。正因为如此,智能合约不可避免地面临诸多问题,第一,智能合约表达能力不足,不能反应相关方的真实意图。例如,A利用智能合约向B转了一定数量的虚拟资源来购买加密硬件。对于智能合约来说,只是完成了虚拟资源转移的动作,并不理解虚拟资源转移背后的业务。如果B没给A发货,智能合约并不会察觉到问题。第二,智能合约只能执行预定义的代码,无法应对不可预料的情势变更或边缘案例。例如,智能合约出了预期以外的结果,相关方权益与责任难以厘清。
针对这些问题,相关技术的做法是绑定智能合约与规则信息,即将智能合约部署到区块链网络中时,除了智能合约的合约代码,还会相应地保存一份规则信息,规则信息用于对智能合约提供的各个方法进行描述和说明,规则信息例如可以是具有法律效力的条款(如权利义务责任条款)。合约调用方在调用智能合约的某一方法前,可以在区块链网络中查询到该方法对应的规则信息。然而,相关技术的做法中存在的缺陷在于:
首先,相关技术中的规则信息与具体的智能合约执行不吻合。相关技术所提供的只是一个静态的规则信息,也即规则信息模板。例如,智能合约的虚拟资源转移方法对应的规则信息模板是“{{from}}agrees to send{{quantity}}to{{to}}”,然而,可以理解的是,规则信息模板并不具有约束力,只有针对具体行为的规则信息才具有实际约束力。例如,针对智能合约的某次执行而言,有具体的传入参数,如from=“Alice”,to=“Bob”,quantity=100。此时,根据传入参数得到的规则信息为“Alice agrees to send 100 to Bob”,只有这样的规则信息才具有实际约束力,而不是上文提到的规则信息模板。
其次,相关技术中的规则信息未经相关方确认。规则信息需要相关方确认才能具有约束力。相关技术中规则信息仅作为说明,供相关方阅读,并不能反映合约调用方和合约所有方对规则信息的确认,因此并不具有法律效力。例如,合约调用方不确认合约所有方所认可的规则信息,仍能调用相应的智能合约。
针对相关技术中的缺陷,在本实施例中,合约调用方可以是客户端,客户端可以向区块链网络发送交易请求,交易请求用于请求调用目标智能合约中的某一接口,交易请求中包含有第一规则信息,第一规则信息用于对目标智能合约的某一接口对应的执行方法进行规则描述和说明,并且,第一规则信息是合约调用方通过调用规则生成方法所获得的。
也就是说,在合约调用方生成调用目标智能合约的交易请求之前,合约调用方已经获取并确认第一规则信息,并且,第一规则信息是通过调用目标智能合约中的规则生成方法获得的,换言之,第一规则信息不是静态不变的规则信息,而是本次合约调用行为的过程中通过调用目标智能合约中的规则生成方法动态生成的,而由于目标智能合约中的规则生成方法是合约所有方提供的,也即是通过调用规则生成方法生成的第一规则信息也就是合约所有方确认的规则信息。
在合约调用方获取并确认第一规则信息之后,合约调用方则可以构造用于调用目标智能合约的交易请求,构造的交易请求中可以包含有第一规则信息,当然,合约调用方还可以将目标智能合约中的规则生成方法所对应的调用参数包含在交易请求中,然后,将交易请求发送至区块链节点。其中,规则生成方法所对应的调用参数是用于调用规则生成方法的参数,调用参数可以传入至规则生成方法中,以生成规则信息。
可以理解的是,在合约调用方获取第一规则信息之后,如果其不认可第一规则信息,那么,接下来也就不存在区块链节点接收合约调用方发送的用于调用目标智能合约的交易请求了。换言之,合约调用方如果不认可第一规则信息,那么合约调用方也就不会构造用于调用目标智能合约的交易请求。
在本实施例中,合约所有方通过为智能合约附上相应的规则信息,合约调用方在调用智能合约之前,可以通过调用智能合约中的规则生成方法以获取规则信息,一方面可以使得合约调用方更清晰无误地使用智能合约,另一方面通过规则信息可以对合约所有方与合约调用方进行规则约束,有利于后续相关权益与责任的厘清。
步骤S520、根据规则生成方法所对应的调用参数,发起对目标智能合约中的规则生成方法的调用,以获取第二规则信息。
本实施例中,在区块链节点接收到交易请求之后,不会立即根据交易请求调用并执行目标智能合约,而是会根据规则生成方法所对应的调用参数,发起对目标智能合约中的规则生成方法的调用,以获取第二规则信息。这样做的目的在于利用第二规则信息对合约调用方发送的第一规则信息进行验证,以确定第一规则信息与第二规则信息是否相匹配。
可以理解的是,合约调用方发送的第一规则信息可能存在篡改的可能性,因此区块链节点在接收到交易请求之后,需要对第一规则信息进行验证,具体地,区块链节点可以根据规则生成方法所对应的调用参数,发起对目标智能合约中的规则生成方法的调用,以获取第二规则信息,利用第二规则信息对第一规则信息进行验证。
由于目标智能合约已经存储在区块链网络中,区块链网络已经在线上数据具有防篡改以及防伪等特性,也就说明第二规则信息是真实数据,是合约所有方确认的真实规则信息,因此,区块链节点可以通过获取第二规则信息,以对第一规则信息进行验证。
为了便于理解,对根据规则生成方法所对应的调用参数,发起对目标智能合约中的规则生成方法的调用,以获取第二规则信息进行举例说明,例如,规则生成方法可以表示为getClause,规则生成方法getClause的实现逻辑为:
Figure BDA0003072106200000141
上述代码的含义为如果智能合约的方法名methodName===“transfer”,输入的调用参数涵盖from,to,quantity,则返回规则信息“{from}”agrees to send“{quantity}CNY to“{to}”for buying Model 3|Telsa。
那么,当规则生成方法所对应的调用参数具体为from=‘alice’,to=‘tesla_company’,quantity=249900,则根据调用参数调用规则生成方法getClause{‘transfer’,‘{“from”:“alice”,“to”:“tesla_company”,“quantity”:249900}’},最终获取到第二规则信息可以表示为“alice”agrees to send 249900 CNY to“tesla_company”for buyingModel 3|Telsa。
步骤S530、若第一规则信息与第二规则信息相匹配,则根据交易请求调用并执行目标智能合约,得到交易结果。
具体地,如果第一规则信息与第二规则信息相匹配,则说明合约调用方和合约所有方均对此处合约调用行为对应的规则信息进行了确认,因此,区块链节点在相关方确认的基础上,可以根据合约调用方的交易请求调用目标智能合约的接口,执行目标智能合约中对应于该接口的合约代码,实现相应的交易逻辑,得到交易结果。
在本申请的一个实施例中,确定第一规则信息与第二规则信息是否匹配的方式可以是直接比较第一规则信息与第二规则信息是否相同,若第一规则信息与第二规则信息相同,则确定匹配;若第一规则信息与第二规则信息不相同,则确定不匹配。需要说明的是,这里的第一规则信息与第二规则信息是否相同主要是指规则信息内容是否相同。
在本申请的一个实施例中,确定第一规则信息与第二规则信息是否匹配的方式可以还可以是比较哈希值是否相同,若相同,则确定匹配;若不相同,则确定不匹配。具体地,区块链节点可以首先获取对第一规则信息进行哈希运算得到的第一哈希值,并对第二规则信息进行哈希运算,得到第二哈希值,若第一哈希值与第二哈希值相同,则可以确定第一规则信息与第二规则信息相匹配。
哈希(Hash)运算是一种常用的运算,可以将任意长度的消息压缩到某一固定长度的消息摘要。其可以采用例如MD5或者SHA256的方式实现哈希运算。具体实施过程中,采用MD5算法实施哈希运算时,可以生成128bit的二进制数,即128bit的01字符串,采用SHA256算法实施哈希运算时,可以是生成256bit的二进制数,即256bit的01字符串。本申请实施例对哈希运算的方式不做具体限定。
在本申请的一个实施例中,如果第一规则信息与第二规则信息不匹配,则说明合约调用方并未对合约所有方确认的规则信息进行确认,因而,在本实施例中,为了保障合约执行的合法性,区块链节点可以直接向合约调用方返回拒绝响应消息,拒绝响应合约调用方用于调用目标智能合约的交易请求。
步骤S540、将交易结果返回至合约调用方。
区块链节点在执行目标智能合约且获得交易结果之后,则可以将获得的交易结果返回至合约调用方。
在本申请的一个实施例中,如前所述,合约调用方在向区块链节点发送用于调用目标智能合约的交易请求之前,已经获取第一规则信息,其中第一规则信息的获取方法可以是向区块链网络发送规则查询请求,如图6所示,在本实施例中,获取第一规则信息的方法可以具体包括步骤S610-步骤S630,详细说明如下:
步骤S610、接收合约调用方发送的规则查询请求,规则查询请求中包含有目标智能合约的调用方法和规则生成方法所对应的调用参数。
在合约调用方调用目标智能合约之前,合约调用方可以预先确定目标智能合约的调用方法以及目标智能合约中的规则生成方法所对应的调用参数。可以理解,目标智能合约可能包括多个接口,例如:接口A、接口B、接口C,每个接口用于实现相应的功能,其中,确定目标智能合约的调用方法也即确定目标智能合约的调用接口。此外,合约调用方还需要确定目标智能合约中的规则生成方法所对应的调用参数,也即确定规则生成方法中规定参数对应的参数值,例如,规则生成方法中包含有参数from、to、quantity,则合约调用方需要确定参数from对应的参数值,参数to对应的参数值以及参数quantity对应的参数值。
在确定调用方法和调用参数之后,区块链节点则可以构造出规则查询请求,规则查询请求中可以包含有确定出的调用方法和调用参数,接着,合约调用方可以向区块链节点发送规则查询请求,用于请求查询本次合约调用行为对应的规则信息。
步骤S620、根据调用方法和调用参数,发起对规则生成方法的调用,以获取第一规则信息。
区块链节点在接收到规则查询请求之后,则可以根据调用方法和调用参数,发起对规则生成方法的调用,从而获取到第一规则信息。其中,根据调用方法和调用参数,发起对规则生成方法的调用,从而获取到第一规则信息的方法与上文中第二规则信息的获取方法类似,具体可以参照上文第二规则信息获取方法中的举例说明。
步骤S630、将第一规则信息返回至合约调用方。
在获取第一规则信息后,区块链节点则可以将第一规则信息返回至合约调用方,从而完成对合约调用方的规则查询请求的响应。
在本申请的一个实施例中,合约调用方在生成用于调用目标智能合约的交易请求之后,可以使用合约调用方的私钥对交易请求进行签名,以证明合约调用方的身份真实性,在该实施例中,如图7所示,具体可以包括步骤S710-步骤S720,现详细说明如下:
步骤S710、获取合约调用方发送的针对交易请求的签名信息,签名信息是合约调用方采用合约调用方的私钥对交易请求进行签名生成的。
在本实施例中,合约调用方在生成用于调用目标智能合约的交易请求后,可以对交易请求进行签名,签名可以使得区块链网络中的节点能够确认交易请求的有效性以及合约调用方的身份的真实性。
具体地,合约调用方在生成交易请求后,可以使用合约调用方的私钥对交易请求进行签名,生成签名信息,并向区块链网络中的区块链节点发送签名信息,签名信息用于使得区块链节点可以根据签名信息来确认交易请求是由合约调用方发送的,签名信息也可以用于确保交易请求在传输过程中不被篡改。
在一些实施例中,合约调用方可以生成交易请求的哈希值,然后使用其私钥加密该哈希值,从而得到签名信息。合约调用方在生成签名信息之后,可以向区块链节点返回签名信息,因此,区块链节点可以接收合约调用方发送的签名信息,从而获取到签名信息。
步骤S720、若对所述签名信息进行验证且验证通过,则根据所述规则生成方法所对应的调用参数,发起对所述规则生成方法的调用。
区块链节点在获取到合约调用方发送的签名信息之后,则可以对签名信息进行验证,若验证通过,则说明交易请求确实是由合约调用方发送的,也就是说,交易请求是可以被信任的,因此区块链节点可以根据交易请求,发起对规则生成方法的调用。具体而言,区块链节点在获取到交易请求后,根据交易请求可以获知合约调用方请求调用的目标智能合约,进一步,区块链节点可以根据交易请求中包含的目标智能合约中的规则生成方法所对应的调用参数,发起对目标智能合约中的规则生成方法的调用。
在本申请的一个实施例中,区块链节点对签名信息进行验证的方法可以是利用合约调用方的公钥对签名信息进行解密,若对签名信息解密成功,则可以确定对签名信息验证通过。
具体而言,区块链节点可以通过调用智能合约获取合约调用方的公钥,然后利用获取到的合约调用方的公钥对签名信息进行解密,如果区块链节点能够对签名信息解密成功,则可以确定签名信息验证通过,反之,则可以确定签名信息验证不通过。
在本申请的一个实施例中,合约发布方可以请求将智能合约发布至区块链网络中,以使区块链网络中的各个节点设备都可以调用该智能合约,在该实施例中,如图8所示,具体可以包括步骤S810-步骤S830,详细说明如下:
步骤S810、接收合约发布方发送的智能合约发布请求,智能合约发布请求中包含有待发布智能合约的合约代码,合约代码中包含有规则生成方法代码。
具体地,合约发布方是用于请求将待发布智能合约发布至区块链网络中的一方,合约发布方在编写待发布智能合约的合约代码后,可以构造智能合约发布请求,然后将智能合约发布请求发送至区块链网络中的区块链节点。其中,合约代码中包含有规则生成方法代码。
需要指出的是,本申请实施例中提及的合约所有方和合约发布方可以是同一主体。
步骤S820、响应于发布请求,对合约代码进行校验。
合约代码是用户将需执行协议条款直接写入代码行所形成的,合约代码是以字节的形式表示,不同的执行协议形成不同的合约代码,不同的合约代码可以实现不同的业务逻辑。
正因为如此,为了保证发布至区块链网络中的智能合约的合约代码能够实现对应的业务逻辑,因此,区块链节点可以对待发布智能合约的合约代码进行校验。
步骤S830、若对合约代码校验通过,则将待发布智能合约发布至区块链网络中。
如果对合约代码校验通过,则可以将待发布智能合约发布至区块链网络中。反之,如果对合约代码校验未通过,则可以不将待发布智能合约发布至区块链网络中。
在本申请的一个实施例中,如图9所示,校验合约代码的过程具体包括步骤S910-步骤S930,具体说明如下:
步骤S910、根据待发布智能合约的合约类型,创建对应的虚拟机。
具体的,虚拟机(virtual machine)指的是通过软件模拟的、具备完整硬件系统功能并运行在隔离环境下的完整计算机系统,比如虚拟化物理机VMware、Java虚拟机等。而区块链虚拟机则是建立在区块链系统上的代码运行环境,其主要作用是处理区块链系统内的智能合约。
在本实施例中,为了校验合约代码,可以先根据待发布智能合约的合约类型,创建代码的运行环境,也即创建对应的虚拟机。其中,合约类型是指合约编程语言,例如可以是c++编程语言、java编程语言、solidity编程语言、python编程语言等等。
因此,根据合约类型,创建对应的虚拟机可以包括:用于执行用c++编程语言编写的智能合约的GNU编译器集合(GCC)虚拟机、用于执行用java编程语言编写的智能合约的Java虚拟机(JVM)、用于执行用solidity编程语言编写的智能合约的以太坊虚拟机(EVM)、或用于执行用python编程语言编写的智能合约的Python虚拟机(PVM)。
步骤S920、通过虚拟机执行合约代码,得到执行结果。
步骤S930、若虚拟机在执行合约代码后返回合约执行成功的结果,则确定对合约代码校验通过。
在创建对应的虚拟机后,则可以通过虚拟机执行待发布智能合约的合约代码,如果虚拟机在执行待发布智能合约的合约代码后返回合约执行成功结果,则确定对合约代码校验通过,也即能够在虚拟机中执行合约代码的代码逻辑并输出参数,相反地,如果不能在虚拟机中执行合约代码的代码逻辑并输出参数,则可以确定对合约代码校验不通过。
在本申请的一个实施例中,合约发布方在生成智能合约发布请求之后,可以使用合约发布方的私钥对智能合约发布请求进行签名,以证明合约发布方的身份真实性,在该实施例中,如图10所示,具体可以包括步骤S1010-步骤S1020,现详细说明如下:
步骤S1010、获取合约发布方发送的针对智能合约发布请求的签名信息,签名信息是合约发布方采用合约发布方的私钥对智能合约发布请求进行签名生成的。
在本实施例中,合约发布方生成智能合约发布请求后,可以对智能合约发布请求进行签名,签名可以使得区块链节点能够确认智能合约发布请求的有效性以及合约发布方的身份的真实性。
具体地,合约发布方在生成智能合约发布请求后,可以使用合约发布方的私钥对智能合约发布请求进行签名,生成签名信息,并向区块链节点发送签名信息,签名信息用于使得区块链节点设备可以根据签名信息来确认智能合约发布请求是由合约发布方发送的,签名信息也可以用于确保智能合约发布请求在传输过程中不被篡改。
步骤S1020、若对签名信息进行验证且验证通过,则响应于智能合约发布请求,对合约代码进行校验。
区块链节点在获取到合约发布方发送的签名信息之后,则可以对签名信息进行验证,若验证通过,则说明智能合约发布请求确实是由合约发布方发送的,也就是说,智能合约发布请求是可以被信任的,因此,区块链节点则可以响应于智能合约发布请求,对合约代码进行校验,若校验通过,则可以将待发布智能合约发布至区块链网络中。
在本申请的一个实施例中,节点设备对签名信息进行验证的方法可以是利用合约发布方的公钥对签名信息进行解密,若对签名信息解密成功,则可以确定对签名信息验证通过。
具体而言,区块链节点可以通过调用智能合约获取合约发布方的公钥,然后利用获取到的合约发布方的公钥对签名信息进行解密,如果能够对签名信息解密成功,则可以确定签名信息验证通过,反之,则可以确定签名信息验证不通过。
图11示出了根据本申请的一个实施例的智能合约的调用方法的流程图,该智能合约的调用方法可以由作为合约调用方的网络设备来执行,该网络设备可以是图4中所示的网络设备102。参照图11所示,智能合约的调用方法包括步骤S1110-步骤S1140,现详细说明如下:
步骤S1110、向区块链网络发起对目标智能合约中的规则生成方法的调用请求,以获取第一规则信息。
为了解决智能合约调用执行过程中的问题,相关技术会将智能合约和规则信息进行绑定,将智能合约部署到区块链网络中时,除了智能合约的合约代码,还会相应地保存一份规则信息,规则信息用于对智能合约提供的各个方法进行描述和说明,规则信息例如可以是具有法律效力的条款(如权利义务责任条款)。合约调用方在调用智能合约的某一方法前,可以在区块链网络中查询到该方法对应的规则信息。
然而,相关技术的做法中存在的缺陷之一就是相关技术中的规则信息与具体的智能合约执行不吻合。相关技术所提供的只是一个静态的规则信息,也即规则信息模板。例如,智能合约的虚拟资源转移方法对应的规则信息模板是“{{from}}agrees to send{{quantity}}to{{to}}”,然而,可以理解的是,规则信息模板并不具有实际约束力,只有针对具体行为的规则信息才具有实际意义。例如,针对智能合约的某次执行而言,有具体的传入参数,如from=“Alice”,to=“Bob”,quantity=“100”。此时,根据传入参数得到的规则信息为“Alice agrees to send 100 to Bob”,只有这样的规则信息才具有实际约束力,而不是上文提到的规则信息模板。
对此,在本实施例的技术方案中,合约调用方在调用目标智能合约之前,可以通过向区块链网络发起对目标智能合约中的规则生成方法的调用请求,获取第一规则信息。换言之,本实施例中,第一规则信息是通过调用目标智能合约中的规则生成方法动态获得的,其并不是静态不变的规则信息,而是本次合约调用行为的过程中通过调用目标智能合约中的规则生成方法生成的。
在一些实施例中,合约调用方可以预先确定目标智能合约的调用方法以及目标智能合约中的规则生成方法所对应的调用参数,然后构造出规则查询请求,规则查询请求中可以包含有确定出的调用方法和调用参数,接着,合约调用方可以向区块链节点发送规则查询请求,用于请求查询本次合约调用行为对应的第一规则信息。区块链节点在接收到规则查询请求之后,则可以根据调用方法和调用参数,发起对规则生成方法的调用,从而获取到第一规则信息,将获取到的第一规则信息返回给合约调用方,合约调用方因此而获得第一规则信息。
步骤S1120、若接收到对第一规则信息的确认指令,则生成用于调用目标智能合约的交易请求,交易请求中包含有规则生成方法所对应的调用参数和第一规则信息。
合约调用方获取到第一规则信息后,可以对第一规则信息进行确认,如果接收到对第一规则信息的确认指令,合约调用方则可以构造用于调用目标智能合约的交易请求,构造的交易请求中可以包含有第一规则信息,当然,合约调用方还可以将目标智能合约中的规则生成方法所对应的调用参数包含在交易请求中。
可以理解的是,在合约调用方获取第一规则信息之后,如果其不认可第一规则信息,那么,合约调用方可以中止流程,不再生成用于调用目标智能合约的交易请求。
步骤S1130、向区块链网络发送交易请求,交易请求用于使区块链网络在第一规则信息与第二规则信息相匹配时,根据交易请求调用并执行目标智能合约,得到交易结果,第二规则信息是区块链网络根据调用参数调用规则生成方法获得的。
具体而言,合约调用方在生成用于调用目标智能合约的交易请求之后,则可以将交易请求发送至区块链网络,以使区块链网络中的区块链节点对交易请求进行响应。
区块链节点接收到交易请求之后,不会立即根据交易请求调用并执行目标智能合约,而是会根据规则生成方法所对应的调用参数,发起对目标智能合约中的规则生成方法的调用,以获取第二规则信息。区块链节点这样操作的目的在于利用第二规则信息对合约调用方发送的第一规则信息进行验证,以确定第一规则信息与第二规则信息是否相匹配。并且,只有在确定第一规则信息与第二规则信息相匹配的情况下,区块链节点才会根据合约调用方的交易请求调用目标智能合约的接口,执行目标智能合约中对应于该接口的合约代码,实现相应的交易逻辑,得到交易结果。
步骤S1140、接收区块链网络返回的交易结果。
其中,区块链网络在获得交易结果后,可以向合约调用方返回交易结果,以完成对合约调用方的交易请求的响应,合约调用方可以接收区块链网络返回的交易结果。
图12示出了根据本申请一个实施例的智能合约的调用方法的交互流程图,需要说明的是,图12中合约调用方和合约发布方的数目仅仅是示意性的。根据实现需要,可以包括任意数目的合约调用方和合约发布方。在本申请实施例的技术方案中,可以包括智能合约发布和智能合约调用两个过程,其中,智能合约发布过程是指合约发布方将待发布智能合约发布至区块链网络中,以使区块链网络中每个区块链节点都可以调用智能合约,智能合约调用过程是指合约调用方对发布至区块链网络中的智能合约的调用。由此可见,智能合约的发布是智能合约调用的前提。下面将对这两个过程分别进行说明:
首先,对智能合约发布过程进行详细说明,具体可以包括步骤S1210-步骤S1240:
在步骤S1210中,合约发布方编写待发布智能合约的合约代码,合约代码中包含有规则生成方法代码。示意性地,合约发布方编写的合约代码可以如下所示:
Figure BDA0003072106200000231
Figure BDA0003072106200000241
在步骤S1220中,合约发布方在编写合约代码之后,则可以生成智能合约发布请求并对智能合约发布请求进行签名。
在步骤S1230中,合约发布方将智能合约发布请求和签名信息发送至区块链网络中的区块链节点,以请求发布待发布智能合约至区块链网络。
在步骤S1240中,区块链节点接收到智能合约发布请求和签名信息之后,可以对签名信息进行验证,若验证通过,则响应于智能合约发布请求,对合约代码进行校验,若对合约代码校验通过,则将待发布智能合约发布至区块链网络中。
接下来,对智能合约调用过程进行详细说明,具体可以包括步骤S1210’-步骤S1290’:
在步骤S1210’中,合约调用方确定目标智能合约的调用方法以及目标智能合约中的规则生成方法所对应的调用参数。例如,确定目标智能合约的调用方法method=‘transfer’,目标智能合约中的规则生成方法所对应的调用参数包含有from=‘alice’、to=‘tesla_company’,quantity=249900。
在步骤S1220’中,合约调用方生成规则查询请求,并将规则查询请求发送至区块链节点,规则查询请求中包含有目标智能合约的调用方法以及目标智能合约中的规则生成方法所对应的调用参数。
在步骤S1230’中,合约调用方接收区块链节点返回的第一规则信息,第一规则信息是区块链节点根据调用方法和调用参数,发起对规则生成方法的调用所获取到的。示意性地,区块链节点可以将调用方法和调用参数传入到规则生成方法getClause{‘transfer’,‘{“from”:“alice”,
“to”:“tesla_company”,“quantity”:249900}’},最后得到第一规则信息可以表示为:“alice”agrees to send 249900 CNY to“tesla_company”for buying Model 3|Telsa。
在步骤S1240’中,合约调用方确认第一规则信息并对第一规则信息进行哈希运算,得到的第一哈希值。
在步骤S1250’中,合约调用方生成用于调用目标智能合约的交易请求并对交易请求进行签名,交易请求中包含有第一哈希值以及规则生成方法所对应的调用参数。
在步骤S1260’中,合约调用方向区块链节点发送交易请求和签名信息。
在步骤S1270’中,区块链节点接收到交易请求和签名信息之后,可以对签名信息进行验证,若验证通过,则根据交易请求中包含的规则生成方法所对应的调用参数,发起对目标智能合约中的规则生成方法的调用,以获得第二规则信息。
在步骤S1280’中,区块链节点对第二规则信息进行哈希运算,得到第二哈希值,并比较第一哈希值和第二哈希值是否相同。
在步骤S1290’中,如果第一哈希值和第二哈希值相同,则根据交易请求调用并执行目标智能合约,得到交易结果。最后将交易结果返回至合约调用方。
以下介绍本申请的装置实施例,可以用于执行本申请上述实施例中的智能合约的调用方法。对于本申请装置实施例中未披露的细节,请参照本申请上述的智能合约的调用方法的实施例。
图13示出了根据本申请的一个实施例的智能合约的调用装置的框图,参照图13所示,根据本申请的一个实施例的智能合约的调用装置1300,包括:第一接收单元1302、第一发起单元1304、第一发送单元1306以及返回单元1308。
其中,所述第一接收单元1302,配置为接收合约调用方发送的用于调用目标智能合约的交易请求,所述交易请求中包含有第一规则信息和所述目标智能合约中的规则生成方法所对应的调用参数,所述第一规则信息是所述合约调用方通过调用所述规则生成方法所获得的;所述第一发起单元1304,配置为根据所述规则生成方法所对应的调用参数,发起对所述目标智能合约中的规则生成方法的调用,以获取第二规则信息;所述第一发送单元1306,配置为若所述第一规则信息与所述第二规则信息相匹配,则根据所述交易请求调用并执行所述目标智能合约,得到交易结果;所述返回单元1308,配置为将所述交易结果返回至所述合约调用方。
在本申请的一些实施例中,在所述第一接收单元1302配置为接收合约调用方发送的用于调用目标智能合约的交易请求之前,所述第一接收单元1302还配置为:接收所述合约调用方发送的规则查询请求,所述规则查询请求中包含有所述目标智能合约的调用方法和所述规则生成方法所对应的调用参数;根据所述调用方法和所述调用参数,发起对所述规则生成方法的调用,以获取所述第一规则信息;将所述第一规则信息返回至所述合约调用方。
在本申请的一些实施例中,所述装置还包括:获取单元,配置为获取对所述第一规则信息进行哈希运算所得到的第一哈希值;运算单元,配置为对所述第二规则信息进行哈希运算,得到第二哈希值;确定单元,配置为若所述第一哈希值与所述第二哈希值相同,则确定所述第一规则信息与所述第二规则信息相匹配。
在本申请的一些实施例中,所述第一发起单元1304包括:第一获取子单元,配置为获取所述合约调用方发送的针对所述交易请求的签名信息,所述签名信息是所述合约调用方采用所述合约调用方的私钥对所述交易请求进行签名生成的;第一验证子单元,配置为若对所述签名信息进行验证且验证通过,则根据所述规则生成方法所对应的调用参数,发起对所述规则生成方法的调用。
在本申请的一些实施例中,所述第一获取子单元还配置为:获取所述合约调用方的公钥,并采用所述合约调用方的公钥对所述签名信息进行解密;若对所述签名信息解密成功,则确定对所述签名信息验证通过。
在本申请的一些实施例中,所述返回单元1308还配置为:若所述第一规则信息与所述第二规则信息不匹配,则向所述合约调用方返回拒绝响应消息。
在本申请的一些实施例中,所述装置还包括:发布请求接收单元,配置为接收合约发布方发送的智能合约发布请求,所述智能合约发布请求中包含有待发布智能合约的合约代码,所述合约代码中包含有规则生成方法代码;校验单元,配置为响应于所述智能合约发布请求,对所述合约代码进行校验;发布单元,配置为若对所述合约代码校验通过,则将所述待发布智能合约发布至所述区块链网络中。
在本申请的一些实施例中,所述校验单元还配置为:根据所述待发布智能合约的合约类型,创建对应的虚拟机;通过所述虚拟机执行所述合约代码,得到执行结果;若所述虚拟机在执行所述合约代码后返回合约执行成功的结果,则确定对所述合约代码校验通过。
在本申请的一些实施例中,所述校验单元包括:第二获取子单元,配置为获取所述合约发布方发送的针对所述智能合约发布请求的签名信息,所述签名信息是所述合约发布方采用所述合约发布方的私钥对所述智能合约发布请求进行签名生成的;第二验证子单元,配置为若对所述签名信息进行验证且验证通过,则响应于所述智能合约发布请求,对所述合约代码进行校验。
在本申请的一些实施例中,所述第二获取子单元还配置为:获取所述合约发布方的公钥,并采用所述合约发布方的公钥对所述签名信息进行解密;若对所述签名信息解密成功,则确定对所述签名信息验证通过。
图14示出了根据本申请的一个实施例的智能合约的调用装置的框图。
参见图14所示,根据本申请的一个实施例的智能合约的调用装置1400,包括:第二发起单元1402、生成单元1404、第二发送单元1406以及接收单元1408。
其中,所述第二发起单元1402,配置为向区块链网络发起对目标智能合约中的规则生成方法的调用请求,以获取第一规则信息;所述生成单元1404,配置为若接收到对所述第一规则信息的确认指令,则生成用于调用所述目标智能合约的交易请求,所述交易请求中包含有所述规则生成方法所对应的调用参数和所述第一规则信息;所述第二发送单元1406,配置为向所述区块链网络发送所述交易请求,所述交易请求用于使所述区块链网络在所述第一规则信息与第二规则信息相匹配时,根据所述交易请求调用并执行所述目标智能合约,得到交易结果,所述第二规则信息是所述区块链网络根据所述调用参数调用所述规则生成方法获得的;所述接收单元1408,配置为接收所述区块链网络返回的所述交易结果。
图15示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图15示出的电子设备的计算机系统1500仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图15所示,计算机系统1500包括中央处理单元(Central Processing Unit,CPU)1501,其可以根据存储在只读存储器(Read-Only Memory,ROM)1502中的程序或者从存储部分1508加载到随机访问存储器(Random Access Memory,RAM)1503中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在RAM 1503中,还存储有系统操作所需的各种程序和数据。CPU 1501、ROM 1502以及RAM 1503通过总线1504彼此相连。输入/输出(Input/Output,I/O)接口1505也连接至总线1504。
以下部件连接至I/O接口1505:包括键盘、鼠标等的输入部分1506;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1507;包括硬盘等的存储部分1508;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1509。通信部分1509经由诸如因特网的网络执行通信处理。驱动器1510也根据需要连接至I/O接口1505。可拆卸介质1511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1510上,以便于从其上读出的计算机程序根据需要被安装入存储部分1508。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分1509从网络上被下载和安装,和/或从可拆卸介质1511被安装。在该计算机程序被中央处理单元(CPU)1501执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的实施方式后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

Claims (15)

1.一种智能合约的调用方法,其特征在于,所述方法包括:
接收合约调用方发送的用于调用目标智能合约的交易请求,所述交易请求中包含有第一规则信息和所述目标智能合约中的规则生成方法所对应的调用参数,所述第一规则信息是所述合约调用方通过调用所述规则生成方法所获得的;
根据所述规则生成方法所对应的调用参数,发起对所述目标智能合约中的规则生成方法的调用,以获取第二规则信息;
若所述第一规则信息与所述第二规则信息相匹配,则根据所述交易请求调用并执行所述目标智能合约,得到交易结果;
将所述交易结果返回至所述合约调用方。
2.根据权利要求1所述的方法,其特征在于,在接收合约调用方发送的用于调用目标智能合约的交易请求之前,所述方法还包括:
接收所述合约调用方发送的规则查询请求,所述规则查询请求中包含有所述目标智能合约的调用方法和所述规则生成方法所对应的调用参数;
根据所述调用方法和所述调用参数,发起对所述规则生成方法的调用,以获取所述第一规则信息;
将所述第一规则信息返回至所述合约调用方。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取对所述第一规则信息进行哈希运算所得到的第一哈希值;
对所述第二规则信息进行哈希运算,得到第二哈希值;
若所述第一哈希值与所述第二哈希值相同,则确定所述第一规则信息与所述第二规则信息相匹配。
4.根据权利要求1所述的方法,其特征在于,根据所述规则生成方法所对应的调用参数,发起对所述目标智能合约中的规则生成方法的调用,包括:
获取所述合约调用方发送的针对所述交易请求的签名信息,所述签名信息是所述合约调用方采用所述合约调用方的私钥对所述交易请求进行签名生成的;
若对所述签名信息进行验证且验证通过,则根据所述规则生成方法所对应的调用参数,发起对所述规则生成方法的调用。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
获取所述合约调用方的公钥,并采用所述合约调用方的公钥对所述签名信息进行解密;
若对所述签名信息解密成功,则确定对所述签名信息验证通过。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述第一规则信息与所述第二规则信息不匹配,则向所述合约调用方返回拒绝响应消息。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收合约发布方发送的智能合约发布请求,所述智能合约发布请求中包含有待发布智能合约的合约代码,所述合约代码中包含有规则生成方法代码;
响应于所述智能合约发布请求,对所述合约代码进行校验;
若对所述合约代码校验通过,则将所述待发布智能合约发布至所述区块链网络中。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
根据所述待发布智能合约的合约类型,创建对应的虚拟机;
通过所述虚拟机执行所述合约代码,得到执行结果;
若所述虚拟机在执行所述合约代码后返回合约执行成功的结果,则确定对所述合约代码校验通过。
9.根据权利要求7所述的方法,其特征在于,响应于所述智能合约发布请求,对所述合约代码进行校验,包括:
获取所述合约发布方发送的针对所述智能合约发布请求的签名信息,所述签名信息是所述合约发布方采用所述合约发布方的私钥对所述智能合约发布请求进行签名生成的;
若对所述签名信息进行验证且验证通过,则响应于所述智能合约发布请求,对所述合约代码进行校验。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
获取所述合约发布方的公钥,并采用所述合约发布方的公钥对所述签名信息进行解密;
若对所述签名信息解密成功,则确定对所述签名信息验证通过。
11.一种智能合约的调用方法,其特征在于,所述方法包括:
向区块链网络发起对目标智能合约中的规则生成方法的调用请求,以获取第一规则信息;
若接收到对所述第一规则信息的确认指令,则生成用于调用所述目标智能合约的交易请求,所述交易请求中包含有所述规则生成方法所对应的调用参数和所述第一规则信息;
向所述区块链网络发送所述交易请求,所述交易请求用于使所述区块链网络在所述第一规则信息与第二规则信息相匹配时,根据所述交易请求调用并执行所述目标智能合约,得到交易结果,所述第二规则信息是所述区块链网络根据所述调用参数调用所述规则生成方法获得的;
接收所述区块链网络返回的所述交易结果。
12.一种智能合约的调用装置,其特征在于,所述装置包括:
第一接收单元,配置为接收合约调用方发送的用于调用目标智能合约的交易请求,所述交易请求中包含有第一规则信息和所述目标智能合约中的规则生成方法所对应的调用参数,所述第一规则信息是所述合约调用方通过调用所述规则生成方法所获得的;
第一发起单元,配置为根据所述规则生成方法所对应的调用参数,发起对所述目标智能合约中的规则生成方法的调用,以获取第二规则信息;
第一发送单元,配置为若所述第一规则信息与所述第二规则信息相匹配,则根据所述交易请求调用并执行所述目标智能合约,得到交易结果;
返回单元,配置为将所述交易结果返回至所述合约调用方。
13.一种智能合约的调用装置,其特征在于,所述装置包括:
第二发起单元,配置为向区块链网络发起对目标智能合约中的规则生成方法的调用请求,以获取第一规则信息;
生成单元,配置为若接收到对所述第一规则信息的确认指令,则生成用于调用所述目标智能合约的交易请求,所述交易请求中包含有所述规则生成方法所对应的调用参数和所述第一规则信息;
第二发送单元,配置为向所述区块链网络发送所述交易请求,所述交易请求用于使所述区块链网络在所述第一规则信息与第二规则信息相匹配时,根据所述交易请求调用并执行所述目标智能合约,得到交易结果,所述第二规则信息是所述区块链网络根据所述调用参数调用所述规则生成方法获得的;
接收单元,配置为接收所述区块链网络返回的所述交易结果。
14.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至10中任一项所述的智能合约的调用方法,或实现如权利要求11中所述的智能合约的调用方法。
15.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至10中任一项所述的智能合约的调用方法,或实现如权利要求11所述的智能合约的调用方法。
CN202110542432.5A 2021-05-18 2021-05-18 智能合约的调用方法、装置、计算机可读介质及电子设备 Pending CN115375303A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110542432.5A CN115375303A (zh) 2021-05-18 2021-05-18 智能合约的调用方法、装置、计算机可读介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110542432.5A CN115375303A (zh) 2021-05-18 2021-05-18 智能合约的调用方法、装置、计算机可读介质及电子设备

Publications (1)

Publication Number Publication Date
CN115375303A true CN115375303A (zh) 2022-11-22

Family

ID=84059170

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110542432.5A Pending CN115375303A (zh) 2021-05-18 2021-05-18 智能合约的调用方法、装置、计算机可读介质及电子设备

Country Status (1)

Country Link
CN (1) CN115375303A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116805947A (zh) * 2023-08-21 2023-09-26 腾讯科技(深圳)有限公司 区块链数据处理方法、装置、设备及计算机可读存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116805947A (zh) * 2023-08-21 2023-09-26 腾讯科技(深圳)有限公司 区块链数据处理方法、装置、设备及计算机可读存储介质
CN116805947B (zh) * 2023-08-21 2023-11-10 腾讯科技(深圳)有限公司 区块链数据处理方法、装置、设备及计算机可读存储介质

Similar Documents

Publication Publication Date Title
US11743052B2 (en) Platform for generating authenticated data objects
US11159526B2 (en) System and method for decentralized-identifier authentication
US10992649B2 (en) Systems and methods for privacy in distributed ledger transactions
WO2021000337A1 (en) System and method for mapping decentralized identifiers to real-world entities
CN110348853B (zh) 一种基于标识认证的区块链离线交易方法和系统
CN112215608A (zh) 数据处理方法和装置
EP3962135B1 (en) Information sharing methods, apparatuses, and devices
CN112560072B (zh) 基于区块链的密钥管理方法、装置、介质及设备
CN112613877A (zh) 应用于区块链网络的智能合约触发方法、装置及相关设备
CN115375303A (zh) 智能合约的调用方法、装置、计算机可读介质及电子设备
US8910260B2 (en) System and method for real time secure image based key generation using partial polygons assembled into a master composite image
CN116975810A (zh) 身份验证方法、装置、电子设备及计算机可读存储介质
CN113672988B (zh) 基于区块链的信息管理方法、系统、介质及电子设备
CN115967508A (zh) 数据访问控制方法及装置、设备、存储介质、程序产品
US20230419285A1 (en) NFT Enforcement Control System
CN115632794A (zh) 一种分布式数字身份验证系统、方法和相关装置
CN117879829A (zh) 一种权限控制方法及设备
CN116975901A (zh) 基于区块链的身份验证方法、装置、设备、介质及产品
CN116226932A (zh) 业务数据校验方法、装置、计算机介质及电子设备
CN113761496A (zh) 一种基于区块链的身份校验方法及装置和电子设备
CN115134144A (zh) 企业级业务系统认证方法、装置和系统
CN117014144A (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