智能合约白名单制造技术

技术编号:22367661 阅读:55 留言:0更新日期:2019-10-23 05:51
本文的实施方式包括由区块链网络中的节点识别用以执行存储在由所述区块链网络维护的区块链中的智能合约的请求,该请求标识出请求执行所述智能合约的请求账户;由所述节点从与所述智能合约相关联的所述区块链中检索白名单,所述白名单标识出被授权执行所述智能合约的一个或多个账户;基于所述请求账户被包括在所述白名单中,由所述节点确定所述请求账户被授权执行所述智能合约;以及响应于确定所述请求账户被授权执行所述智能合约,由所述节点执行所述智能合约。

White list of smart contracts

【技术实现步骤摘要】
【国外来华专利技术】智能合约白名单
技术介绍
分布式账本系统(DLS),也可称为共识网络和/或区块链网络,使参与的实体能够安全地且不可篡改地存储数据。在不引用任何特定用例的情况下,DLS通常被称为区块链网络。区块链网络的示例类型可以包括公有区块链网络、私有区块链网络和联盟区块链网络。联盟区块链网络针对选择的实体组群提供,该实体组群控制共识处理,并包括访问控制层。智能合约是由区块链网络存储和执行的可执行软件指令集。智能合约通常以未加密的方式存储,因此对区块链网络中的所有参与者可见。区块链网络中的参与者可以编写和发布他们自己的智能合约,并且通常也可以调用已经部署在区块链网络中的智能合约。由于可以在智能合约中使用的指令集通常是图灵完备的,因此智能合约可以支持复杂的逻辑以支持不同的业务场景。智能合约的复杂性可能引起安全风险。智能合约的安全风险通常来自他们可能影响的一系列账户。攻击者可以利用已部署的智能合约中的漏洞来构建交易,以将由智能合约控制的资金重发给攻击者的账户。解决与智能合约相关的这些安全风险的解决方案将是有利的。
技术实现思路
本文的实施方式包括计算机实现的用于为智能合约实施账户白名单的方法。更具体地,本文的实施方式涉及用于允许智能合约的创建者定义白名单的技术,该白名单指定哪些账户可以调用智能合约。在一些实施方式中,动作包括:由区块链网络中的节点识别用以执行存储在由所述区块链网络维护的区块链中的智能合约的请求,该请求标识出请求执行所述智能合约的请求账户;由该节点从与所述智能合约相关联的所述区块链中检索白名单,所述白名单标识出被授权执行所述智能合约的一个或多个账户;基于所述请求账户被包括在所述白名单中,由该节点确定该请求账户被授权执行所述智能合约;以及响应于确定该请求账户被授权执行所述智能合约,由该节点执行所述智能合约。其他实施方式包括相应的系统、装置和被配置为执行所述方法的动作、编码在计算机存储设备上的计算机程序。这些和其他实施方式各自可选地包括以下一个或多个特征:在一些情况下,所述请求是第一请求,所述请求账户是第一账户,并且所述方法包括:由所述节点识别不同于所述第一请求的用以执行所述智能合约的第二请求,所述第二请求标识出不同于所述第一账户的第二账户;基于所述第二账户未被包括在所述白名单中,由所述节点确定所述第二账户未被授权执行所述智能合约;以及响应于确定所述请求账户未被授权执行所述智能合约,由所述节点拒绝用以执行所述智能合约的所述第二请求。在一些实施方式中,所述白名单被包括在与所述智能合约相关联的可执行指令集中。在一些实施方式中,所述白名单和与所述智能合约相关联的可执行指令集是分离的。在一些实施方式中,所述白名单包括被授权访问所述智能合约的所述一个或多个账户的标识。在一些情况下,所述白名单包括对所述智能合约外部的位置的引用,该位置存储被授权访问所述智能合约的所述一个或多个。在一些情况下,所述白名单标识出与一个或多个账户相关联的实体,并且确定所述请求账户被授权执行所述智能合约包括:确定所述请求账户是否与该实体相关联。本文还提供了耦接到一个或多个处理器并且其上存储有指令的一个或多个非暂态计算机可读存储介质,当所述指令由所述一个或多个处理器执行时,所述指令促使所述一个或多个处理器按照本文提供的方法的实施例执行操作。本文还提供了用于实施本文提供的所述方法的系统。该系统包括一个或多个处理器以及耦接到所述一个或多个处理器并且其上存储有指令的计算机可读存储介质,当所述指令由所述一个或多个处理器执行时,所述指令导致所述一个或多个处理器按照本文提供的方法的实施例执行操作。应了解,依据本文的方法可以包括本文描述的方面和特征的任意组合。也就是说,根据本文的方法不限于本文具体描述的方面和特征的组合,还包括所提供的方面和特征的任意组合。以下在附图和描述中阐述了本文的一个或多个实施例的细节。根据文和附图以及权利要求,本文的其他特征和优点将显而易见。附图说明图1描绘了可用于执行本文实施方式的环境的示例。图2描绘了根据本文实施方式的概念性架构的示例。图3描绘了根据本文实施方式的用于使能智能合约白名单的环境的示例。图4描绘了可以根据本文实施方式执行的信号流的示例。图5描绘了可以根据本文实施方式执行的处理的示例。图6描绘了根据本文实施方式的装置的模块的示例。各附图中相同的附图标记表示相同的元件。具体实施方式本文实施方式包括计算机实施的用于为智能合约实施账户白名单的方法。更具体地,本文实施方式涉及用于允许智能合约的创建者定义白名单的技术,该白名单指定哪些账户可以调用智能合约。为本文实施方式提供进一步的背景,并且如上所述,分布式账本系统(DLS),又可称为共识网络(例如,由点对点节点组成)和区块链网络,使参与的实体能够安全地、不可篡改地进行交易和存储数据。在不参考任何特定用例的情况下,本文所使用的术语区块链一般指DLS。区块链是以交易不可篡改并随后可被验证的方式存储交易的数据结构。区块链包括一个或多个区块。链中的每个区块通过包含在链中紧邻其之前的前一区块的加密哈希值(cryptographichash)链接到该前一区块。每个区块还包括时间戳、自身的加密哈希值以及一个或多个交易。已经被区块链网络中的节点验证的交易经哈希处理并编入默克尔(Merkle)树中。Merkle树是一种数据结构,在该树的叶节点处的数据经哈希处理,并且在该树的每个分支中的所有哈希值在该分支的根处连接。沿着该树持续该处理一直到整个树的根,在整个树的根处存储了代表树中所有数据的哈希值。通过确定哈希值是否与树的结构一致而可快速验证该哈希值是否为存储在该树中的交易的哈希值。区块链是用于存储交易的数据结构,而区块链网络是用于管理、更新和维护一个或多个区块链的计算节点的网络。如上所述,区块链网络可作为公有区块链网络、私有区块链网络或联盟区块链网络被提供。通常,联盟区块链网络在参与实体之间是私有的。在联盟区块链网络中,共识处理由授权的节点集控制,一个或多个节点由相应的实体(例如,金融机构、保险公司)操作。例如,由十(10)个实体(例如,金融机构、保险公司)组成的联盟可以操作联盟区块链网络,每个实体可以操作联盟区块链网络中的至少一个节点。因此,联盟区块链网络可以被认为是与参与实体相关的私有网络。在一些示例中,每个实体(节点)必须对每个区块签名,以使区块有效并被添加到区块链中。在一些示例中,至少实体(节点)的子集(例如,至少7个实体)必须对每个区块签名,以使区块有效并被添加到区块链中。预期本文的实施方式可以在任何适当类型的区块链网络中实现。鉴于以上背景,本文进一步详细描述了本文的实施方式。更具体地,并且如上所述,本文的实施方式涉及用于允许智能合约的创建者定义白名单的技术,该白名单指定哪些账户可以调用智能合约。通常,智能合约是存储在区块链中并由区块链网络中的节点执行的一个或多个计算机指令集。用于智能合约的代码通常被转换为可由区块链网络中的节点执行的形式(例如,字节码),并且将字节码本身或者被配置为检索智能合约字节码的字节码存储在区块链中。然后,区块链网络中的参与者可以调用智能合约代码中定义的函数,从而使节点执行所调用的函数中的指令。本文描述了允许智能合约的创建者指定区块链网络中被允许调用智能合约的账户列表本文档来自技高网...

【技术保护点】
1.一种计算机实施的用于控制对区块链网络中的智能合约的访问的方法,所述方法包括:由所述区块链网络中的节点识别用以执行存储在由所述区块链网络维护的区块链中的智能合约的请求,所述请求标识出请求执行所述智能合约的请求账户;由所述节点从与所述智能合约相关联的所述区块链中检索白名单,所述白名单标识出被授权执行所述智能合约的一个或多个账户;基于所述请求账户被包括在所述白名单中,由所述节点确定所述请求账户被授权执行所述智能合约;以及响应于确定所述请求账户被授权执行所述智能合约,由所述节点执行所述智能合约。

【技术特征摘要】
【国外来华专利技术】1.一种计算机实施的用于控制对区块链网络中的智能合约的访问的方法,所述方法包括:由所述区块链网络中的节点识别用以执行存储在由所述区块链网络维护的区块链中的智能合约的请求,所述请求标识出请求执行所述智能合约的请求账户;由所述节点从与所述智能合约相关联的所述区块链中检索白名单,所述白名单标识出被授权执行所述智能合约的一个或多个账户;基于所述请求账户被包括在所述白名单中,由所述节点确定所述请求账户被授权执行所述智能合约;以及响应于确定所述请求账户被授权执行所述智能合约,由所述节点执行所述智能合约。2.如权利要求1所述的方法,其中,所述请求是第一请求,并且所述请求账户是第一账户,所述方法包括:由所述节点识别不同于所述第一请求的用以执行所述智能合约的第二请求,所述第二请求标识出不同于所述第一账户的第二账户;基于所述第二账户未被包括在所述白名单中,由所述节点确定所述第二账户未被授权执行所述智能合约;以及响应于确定所述请求账户未被授权执行所述智能合约,由所述节点拒绝用以执行所述智能合约的所述第二请求。3.如权利要求1所述的方法,其中,所述白名单被包括在与所述智能合约相关联的可执行指令集中。4.如权利要求1所述的方法,其中,所述白名单和与所述智能合约相关联的可执行指令集是分离的。5.如权利要求1所述的方法,其中,所述白名单包括被授权访问所述智能合约的所述一个或多个账户的标识。6.如权利要求1所述的方法,其中,所述白名单包括对所述智能合约外部的位置的引用,该位置存储被授权访问所述智能合约的所述一个或多个。7.如权利要求1所述的方法,其中,所述白名单标识出与一个或多个账户相关联的实体,并且确定所述请求账户被授权执行所述智能合约包括:确定所述请求账户是否与所述实体相关联。8.一种耦接至一个或多个计算机且其上存储有指令的非暂态计算机可读存储介质,所述指令能够由所述一个或多个计算机执行以:由所述区块链网络中的节点识别用以执行存储在由所述区块链网络维护的区块链中的智能合约的请求,所述请求标识出请求执行所述智能合约的请求账户;由所述节点从与所述智能合约相关联的所述区块链中检索白名单,所述白名单标识出被授权执行所述智能合约的一个或多个账户;基于所述请求账户被包括在所述白名单中,由所述节点确定所述请求账户被授权执行所述智能合约;以及响应于确定所述请求账户被授权执行所述智能合约,由所述节点执行所述智能合约。9.如权利要求8所述的非暂态计算机可读存储介质,其中,所述请求是第一请求,并且所述请求账户是第一账户,所述方法包括:由所述节点识别不同于所述第一请求的用以执行所述智能合约的第二请求,所述第二请求标识出不同于所述第一账户的第二账户;基于所述第二账户未被包括...

【专利技术属性】
技术研发人员:夏凝谢桂鲁邓福喜
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1