CN110992027B - 在区块链中实现隐私保护的高效交易方法及装置 - Google Patents
在区块链中实现隐私保护的高效交易方法及装置 Download PDFInfo
- Publication number
- CN110992027B CN110992027B CN201911207025.8A CN201911207025A CN110992027B CN 110992027 B CN110992027 B CN 110992027B CN 201911207025 A CN201911207025 A CN 201911207025A CN 110992027 B CN110992027 B CN 110992027B
- Authority
- CN
- China
- Prior art keywords
- transaction
- privacy
- consensus
- node
- data
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (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(信任区)和AMDPSP(Platform Security Processor,平台安全处理器)。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种在区块链中实现隐私保护的高效交易方法及装置。
为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
根据本说明书一个或多个实施例的第一方面,提出了一种在区块链中实现隐私保护的高效交易方法,包括:
区块链节点将客户端提交的隐私交易传入可信执行环境中以对所述隐私交易进行共识前校验,并对共识前校验的过程中使用的至少一部分数据进行缓存;
在所述隐私交易通过共识前校验的情况下,所述区块链节点与其他区块链节点对所述隐私交易进行共识处理;
所述区块链节点将经过共识的所述隐私交易传入所述可信执行环境中予以执行,并在交易执行的过程中使用缓存的所述至少一部分数据。
根据本说明书一个或多个实施例的第二方面,提出了一种在区块链中实现隐私保护的高效交易方法,包括:
区块链节点将客户端提交的隐私交易传入可信执行环境中以对所述隐私交易进行共识前校验,并将所述隐私交易的信息与共识前校验的校验结果进行关联记录;
在所述隐私交易通过共识前校验的情况下,所述区块链节点与其他区块链节点对所述隐私交易进行共识处理;
所述区块链节点针对收到的经过共识的任一隐私交易,查询记录的对应于所述任一隐私交易的校验结果;
在查询到的校验结果为通过校验的情况下,所述区块链节点将所述任一隐私交易传入所述可信执行环境中予以执行;
在查询到的校验结果为未通过校验或未查询到校验结果的情况下,所述区块链节点将所述任一隐私交易传入所述可信执行环境中进行执行时校验,并在所述任一隐私交易通过执行时校验的情况下执行所述任一隐私交易。
根据本说明书一个或多个实施例的第三方面,提出了一种在区块链中实现隐私保护的高效交易装置,包括:
共识前校验单元,使区块链节点将客户端提交的隐私交易传入可信执行环境中以对所述隐私交易进行共识前校验;
缓存单元,使所述区块链节点对共识前校验的过程中使用的至少一部分数据进行缓存;
共识单元,使所述区块链节点在所述隐私交易通过共识前校验的情况下,与其他区块链节点对所述隐私交易进行共识处理;
执行单元,使所述区块链节点将经过共识的所述隐私交易传入所述可信执行环境中予以执行,并在交易执行的过程中使用缓存的所述至少一部分数据。
根据本说明书一个或多个实施例的第四方面,提出了一种在区块链中实现隐私保护的高效交易装置,包括:
共识前校验单元,使区块链节点将客户端提交的隐私交易传入可信执行环境中以对所述隐私交易进行共识前校验;
记录单元,使所述区块链节点将所述隐私交易的信息与共识前校验的校验结果进行关联记录;
共识单元,使所述区块链节点在所述隐私交易通过共识前校验的情况下,与其他区块链节点对所述隐私交易进行共识处理;
查询单元,使所述区块链节点针对收到的经过共识的任一隐私交易,查询记录的对应于所述任一隐私交易的校验结果;
执行单元,在查询到的校验结果为通过校验的情况下,使所述区块链节点将所述任一隐私交易传入所述可信执行环境中予以执行;在查询到的校验结果为未通过校验或未查询到校验结果的情况下,使所述区块链节点将所述任一隐私交易传入所述可信执行环境中进行执行时校验,并在所述任一隐私交易通过执行时校验的情况下执行所述任一隐私交易。
根据本说明书一个或多个实施例的第五方面,提出了一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如第一方面或第二方面所述的方法。
根据本说明书一个或多个实施例的第六方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第一方面或第二方面所述方法的步骤。
根据本说明书一个或多个实施例的第七方面,提出了一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如第三方面或第四方面所述的方法。
根据本说明书一个或多个实施例的第八方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第三方面或第四方面所述方法的步骤。
附图说明
图1是一示例性实施例提供的一种区块链节点对交易进行处理的示意图。
图2是一示例性实施例提供的一种在区块链中实现隐私保护的高效交易方法的流程图。
图3是一示例性实施例提供的一种创建智能合约的示意图。
图4是一示例性实施例提供的一种调用智能合约的示意图。
图5是一示例性实施例提供的另一种在区块链中实现隐私保护的高效交易方法的流程图。
图6是一示例性实施例提供的一种设备的结构示意图。
图7是一示例性实施例提供的一种在区块链中实现隐私保护的高效交易装置的框图。
图8是一示例性实施例提供的另一种设备的结构示意图。
图9是一示例性实施例提供的另一种在区块链中实现隐私保护的高效交易装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
区块链一般被划分为三种类型:公有链(Public Blockchain),私有链(PrivateBlockchain)和联盟链(Consortium Blockchain)。此外,还有多种类型的结合,比如私有链+联盟链、联盟链+公有链等不同组合形式。其中去中心化程度最高的是公有链。公有链以比特币、以太坊为代表,加入公有链的参与者可以读取链上的数据记录、参与交易以及竞争新区块的记账权等。而且,各参与者(即节点)可自由加入以及退出网络,并进行相关操作。私有链则相反,该网络的写入权限由某个组织或者机构控制,数据读取权限受组织规定。简单来说,私有链可以为一个弱中心化系统,参与节点具有严格限制且少。这种类型的区块链更适合于特定机构内部使用。联盟链则是介于公有链以及私有链之间的区块链,可实现“部分去中心化”。联盟链中各个节点通常有与之相对应的实体机构或者组织;参与者通过授权加入网络并组成利益相关联盟,共同维护区块链运行。
不论是公有链、私有链还是联盟链,区块链网络中的节点出于隐私保护的目的,均可能通过区块链与TEE(Trusted Execution Environment,可信执行环境)相结合的解决方案,在TEE内执行收到的交易。例如图1所示,区块链节点包括左侧的常规执行环境和右侧的可信执行环境(以下简称TEE),客户端(或其他来源)提交的交易首先进入常规执行环境中的“交易调度”接口进行类型识别,将识别出的明文交易留在常规执行环境中进行处理(对应于左侧的“交易执行”环节),而将识别出的隐私交易传递至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的加密保护下利用数据进行运算,结果会以密文形式返回。这种模式下,既可以利用强大的计算力,又不用担心数据泄漏。
区块链节点在收到客户端提交的交易后,需要对该交易进行共识前校验,并将通过校验的交易发送至其他区块链节点,使得各个区块链节点对该交易进行共识。共识前校验通常包括检查交易是否有效、格式是否正确、验证交易的签名是否合法等,本说明书并不对此进行限制。未通过校验的交易可能无法通过共识或者在共识后无法正确执行,因而通过共识前校验排除未通过校验的交易,可以减少对这些交易进行共识或执行而造成的网络开销、其他区块链节点的运行开销等。
对于如前所述的隐私交易而言,区块链节点需要在TEE中对该隐私交易进行共识前校验,并且在校验过程中需要使用一些数据,这些数据可能来自于该隐私交易中或者区块链节点自身的数据库中,并且出于隐私目的这些数据往往出于加密状态,使得区块链节点需要在TEE中对这些数据进行解密后才能够应用于实现共识前校验。同时,参与共识前校验的上述数据也可能被应用于上述隐私交易的执行过程中,但相关技术中的共识前校验与交易执行往往被作为相互独立的过程,那么区块链节点需要分别在共识前校验和交易执行过程中将上述数据读入TEE中并执行解密、处理等操作,给区块链节点造成额外的运行开销,也降低了交易执行效率。
以下结合实施例介绍本说明书提供的一种在区块链中实现隐私保护的高效交易方案,可以相对减小区块链节点的运行开销、提升交易执行效率。
图2是一示例性实施例提供的一种在区块链中实现隐私保护的高效交易方法的流程图。如图2所示,该方法应用于区块链节点,可以包括以下步骤:
步骤202,区块链节点将客户端提交的隐私交易传入可信执行环境中以对所述隐私交易进行共识前校验,并对共识前校验的过程中使用的至少一部分数据进行缓存。
隐私交易可以理解为存在隐私需求的交易;除了隐私交易之外,区块链节点可能接收到明文交易,明文交易为不存在隐私需求的交易。隐私需求可以通过多种方式予以表达,本说明书并不对此进行限制。例如,每笔交易可以包含类型字段,该类型字段用于标注相应的交易属于隐私交易还是明文交易。如前所述,区块链节点可以在如图1所示的常规执行环境中的“交易调度”接口识别交易类型。在相关技术中,例如在以太坊网络中,交易通常包含to、value、data等字段;而本实施例在相关技术的基础上,在交易中增加一类型字段,比如表征为type字段,并基于该类型字段的取值,表明相关交易的类型:例如,当类型字段为第一取值时,表明相关交易为明文交易,当类型字段为第二取值时,表明相关交易为隐私交易。再例如,用户可以在创建交易的过程中在交易内添加加密标识,以表达上述的隐私需求。那么,当检查到交易中包含加密标识时,区块链节点可以判定该交易为隐私交易,否则判定该交易为明文交易。又例如,区块链节点可以识别交易所需调用的智能合约的类型,当被调用的智能合约属于隐私类型(比如智能合约包含隐私标识,或者智能合约的代码中包括隐私标识标注的合约状态等)时,可以判定该交易属于隐私交易,否则判定该交易为明文交易。
区块链节点收到的隐私交易可以来自于客户端;例如,用户可以在客户端生成该隐私交易后,通过客户端将该隐私交易提交至上述区块链节点。或者,客户端在生成隐私交易之后,可以通过其他区块链节点转发至上述区块链节点。上述的隐私交易被生成时即处于加密状态,以确保该隐私交易所含的内容不会被无关人员获得。
区块链节点对上述隐私交易进行共识前校验之前,需要将该隐私交易读入TEE中进行解密,然后对解密得到的明文内容执行共识前校验。共识前校验应当确保在TEE内执行,避免上述解密得到的明文内容暴露至TEE之外,以避免产生安全性风险。区块链节点可以对收到的隐私交易依次实施共识前校验,即针对各个隐私交易串行地实施共识前校验;或者,区块链节点可以对收到的隐私交易进行并行校验,即区块链节点可以对上述隐私交易和至少一件其他隐私交易并行地实施共识前校验,以提升区块链节点对隐私交易进行共识前校验的执行效率。为了能够并行地执行对上述隐私交易和至少一件其他隐私交易的共识前校验,该共识前校验的过程应当避免在不同隐私交易之间存在冲突,比如共识前校验的过程中避免涉及智能合约的合约代码及合约存储等,使得不同隐私交易不会由于涉及到同一智能合约的合约代码或合约存储而导致冲突;当然,这并不意味着共识前校验必然不涉及到合约代码或合约存储,比如不同隐私交易涉及到不同智能合约或同一智能合约的不同合约存储时,即便并行地执行共识前校验也并不会由此产生冲突。
区块链节点对共识前校验的过程中使用的至少一部分数据进行缓存。区块链节点可以将相关数据缓存于TEE中,也可以将相关数据缓存于TEE之外的外部存储空间。通过缓存于TEE中,使得区块链节点在后续的交易执行过程中可以直接从TEE中读取已缓存的数据,相比于存储至外部存储空间而言,一方面可以免去TEE与外部存储空间之间进行交互操作,另一方面由于数据在TEE中采用明文形式进行缓存、在外部存储空间必须采用密文形式进行缓存,因而将数据缓存于TEE中可以省去对这些数据的加密、解密过程。但是,TEE被分配的内存空间可能相对较小,在区块链节点收到隐私交易的数量较多的情况下,尤其是在并行地对多笔隐私交易实施共识前校验的情况下,如果将所有隐私交易涉及到的数据均缓存于TEE中,TEE的内存空间可能无法满足要求,甚至可能影响TEE的正常运行,因而区块链节点可以将上述的相关数据全部或部分地缓存至外部存储空间,且这些数据应当预先在TEE内被加密,然后缓存至外部存储空间。
区块链节点对隐私交易进行共识前校验的过程中使用的至少一部分数据,可以包括从上述隐私交易中提取的数据,即该数据被包含于隐私交易中。区块链节点可以将从隐私交易中提取的上述数据加密后缓存至TEE之外,比如缓存至上述的外部存储空间,以避免影响TEE的正常运行并满足大量隐私交易对存储空间的需求。
例如,隐私交易可以包括加密后交易内容和加密后密钥,该加密后交易内容由交易发起方维护的第一对称密钥对明文交易内容进行加密得到,该加密后密钥由节点公钥对上述第一对称密钥进行加密得到。其中,第一对称密钥由交易发起方所维护,节点公钥与节点私钥为基于非对称加密算法的一组密钥,节点私钥由区块链节点维护而避免被交易发起方或客户端获得,交易发起方或客户端可以获知节点公钥;相应地,交易发起方可以在客户端处通过第一对称密钥对明文交易内容进行加密得到加密后交易内容,且通过节点公钥对第一对称密钥进行加密得到加密后密钥,即数字信封的加密方式,而上述的隐私交易即同时包括上述的加密后交易内容和加密后密钥。由于对称加密算法的加解密效率相对更高,而非对称加密算法的安全性相对更高,因而在数字信封的加密方式中,通过第一对称密钥对明文交易内容进行对称加密(以及后续通过第一对称密钥对加密后交易内容进行解密)可以实现相对更高的效率、通过节点公钥对第一对称密钥进行加密(以及后续通过节点私钥对第一对称密钥进行解密)可以实现相对更高的安全性,从而兼顾加解密效率与安全性。
相应地,区块链节点将上述隐私交易读入TEE后,可以采用节点私钥对加密后密钥进行解密得到的第一对称密钥,以及通过该第一对称密钥对加密后交易内容进行解密得到上述的明文交易内容,以针对该明文交易内容进行校验。由于在交易执行过程中,区块链节点仍然需要将隐私交易读入TEE中进行解密,并且如前文所述的非对称加密算法具有相对更低的加解密效率,因而区块链节点可以对共识前校验过程中得到的第一对称密钥进行缓存,以避免在交易执行过程中再次通过非对称加密算法进行解密。当然,区块链节点在将上述的第一对称密钥缓存至外部存储空间时,需要对该第一对称密钥进行加密存储,因而区块链节点可以采用TEE中维护的第二对称密钥对该第一对称密钥进行加密后缓存至外部存储空间。由于采用第二对称密钥对第一对称密钥进行加密,相比于采用上述的节点公钥对第一对称密钥进行加密而言,使得区块链节点后续在TEE中实施解密操作获得第一对称密钥的过程中,解密时长相对更短(对称加密算法的耗时相比非对称加密算法的耗时更短)。
区块链节点对隐私交易进行共识前校验的过程中使用的至少一部分数据,可以包括该区块链节点将加密后数据读入TEE中进行解密得到的解密后数据。该加密后数据由区块链节点预先在TEE中对上述的解密后数据进行加密得到,并从TEE传出后存储至外部存储空间。例如,上述的解密后数据可以包括以下至少之一:外部账户的状态数据、合约账户的状态数据、合约账户对应的合约代码、所述合约代码对应的合约存储等,本说明书并不对此进行限制。区块链节点在TEE中对上述的解密后数据进行加密时,可以采用TEE中维护的对称密钥进行加密,该对称密钥譬如可以为上述的第二对称密钥或者其他对称密钥,本说明书并不对此进行限制。上述的加密后数据存储于区块链节点上的外部存储空间,而该加密后数据在TEE中被解密为相应的解密后数据并被应用于针对上述隐私交易的共识前校验后,区块链节点可以将该解密后数据缓存于TEE中,使得区块链节点后续在该隐私交易通过共识并执行该隐私交易的过程中,可以直接从TEE中读取和使用该解密后数据,而无需重新查找加密后数据、读入TEE并解密,可以提升后续的处理效率。
本说明书中的隐私交易可能与智能合约相关,可以基于智能合约实现相对复杂的处理逻辑。当然,本说明书的隐私交易也可能与智能合约无关,仅用于实现相对简单的处理逻辑,比如相关技术中的转账逻辑等。以以太坊为例,支持用户在以太坊网络中创建和/或调用一些复杂的逻辑,这是以太坊区别于比特币区块链技术的最大挑战。以太坊作为一个可编程区块链的核心是以太坊虚拟机(EVM),每个以太坊节点都可以运行EVM。EVM是一个图灵完备的虚拟机,这意味着可以通过它实现各种复杂的逻辑。用户在以太坊中发布和调用智能合约就是在EVM上运行的。如图1所示,通过在常规执行环境中部署EVM,可以通过该EVM执行明文交易发布或调用的智能合约,以实现常规执行环境中的“交易执行”环节;以及,通过在TEE中部署EVM,可以通过该EVM执行隐私交易发布或调用的智能合约,以实现TEE中的“交易执行”环节。
例如图3所示,Bob将一个包含创建智能合约信息的交易发送到以太坊网络后,节点1的EVM可以执行这个交易并生成对应的合约实例。交易的data字段保存的可以是智能合约的代码(如字节码),交易的to字段为一个空的账户。节点间通过共识机制达成一致后,这个合约成功创建,后续用户可以调用这个合约。合约创建后,区块链上出现一个与该智能合约对应的合约账户,并拥有一个特定的地址,合约代码和账户存储将保存在该合约账户中。智能合约的行为由合约代码控制,而智能合约的账户存储则保存了合约的状态。换句话说,智能合约使得区块链上产生包含合约代码和账户存储(Storage)的虚拟账户。前文所述的合约存储通常理解为与合约代码相关的合约状态及其取值(通常为键值对形式),而与该合约代码相关的所有合约状态及其取值可以形成树状结构(如以太坊中采用MPT树,即MerklePatricia Tree),并将该树状结构的根哈希记录于上述的账户存储中。
进一步地,如图4所示,仍以以太坊为例,Bob将一个调用智能合约的交易发送到以太坊网络后,节点1的EVM可以执行这个交易并生成对应的合约实例。图中4中交易的from字段是发起调用智能合约的账户的地址,to字段中的“0x692a70d2…”代表了被调用的智能合约的地址,value字段在以太坊中是以太币的值,交易的data字段保存的调用智能合约的方法和参数。智能合约可以通过规定的方式在区块链网络中的每个节点独立地执行,所有执行记录和数据都保存在区块链上,所以当这样的交易完成后,区块链上就保存了无法篡改、不会丢失的交易凭证。
区块链网络中的各个区块链节点可以采用统一存储方案对隐私交易在共识前校验的过程中使用的至少一部分数据进行存储,比如全部存储于TEE中、全部存储于外部存储空间,或者部分存储于TEE中、另一部分存储于外部存储空间等。或者,区块链网络中的各个区块链节点可以采用独立存储方案,即各个区块链节点所采用的存储方案之间并不一定相同,以适应于各个区块链节点在存储空间分配和应用需求等方面可能存在的差异。
步骤204,在所述隐私交易通过共识前校验的情况下,所述区块链节点与其他区块链节点对所述隐私交易进行共识处理。
区块链节点对隐私交易进行共识前校验,可以筛除部分不满足要求的隐私交易,比如不合法交易等,这些被筛除的隐私交易不会参与共识、不会被各个区块链节点执行,而只有通过共识前校验的隐私交易才能够参与共识和执行过程,可以减少网络传输开销和其他区块链节点的校验开销。
在采用工作量证明(Proof of Work,POW)以及股权证明(Proof of Stake,POS)、委任权益证明(Delegated Proof of Stake,DPOS)等共识算法的区块链网络中,共识过程包括区块链节点之间对于记账权的争夺。以以太坊为例,以太坊中的节点一般也是争夺记账权的节点,上述区块链节点作为争夺记账权的节点可以在本地执行上述的隐私交易。所有争夺记账权的节点中的某一节点如果在本轮争夺记账权的过程中胜出,则成为记账节点。假定上述区块链节点在本轮争夺记账权的过程中胜出,就成为记账节点;当然,如果该区块链节点在本轮争夺记账权的过程中没有胜出,则不是记账节点,而其它节点可能成为记账节点。对于上述争夺记账权的区块链网络,本说明书中的区块链节点对收到的隐私交易进行共识前校验后,如果校验通过则将该隐私交易广播至区块链网络中的其他区块链节点,使得不论本轮的记账节点为哪个节点,该记账节点均可以将该隐私交易打包(或还包括其它交易一起打包)并生成新的区块,并将该新的区块发送至非记账节点进行共识,而非记账节点在对收到的上述新的区块进行验证没有问题的情况下,可以将该新的区块追加到原有的区块链末尾,从而完成记账过程、达成共识。而如果上述隐私交易在本说明书的区块链节点处未通过共识前校验,那么该区块链节点就不会向其他区块链节点广播该隐私交易。
在采用实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)等机制的区块链网络中,具有记账权的节点在本轮记账前已经商定好。因此,上述区块链节点接收到前述的隐私交易后,假定该隐私交易通过了共识前校验,那么:在该区块链节点自身不是本轮的记账节点的情况下,将该隐私交易发送至记账节点;在该区块链节点自身是本轮的记账节点的情况下,将该隐私交易打包(或还包括其它交易一起打包)并生成新的区块后,将生成的新的区块发送至非记账节点进行共识。以及,上述区块链节点接收到前述的隐私交易后,假定该隐私交易未通过共识前校验,则该区块链节点在自身不是本轮的记账节点的情况下不会将该隐私交易发送至记账节点,该区块链节点在自身是本轮的记账节点的情况下不会将该隐私交易用于打包生成新的区块。对于上述记账节点生成的新的区块,非记账节点可以在对收到的上述新的区块进行验证没有问题的情况下,可以将该新的区块追加到原有的区块链末尾,从而完成记账过程、达成共识。
步骤206,所述区块链节点将经过共识的所述隐私交易传入所述可信执行环境中予以执行,并在交易执行的过程中使用缓存的所述至少一部分数据。
在隐私交易经过共识后,区块链网络中的各个区块链节点均会执行该隐私交易。以上述的区块链节点为例,该区块链节点可以将该隐私交易传入TEE中,并在TEE中执行该隐私交易。而通过在交易执行的过程中使用前文在共识前校验之后缓存的上述至少一部分数据,可以避免区块链节点重复实施用于获得该至少一部分数据的操作,譬如数据查询操作、将数据从外部读入TEE内部的操作、数据解密操作等,可以减少区块链节点的运行开销、提升区块链节点的交易执行效率。在隐私交易执行完毕后,区块链节点可以清除缓存的上述至少一部分数据,以释放相应的存储空间。
如前所述,隐私交易可以包括加密后交易内容和加密后密钥。按照相关技术中的处理流程,区块链节点需要首先基于节点私钥对加密后密钥进行解密、得到第一对称密钥,然后基于第一对称密钥对加密后交易内容进行解密、得到明文交易内容。而基于本说明书的技术方案,由于在前述的共识前校验之后,区块链节点缓存了第一对称密钥,因而无需再次基于节点私钥对加密后密钥进行解密得到该第一对称密钥。其中,如果区块链节点将该第一对称密钥缓存于TEE中,那么该第一对称密钥可以处于明文状态,区块链节点可以直接从TEE中读取并使用该第一对称密钥,以用于对加密后交易内容进行解密得到相应的明文交易内容;如果区块链节点将该第一对称密钥缓存于TEE之外的外部存储空间,譬如采用如前所述的第二对称密钥对该第一对称密钥进行加密后存储至外部存储空间,那么区块链节点可以将加密后的第一对称密钥从外部存储空间读入TEE中,并通过第二对称密钥进行解密得到第一对称密钥,虽然也涉及到解密操作,但此处采用的是对称加密算法,相比于相关技术中采用节点私钥、通过非对称加密算法实施的解密操作,所带来的运行开销相对更低、效率相对更高。
区块链节点对隐私交易的执行流程可以包括:执行时校验操作和交易执行操作。区块链节点首先将该隐私交易传入TEE中进行校验,即执行时校验操作;以及,区块链节点可以在该隐私交易通过执行时校验的情况下,执行该隐私交易(即交易执行操作),否则拒绝执行该隐私交易或确定该隐私交易执行失败。执行时校验与前述的共识前校验的过程类似,譬如执行时校验可以包括检查交易是否有效、格式是否正确、验证交易的签名是否合法等,执行时校验可以涉及智能合约的合约代码及合约存储等,本说明书并不对此进行限制。由于执行时校验属于隐私交易的执行流程的一部分,而不同交易通常难以实现并行执行,因而不同交易的执行时校验通常采用串行执行。如果区块链节点可以实现多笔交易的并行执行,那么应当考虑不同交易的执行时校验之间可能存在的冲突问题,尤其是当执行时校验涉及到合约代码或合约存储的情况下。
在一些情况下,区块链节点可以记录下每笔交易的共识前校验的校验结果。例如,在区块链节点确定上述的隐私交易经过共识后,可以查询该隐私交易对应的共识前校验的校验结果,如果校验结果为通过校验,则可以跳过执行时校验操作,而直接执行该隐私交易;如果校验结果为未通过校验或未查找到校验结果,则需要实施执行时校验。通常,区块链节点应当避免跳过执行时校验操作,因为区块链节点在执行各笔交易的过程中,前序交易的交易结果可能对后序交易造成一定影响,比如前序交易如果冻结了后序交易所涉及的账户,那么后序交易必然会交易失败,但这在共识前校验的过程中无法被校验出来。因此,区块链节点在针对诸如上述的隐私交易实施执行时校验,该校验过程除了前述的交易合法性等内容之外,还可以涉及到该隐私交易在交易过程中所涉及到的外部账户、合约账户等的状态数据,譬如前述的账户被冻结等异常状态将导致执行时校验的校验结果为不通过。
在隐私交易通过执行时校验的情况下,区块链节点可以执行该隐私交易。具体的,如果隐私交易涉及智能合约,那么执行该隐私交易具体在TEE内运行的虚拟机中执行。例如,以太坊中采用虚拟机(Ethereum Virtual Machine,EVM)。一般的,EVM执行字节码形式的智能合约。其中,如果隐私交易用于部署智能合约,那么区块链节点对该隐私交易所含的加密后交易内容进行解密、得到明文交易内容后,可以从该明文交易内容中获得待部署的合约代码;如果隐私交易用于调用智能合约,那么区块链节点可以从上述明文交易内容中获得目标智能合约的合约地址,使得区块链节点可以基于该合约地址从本地读取已部署的合约代码(如果部署在TEE内,该合约代码处于明文状态;如果部署在外部存储空间,该合约代码处于密文状态,需要读入TEE中进行解密后才能够在虚拟机中执行)。此外,明文交易内容中还可能包含执行合约代码所需的变量及其取值,区块链节点可以将该变量及其取值传入虚拟机,以配合对合约代码的执行。
合约代码存在相应的一个或多个合约状态。区块链节点执行合约代码之后,合约状态的取值可能发生变化。区块链节点可以将这些合约状态以明文形式存储于TEE中;或者,区块链节点可以将这些合约状态在TEE中加密后存储至外部存储空间。区块链节点可以采用前文所述的第二对称密钥对合约状态进行加密;或者,区块链节点可以采用其他的对称密钥对合约状态进行加密,本说明书并不对此进行限制。
本说明书中涉及到若干密钥。上述的节点私钥可由KMS(Key ManagementService,密钥管理服务)服务器在确认区块链节点上的TEE通过远程证明后发放至该区块链节点,使得该区块链节点将该节点私钥维护于TEE中。而该节点私钥对应的节点公钥,可由KMS服务器发放至客户端,也可以通过其他方式向客户端公开。类似地,上述的第二对称密钥(或其他的对称密钥)也可以由KMS服务器在确认区块链节点上的TEE通过远程证明后发放至该区块链节点,使得该区块链节点将该第二对称密钥维护于TEE中。或者,KMS服务器可以在确认区块链节点上的TEE通过远程证明后向该区块链节点发放安全密钥,使得该区块链节点将该安全密钥维护于TEE中,而上述的第二对称密钥可以为该安全密钥或者由该安全密钥衍生得到。除此之外,节点公私钥对、第二对称密钥等也可以由上述区块链节点与其他区块链节点之间协商得到,或者通过其他方式得到,本说明书并不对此进行限制。其中,对称加密采用的加密算法,例如是DES算法,3DES算法,TDEA算法,Blowfish算法,RC5算法,IDEA算法等;非对称加密算法,例如是RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)等。
图5是一示例性实施例提供的另一种在区块链中实现隐私保护的高效交易方法的流程图。如图5所示,该方法应用于区块链节点,可以包括以下步骤:
步骤502,区块链节点将客户端提交的隐私交易传入可信执行环境中以对所述隐私交易进行共识前校验,并将所述隐私交易的信息与共识前校验的校验结果进行关联记录。
如前所述,隐私交易可以理解为存在隐私需求的交易;除了隐私交易之外,区块链节点可能接收到明文交易,明文交易为不存在隐私需求的交易。在本说明书中,可以通过在交易中增加一类型字段来表示交易的类型;或者,可以通过在交易中添加或不添加预设的加密标识,以表明该交易为隐私交易或明文交易;或者,可以基于交易调用的智能合约的类型,确定交易的类型等。
如前所述,区块链节点收到的隐私交易可以来自于客户端;例如,用户可以在客户端生成该隐私交易后,通过客户端将该隐私交易提交至上述区块链节点。或者,客户端在生成隐私交易之后,可以通过其他区块链节点转发至上述区块链节点。上述的隐私交易被生成时即处于加密状态,以确保该隐私交易所含的内容不会被无关人员获得。
如前所述,区块链节点对上述隐私交易进行共识前校验之前,需要将该隐私交易读入TEE中进行解密,然后对解密得到的明文内容执行共识前校验。共识前校验应当确保在TEE内执行,避免上述解密得到的明文内容暴露至TEE之外,以避免产生安全性风险。区块链节点可以对收到的隐私交易依次实施共识前校验,即针对各个隐私交易串行地实施共识前校验;或者,区块链节点可以对收到的隐私交易进行并行校验,即区块链节点可以对上述隐私交易和至少一件其他隐私交易并行地实施共识前校验,以提升区块链节点对隐私交易进行共识前校验的执行效率。为了能够并行地执行对上述隐私交易和至少一件其他隐私交易的共识前校验,该共识前校验的过程应当避免在不同隐私交易之间存在冲突,比如共识前校验的过程中避免涉及智能合约的合约代码及合约存储等,使得不同隐私交易不会由于涉及到同一智能合约的合约代码或合约存储而导致冲突;当然,这并不意味着共识前校验必然不涉及到合约代码或合约存储,比如不同隐私交易涉及到不同智能合约或同一智能合约的不同合约存储时,即便并行地执行共识前校验也并不会由此产生冲突。
如前所述,隐私交易可以包括加密后交易内容和加密后密钥,该加密后交易内容由交易发起方维护的第一对称密钥对明文交易内容进行加密得到,该加密后密钥由节点公钥对上述第一对称密钥进行加密得到。其中,第一对称密钥由交易发起方所维护,节点公钥与节点私钥为基于非对称加密算法的一组密钥,节点私钥由区块链节点维护而避免被交易发起方或客户端获得,交易发起方或客户端可以获知节点公钥;相应地,交易发起方可以在客户端处通过第一对称密钥对明文交易内容进行加密得到加密后交易内容,且通过节点公钥对第一对称密钥进行加密得到加密后密钥,即数字信封的加密方式,而上述的隐私交易即同时包括上述的加密后交易内容和加密后密钥。由于对称加密算法的加解密效率相对更高,而非对称加密算法的安全性相对更高,因而在数字信封的加密方式中,通过第一对称密钥对明文交易内容进行对称加密(以及后续通过第一对称密钥对加密后交易内容进行解密)可以实现相对更高的效率、通过节点公钥对第一对称密钥进行加密(以及后续通过节点私钥对第一对称密钥进行解密)可以实现相对更高的安全性,从而兼顾加解密效率与安全性。
相应地,区块链节点将上述隐私交易读入TEE后,可以采用节点私钥对加密后密钥进行解密得到的第一对称密钥,以及通过该第一对称密钥对加密后交易内容进行解密得到上述的明文交易内容,以针对该明文交易内容进行校验。
步骤504,在所述隐私交易通过共识前校验的情况下,所述区块链节点与其他区块链节点对所述隐私交易进行共识处理。
如前所述,区块链节点对隐私交易进行共识前校验,可以筛除部分不满足要求的隐私交易,比如不合法交易等,这些被筛除的隐私交易不会参与共识、不会被各个区块链节点执行,而只有通过共识前校验的隐私交易才能够参与共识和执行过程,可以减少网络传输开销和其他区块链节点的校验开销。
如前所述,在采用工作量证明以及股权证明、委任权益证明等共识算法的区块链网络中,共识过程包括区块链节点之间对于记账权的争夺。以以太坊为例,以太坊中的节点一般也是争夺记账权的节点,上述区块链节点作为争夺记账权的节点可以在本地执行上述的隐私交易。所有争夺记账权的节点中的某一节点如果在本轮争夺记账权的过程中胜出,则成为记账节点。假定上述区块链节点在本轮争夺记账权的过程中胜出,就成为记账节点;当然,如果该区块链节点在本轮争夺记账权的过程中没有胜出,则不是记账节点,而其它节点可能成为记账节点。对于上述争夺记账权的区块链网络,本说明书中的区块链节点对收到的隐私交易进行共识前校验后,如果校验通过则将该隐私交易广播至区块链网络中的其他区块链节点,使得不论本轮的记账节点为哪个节点,该记账节点均可以将该隐私交易打包(或还包括其它交易一起打包)并生成新的区块,并将该新的区块发送至非记账节点进行共识,而非记账节点在对收到的上述新的区块进行验证没有问题的情况下,可以将该新的区块追加到原有的区块链末尾,从而完成记账过程、达成共识。而如果上述隐私交易在本说明书的区块链节点处未通过共识前校验,那么该区块链节点就不会向其他区块链节点广播该隐私交易。
如前所述,在采用实用拜占庭容错等机制的区块链网络中,具有记账权的节点在本轮记账前已经商定好。因此,上述区块链节点接收到前述的隐私交易后,假定该隐私交易通过了共识前校验,那么:在该区块链节点自身不是本轮的记账节点的情况下,将该隐私交易发送至记账节点;在该区块链节点自身是本轮的记账节点的情况下,将该隐私交易打包(或还包括其它交易一起打包)并生成新的区块后,将生成的新的区块发送至非记账节点进行共识。以及,上述区块链节点接收到前述的隐私交易后,假定该隐私交易未通过共识前校验,则该区块链节点在自身不是本轮的记账节点的情况下不会将该隐私交易发送至记账节点,该区块链节点在自身是本轮的记账节点的情况下不会将该隐私交易用于打包生成新的区块。对于上述记账节点生成的新的区块,非记账节点可以在对收到的上述新的区块进行验证没有问题的情况下,可以将该新的区块追加到原有的区块链末尾,从而完成记账过程、达成共识。
步骤506,所述区块链节点针对收到的经过共识的任一隐私交易,查询记录的对应于所述任一隐私交易的校验结果。
如前所述,区块链节点可以记录下每笔交易的共识前校验的校验结果。例如,在区块链节点确定上述的隐私交易经过共识后,可以查询该隐私交易对应的共识前校验的校验结果,如果校验结果为通过校验,则可以跳过执行时校验操作,而直接执行该隐私交易;如果校验结果为未通过校验或未查找到校验结果,则需要实施执行时校验。
如前所述,区块链节点需要将该任一隐私交易读入TEE中,采用前文所述的方式对该任一隐私交易进行解密得到明文交易内容,从而据此确定出上述的校验结果。当然,如果区块链节点将校验结果与相应的隐私交易的信息(譬如隐私交易的hash值)进行关联存储,那么区块链节点甚至可以在无需对隐私交易进行解密的情况下,即可查询到相应的校验结果。
步骤508,在查询到的校验结果为通过校验的情况下,所述区块链节点将所述任一隐私交易传入所述可信执行环境中予以执行。
如前所述,本说明书中的隐私交易可能与智能合约相关,可以基于智能合约实现相对复杂的处理逻辑。当然,本说明书的隐私交易也可能与智能合约无关,仅用于实现相对简单的处理逻辑,比如相关技术中的转账逻辑等。
如果隐私交易涉及智能合约,那么执行该隐私交易具体在TEE内运行的虚拟机中执行。例如,以太坊中采用虚拟机(Ethereum Virtual Machine,EVM)。一般的,EVM执行字节码形式的智能合约。其中,如果隐私交易用于部署智能合约,那么区块链节点对该隐私交易所含的加密后交易内容进行解密、得到明文交易内容后,可以从该明文交易内容中获得待部署的合约代码;如果隐私交易用于调用智能合约,那么区块链节点可以从上述明文交易内容中获得目标智能合约的合约地址,使得区块链节点可以基于该合约地址从本地读取已部署的合约代码(如果部署在TEE内,该合约代码处于明文状态;如果部署在外部存储空间,该合约代码处于密文状态,需要读入TEE中进行解密后才能够在虚拟机中执行)。此外,明文交易内容中还可能包含执行合约代码所需的变量及其取值,区块链节点可以将该变量及其取值传入虚拟机,以配合对合约代码的执行。
合约代码存在相应的一个或多个合约状态。区块链节点执行合约代码之后,合约状态的取值可能发生变化。区块链节点可以将这些合约状态以明文形式存储于TEE中;或者,区块链节点可以将这些合约状态在TEE中加密后存储至外部存储空间。区块链节点可以采用前文所述的第二对称密钥对合约状态进行加密;或者,区块链节点可以采用其他的对称密钥对合约状态进行加密,本说明书并不对此进行限制。
步骤508b,在查询到的校验结果为未通过校验或未查询到校验结果的情况下,所述区块链节点将所述任一隐私交易传入所述可信执行环境中进行执行时校验,并在所述任一隐私交易通过执行时校验的情况下执行所述任一隐私交易。
如前所述,区块链节点对隐私交易的执行流程可以包括:执行时校验操作和交易执行操作。区块链节点首先将该隐私交易传入TEE中进行校验,即执行时校验操作;以及,区块链节点可以在该隐私交易通过执行时校验的情况下,执行该隐私交易(即交易执行操作),否则拒绝执行该隐私交易或确定该隐私交易执行失败。执行时校验与前述的共识前校验的过程类似,譬如执行时校验可以包括检查交易是否有效、格式是否正确、验证交易的签名是否合法等,执行时校验可以涉及智能合约的合约代码及合约存储等,本说明书并不对此进行限制。由于执行时校验属于隐私交易的执行流程的一部分,而不同交易通常难以实现并行执行,因而不同交易的执行时校验通常采用串行执行。如果区块链节点可以实现多笔交易的并行执行,那么应当考虑不同交易的执行时校验之间可能存在的冲突问题,尤其是当执行时校验涉及到合约代码或合约存储的情况下。
在隐私交易通过执行时校验的情况下,区块链节点可以执行该隐私交易,该执行过程可以参考步骤508a的相关描述,此处不再赘述。
图6是一示例性实施例提供的一种设备的示意结构图。请参考图6,在硬件层面,该设备包括处理器602、内部总线604、网络接口606、内存608以及非易失性存储器610,当然还可能包括其他业务所需要的硬件。处理器602从非易失性存储器610中读取对应的计算机程序到内存608中然后运行,在逻辑层面上形成在区块链中实现隐私保护的高效交易装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参考图7,在软件实施方式中,该在区块链中实现隐私保护的高效交易装置可以包括:
共识前校验单元701,使区块链节点将客户端提交的隐私交易传入可信执行环境中以对所述隐私交易进行共识前校验;
缓存单元702,使所述区块链节点对共识前校验的过程中使用的至少一部分数据进行缓存;
共识单元703,使所述区块链节点在所述隐私交易通过共识前校验的情况下,与其他区块链节点对所述隐私交易进行共识处理;
执行单元704,使所述区块链节点将经过共识的所述隐私交易传入所述可信执行环境中予以执行,并在交易执行的过程中使用缓存的所述至少一部分数据。
可选的,所述共识前校验单元701具体用于:
使所述区块链节点对所述隐私交易和至少一件其他隐私交易并行地实施共识前校验。
可选的,所述缓存单元702具体用于:
使所述区块链节点将从所述隐私交易中提取的数据加密后缓存至所述可信执行环境之外。
可选的,所述隐私交易包括加密后交易内容和加密后密钥,所述加密后交易内容由交易发起方维护的第一对称密钥对明文交易内容进行加密得到,所述加密后密钥由节点公钥对所述第一对称密钥进行加密得到;从所述隐私交易中提取的数据包括:采用节点私钥对所述加密后密钥进行解密得到的所述第一对称密钥。
可选的,所述缓存单元702具体用于:
使所述区块链节点采用所述可信执行环境中维护的第二对称密钥对所述第一对称密钥进行加密后缓存至所述可信执行环境之外。
可选的,所述缓存单元702具体用于:
使所述区块链节点将加密后数据读入所述可信执行环境中进行解密得到的解密后数据缓存于所述可信执行环境中,其中所述加密后数据被所述区块链节点存储于所述可信执行环境之外的外部存储空间。
可选的,所述解密后数据包括以下至少之一:外部账户的状态数据、合约账户的状态数据、合约账户对应的合约代码、所述合约代码对应的合约存储。
可选的,所述执行单元704具体用于:
使所述区块链节点将执行经过共识的所述隐私交易传入所述可信执行环境中进行执行时校验;
在所述隐私交易通过执行时校验的情况下,使所述区块链节点执行所述隐私交易。
可选的,还包括:
清除单元705,使所述区块链节点在所述隐私交易执行完毕后,清除缓存的所述至少一部分数据。
图8是一示例性实施例提供的一种设备的示意结构图。请参考图8,在硬件层面,该设备包括处理器802、内部总线804、网络接口806、内存808以及非易失性存储器810,当然还可能包括其他业务所需要的硬件。处理器802从非易失性存储器810中读取对应的计算机程序到内存808中然后运行,在逻辑层面上形成在区块链中实现隐私保护的高效交易装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参考图9,在软件实施方式中,该在区块链中实现隐私保护的高效交易装置可以包括:
共识前校验单元901,使区块链节点将客户端提交的隐私交易传入可信执行环境中以对所述隐私交易进行共识前校验;
记录单元902,使所述区块链节点将所述隐私交易的信息与共识前校验的校验结果进行关联记录;
共识单元903,使所述区块链节点在所述隐私交易通过共识前校验的情况下,与其他区块链节点对所述隐私交易进行共识处理;
查询单元904,使所述区块链节点针对收到的经过共识的任一隐私交易,查询记录的对应于所述任一隐私交易的校验结果;
执行单元905,在查询到的校验结果为通过校验的情况下,使所述区块链节点将所述任一隐私交易传入所述可信执行环境中予以执行;在查询到的校验结果为未通过校验或未查询到校验结果的情况下,使所述区块链节点将所述任一隐私交易传入所述可信执行环境中进行执行时校验,并在所述任一隐私交易通过执行时校验的情况下执行所述任一隐私交易。
可选的,所述共识前校验单元901具体用于:
使所述区块链节点对所述隐私交易和至少一件其他隐私交易并行地实施共识前校验。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (9)
1.一种在区块链中实现隐私保护的高效交易方法,包括:
区块链节点将客户端提交的隐私交易传入可信执行环境中以对所述隐私交易进行共识前校验,并对共识前校验的过程中使用的至少一部分数据缓存于所述可信执行环境中;
在所述隐私交易通过共识前校验的情况下,所述区块链节点与其他区块链节点对所述隐私交易进行共识处理;
所述区块链节点将经过共识的所述隐私交易传入所述可信执行环境中予以执行,并在交易执行的过程中使用缓存的所述至少一部分数据。
2.根据权利要求1所述的方法,所述区块链节点对所述隐私交易进行共识前校验,包括:
所述区块链节点对所述隐私交易和至少一件其他隐私交易并行地实施共识前校验。
3.根据权利要求1所述的方法,所述对共识前校验的过程中使用的至少一部分数据缓存于所述可信执行环境中,包括:
所述区块链节点将加密后数据读入所述可信执行环境中进行解密得到的解密后数据缓存于所述可信执行环境中,其中所述加密后数据被所述区块链节点存储于所述可信执行环境之外的外部存储空间。
4.根据权利要求3所述的方法,所述解密后数据包括以下至少之一:外部账户的状态数据、合约账户的状态数据、合约账户对应的合约代码、所述合约代码对应的合约存储。
5.根据权利要求1所述的方法,所述区块链节点将经过共识的所述隐私交易传入所述可信执行环境中予以执行,包括:
所述区块链节点将执行经过共识的所述隐私交易传入所述可信执行环境中进行执行时校验;
在所述隐私交易通过执行时校验的情况下,所述区块链节点执行所述隐私交易。
6.根据权利要求1所述的方法,还包括:
所述区块链节点在所述隐私交易执行完毕后,清除缓存的所述至少一部分数据。
7.一种在区块链中实现隐私保护的高效交易装置,包括:
共识前校验单元,使区块链节点将客户端提交的隐私交易传入可信执行环境中以对所述隐私交易进行共识前校验;
缓存单元,使所述区块链节点对共识前校验的过程中使用的至少一部分数据缓存于所述可信执行环境中;
共识单元,使所述区块链节点在所述隐私交易通过共识前校验的情况下,与其他区块链节点对所述隐私交易进行共识处理;
执行单元,使所述区块链节点将经过共识的所述隐私交易传入所述可信执行环境中予以执行,并在交易执行的过程中使用缓存的所述至少一部分数据。
8.一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1-6中任一项所述的方法。
9.一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如权利要求1-6中任一项所述方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911207025.8A CN110992027B (zh) | 2019-11-29 | 2019-11-29 | 在区块链中实现隐私保护的高效交易方法及装置 |
PCT/CN2020/117534 WO2021103794A1 (zh) | 2019-11-29 | 2020-09-24 | 在区块链中实现隐私保护的高效交易方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911207025.8A CN110992027B (zh) | 2019-11-29 | 2019-11-29 | 在区块链中实现隐私保护的高效交易方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110992027A CN110992027A (zh) | 2020-04-10 |
CN110992027B true CN110992027B (zh) | 2022-02-25 |
Family
ID=70088769
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911207025.8A Active CN110992027B (zh) | 2019-11-29 | 2019-11-29 | 在区块链中实现隐私保护的高效交易方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110992027B (zh) |
WO (1) | WO2021103794A1 (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110992027B (zh) * | 2019-11-29 | 2022-02-25 | 支付宝(杭州)信息技术有限公司 | 在区块链中实现隐私保护的高效交易方法及装置 |
SG11202103074PA (en) | 2020-04-22 | 2021-04-29 | Alipay Hangzhou Inf Tech Co Ltd | Managing transaction requests in ledger systems |
EP3834157B1 (en) | 2020-04-22 | 2023-09-13 | Alipay (Hangzhou) Information Technology Co., Ltd. | Managing transaction requests in ledger systems |
SG11202103218YA (en) | 2020-04-22 | 2021-04-29 | Alipay Hangzhou Inf Tech Co Ltd | Managing transaction requests in ledger systems |
CN112513914A (zh) * | 2020-07-03 | 2021-03-16 | 支付宝(杭州)信息技术有限公司 | 基于区块链的隐私交易中提供隐私和安全保护的系统和方法 |
CN113326532A (zh) * | 2020-09-11 | 2021-08-31 | 支付宝(杭州)信息技术有限公司 | 一种基于区块链的用户隐私数据提供方法及装置 |
CN112422500B (zh) * | 2020-09-25 | 2023-05-16 | 北京熠智科技有限公司 | 跨平台数据传输方法以及装置、存储介质、电子装置 |
CN113114476B (zh) * | 2021-06-15 | 2021-11-16 | 支付宝(杭州)信息技术有限公司 | 基于合约的隐私存证方法及装置 |
CN113379419B (zh) * | 2021-06-25 | 2022-08-16 | 远光软件股份有限公司 | 交易信息的访问方法、系统及计算机设备 |
CN113469811A (zh) * | 2021-07-05 | 2021-10-01 | 支付宝(杭州)信息技术有限公司 | 区块链交易处理方法及装置 |
US20230081416A1 (en) * | 2021-09-10 | 2023-03-16 | International Business Machines Corporation | Anonymous private shared partitions in blockchain networks |
CN113761067B (zh) * | 2021-09-10 | 2023-06-16 | 北京冲量在线科技有限公司 | 基于区块链和可信执行环境的去中心化联合建模系统 |
US11968307B2 (en) * | 2021-09-27 | 2024-04-23 | International Bisuness Machines Corporation | Private ledger partitions in blockchain networks |
CN113923093B (zh) * | 2021-10-29 | 2024-02-06 | 博雅正链(北京)科技有限公司 | 一种基于可信执行环境的新型拜占庭容错共识方法 |
CN114189387B (zh) * | 2021-12-17 | 2024-07-09 | 中国电子科技网络信息安全有限公司 | 一种联盟链安全检测方法及装置 |
CN114357492B (zh) * | 2022-01-10 | 2024-06-25 | 天津大学 | 一种基于区块链的医疗数据隐私融合方法及装置 |
CN114640462B (zh) * | 2022-02-17 | 2024-05-17 | 北京邮电大学 | 区块链隐私保护方法、装置、电子设备及存储介质 |
CN114638685B (zh) * | 2022-03-07 | 2024-09-06 | 支付宝(杭州)信息技术有限公司 | 一种风险识别方法、装置及设备 |
CN114896332B (zh) * | 2022-04-08 | 2024-08-23 | 天津理工大学 | 一种基于可信执行环境的安全数据交易方法 |
CN117726343B (zh) * | 2024-02-06 | 2024-05-31 | 中国信息通信研究院 | 区块链中智能合约的执行监管方法、装置、设备和介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107911373A (zh) * | 2017-11-24 | 2018-04-13 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 一种区块链权限管理方法及系统 |
CN110020855A (zh) * | 2019-01-31 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 区块链中实现隐私保护的方法、节点、存储介质 |
CN110071802A (zh) * | 2019-04-24 | 2019-07-30 | 西安纸贵互联网科技有限公司 | 适用于区块链的数据处理方法及装置 |
CN110268691A (zh) * | 2017-02-07 | 2019-09-20 | 微软技术许可有限责任公司 | 具有经验证的区块链和共识协议的联盟区块链网络 |
CN110309663A (zh) * | 2019-06-25 | 2019-10-08 | 湖南搜云网络科技股份有限公司 | 基于区块链的隐私认证方法及系统 |
CN110474865A (zh) * | 2018-05-11 | 2019-11-19 | 北京轻信科技有限公司 | 区块链用户权限系统及实现方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111614655A (zh) * | 2017-03-24 | 2020-09-01 | 创新先进技术有限公司 | 一种共识校验的方法及装置 |
CN107169765B (zh) * | 2017-05-11 | 2020-07-31 | 电子科技大学 | 一种基于业务信任度对区块链共识进行动态调整的方法 |
KR101943228B1 (ko) * | 2017-12-27 | 2019-01-28 | 에이치닥테크놀로지 주식회사 한국영업소 | 보안성이 강화된 가상화폐용 블록체인 시스템 |
CN108830733B (zh) * | 2018-06-21 | 2022-02-15 | 中国银行股份有限公司 | 一种信息处理方法、区块链集群及系统 |
CN108960794A (zh) * | 2018-07-14 | 2018-12-07 | 上海分布信息科技有限公司 | 一种区块生成方法及区块生成系统 |
CN110060054B (zh) * | 2019-02-19 | 2020-09-01 | 阿里巴巴集团控股有限公司 | 区块链中实现隐私保护的方法、节点、系统和存储介质 |
CN109936626B (zh) * | 2019-02-19 | 2020-05-29 | 阿里巴巴集团控股有限公司 | 区块链中实现隐私保护的方法、节点和存储介质 |
CN110335037A (zh) * | 2019-04-19 | 2019-10-15 | 矩阵元技术(深圳)有限公司 | 基于区块链和多方安全计算的交易方法、装置及存储介质 |
CN110992027B (zh) * | 2019-11-29 | 2022-02-25 | 支付宝(杭州)信息技术有限公司 | 在区块链中实现隐私保护的高效交易方法及装置 |
-
2019
- 2019-11-29 CN CN201911207025.8A patent/CN110992027B/zh active Active
-
2020
- 2020-09-24 WO PCT/CN2020/117534 patent/WO2021103794A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110268691A (zh) * | 2017-02-07 | 2019-09-20 | 微软技术许可有限责任公司 | 具有经验证的区块链和共识协议的联盟区块链网络 |
CN107911373A (zh) * | 2017-11-24 | 2018-04-13 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 一种区块链权限管理方法及系统 |
CN110474865A (zh) * | 2018-05-11 | 2019-11-19 | 北京轻信科技有限公司 | 区块链用户权限系统及实现方法 |
CN110020855A (zh) * | 2019-01-31 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 区块链中实现隐私保护的方法、节点、存储介质 |
CN110071802A (zh) * | 2019-04-24 | 2019-07-30 | 西安纸贵互联网科技有限公司 | 适用于区块链的数据处理方法及装置 |
CN110309663A (zh) * | 2019-06-25 | 2019-10-08 | 湖南搜云网络科技股份有限公司 | 基于区块链的隐私认证方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2021103794A1 (zh) | 2021-06-03 |
CN110992027A (zh) | 2020-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110992027B (zh) | 在区块链中实现隐私保护的高效交易方法及装置 | |
CN109936626B (zh) | 区块链中实现隐私保护的方法、节点和存储介质 | |
CN110032885B (zh) | 区块链中实现隐私保护的方法、节点和存储介质 | |
CN110263544B (zh) | 结合交易类型和判断条件的收据存储方法和节点 | |
CN110020549B (zh) | 区块链中实现隐私保护的方法、节点和存储介质 | |
CN110580412B (zh) | 基于链代码的权限查询配置方法及装置 | |
CN110264192B (zh) | 基于交易类型的收据存储方法和节点 | |
CN110245942B (zh) | 结合用户类型和判断条件的收据存储方法和节点 | |
CN110245947B (zh) | 结合交易与用户类型的条件限制的收据存储方法和节点 | |
CN110245944B (zh) | 基于用户类型的收据存储方法和节点 | |
CN110032876B (zh) | 区块链中实现隐私保护的方法、节点和存储介质 | |
CN110033266B (zh) | 区块链中实现隐私保护的方法、节点和存储介质 | |
CN110264193B (zh) | 结合用户类型与交易类型的收据存储方法和节点 | |
CN110716728B (zh) | Fpga逻辑的可信更新方法及装置 | |
CN110245943B (zh) | 基于判断条件的收据存储方法和节点 | |
CN110008737B (zh) | 区块链中实现隐私保护的方法、节点和存储介质 | |
CN110059497B (zh) | 区块链中实现隐私保护的方法、节点和存储介质 | |
CN110033265B (zh) | 区块链中实现隐私保护的方法、节点和存储介质 | |
CN110598416B (zh) | 交易调度方法及装置 | |
CN110716724B (zh) | 基于fpga实现隐私区块链的方法及装置 | |
WO2021057273A1 (zh) | 在fpga上实现高效合约调用的方法及装置 | |
CN110751555B (zh) | 基于fpga实现合约调用的方法及装置 | |
CN110688651A (zh) | 基于fpga实现状态更新的方法及装置 | |
CN110750303B (zh) | 基于fpga的流水线式指令读取方法及装置 | |
CN114866409B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40026954 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |