区块链中智能合约的访问方法及装置制造方法及图纸

技术编号:38596920 阅读:9 留言:0更新日期:2023-08-26 23:32
本说明书提供一种区块链中智能合约的访问方法及装置,所述方法包括:响应于调用第一合约的目标交易,确定第一合约在执行过程中所需访问的第二合约;在第二合约为隐私合约的情况下,调用系统级安全策略合约,并从所述系统级安全策略合约的合约存储中读取预定义的系统级安全策略;根据所述系统级安全策略以及第一合约和第二合约分别对应的安全上下文,确定第一合约是否具有对第二合约的访问权限;其中,所述系统级安全策略记录有不同安全上下文对应的合约访问控制规则;在确定第一合约具有对第二合约的访问权限的情况下,允许第一合约在可信执行环境中执行时对第二合约进行访问。在可信执行环境中执行时对第二合约进行访问。在可信执行环境中执行时对第二合约进行访问。

【技术实现步骤摘要】
区块链中智能合约的访问方法及装置


[0001]本说明书实施例属于区块链
,尤其涉及一种区块链中智能合约的访问方法及装置。

技术介绍

[0002]区块链技术构建在传输网络(例如点对点网络)之上。传输网络中的网络节点利用链式数据结构来验证与存储数据,并采用分布式节点共识算法来生成和更新数据。区块链一般被划分为三种类型:公有链(Public Blockchain),私有链(Private Blockchain)和联盟链(Consortium Blockchain)。此外,还有多种类型的结合,比如私有链+联盟链、联盟链+公有链等不同组合形式。
[0003]不论是公有链、私有链还是联盟链,都以交易(transaction)的形式实现相关功能和数据交互,而各个对象分别以对应的账户参与到交易中。账户的类型可以分为外部账户和合约账户等。外部账户通常由个人或机构所控制,并生成和发起交易。合约账户对应于区块链上的智能合约,智能合约是公有链、私有链或联盟链类型的区块链上可以被交易触发执行的合约,智能合约通过代码的形式定义。
[0004]智能合约创建后,区块链上出现一个与该智能合约对应的合约账户,并拥有一个特定的地址,合约代码和账户存储将保存在该合约账户中。智能合约的行为由合约代码控制,而智能合约的账户存储则保存了合约的状态。换句话说,智能合约使得区块链上产生包含合约代码和账户存储(Storage)的虚拟账户。而外部账户在生成交易时,通过在交易的to字段添加被调用的智能合约对应的地址,可以对该智能合约进行调用,从而通过执行该智能合约的代码而实现相关功能。智能合约的合约代码在执行过程中可能需要对其他智能合约进行访问,以调用其他智能合约中的方法或者获取其他智能合约中的代码。

技术实现思路

[0005]本说明书的目的在于提供一种区块链中智能合约的访问方法及装置。
[0006]根据本说明书一个或多个实施例的第一方面,提出了一种区块链中智能合约的访问方法,所述方法包括:
[0007]响应于调用第一合约的目标交易,确定第一合约在执行过程中所需访问的第二合约;
[0008]在第二合约为隐私合约的情况下,调用系统级安全策略合约,并从所述系统级安全策略合约的合约存储中读取预定义的系统级安全策略;
[0009]根据所述系统级安全策略以及第一合约和第二合约分别对应的安全上下文,确定第一合约是否具有对第二合约的访问权限;其中,所述系统级安全策略记录有不同安全上下文对应的合约访问控制规则;
[0010]在确定第一合约具有对第二合约的访问权限的情况下,允许第一合约在可信执行环境中执行时对第二合约进行访问。
[0011]根据本说明书一个或多个实施例的第二方面,提出了一种区块链中智能合约的访问装置,所述装置包括:
[0012]第一确定单元:响应于调用第一合约的目标交易,确定第一合约在执行过程中所需访问的第二合约;
[0013]调用单元:在第二合约为隐私合约的情况下,调用系统级安全策略合约,并从所述系统级安全策略合约的合约存储中读取预定义的系统级安全策略;
[0014]第二确定单元:根据所述系统级安全策略以及第一合约和第二合约分别对应的安全上下文,确定第一合约是否具有对第二合约的访问权限;其中,所述系统级安全策略记录有不同安全上下文对应的合约访问控制规则;
[0015]访问单元:在确定第一合约具有对第二合约的访问权限的情况下,允许第一合约在可信执行环境中执行时对第二合约进行访问。
[0016]根据本说明书一个或多个实施例的第三方面,提出了一种电子设备,包括:
[0017]处理器;
[0018]用于存储处理器可执行指令的存储器;
[0019]其中,所述处理器通过运行所述可执行指令以实现如第一方面所述的方法。
[0020]根据本说明书一个或多个实施例的第四方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第一方面所述方法的步骤。
[0021]在本说明书实施例中,一方面,通过系统级安全策略来确定第一合约是否具有对第二合约的访问权限,使得第一合约在具备对第二合约的访问权限的情况下被允许访问第二合约,从而避免第二合约的合约数据因被不具备访问权限的合约所获取而泄露,保障了第二合约的隐私安全;另一方面,通过在可信执行环境中执行涉及隐私合约的访问,进一步防止作为隐私合约的第二合约的合约数据被泄露。
附图说明
[0022]为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0023]图1是一示例性实施例提供的一种区块链中智能合约的访问系统的架构图。
[0024]图2是一示例性实施例提供的一种区块链中智能合约的访问方法的流程图。
[0025]图3是一示例性实施例提供的一种权限控制的示意图。
[0026]图4是一示例性实施例提供的一种合约存储的示意图。
[0027]图5是一示例性实施例提供的一种设备的结构示意图。
[0028]图6是一示例性实施例提供的一种区块链中智能合约的访问装置的框图。
具体实施方式
[0029]为了使本
的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,
本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
[0030]区块链一般被划分为三种类型:公有链(Public Blockchain),私有链(Private Blockchain)和联盟链(Consortium Blockchain)。此外,还有多种类型的结合,比如私有链+联盟链、联盟链+公有链等不同组合形式。其中去中心化程度最高的是公有链,加入公有链的参与者可以读取链上的数据记录、参与交易以及竞争新区块的记账权等。而且,各参与者(即节点)可自由加入以及退出网络,并进行相关操作。私有链则相反,该网络的写入权限由某个组织或者机构控制,数据读取权限受组织规定。简单来说,私有链可以为一个弱中心化系统,参与节点具有严格限制且少。这种类型的区块链更适合于特定机构内部使用。联盟链则是介于公有链以及私有链之间的区块链,可实现“部分去中心化”。联盟链中各个节点通常有与之相对应的实体机构或者组织;参与者通过授权加入网络并组成利益相关联盟,共同维护区块链运行。
[0031]不论是公有链、私有链还是联盟链,都以交易(transaction)的形式实现相关功能和数据交互,而各个对象分别以对应的账户参与到交易中。账户的类型可以分为外部账户和合约账户等。外部账户通常由个人本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种区块链中智能合约的访问方法,所述方法包括:响应于调用第一合约的目标交易,确定第一合约在执行过程中所需访问的第二合约;在第二合约为隐私合约的情况下,调用系统级安全策略合约,并从所述系统级安全策略合约的合约存储中读取预定义的系统级安全策略;根据所述系统级安全策略以及第一合约和第二合约分别对应的安全上下文,确定第一合约是否具有对第二合约的访问权限;其中,所述系统级安全策略记录有不同安全上下文对应的合约访问控制规则;在确定第一合约具有对第二合约的访问权限的情况下,允许第一合约在可信执行环境中执行时对第二合约进行访问。2.根据权利要求1所述的方法,所述隐私合约的合约数据以密文形式存储于所述可信执行环境之外的目标存储空间;所述方法还包括:从所述目标存储空间获取第二合约的合约数据,并在获取的合约数据为加密数据的情况下,确定第二合约为隐私合约。3.根据权利要求1所述的方法,所述调用系统级安全策略合约,包括:通过调用预定义的主机接口执行所述区块链的链代码,以通过所述链代码中预定义的合约调用逻辑对所述系统级安全策略合约进行调用。4.根据权利要求3所述的方法,还包括:在第二合约为隐私合约或所述目标交易为隐私交易的情况下,在所述可信执行环境中执行所述目标交易;其中,所述合约调用逻辑对应的链代码部署或被读入所述可信执行环境中,且该链代码的调用条件包括:在所述可信执行环境中触发智能合约之间的相互访问。5.根据权利要求1所述的方法,所述访问权限包括以下至少之一:方法调用权限和代码获取权限。6.根据权利要求5所述的方法,第二合约包含至少一个方法,所述方法调用权限包括针对目标方法的调用权限,所述目标方法为所述至少一个方法中的任一方法;和/或第二合约包含至少一段代码,所述代码获取权限包括针对目标代码的获取权限,所述目标代码为所述至少一段代码中的任一代码。7.根据权利要求4所述的方法,所述系统级安全策略还记录有安全上下文转换规则;在确定第一合约具有对第二合约的方法调用权限的情况下,所述方法还包括:在第一合约调用...

【专利技术属性】
技术研发人员:黄祖城
申请(专利权)人:蚂蚁区块链科技上海有限公司
类型:发明
国别省市:

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

1