CN111767555A - 区块链中实现隐私保护的方法及节点、存储介质 - Google Patents

区块链中实现隐私保护的方法及节点、存储介质 Download PDF

Info

Publication number
CN111767555A
CN111767555A CN202010513122.6A CN202010513122A CN111767555A CN 111767555 A CN111767555 A CN 111767555A CN 202010513122 A CN202010513122 A CN 202010513122A CN 111767555 A CN111767555 A CN 111767555A
Authority
CN
China
Prior art keywords
contract
transaction
key
node
execution environment
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
CN202010513122.6A
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.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN202010513122.6A priority Critical patent/CN111767555A/zh
Publication of CN111767555A publication Critical patent/CN111767555A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • 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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Accounting & Taxation (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Finance (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Technology Law (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Storage Device Security (AREA)

Abstract

本说明书一个或多个实施例提供一种区块链中实现隐私保护的方法及节点、存储介质,该方法可以包括:区块链节点确定接收到的交易对应的智能合约;所述区块链节点在可信执行环境中执行所述智能合约;所述区块链节点在存储所述智能合约涉及的合约状态时用密钥加密,且不同合约状态对应于不同的密钥。

Description

区块链中实现隐私保护的方法及节点、存储介质
技术领域
本说明书一个或多个实施例涉及区块链技术领域,尤其涉及一种区块链中实现隐私保护的方法及节点、存储介质。
背景技术
区块链技术构建在传输网络(例如点对点网络)之上。传输网络中的网络节点利用链式数据结构来验证与存储数据,并采用分布式节点共识算法来生成和更新数据。这些区块链网络中的节点有时需要增加。
目前企业级的区块链平台技术上最大的两个挑战就是隐私和性能,往往这两个挑战很难同时解决。大多解决方案都是通过损失性能换取隐私,或者不大考虑隐私去追求性能。常见的解决隐私问题的加密技术,如同态加密(Homomorphic encryption)和零知识证明(Zero-knowledge proof)等复杂度高,通用性差,而且还可能带来严重的性能损失。
在解决隐私方面,可信执行环境(Trusted Execution Environment,TEE)是另一种解决方式。TEE可以起到硬件中的黑箱作用,在TEE中执行的代码和数据操作系统层都无法偷窥,只有代码中预先定义的接口才能对其进行操作。在效率方面,由于TEE的黑箱性质,在TEE中进行运算的是明文数据,而不是同态加密中的复杂密码学运算,计算过程效率没有损失,因此与TEE相结合可以在性能损失较小的前提下很大程度上提升区块链的安全性和隐私性。目前工业界十分关注TEE的方案,几乎所有主流的芯片和软件联盟都有自己的TEE解决方案,包括软件方面的TPM(Trusted Platform Module,可信赖平台模块)以及硬件方面的Intel SGX(Software Guard Extensions,软件保护扩展)、ARM Trustzone(信任区)和AMD PSP(Platform Security Processor,平台安全处理器)。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种区块链中实现隐私保护的方法及节点、存储介质。
为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
根据本说明书一个或多个实施例的第一方面,提出了一种区块链中实现隐私保护的方法,包括:
区块链节点确定接收到的交易对应的智能合约;
所述区块链节点在可信执行环境中执行所述智能合约;
所述区块链节点在存储所述智能合约涉及的合约状态时用密钥加密,且不同合约状态对应于不同的密钥。
根据本说明书一个或多个实施例的第二方面,提出了一种区块链中实现隐私保护的节点,包括:
确定单元,用于确定接收到的交易对应的智能合约;
执行单元,用于在可信执行环境中执行所述智能合约;
加密单元,用于在存储所述智能合约涉及的合约状态时用密钥加密,且不同合约状态对应于不同的密钥。
根据本说明书一个或多个实施例的第三方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第一方面所述方法的步骤。
附图说明
图1是一示例性实施例提供的一种创建智能合约的示意图。
图2是一示例性实施例提供的一种调用智能合约的示意图。
图3是一示例性实施例提供的一种创建和调用智能合约的示意图。
图4是一示例性实施例提供的一种区块链中实现隐私保护的方法的流程图。
图5是一示例性实施例提供的一种处理区块链交易的示意图。
图6是一示例性实施例提供的一种区块链中实现隐私保护的节点的组成图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
区块链一般被划分为三种类型:公有链(Public Blockchain),私有链(PrivateBlockchain)和联盟链(Consortium Blockchain)。此外,还有多种类型的结合,比如私有链+联盟链、联盟链+公有链等不同组合形式。其中去中心化程度最高的是公有链。公有链以比特币、以太坊为代表,加入公有链的参与者可以读取链上的数据记录、参与交易以及竞争新区块的记账权等。而且,各参与者(即节点)可自由加入以及退出网络,并进行相关操作。私有链则相反,该网络的写入权限由某个组织或者机构控制,数据读取权限受组织规定。简单来说,私有链可以为一个弱中心化系统,参与节点具有严格限制且少。这种类型的区块链更适合于特定机构内部使用。联盟链则是介于公有链以及私有链之间的区块链,可实现“部分去中心化”。联盟链中各个节点通常有与之相对应的实体机构或者组织;参与者通过授权加入网络并组成利益相关联盟,共同维护区块链运行。
不论是公有链、私有链还是联盟链,都可能提供智能合约的功能。区块链上的智能合约是在区块链系统上可以被交易触发执行的合约。智能合约可以通过代码的形式定义。
以以太坊为例,支持用户在以太坊网络中创建并调用一些复杂的逻辑,这是以太坊区别于比特币区块链技术的最大挑战。以太坊作为一个可编程区块链的核心是以太坊虚拟机(EVM),每个以太坊节点都可以运行EVM。EVM是一个图灵完备的虚拟机,这意味着可以通过它实现各种复杂的逻辑。用户在以太坊中发布和调用智能合约就是在EVM上运行的。实际上,虚拟机直接运行的是虚拟机代码(虚拟机字节码,下简称“字节码”)。部署在区块链上的智能合约可以是字节码的形式。
例如图1所示,Bob将一个包含创建智能合约信息的交易发送到以太坊网络后,节点1的EVM可以执行这个交易并生成对应的合约实例。交易的data字段保存的可以是字节码,交易的to字段为一个空的账户。节点间通过共识机制达成一致后,这个合约成功创建,后续用户可以调用这个合约。
合约创建后,区块链上出现一个与该智能合约对应的合约账户,并拥有一个特定的地址,合约代码和账户存储将保存在该合约账户中。智能合约的行为由合约代码控制,而智能合约的账户存储则保存了合约的状态。换句话说,智能合约使得区块链上产生包含合约代码和账户存储(Storage)的虚拟账户。
此外,如图2所示,仍以以太坊为例,Bob将一个包含调用智能合约信息的交易发送到以太坊网络后,节点1的EVM可以执行这个交易并生成对应的合约实例。图中2中交易的from字段是发起调用智能合约的账户的地址,to字段中的“0x692a70d2…”代表了被调用的智能合约的地址,value字段在以太坊中是以太币的值,交易的data字段保存的调用智能合约的方法和参数。调用智能合约后,balance的值可能改变。后续,某个客户端可以通过某一区块链节点查看balance的当前值。
智能合约可以通过规定的方式在区块链网络中的每个节点独立地执行,所有执行记录和数据都保存在区块链上,所以当这样的交易完成后,区块链上就保存了无法篡改、不会丢失的交易凭证。
创建智能合约和调用智能合约的示意图如图3所示。以太坊中要创建一个智能合约,需要经过编写智能合约、变成字节码、部署到区块链等过程。以太坊中调用智能合约,是发起一笔指向智能合约地址的交易,智能合约代码分布式地运行在以太坊网络中每个节点的虚拟机中。
以下结合图4所示说明本说明书一区块链中实现合约调用的方法实施例的实现过程:
步骤402,第一区块链节点确定接收到的交易对应的智能合约。
在一实施例中,交易可以由客户端提交至第一区块链节点。例如,用户在客户端生成该交易后,通过该客户端将交易提交至第一区块链节点。以图5为例,第一区块链节点中包含交易/查询接口,该接口可与客户端对接,使得客户端可以向第一区块链节点提交交易。
所述交易也可由第二区块链节点转发至第一区块链节点。例如,用户在客户端生成该交易后,通过该客户端将该交易提交至第二区块链节点;然后,第二区块链节点进一步将该交易转发至第一区块链节点。以图5为例,上述接口可与其他区块链节点对接,比如该其他区块链节点可以包含上述的第二区块链节点,使得第二区块链节点可以向第一区块链节点转发交易。类似地,第二区块链节点也可通过自身的交易/查询接口与客户端对接,以接收客户端提交的交易。
比如在采用工作量证明(Proof of Work,POW)以及股权证明(Proof of Stake,POS)、委任权益证明(Delegated Proof of Stake,DPOS)等共识算法的区块链网络中,第二区块链节点在收到客户端提交的该交易后,立即扩散(如广播)至以太坊网络中的其他区块链节点。
再比如在采用实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)等机制的区块链网络中,记账节点在本轮记账前已经商定好,使得第二区块链节点在收到客户端提交的该交易后,若自身并非记账节点,则将该交易发送至已确定的记账节点,使得该记账节点在进一步的共识阶段将交易(包括该交易)打包发送至各个验证节点。而当第二区块链节点自身为已确定的记账节点时,其他区块链节点收到客户端提交的交易后,可以将交易转发至该第二区块链节点;然后,第二区块链节点可以在共识阶段将上述交易(或还包括其他交易)打包发送至各个验证节点,包括第一区块链节点。
在一实施例中,可以通过交易级别的标注,将所述交易标注为隐私交易,使得第一区块链节点确定所述智能合约对应的执行结果(如该智能合约涉及的合约状态)需要加密后存储。例如,可以在交易中添加类型字段,使得第一区块链可以据此识别交易类型为明文交易或隐私交易。在相关技术中,例如在以太坊网络中,交易通常包含to、value、data等字段。而本实施例在相关技术的基础上,在交易中增加一类型字段,比如表征为type字段,并基于该类型字段的取值,表明相关交易的类型;例如,当类型字段为第一取值时,表明相关交易为明文交易,当类型字段为第二取值时,表明相关交易为隐私交易。
在一实施例中,可以通过合约级别的标注,将所述智能合约标注为隐私处理类型,使得第一区块链节点确定所述智能合约对应的执行结果(如该智能合约涉及的合约状态)需要加密后存储。例如,交易中可以存在对所需调用的智能合约标注的处理类型,使得第一区块链节点可以针对该交易中标注的处理类型,对该交易调用的的智能合约采用对应的处理操作。比如,智能合约的代码中可以包括一类型字段,第一区块链节点可以基于每一智能合约的代码中所含类型字段的取值,确定该智能合约为隐私处理类型或是明文处理类型;再比如,隐私处理类型的智能合约中可以包含隐私标识符、明文处理类型的智能合约可以不包含该隐私标识符;又比如,明文处理类型的智能合约可以包含明文标识符、隐私处理类型的智能合约可以不包含该明文标识符;相应地,第一区块链节点可以基于上述差异,区分不同处理类型的智能合约。
在一实施例中,当所述交易处于加密状态时,第一区块链节点可以在可信执行环境(Trusted Execution Environment,TEE)中解密所述交易。TEE是基于CPU硬件的安全扩展,且与外部完全隔离的可信执行环境。TEE最早是由Global Platform提出的概念,用于解决移动设备上资源的安全隔离,平行于操作系统为应用程序提供可信安全的执行环境。ARM的Trust Zone技术最早实现了真正商用的TEE技术。
伴随着互联网的高速发展,安全的需求越来越高,不仅限于移动设备,云端设备,数据中心都对TEE提出了更多的需求。TEE的概念也得到了高速的发展和扩充。现在所说的TEE相比与最初提出的概念已经是更加广义的TEE。例如,服务器芯片厂商Intel,AMD等都先后推出了硬件辅助的TEE并丰富了TEE的概念和特性,在工业界得到了广泛的认可。现在提起的TEE通常更多指这类硬件辅助的TEE技术。不同于移动端,云端访问需要远程访问,终端用户对硬件平台不可见,因此使用TEE的第一步就是要确认TEE的真实可信。因此现在的TEE技术都引入了远程证明机制,由硬件厂商(主要是CPU厂商)背书并通过数字签名技术确保用户对TEE状态可验证。同时仅仅是安全的资源隔离也无法满足的安全需求,进一步的数据隐私保护也被提出。包括Intel SGX,AMD SEV在内的商用TEE也都提供了内存加密技术,将可信硬件限定在CPU内部,总线和内存的数据均是密文防止恶意用户进行窥探。例如,英特尔的软件保护扩展(SGX)等TEE技术隔离了代码执行、远程证明、安全配置、数据的安全存储以及用于执行代码的可信路径。在TEE中运行的应用程序受到安全保护,几乎不可能被第三方访问。
以Intel SGX技术为例,SGX提供了围圈(enclave,也称为飞地),即内存中一个加密的可信执行区域,由CPU保护数据不被窃取。以第一区块链节点采用支持SGX的CPU为例,利用新增的处理器指令,在内存中可以分配一部分区域EPC(Enclave Page Cache,围圈页面缓存或飞地页面缓存),通过CPU内的加密引擎MEE(Memory Encryption Engine)对其中的数据进行加密。EPC中加密的内容只有进入CPU后才会被解密成明文。因此,在SGX中,用户可以不信任操作系统、VMM(Virtual Machine Monitor,虚拟机监控器)、甚至BIOS(BasicInput Output System,基本输入输出系统),只需要信任CPU便能确保隐私数据不会泄漏。实际应用中,可以将隐私数据加密后以密文形式传递至围圈中,并通过远程证明将对应的秘钥也传入围圈。然后,在CPU的加密保护下利用数据进行运算,结果会以密文形式返回。这种模式下,既可以利用强大的计算力,又不用担心数据泄漏。
假定上述的交易由用户在某一客户端处生成,该客户端可以首先生成明文交易内容,然后将该明文交易内容用密钥加密。所述加密,可以采用对称加密,也可以采用非对称加密。相应地,第一区块链节点可以用对应的密钥解密所述交易,以获得明文交易内容。如果客户端用对称加密方式,即用对称加密算法的私钥对明文交易内容加密,则相应地,第一区块链节点可以用所述对称加密算法的私钥解密所述交易。对称加密采用的加密算法,例如是DES算法,3DES算法,TDEA算法,Blowfish算法,RC5算法,IDEA算法等。对称加密算法的密钥,例如可以是由客户端和第一区块链节点协商确定。
如果用非对称加密方式,即用非对称加密算法的公钥对明文交易内容加密,则相应地,第一区块链节点可以用所述非对称加密算法的私钥解密所述交易。非对称加密算法,例如是RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)等。非对称加密算法的密钥,例如可以是由第一区块链节点生成一对公钥和私钥,并将公钥在步骤402之前发送至所述客户端,从而步骤402中所述客户端可以将明文交易内容用密钥加密。
非对称加密算法的密钥,也可以由一个密钥管理服务器生成。通过远程证明的方式,密钥管理服务器将私钥发送至第一区块链节点,具体的,可以是传入第一区块链节点的围圈中。第一区块链节点可以包含多个围圈,而上述私钥可以被传入这些围圈中的安全围圈;例如,该安全围圈可以为QE(Quoting Enclave)围圈,而非AE(Application Enclave)围圈。对于非对称加密的公钥,可以由密钥管理服务器发送至所述客户端。因而在步骤402中,所述客户端可以用该公钥加密明文交易内容,相应地,第一区块链节点可以用所述私钥解密所述交易,以得到该交易包含的明文交易内容。
客户端也可以采用对称加密结合非对称加密相结合的方式。例如,客户端采用对称加密算法加密明文交易内容,即采用对称加密算法的私钥加密明文交易内容,并用非对称加密算法加密对称加密算法中采用的私钥。一般的,采用非对称加密算法的公钥加密对称加密算法中采用的私钥。这样,第一区块链节点接收到加密的交易后,可以先采用非对称加密算法的私钥进行解密,得到对称加密算法的私钥,进而用对称加密算法的私钥解密得到明文交易内容。
例如,密钥管理服务器通过远程证明可以将非对称加密算法的私钥发送至第一区块链节点的围圈,并将非对称加密算法的公钥发送至所述客户端。因而,所述客户端可以采用对称加密方式加密明文交易内容,即采用对称加密算法的私钥加密明文交易内容,并用非对称加密算法的公钥加密对称加密算法中采用的私钥。进而,所述客户端可以将所述交易和加密私钥(由非对称加密算法的公钥对所述对称加密算法中采用的私钥进行加密后得到)发送至第一区块链节点。第一区块链节点接收到所述交易和加密私钥后,可以先用非对称加密算法的私钥对该加密私钥进行解密得到对称加密算法的私钥,进而用该对称加密算法的私钥解密所述交易,得到明文交易内容。这里的加密方式一般称为数字信封加密。
步骤404,第一区块链节点在可信执行环境中执行所述智能合约。
在一实施例中,所述交易用于创建智能合约,该交易可以包含智能合约的代码。第一区块链节点通过在可信执行环境中执行交易所含的智能合约的代码,完成对智能合约的创建。
在一实施例中,所述交易用于调用智能合约,该交易可以包含被调用的智能合约的合约地址。第一区块链节点根据交易所含智能合约的合约地址,对相应的智能合约的代码进行调用。如果被调用的智能合约为明文合约,即该智能合约的代码以明文形式存储于外部存储空间,第一区块链节点可以将该明文代码直接读入可信执行环境中予以执行;如果被调用的智能合约为隐私合约,即该智能合约的代码以密文形式存储于外部存储空间,第一区块链节点可以根据可信执行环境中保存的密钥对该密文代码进行解密,并在可信执行环境中为解密得到的明文代码予以执行。
步骤406,第一区块链节点在存储所述智能合约涉及的合约状态时用密钥加密,且不同合约状态对应于不同的密钥。
在一实施例中,通过为智能合约涉及的合约状态分别采用不同的密钥进行加密,使得隐私级别为状态级别,可以从合约状态的粒度采用差异化的密钥,使得即便是同一交易所产生的合约状态,也可以基于不同的密钥进行加密。相比于所有交易的执行结果均采用相同的安全密钥进行加密,本说明书的上述方案增加了所使用的密钥数量,使得即便某一密钥被不法分子攻破后,也仅会暴露这一密钥所加密的数据,只要位于可信执行环境中的安全密钥不被窃取,仍然能够保证其他的绝大部分数据的安全。而相比于诸如交易级别或合约级别的隐私保护,即不同交易或不同合约采用不同的密钥、同一交易或同一合约采用相同的密钥,本说明书的实施例可以实现更好的隐私保护效果,即便不同合约状态具有相同的明文取值,也可以基于不同的密钥加密得到不同的密文取值,从而有效防止不法分子基于密文取值来推测合约状态的明文取值。
在一实施例中,假定智能合约涉及合约状态X1~Xn,共n个合约状态,分别对应于密钥K1~Kn。那么,合约状态Xi对应的密钥Ki可由第一区块链节点根据保存于所述可信执行环境的安全密钥和至少一个对应于合约状态Xi的私有影响因子而生成,1≤i≤n。
在一实施例中,安全密钥可以是对称加密的密钥,例如是seal(Simple EncryptedArithmetic Library)密钥。所述seal密钥,例如可以是通过远程证明后由密钥管理服务器发送给第一区块链节点,再例如可以是区块链中的各个节点(如第一区块链节点与其他区块链节点)之间协商得到。所述安全密钥可以被存储于第一区块链节点的围圈中。第一区块链节点可以包含多个围圈,而上述安全密钥可以被传入这些围圈中的安全围圈;例如,该安全围圈可以为QE围圈,而非AE围圈。
在一实施例中,用于生成的密钥的影响因子包括两类:私有影响因子和公共影响因子。私有影响因子仅适用于对应的合约状态、不适用于其他合约状态,比如合约状态X1的私有影响因子,不适用于合约状态X2~Xn。公共影响因子同时适用于所有合约状态。
在一实施例中,合约状态Xi对应的密钥Ki可由安全密钥和至少一个对应于合约状态Xi的私有影响因子而生成。例如,第一区块链节点可以对安全密钥和至少一个对应于合约状态Xi的私有影响因子进行拼接后,对拼接信息进行哈希计算,并将计算得到的哈希值或该哈希值的一部分(比如前128位或其他部分)作为所述密钥Ki,以针对合约状态Xi进行加密。由于各个合约状态的私有影响因子各不相同,可以保证据此生成对应的密钥K1~Kn时,各个密钥必然各不相同,使得各个合约状态X1~Xn可以分别使用不同的密钥进行加密。
对应于合约状态Xi的私有影响因子可以包括:合约状态Xi在所述智能合约中的出现顺序Pi。在第一区块链节点执行所述智能合约的代码时,会依次读取该智能合约代码中包含的各个合约状态,可以将各个合约状态对应的出现顺序P1~Pn,作为合约状态X1~Xn分别对应的私有影响因子之一。例如,当合约状态X3第一个出现时,该合约状态X3的私有影响因子可以包括出现顺序P3=1,而当合约状态X100第88个出现时,该合约状态X100的私有影响因子可以包括出现顺序P100=88。由于不同的合约状态总会以不同的顺序出现,因而可以确保各个合约状态对应的出现顺序P1~Pn必然不同。
对应于合约状态Xi的私有影响因子可以包括:对应于所述出现顺序的计数值Qi。针对合约状态的出现顺序,第一区块链节点可以不直接使用出现顺序,而是使用对应于出现顺序的计数值Qi,作为私有影响因子。如果每次都从1开始计数、计数间隔为1,那么计数值Qi与出现顺序Pi的取值可以相同;而如果并不从1开始计数或者计数间隔不是1,那么计数值Qi与出现顺序Pi的取值并不相同,但维持一预设的数值关系,比如当从a开始计数、计数间隔为b时,该数值关系为Qi=a+b×(Pi-1)。由于不同的合约状态总会以不同的顺序出现,因而基于上述的数值关系,可以确保各个合约状态对应的计数值Q1~Qn必然不同。
对应于合约状态Xi的私有影响因子可以包括:分配至合约状态Xi的随机数Si。第一区块链节点可以直接向各个合约状态X1~Xn分配随机数S1~Sn,只要确保各个合约状态对应的随机数不重复即可。同时,通过采用随机数Si,使得即便不同的交易对同一智能合约进行调用时,针对该智能合约中的同一合约状态可能会分配不同的随机数,从而对不同交易所产生的合约状态采用差异化的密钥,可以进一步增强数据安全性。
当然,对应于合约状态Xi的私有影响因子可以存在多个,比如上述的出现顺序Pi、计数值Qi、随机数Si之间的任意两个或更多私有影响因子之间的组合。基于更多数量的私有影响因子,可以在部分私有影响因子由于某种原因而泄露时,通过其他私有影响因子确保对应的私钥不会被算出或推测出。
在一实施例中在上述私有影响因子的基础上,密钥的生成还可以与公共影响因子相关。例如,第一区块链节点可以对安全密钥、至少一个对应于合约状态Xi的私有影响因子和至少一个公共影响因子进行拼接后,对拼接信息进行哈希计算,并将计算得到的哈希值或该哈希值的一部分(比如前128位或其他部分)作为所述密钥Ki,以针对合约状态Xi进行加密。
其中,由于各个合约状态的私有影响因子各不相同,可以保证据此生成对应的密钥K1~Kn时,各个密钥必然各不相同,使得各个合约状态X1~Xn可以分别使用不同的密钥进行加密。而通过添加公共影响因子,可以实现其他粒度或层级的隐私保护。
合约状态Xi对应的密钥Ki还可以与历史区块高度相关。例如,该历史区块高度可以为:第一区块链节点在收到上述交易时,区块链账本中的区块高度。由于该历史区块高度与上述交易相关,因而可以在交易粒度上对密钥进行区分。比如,当分别发起与智能合约S1相关的交易R1、R2时,由于调用了同一个智能合约S1,使得相同的合约状态对应的私有影响因子可能相同(如果采用随机数则通常不同),譬如交易R1、R2均涉及到合约状态Y1~Yn。如果仅根据安全密钥和私有影响因子来生成密钥,可使R1对应的合约状态Y1~Yn之间采用不同的密钥K1_1~K1_n,R2对应的合约状态之间采用不同的密钥K2_1~K2_n,但是相同合约状态可能在不同交易中对应于相同的密钥,比如K1_i=K2_i。但是,由于不同交易R1、R2在不同时刻被递交,可能对应于不同的历史区块高度,因而通过将历史区块高度纳入对密钥的计算过程,即根据安全密钥、私有影响因子和公共影响因子(如历史区块高度)来生成密钥,可以可使相同合约状态在不同交易中对应于不同的密钥,即K1_i≠K2_i。
与历史区块高度相类似的,公共影响因子还可以包括:所述交易所处区块的区块高度、所述交易在所处区块中的位置偏移量等。这些公共影响因子可以在“交易”粒度上产生影响,使得不同交易在调用同一智能合约(同一合约地址,或者合约地址不同、代码哈希值相同)时,该智能合约的合约状态在不同交易中对应于不同的密钥。
而其他的公共影响因子,还可以产生其他粒度的影响。
比如公共影响因子可以包括:所述智能合约的合约地址,使得不同交易(同一发起方或不同发起方)对同一合约地址的智能合约进行调用时,同一合约状态对应于相同的密钥,而不同交易对不同合约地址的智能合约进行调用时,同一合约状态(不同合约地址通常存在至少一部分合约状态不同)对应于不同的密钥。
再比如公共影响因子可以包括:所述智能合约的代码哈希值,使得不同交易(同一发起方或不同发起方)对代码哈希值相同的智能合约进行调用时,同一合约状态对应于相同的密钥,而不同交易对代码哈希值不同的智能合约进行调用时,同一合约状态(代码哈希值不同时,通常存在至少一部分合约状态不同)对应于不同的密钥。
又比如公共影响因子可以包括:所述智能合约的合约创建者的账户地址,使得不同交易(同一发起方或不同发起方)分别对代码相同、但创建者不同的多个智能合约进行调用时,可以确保同一合约状态对应于不同的密钥。
又比如公共影响因子可以包括:所述交易的发起方的账户地址,使得同一用户针对同一智能合约发起调用时,同一合约状态对应于相同的密钥,而不同用户分别针对同一智能合约发起调用时,同一合约状态对应于不同的密钥。
当然,公共影响因子可以存在多个,比如上述的历史区块高度、所述交易所处区块的区块高度、所述交易在所处区块中的位置偏移量、所述智能合约的合约地址、所述智能合约的代码哈希值、所述智能合约的合约创建者的账户地址、所述交易的发起方的账户地址之间的任意两个或更多公共影响因子之间的组合。基于更多数量的公共影响因子,可以在部分公共影响因子由于某种原因而泄露时,通过其他公共影响因子确保对应的私钥不会被算出或推测出,还可以实现对应粒度的隐私保护。
第一区块链节点可以利用CPU中新增的处理器指令,在内存中可以分配一部分区域EPC,通过CPU内的加密引擎MEE对上述的明文代码进行加密存入所述EPC中。EPC中加密的内容进入CPU后被解密成明文。在CPU中,对所述明文的代码进行运算,完成执行过程。
SGX技术中,执行所述智能合约的代码,可以将EVM加载进所述围圈中。在远程证明过程中,所述密钥管理服务器可以计算本地EVM代码的hash值,并与第一区块链节点中加载的EVM代码的hash值比对,比对结果正确作为通过远程证明的一个必要条件,从而完成对第一区块链节点SGX围圈加载的代码的度量。经过度量,正确的EVM可以在SGX中执行所述智能合约代码。
一般的,CPU执行所述明文代码后,所述合约状态会发生变化。将合约状态存入区块链,从区块链节点的角度,是将该合约状态写入数据库,例如本地的数据库。所述数据库,一般存储于存储介质之中,更多见的是持久性存储介质。所述持久性存储介质,可以是磁盘、软盘,也可以是通电后可恢复数据从而可以持久存储的内存之类。
写入数据库的操作,用代码表示的话,如setstorage(key,ENC(value,secret_key))。setstorage(key,ENC(value,secret_key))中,键(key)可以与传统的键写入方式相同。至于value的写入,可以采用Intel SGX技术,ENC表示enclave,secret_key表示采用SGX技术中写入数据库时采用的密钥,在本说明书中不同合约状态对应的私钥也不同。
在一实施例中,第一区块链节点在可信执行环境中获得明文合约状态后,用所述密钥将所述明文合约状态加密为密文合约状态,并从所述可信执行环境中输出所述密文合约状态;第一区块链节点通过在所述可信执行环境之外执行存储功能代码,以将所述密文合约状态存储至所述可信执行环境之外的外部存储空间。
第一区块链节点通过运行用于实现某一功能的代码,以实现该功能。因此,对于需要在可信执行环境中实现的功能,同样需要执行相关代码。而对于在可信执行环境中执行的代码,需要符合可信执行环境的相关规范和要求;相应地,对于相关技术中用于实现某一功能的代码,需要结合可信执行环境的规范和要求重新进行代码编写,不仅存在相对更大的开发量,而且容易在重新编写过程中产生漏洞(bug),影响功能实现的可靠性和稳定性。
因此,第一区块链节点通过将明文合约状态通过密钥加密为密文合约状态,且该密文合约状态只有通过可信执行环境进行解密,可以确保该密文合约状态本身足够安全。在此基础上,第一区块链节点通过在所述可信执行环境之外执行存储功能代码,将所述密文合约状态存储至所述可信执行环境之外的外部存储空间,使得该存储功能代码可以为相关技术中用于实现存储功能的代码、不需要结合可信执行环境的规范和要求重新进行代码编写,即可针对该密文合约状态实现安全可靠的存储,不仅可以在不影响安全、可靠程度的基础上,减少相关代码的开发量,而且可以通过减少可信执行环境的相关代码而降低TCB(Trusted Computing Base,可信计算基),使得TEE技术与区块链技术进行结合的过程中,额外造成的安全风险处于可控范围。
在一实施例中,第一区块链节点可以在可信执行环境内执行写缓存功能代码,以将所述明文合约状态存入所述可信执行环境内的写缓存中,比如该写缓存可以对应于如图5所示的“缓存”。进一步的,第一区块链节点将所述写缓存中的数据加密后从所述可信执行环境输出,以存储至所述外部存储空间。其中,所述写缓存功能代码可以以明文形式存储于所述可信执行环境中,可以直接在可信执行环境中执行该明文形式的缓存功能代码;或,所述写缓存功能代码可以以密文形式存储于所述可信执行环境之外,比如存储于上述的外部存储空间(比如图5所示的“存储空间”),可以将该密文形式的写缓存功能代码读入可信执行环境、在可信执行环境中进行解密为明文代码,并执行该明文代码。
写缓存是指在将数据写入外部存储空间时,为了避免造成对外部存储空间的“冲击”而提供的“缓冲”机制。例如,可以采用buffer实现上述的写缓存;当然,写缓存也可以采用cache来实现,本说明书并不对此进行限制。实际上,由于可信执行环境为隔离的安全环境,而外部存储空间位于可信执行环境之外,使得通过采用写缓存机制,可以对缓存内的数据进行批量写入外部存储空间,从而减少可信执行环境与外部存储空间之间的交互次数,提升数据存储效率。同时,可信执行环境在不断执行各个智能合约的过程中,可能需要调取已生成的数据(如合约状态的取值),如果需调用的数据恰好位于写缓存中,可以直接从写缓存中读取该数据,这样一方面可以减少与外部存储空间之间的交互,另一方面免去了对从外部存储空间所读取数据的解密过程,从而提升在可信执行环境中的数据处理效率。
当然,也可以将写缓存建立于可信执行环境之外,比如第一区块链节点可以在可信执行环境之外执行写缓存功能代码,从而将所述密文合约状态存入所述可信执行环境外的写缓存中,并进一步将所述写缓存中的数据存储至所述外部存储空间。
在一实施例中,第一区块链节点可以根据客户端发起的查询请求,对所述明文合约状态加密后从可信执行环境输出,以返回至所述客户端。
例如,第一区块链节点可以从所述外部存储空间中读取所述密文合约状态,将所述密文合约状态解密为所述明文合约状态后,读入所述可信执行环境,然后对所述明文合约状态加密后从可信执行环境输出,比如通过图5所示的交易/查询接口向客户端返回加密后的明文合约状态。
再例如,第一区块链节点可以从可信执行环境内的读缓存中读取所述明文合约状态,并对所述明文合约状态加密后从可信执行环境输出;其中,所述明文合约状态由第一区块链节点预先在可信执行环境内执行读缓存功能代码,从所述外部存储空间中读取所述密文合约状态,将所述密文合约状态解密为所述明文合约状态后,读入所述可信执行环境并存入所述读缓存中。换言之,第一区块链节点从所述外部存储空间中读取所述密文合约状态,将所述密文合约状态解密为所述明文合约状态后,可以通过在可信执行环境内执行读缓存功能代码,将该明文合约状态存入可信执行环境内的读缓存中,比如该读缓存可以对应于图5所示的“缓存”;进一步地,针对客户端发起的查询请求,或者对于可信执行环境在执行智能合约时所需的数据,可以优先从该读缓存中进行数据读取,若能读取相关数据则无需从外部存储空间中读取,从而减少与外部存储空间的交互次数、免除数据解密过程。
读缓存是指在将数据从外部存储空间读入可信执行环境后,为了减少与外部存储空间的交互次数,可以将已读取的数据以明文形式存储于可信执行环境中的读缓存空间内。例如,可以采用cache实现上述的读缓存;当然,读缓存也可以采用buffer来实现,本说明书并不对此进行限制。
第一区块链节点可以同时支持上述的读缓存机制和写缓存机制。而随着缓存技术的不断发展,同一缓存可以不仅用于实现数据读取或数据写入,甚至可以同时支持数据的读写操作,使得读缓存与写缓存之间的界线有时并不十分清晰,因而图5中仅以“缓存”进行示意,而并未具体区分其具体类型,可以根据实际需求进行配置和调整。
以下结合图6介绍本说明书一种区块链中实现隐私保护的节点实施例,包括:
确定单元601,用于确定接收到的交易对应的智能合约;
执行单元602,用于在可信执行环境中执行所述智能合约;
加密单元603,用于在存储所述智能合约涉及的合约状态时用密钥加密,且不同合约状态对应于不同的密钥。
可选的,所述智能合约涉及合约状态X1~Xn,分别对应于密钥K1~Kn;其中,合约状态Xi对应的密钥Ki由所述区块链节点根据保存于所述可信执行环境的安全密钥和至少一个对应于合约状态Xi的私有影响因子而生成,1≤i≤n。
可选的,对应于合约状态Xi的私有影响因子包括以下至少之一:合约状态Xi在所述智能合约中的出现顺序Pi、对应于所述出现顺序的计数值Qi、分配至合约状态Xi的随机数Si。
可选的,合约状态Xi对应的密钥Ki还与至少一项下述的公共影响因子相关:历史区块高度、所述交易所处区块的区块高度、所述交易在所处区块中的位置偏移量、所述智能合约的合约地址、所述智能合约的代码哈希值、所述智能合约的合约创建者的账户地址、所述交易的发起方的账户地址。
可选的,所述安全密钥包括seal密钥。
可选的,
所述seal密钥在第一区块链节点的SGX通过远程证明后由密钥管理服务器发送;或,
所述seal密钥由第一区块链节点与其他区块链节点之间协商得到。
可选的,所述安全密钥存储于所述第一区块链节点的围圈中。
可选的,所述第一区块链节点存在若干围圈,所述安全密钥存储于安全围圈中。
可选的,所述安全围圈包括QE围圈。
可选的,存储单元603具体用于
在可信执行环境中获得任一合约状态对应的明文合约状态后,用所述任一合约状态对应的密钥将所述明文合约状态加密为密文合约状态,并从所述可信执行环境中输出所述密文合约状态;
通过在所述可信执行环境之外执行存储功能代码,以将所述密文合约状态存储至所述可信执行环境之外的外部存储空间。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。

Claims (24)

1.一种区块链中实现隐私保护的方法,包括:
区块链节点确定接收到的交易对应的智能合约;
所述区块链节点在可信执行环境中执行所述智能合约;
所述区块链节点在存储所述智能合约涉及的合约状态时用密钥加密,且不同合约状态对应于不同的密钥。
2.根据权利要求1所述的方法,所述智能合约涉及合约状态X1~Xn,分别对应于密钥K1~Kn;其中,合约状态Xi对应的密钥Ki由所述区块链节点根据保存于所述可信执行环境的安全密钥和至少一个对应于合约状态Xi的私有影响因子而生成,1≤i≤n。
3.根据权利要求2所述的方法,所述安全密钥在所述区块链节点的SGX通过远程证明后由密钥管理服务器发送;或,所述安全密钥由所述区块链节点与其他区块链节点之间协商得到。
4.根据权利要求2所述的方法,对应于合约状态Xi的私有影响因子包括以下至少之一:合约状态Xi在所述智能合约中的出现顺序Pi、对应于所述出现顺序的计数值Qi、分配至合约状态Xi的随机数Si。
5.根据权利要求2所述的方法,合约状态Xi对应的密钥Ki还与至少一项下述的公共影响因子相关:历史区块高度、所述交易所处区块的区块高度、所述交易在所处区块中的位置偏移量、所述智能合约的合约地址、所述智能合约的代码哈希值、所述智能合约的合约创建者的账户地址、所述交易的发起方的账户地址。
6.根据权利要求1所述的方法,所述交易由客户端提交至所述区块链节点;或,所述交易由所述客户端提交至区别于所述区块链节点的其他区块链节点,由所述其他区块链节点将所述交易转发至所述区块链节点。
7.根据权利要求1所述的方法,所述区块链节点在存储所述智能合约涉及的合约状态时用密钥加密,包括:
所述区块链节点在确定所述交易为隐私交易的情况下,在存储所述智能合约涉及的合约状态时用密钥加密。
8.根据权利要求7所述的方法,还包括:
所述区块链节点根据所述交易中类型字段的取值确定所述交易的类型;其中,类型字段的第一取值用于表明所属交易为明文交易,类型字段的第二取值用于表明所属交易为隐私交易。
9.根据权利要求1所述的方法,所述区块链节点在存储所述智能合约涉及的合约状态时用密钥加密,包括:
所述区块链节点在确定所述智能合约被标注为隐私处理类型的情况下,在存储所述智能合约涉及的合约状态时用密钥加密。
10.根据权利要求9所述的方法,还包括:
所述区块链节点在所述交易中包含的对所述智能合约标注的处理类型为隐私处理类型的情况下,判定所述智能合约被标注为隐私处理类型;或,
所述区块链节点基于所述智能合约的代码中所含类型字段的取值,确定所述智能合约的处理类型;或,
所述区块链节点在所述智能合约包含隐私标识符或不包含明文标识符的情况下,判定所述智能合约被标注为隐私处理类型。
11.根据权利要求1所述的方法,所述交易创建和/或调用的智能合约被确认为对应于所述交易。
12.根据权利要求1所述的方法,所述区块链节点在可信执行环境中执行所述智能合约,包括:
所述区块链节点通过所述可信执行环境中部署的虚拟机执行所述智能合约。
13.根据权利要求1所述的方法,所述安全密钥存储于所述区块链节点的围圈中。
14.根据权利要求13所述的方法,所述区块链节点存在若干围圈,所述安全密钥存储于安全围圈中。
15.根据权利要求14所述的方法,所述安全围圈包括QE围圈。
16.根据权利要求1所述的方法,所述区块链节点在存储所述智能合约涉及的合约状态时用密钥加密,包括:
所述区块链节点在可信执行环境中获得任一合约状态对应的明文合约状态后,用所述任一合约状态对应的密钥将所述明文合约状态加密为密文合约状态,并从所述可信执行环境中输出所述密文合约状态;
所述区块链节点通过在所述可信执行环境之外执行存储功能代码,以将所述密文合约状态存储至所述可信执行环境之外的外部存储空间。
17.根据权利要求1所述的方法,还包括:
所述区块链节点在所述可信执行环境内执行写缓存功能代码,以将任一合约状态对应的明文合约状态存入所述可信执行环境内的写缓存中;
所述区块链节点将所述写缓存中的数据加密后从所述可信执行环境输出,以存储至所述外部存储空间。
18.根据权利要求17所述的方法,所述写缓存功能代码以明文形式存储于所述可信执行环境中;或,所述写缓存功能代码以密文形式存储于所述可信执行环境之外。
19.一种区块链中实现隐私保护的节点,包括:
确定单元,用于确定接收到的交易对应的智能合约;
执行单元,用于在可信执行环境中执行所述智能合约;
加密单元,用于在存储所述智能合约涉及的合约状态时用密钥加密,且不同合约状态对应于不同的密钥。
20.根据权利要求19所述的节点,所述智能合约涉及合约状态X1~Xn,分别对应于密钥K1~Kn;其中,合约状态Xi对应的密钥Ki由所述节点根据保存于所述可信执行环境的安全密钥和至少一个对应于合约状态Xi的私有影响因子而生成,1≤i≤n。
21.根据权利要求20所述的节点,所述安全密钥在所述节点的SGX通过远程证明后由密钥管理服务器发送;或,所述安全密钥由所述节点与其他节点之间协商得到。
22.根据权利要求19所述的节点,对应于合约状态Xi的私有影响因子包括以下至少之一:合约状态Xi在所述智能合约中的出现顺序Pi、对应于所述出现顺序的计数值Qi、分配至合约状态Xi的随机数Si。
23.根据权利要求19所述的节点,合约状态Xi对应的密钥Ki还与至少一项下述的公共影响因子相关:历史区块高度、所述交易所处区块的区块高度、所述交易在所处区块中的位置偏移量、所述智能合约的合约地址、所述智能合约的代码哈希值、所述智能合约的合约创建者的账户地址、所述交易的发起方的账户地址。
24.一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如权利要求1-18中任一项所述方法的步骤。
CN202010513122.6A 2019-01-31 2019-01-31 区块链中实现隐私保护的方法及节点、存储介质 Pending CN111767555A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010513122.6A CN111767555A (zh) 2019-01-31 2019-01-31 区块链中实现隐私保护的方法及节点、存储介质

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910101423.5A CN110032884B (zh) 2019-01-31 2019-01-31 区块链中实现隐私保护的方法及节点、存储介质
CN202010513122.6A CN111767555A (zh) 2019-01-31 2019-01-31 区块链中实现隐私保护的方法及节点、存储介质

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201910101423.5A Division CN110032884B (zh) 2019-01-31 2019-01-31 区块链中实现隐私保护的方法及节点、存储介质

Publications (1)

Publication Number Publication Date
CN111767555A true CN111767555A (zh) 2020-10-13

Family

ID=67235554

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201910101423.5A Active CN110032884B (zh) 2019-01-31 2019-01-31 区块链中实现隐私保护的方法及节点、存储介质
CN202010513122.6A Pending CN111767555A (zh) 2019-01-31 2019-01-31 区块链中实现隐私保护的方法及节点、存储介质

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201910101423.5A Active CN110032884B (zh) 2019-01-31 2019-01-31 区块链中实现隐私保护的方法及节点、存储介质

Country Status (1)

Country Link
CN (2) CN110032884B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113114476A (zh) * 2021-06-15 2021-07-13 支付宝(杭州)信息技术有限公司 基于合约的隐私存证方法及装置
CN113128988A (zh) * 2021-03-04 2021-07-16 西安电子科技大学 一种自适应、可组合链上隐私保护交易系统及方法

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110620668B (zh) * 2019-08-09 2022-11-15 如般量子科技有限公司 基于区块链的抗量子计算公钥池更新方法和系统
CN110597814B (zh) * 2019-09-16 2021-12-28 腾讯科技(深圳)有限公司 结构化数据的序列化、反序列化方法以及装置
CN110704368B (zh) * 2019-09-25 2020-11-06 支付宝(杭州)信息技术有限公司 基于fpga的安全智能合约处理器的高效运算方法及装置
CN110738567B (zh) * 2019-09-25 2021-02-09 支付宝(杭州)信息技术有限公司 基于fpga的安全智能合约处理器的交易处理方法及装置
CN111222157B (zh) * 2019-10-30 2021-03-23 支付宝(杭州)信息技术有限公司 区块链隐私数据的查询方法及装置
CN111222160B (zh) * 2019-12-30 2022-07-29 联动优势科技有限公司 一种智能合约执行方法及系统
CN112152800B (zh) * 2020-03-18 2022-05-13 蚂蚁双链科技(上海)有限公司 生成共享合约密钥的方法及装置
CN112329041B (zh) * 2020-03-18 2024-01-23 支付宝(杭州)信息技术有限公司 部署合约的方法及装置
CN111427663A (zh) * 2020-03-24 2020-07-17 杭州溪塔科技有限公司 一种基于智能合约的虚拟机系统及其操作方法
CN112836217B (zh) * 2021-01-12 2023-02-10 清华大学深圳国际研究生院 基于sgx的动态减小tcb的区块链虚拟机方法及系统
CN113283887A (zh) * 2021-06-04 2021-08-20 杭州复杂美科技有限公司 一种基于隐私的资产找回方法、设备及储存介质

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106559211A (zh) * 2016-11-22 2017-04-05 中国电子科技集团公司第三十研究所 一种区块链中隐私保护智能合约方法
CN107273759A (zh) * 2017-05-08 2017-10-20 上海点融信息科技有限责任公司 用于保护区块链数据的方法、设备以及计算机可读存储介质
CN107294709A (zh) * 2017-06-27 2017-10-24 阿里巴巴集团控股有限公司 一种区块链数据处理方法、装置及系统
CN107342858A (zh) * 2017-07-05 2017-11-10 武汉凤链科技有限公司 一种基于可信环境的智能合约保护方法和系统
US20170344988A1 (en) * 2016-05-24 2017-11-30 Ubs Ag System and method for facilitating blockchain-based validation
US20170352027A1 (en) * 2016-06-07 2017-12-07 Cornell University Authenticated data feed for blockchains
CN107911216A (zh) * 2017-10-26 2018-04-13 矩阵元技术(深圳)有限公司 一种区块链交易隐私保护方法及系统
CN107919954A (zh) * 2017-10-20 2018-04-17 浙江大学 一种基于sgx的区块链用户密钥保护方法和装置
CN108235772A (zh) * 2017-12-29 2018-06-29 深圳前海达闼云端智能科技有限公司 基于区块链的数据处理方法、装置、存储介质及电子设备
CN108418783A (zh) * 2017-09-01 2018-08-17 矩阵元技术(深圳)有限公司 一种保护区块链智能合约隐私的方法、介质
CN108632045A (zh) * 2018-05-10 2018-10-09 阿里巴巴集团控股有限公司 一种区块链数据处理方法、装置、处理设备及系统
US20180309567A1 (en) * 2017-04-25 2018-10-25 Microsoft Technology Licensing, Llc Confidentiality in a consortium blockchain network
US20180343114A1 (en) * 2015-11-24 2018-11-29 Adi BEN-ARI A system and method for blockchain smart contract data privacy
CN109214197A (zh) * 2018-08-14 2019-01-15 上海点融信息科技有限责任公司 基于区块链来处理隐私数据的方法、装置及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170178127A1 (en) * 2015-12-18 2017-06-22 International Business Machines Corporation Proxy system mediated legacy transactions using multi-tenant transaction database
US9992022B1 (en) * 2017-02-06 2018-06-05 Northern Trust Corporation Systems and methods for digital identity management and permission controls within distributed network nodes
CN107425982B (zh) * 2017-07-07 2020-05-12 众安信息技术服务有限公司 一种实现智能合约数据加密的方法和区块链
CN113095822A (zh) * 2018-06-27 2021-07-09 创新先进技术有限公司 基于区块链的智能合约调用方法及装置、电子设备
CN109146448B (zh) * 2018-07-13 2021-02-09 杭州复杂美科技有限公司 跨链资产转移方法、设备和存储介质

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180343114A1 (en) * 2015-11-24 2018-11-29 Adi BEN-ARI A system and method for blockchain smart contract data privacy
US20170344988A1 (en) * 2016-05-24 2017-11-30 Ubs Ag System and method for facilitating blockchain-based validation
US20170352027A1 (en) * 2016-06-07 2017-12-07 Cornell University Authenticated data feed for blockchains
CN106559211A (zh) * 2016-11-22 2017-04-05 中国电子科技集团公司第三十研究所 一种区块链中隐私保护智能合约方法
US20180309567A1 (en) * 2017-04-25 2018-10-25 Microsoft Technology Licensing, Llc Confidentiality in a consortium blockchain network
CN107273759A (zh) * 2017-05-08 2017-10-20 上海点融信息科技有限责任公司 用于保护区块链数据的方法、设备以及计算机可读存储介质
CN107294709A (zh) * 2017-06-27 2017-10-24 阿里巴巴集团控股有限公司 一种区块链数据处理方法、装置及系统
CN107342858A (zh) * 2017-07-05 2017-11-10 武汉凤链科技有限公司 一种基于可信环境的智能合约保护方法和系统
CN108418783A (zh) * 2017-09-01 2018-08-17 矩阵元技术(深圳)有限公司 一种保护区块链智能合约隐私的方法、介质
CN107919954A (zh) * 2017-10-20 2018-04-17 浙江大学 一种基于sgx的区块链用户密钥保护方法和装置
CN107911216A (zh) * 2017-10-26 2018-04-13 矩阵元技术(深圳)有限公司 一种区块链交易隐私保护方法及系统
CN108235772A (zh) * 2017-12-29 2018-06-29 深圳前海达闼云端智能科技有限公司 基于区块链的数据处理方法、装置、存储介质及电子设备
CN108632045A (zh) * 2018-05-10 2018-10-09 阿里巴巴集团控股有限公司 一种区块链数据处理方法、装置、处理设备及系统
CN109214197A (zh) * 2018-08-14 2019-01-15 上海点融信息科技有限责任公司 基于区块链来处理隐私数据的方法、装置及存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113128988A (zh) * 2021-03-04 2021-07-16 西安电子科技大学 一种自适应、可组合链上隐私保护交易系统及方法
CN113128988B (zh) * 2021-03-04 2023-11-17 西安电子科技大学 一种自适应、可组合链上隐私保护交易系统及方法
CN113114476A (zh) * 2021-06-15 2021-07-13 支付宝(杭州)信息技术有限公司 基于合约的隐私存证方法及装置
CN113114476B (zh) * 2021-06-15 2021-11-16 支付宝(杭州)信息技术有限公司 基于合约的隐私存证方法及装置

Also Published As

Publication number Publication date
CN110032884B (zh) 2020-04-17
CN110032884A (zh) 2019-07-19

Similar Documents

Publication Publication Date Title
CN110032884B (zh) 区块链中实现隐私保护的方法及节点、存储介质
CN109831298B (zh) 区块链中安全更新密钥的方法及节点、存储介质
CN110245506B (zh) 基于区块链的智能合约管理方法及装置、电子设备
CN110032883B (zh) 区块链中实现隐私保护的方法、系统和节点
CN110020855B (zh) 区块链中实现隐私保护的方法、节点、存储介质
CN110033267B (zh) 区块链中实现隐私保护的方法、节点、系统和存储介质
CN109886682B (zh) 区块链中实现合约调用的方法及节点、存储介质
CN110266467B (zh) 基于区块高度实现动态加密的方法及装置
CN110008735B (zh) 区块链中实现合约调用的方法及节点、存储介质
CN110263544B (zh) 结合交易类型和判断条件的收据存储方法和节点
CN110060054B (zh) 区块链中实现隐私保护的方法、节点、系统和存储介质
CN110266644B (zh) 结合代码标注与交易类型的收据存储方法和节点
CN110263087B (zh) 基于多维度信息且具有条件限制的收据存储方法和节点
CN110020856B (zh) 区块链中实现混合交易的方法、节点和存储介质
CN110245945B (zh) 结合代码标注与用户类型的收据存储方法和节点
CN110264196B (zh) 结合代码标注与用户类型的有条件的收据存储方法和节点
CN110245942B (zh) 结合用户类型和判断条件的收据存储方法和节点
CN110245944B (zh) 基于用户类型的收据存储方法和节点
CN110245947B (zh) 结合交易与用户类型的条件限制的收据存储方法和节点
CN110008715B (zh) 区块链中实现隐私保护的方法及节点、存储介质
CN110245504B (zh) 结合多类型维度的条件限制的收据存储方法和节点
CN110263086B (zh) 结合用户类型与事件函数类型的收据存储方法和节点
CN110033266B (zh) 区块链中实现隐私保护的方法、节点和存储介质
CN110264193B (zh) 结合用户类型与交易类型的收据存储方法和节点
CN110263543B (zh) 基于代码标注的对象级收据存储方法和节点

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
TA01 Transfer of patent application right

Effective date of registration: 20201012

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20201012

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

TA01 Transfer of patent application right
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40039473

Country of ref document: HK