结合代码标注与事件函数类型的收据存储方法和节点技术

技术编号:22137775 阅读:34 留言:0更新日期:2019-09-18 11:11
本说明书一个或多个实施例提供一种结合代码标注与事件函数类型的收据存储方法和节点,该方法可以包括:第一区块链节点接收经过加密的对应于智能合约的交易,所述智能合约的代码中包括通过暴露标识符标明的对象;第一区块链节点在可信执行环境中解密所述交易以获得所述智能合约,所述智能合约包含特殊事件函数;第一区块链节点在所述可信执行环境中执行所述智能合约,得到收据数据,所述收据数据包含对应于所述特殊事件函数的日志;第一区块链节点存储所述收据数据,使对应于所述特殊事件函数的日志中的至少一部分收据内容以明文形式存储、所述收据数据的其余内容以密文形式存储,所述至少一部分收据内容匹配于所述暴露标识符标明的对象。

Receipt Storage Method and Node Combining Code Annotation with Event Function Type

【技术实现步骤摘要】
结合代码标注与事件函数类型的收据存储方法和节点
本说明书一个或多个实施例涉及区块链
,尤其涉及一种结合代码标注与事件函数类型的收据存储方法和节点。
技术介绍
区块链技术构建在传输网络(例如点对点网络)之上。传输网络中的网络节点利用链式数据结构来验证与存储数据,并采用分布式节点共识算法来生成和更新数据。目前企业级的区块链平台技术上最大的两个挑战就是隐私和性能,往往这两个挑战很难同时解决。大多解决方案都是通过损失性能换取隐私,或者不大考虑隐私去追求性能。常见的解决隐私问题的加密技术,如同态加密(Homomorphicencryption)和零知识证明(Zero-knowledgeproof)等复杂度高,通用性差,而且还可能带来严重的性能损失。可信执行环境(TrustedExecutionEnvironment,TEE)是另一种解决隐私问题的方式。TEE可以起到硬件中的黑箱作用,在TEE中执行的代码和数据操作系统层都无法偷窥,只有代码中预先定义的接口才能对其进行操作。在效率方面,由于TEE的黑箱性质,在TEE中进行运算的是明文数据,而不是同态加密中的复杂密码学运算,计算过程效率没有损失,因此与TEE相结合可以在性能损失较小的前提下很大程度上提升区块链的安全性和隐私性。目前工业界十分关注TEE的方案,几乎所有主流的芯片和软件联盟都有自己的TEE解决方案,包括软件方面的TPM(TrustedPlatformModule,可信赖平台模块)以及硬件方面的IntelSGX(SoftwareGuardExtensions,软件保护扩展)、ARMTrustzone(信任区)和AMDPSP(PlatformSecurityProcessor,平台安全处理器)。
技术实现思路
有鉴于此,本说明书一个或多个实施例提供一种结合代码标注与事件函数类型的收据存储方法和节点。为实现上述目的,本说明书一个或多个实施例提供技术方案如下:根据本说明书一个或多个实施例的第一方面,提出了一种结合代码标注与事件函数类型的收据存储方法,包括:第一区块链节点接收经过加密的对应于智能合约的交易,所述智能合约的代码中包括通过暴露标识符标明的对象;第一区块链节点在可信执行环境中解密所述交易以获得所述智能合约,所述智能合约包含特殊事件函数;第一区块链节点在所述可信执行环境中执行所述智能合约,得到收据数据,所述收据数据包含对应于所述特殊事件函数的日志;第一区块链节点存储所述收据数据,使对应于所述特殊事件函数的日志中的至少一部分收据内容以明文形式存储、所述收据数据的其余内容以密文形式存储,所述至少一部分收据内容匹配于所述暴露标识符标明的对象。根据本说明书一个或多个实施例的第二方面,提出了一种结合代码标注与事件函数类型的收据存储节点,包括:接收单元,接收经过加密的对应于智能合约的交易,所述智能合约的代码中包括通过暴露标识符标明的对象;解密单元,在可信执行环境中解密所述交易以获得所述智能合约,所述智能合约包含特殊事件函数;执行单元,在所述可信执行环境中执行所述智能合约,得到收据数据,所述收据数据包含对应于所述特殊事件函数的日志;存储单元,存储所述收据数据,使对应于所述特殊事件函数的日志中的至少一部分收据内容以明文形式存储、所述收据数据的其余内容以密文形式存储,所述至少一部分收据内容匹配于所述暴露标识符标明的对象。根据本说明书一个或多个实施例的第三方面,提出了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器通过运行所述可执行指令以实现如第一方面所述的方法。根据本说明书一个或多个实施例的第四方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第一方面所述方法的步骤。附图说明图1是一示例性实施例提供的一种创建智能合约的示意图。图2是一示例性实施例提供的一种调用智能合约的示意图。图3是一示例性实施例提供的一种结合代码标注与事件函数类型的收据存储方法的流程图。图4是一示例性实施例提供的一种在区块链节点上实现隐私保护的示意图。图5是一示例性实施例提供的一种通过系统合约和链代码实现区块链网络的功能逻辑的示意图。图6是一示例性实施例提供的一种结合代码标注与事件函数类型的收据存储节点的框图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。区块链一般被划分为三种类型:公有链(PublicBlockchain),私有链(PrivateBlockchain)和联盟链(ConsortiumBlockchain)。此外,还有多种类型的结合,比如私有链+联盟链、联盟链+公有链等不同组合形式。其中去中心化程度最高的是公有链。公有链以比特币、以太坊为代表,加入公有链的参与者可以读取链上的数据记录、参与交易以及竞争新区块的记账权等。而且,各参与者(即节点)可自由加入以及退出网络,并进行相关操作。私有链则相反,该网络的写入权限由某个组织或者机构控制,数据读取权限受组织规定。简单来说,私有链可以为一个弱中心化系统,参与节点具有严格限制且少。这种类型的区块链更适合于特定机构内部使用。联盟链则是介于公有链以及私有链之间的区块链,可实现“部分去中心化”。联盟链中各个节点通常有与之相对应的实体机构或者组织;参与者通过授权加入网络并组成利益相关联盟,共同维护区块链运行。不论是公有链、私有链还是联盟链,都可能提供智能合约的功能。区块链上的智能合约是在区块链系统上可以被交易触发执行的合约。智能合约可以通过代码的形式定义。以以太坊为例,支持用户在以太坊网络中创建并调用一些复杂的逻辑,这是以太坊区别于比特币区块链技术的最大挑战。以太坊作为一个可编程区块链的核心是以太坊虚拟机(EVM),每个以太坊节点都可以运行EVM。EVM是一个图灵完备的虚拟机,这意味着可以通过它实现各种复杂的逻辑。用户在以太坊中发布和调用智能合约就是在EVM上运行的。实际上,虚拟机直接运行的是虚拟机代码(虚拟机字节码,下简称“字节码”)。部署在区块链上的智能合约可以是字节码的形式。例如图1所示,Bob将一个包含创建智能合约信息的交易发送到以太坊网络后,节点1的EVM可以执行这个交易并生成对应的合约实例。图中1中的“0x6f8ae93…”代表了这个合约的地址,交易的data字段保存的可以是字节码,交易的to字段为空。节点间通过共识机制达成一致后,这个合约成功创建,并且可以在后续过程中被调用。合约创建后,区块链上出现一个与该智能合约对应的合约账户,并拥有一个特定的地址,合约代码将保存在该合本文档来自技高网
...

【技术保护点】
1.一种结合代码标注与事件函数类型的收据存储方法,包括:第一区块链节点接收经过加密的对应于智能合约的交易,所述智能合约的代码中包括通过暴露标识符标明的对象;第一区块链节点在可信执行环境中解密所述交易以获得所述智能合约,所述智能合约包含特殊事件函数;第一区块链节点在所述可信执行环境中执行所述智能合约,得到收据数据,所述收据数据包含对应于所述特殊事件函数的日志;第一区块链节点存储所述收据数据,使对应于所述特殊事件函数的日志中的至少一部分收据内容以明文形式存储、所述收据数据的其余内容以密文形式存储,所述至少一部分收据内容匹配于所述暴露标识符标明的对象。

【技术特征摘要】
1.一种结合代码标注与事件函数类型的收据存储方法,包括:第一区块链节点接收经过加密的对应于智能合约的交易,所述智能合约的代码中包括通过暴露标识符标明的对象;第一区块链节点在可信执行环境中解密所述交易以获得所述智能合约,所述智能合约包含特殊事件函数;第一区块链节点在所述可信执行环境中执行所述智能合约,得到收据数据,所述收据数据包含对应于所述特殊事件函数的日志;第一区块链节点存储所述收据数据,使对应于所述特殊事件函数的日志中的至少一部分收据内容以明文形式存储、所述收据数据的其余内容以密文形式存储,所述至少一部分收据内容匹配于所述暴露标识符标明的对象。2.根据权利要求1所述的方法,第一区块链节点接收的交易对应的智能合约,包括:高级语言编写的智能合约;或,字节码形式的智能合约。3.根据权利要求2所述的方法,当第一区块链节点接收的交易对应的智能合约为高级语言编写的智能合约时,所述方法还包括:第一区块链节点通过编译器对所述高级语言编写的智能合约进行编译,生成字节码形式的智能合约,以在所述可信执行环境中执行。4.根据权利要求2所述的方法,当第一区块链节点接收的交易对应的智能合约为字节码形式的智能合约时,所述字节码形式的智能合约由客户端通过编译器对高级语言编写的智能合约进行编译而得到,所述高级语言编写的智能合约由用户在所述客户端上编写得到。5.根据权利要求2所述的方法,所述高级语言编写的智能合约与所述字节码形式的智能合约具有相同或对应的暴露标识符。6.根据权利要求1所述的方法,第一区块链节点接收的交易对应的智能合约,包括:用户在第一区块链节点上生成的智能合约;或,用户在客户端上生成的智能合约;或,所述客户端通过第二区块链节点发来的交易中的智能合约。7.根据权利要求1所述的方法,所述暴露标识符标明的对象包括:收据字段和/或状态变量。8.根据权利要求1所述的方法,所述暴露标识符标明的对象包括:合约级对象;第一区块链节点存储所述收据数据,包括:第一区块链节点在存储所述收据数据时,将所有特殊事件函数产生的日志中对应于所述合约级对象的部分以明文形式存储。9.根据权利要求1所述的方法,所述暴露标识符标明的对象包括:对应于所述智能合约中定义的至少一个事件的事件级对象;第一区块链节点存储所述收据数据,包括:第一区块链节点在存储所述收据数据时,确定出所述至少一个事件对应的特殊事件函数产生的日志,并将确定出的日志中对应于所述事件级对象的部分以明文形式存储。10.根据权利要求1所述的方法,所述智能合约中的事件函数包含类型标识符,所述类型标识符用于将所述事件函数标记为特殊事件函数。11.根据权利要求1所述的方法,当所述智能合约包含的事件函数位于区块链上记录的特殊函数列表中时,所述智能合约包含的事件函数被判定为...

【专利技术属性】
技术研发人员:刘琦闫莺魏长征
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1