CN111683043B - 面向联盟链的基于可信执行环境的智能合约并发执行方法 - Google Patents

面向联盟链的基于可信执行环境的智能合约并发执行方法 Download PDF

Info

Publication number
CN111683043B
CN111683043B CN202010338165.5A CN202010338165A CN111683043B CN 111683043 B CN111683043 B CN 111683043B CN 202010338165 A CN202010338165 A CN 202010338165A CN 111683043 B CN111683043 B CN 111683043B
Authority
CN
China
Prior art keywords
execution
node
contract
nodes
trusted
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
Application number
CN202010338165.5A
Other languages
English (en)
Other versions
CN111683043A (zh
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.)
East China Normal University
Original Assignee
East China Normal University
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 East China Normal University filed Critical East China Normal University
Priority to CN202010338165.5A priority Critical patent/CN111683043B/zh
Publication of CN111683043A publication Critical patent/CN111683043A/zh
Application granted granted Critical
Publication of CN111683043B publication Critical patent/CN111683043B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Technology Law (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种面向联盟链的基于可信执行环境的智能合约并发执行方法,基于可信硬件SGX创建一个可信环境来保证合约执行结果的正确性和不可篡改,并将节点按逻辑角色分至主节点、执行节点和同步节点,主节点在路由层按合约进行打包,使得不同合约的区块可以被不同的执行节点并行处理,并且同步节点仅仅通过简单的状态复制便可进行状态同步,无需重新执行。通过获取最简读写集,减少了Enclave的传输开销。通过利用读集的Merkle证明以及大部分节点共识通过的Merkle根验证读集的正确性,保证了***的安全性。本发明可应用于联盟链,在保证***安全性的前提下,通过将智能合约的并发执行与可信硬件相结合下提高了***吞吐率。

Description

面向联盟链的基于可信执行环境的智能合约并发执行方法
技术领域
本发明属于区块链技术领域,尤其涉及智能合约并发执行技术,具体是一种面向联盟链的基于可信执行环境的智能合约并发执行方法。
背景技术
区块链是一种在互不信任的环境下由多方共同维护的分布式账本,具有去中心化、不可篡改、可追溯等特点。然而,作为一种去中心化的拜占庭容错的分布式***,区块链***在计算和存储方面的可扩展性较弱,严重制约了***吞吐,难以满足企业级应用的高吞吐需求。制约联盟链***吞吐率的主要因素一般有两个,一个是共识算法效率低,另一个是智能合约执行速度慢。尤其在共识效率提高、区块中包含智能合约数目增多、***吞吐提升以后,智能合约的执行性能对***的影响就更为显著。
然而,不论对于非许可链还是许可链而言,智能合约都以相同的方式进行执行,即通用的两阶段执行:主节点(也称为Miner)首先按顺序打包和执行一批交易,然后其余的从节点(也称为Validators)按相同的顺序重新执行这批交易。由于拜占庭节点的存在,Miner并不能简单地并行执行这些合约,因为它们可能会在访问共享数据时发生冲突,而任意的交错操作可能会导致不一致的最终状态。对于比特币交易而言,很容易提前识别出哪两个交易会发生冲突,因为比特币中一笔交易的输入和输出的数据都是静态声明的。然而,对于智能合约而言是无法提前识别出哪两个交易在执行的时候会发生冲突,因为智能合约语言是图灵完备的。这种为了保证智能合约在各节点单独执行后状态的一致性而简单地采用串行执行单个区块中所有智能合约的方法,并没有充分发挥现代计算机中多核芯片的计算效能,大大限制了***吞吐率的进一步提高。为了改善这种串行执行下的性能问题,一种依赖于传统数据库中并发控制方法的两阶段执行框架被提出来:首先主节点根据并发控制协议先执行一遍获得相应依赖图,即提案阶段;之后从节点根据依赖图重新并发执行来验证,即验证阶段。虽然,这种两阶段执行框架利用了现代计算机多核的特性,能够在一定程度上提高***性能并能够保证数据的一致性和确定性。但是,这里仍然存在两个问题,一是在主节点进入提案阶段的时候其他从节点都处于闲置等待状态;二是所有从节点在验证阶段中都需要重新执行一遍所有的交易来进行验证。以上这两种情况中均不必要的浪费了***的计算资源。
硬件安全机制已经广泛应用于通用计算平台,可信执行环境(Trusted ExecutionEnvironment,TEE)也已经普遍于移动平台。TEE是智能设备(包括智能手机,平板电脑,智能可穿戴设备等)主处理器上的一个安全区域,可以保证加载到该环境内部的代码和数据的安全性、保密性及完整性。2013年,Intel提出了新的处理器安全技术(Software GuardExtension,SGX),它增加了一组新的指令集和内存访问机制,利用SGX的指令,可以创建支持应用程序合法部分执行的安全区(Enclave),使这些操作的执行被隔离封装在安全的环境下。Enclave为智能合约提供了一个安全的执行环境,在Enclave中执行将得到加密的结果集,其以密文的形式存在于Enclave外,从节点可根据这个加密结果集同步状态而无需重新执行。但是,由于Enclave传输(即Ecall和Ocall操作)以及Enclave中缺页所导致带来的开销非常大,同时Enclave的大小受限于128MB,其中只有大约93MB是可用的;所以,仅仅通过简单的将智能合约的执行放在Enclave中并不能很好的提高***性能。
将智能合约的并发执行策略与SGX结合,能提升区块链的整体性能。目前学术界提出了一些将智能合约执行与SGX相结合的方案,这类工作主要是利用SGX来解决区块链上的安全与隐私问题,并没有考虑解决区块链***性能上的问题。为了提升联盟链的整体性能,有必要提出一种面向联盟链的基于可信执行环境的安全可靠的通用智能合约并发执行技术。
发明内容
本发明的目的是以提高联盟链吞吐率为目标,针对现有技术的缺失,提出一种面向联盟链的基于可信执行环境的智能合约并发执行方法,其中包括智能合约区块的打包、智能合约的并发执行以及智能合约的状态同步三个部分。在智能合约区块打包的过程中,首先在主节点的路由层维护多个合约队列,不同的合约对应不同的队列,根据队列中交易的入队时间以及队列的容量将一批交易打包成合约区块。通过按时间以及队列容量打包一批交易,提高了交易打包的效率;通过按合约打包区块,保证了多合约的并发执行,提高了联盟链整体的吞吐率。智能合约的并发执行分为不可信区域内的并发执行以及可信区域内的并发验证。在不可信区域内合约的并发执行过程中,通过获取最简验证信息来最小化传入可信区域的内容,减少传输代价。在可信区域内合约的并发验证过程中,利用接收到的最简验证信息并发验证传入数据的正确性,并得到加密且不可篡改的结果。在智能合约的状态同步过程中,通过加密结果的同步保证全局状态一致。本发明可应用于联盟链,在保证***安全性的前提下,通过将智能合约的并发执行与可信硬件相结合下提高了***吞吐率。
实现本发明目的的具体技术方案是:
一种面向联盟链的基于可信执行环境的智能合约并发执行方法,该方法包括以下具体步骤:
步骤1:利用可信硬件SGX实现多智能合约并发执行,具体包括以下子步骤:
步骤1-1:联盟链中的节点从逻辑角色上被分为三类:主节点、执行节点和同步节点,网络中的一个节点可同时承担多种不同的角色;
步骤1-2:主节点负责将客户端发送来的交易按智能合约分类打包,并随机选择网络中哪些节点成为该打包好的合约区块的执行节点,即合约打包阶段,打包好的合约区块通过共识过程发送给执行节点和同步节点;
步骤1-3:执行节点负责执行某个特定合约区块中的交易并获得验证后的加密结果集,即合约执行阶段;
步骤1-4:同步节点是相对于执行节点存在的,不负责某个特定合约区块的执行,将直接根据接收到的加密结果集进行状态同步,即合约同步阶段;
步骤1-5:不同合约组成的区块的执行和同步阶段通过流水线并发进行。
其中,主节点进行合约打包阶段,具体包括以下子步骤:
步骤1-2-1:主节点在路由层维护了多个合约队列(不同的合约对应不同的队列),用来存放客户端发送来的交易;
步骤1-2-2:路由层将按照等待时间以及队列容量大小按智能合约分类打包一批交易,得到合约区块;
步骤1-2-3:主节点将随机选择某些节点作为该特定合约区块的执行节点,其他节点将成为同步节点;
步骤1-2-4:网络中的区块可由多个合约区块组成,但总交易数不超过共识过程所设定的区块交易最大值。
步骤2:利用执行加验证的方式保证***高性能和安全性,具体包括以下子步骤:
步骤2-1:执行节点在执行层进行合约的并发执行及并发验证过程,执行层分为不可信区域以及基于SGX的可信区域(Enclave),执行节点在不可信区域内并发执行特定的合约区块,在可信区域内并发验证获得可信的加密结果集;
步骤2-2:执行节点在不可信区域内并发执行合约区块中的交易,得到相应的验证信息,并将其传入可信区域;
步骤2-3:执行节点在可信区域中将通过获取到的验证信息并发验证不可信区域中执行结果的正确性,若正确则返回可信的加密写集;否则,验证失败,预示该节点是个拜占庭节点。
其中,不可信区域并发执行得到验证信息,具体包括以下子步骤:
步骤2-2-1:执行节点并发执行所得验证信息包括:合约区块交易依赖图,最简读写集,读集的Merkle证明及共识所得的Merkle根;
步骤2-2-2:执行节点并发执行过程中将会得到合约区块内交易冲突图,将交易冲突图中无依赖的交易划分为多个子图,即图切分过程,从而得到相应的合约区块交易依赖图;
步骤2-2-3:获得最简读写集以减少Enclave的传输开销,对于最简读集的获取只需要保证读的数据没有被之前的交易写过即可,即最旧值;对于最简写集的获取只需要保证写的数据一直最新即可,即最新值。
其中,步骤2-3中所述可信区域并发验证执行结果正确性,具体包括以下子步骤:
步骤2-3-1:执行节点在可信区域中通过读集的Merkle证明以及Merkle根来验证最简读集的正确性,若验证通过则进入步骤2-3-2;否则返回验证失败;
步骤2-3-2:执行节点在可信区域中根据交易依赖图以及最简读集并发执行获得新的最简写集,并将其与验证信息中的最简写集进行比对,若一致则返回该写集的加密结果;否则返回验证失败;
步骤2-3-3:执行节点将把验证通过的加密写集通过共识过程广播给同步节点。
本发明的有益效果包括:
本发明基于可信硬件SGX创建一个可信环境来保证合约执行结果的正确性和不可篡改,并将节点按逻辑角色分至主节点、执行节点和同步节点,主节点在路由层按合约进行打包,使得不同合约的区块可以被不同的执行节点并行处理,并且同步节点仅仅通过简单的状态复制便可进行状态同步,无需重新执行。通过获取最简读写集,减少了Enclave的传输开销。通过利用读集的Merkle证明以及大部分节点共识通过的Merkle根验证读集的正确性,保证了***的安全性。
附图说明
图1显示的是本发明的流程图;
图2显示的是本发明中一个节点结构示例图;
图3显示的是本发明中合约打包过程示例图;
图4显示的是本发明中执行节点的并发执行和并发验证过程示例图;
图5显示的是本发明中执行节点对交易冲突图进行图切分过程示例图;
图6显示的是本发明中执行节点在可信区域内根据交易依赖图并发验证过程示例图。
具体实施方式
结合以下具体实施例和附图,对本发明作进一步的详细说明。实施本发明的过程、条件、实验方法等,除以下专门提及的内容之外,均为本领域的普遍知识和公知常识,本发明没有特别限制内容。
本发明面向联盟链的基于可信执行环境的智能合约并发执行方法,该方法包括以下具体步骤:
步骤1:利用可信硬件SGX实现多智能合约并发执行,具体包括以下子步骤:
步骤1-1:联盟链中的节点从逻辑角色上被分为三类:主节点、执行节点和同步节点,网络中的一个节点可同时承担多种不同的角色;
步骤1-2:主节点负责将客户端发送来的交易按智能合约分类打包,并随机选择网络中哪些节点成为该打包好的合约区块的执行节点,即合约打包阶段,打包好的合约区块通过共识过程发送给执行节点和同步节点;
步骤1-3:执行节点负责执行某个特定合约区块中的交易并获得验证后的加密结果集,即合约执行阶段;
步骤1-4:同步节点是相对于执行节点存在的,不负责某个特定合约区块的执行,将直接根据接收到的加密结果集进行状态同步,即合约同步阶段;
步骤1-5:不同合约组成的区块的执行和同步阶段通过流水线并发进行。
其中,主节点进行合约打包阶段,具体包括以下子步骤:
步骤1-2-1:主节点在路由层维护了多个合约队列(不同的合约对应不同的队列),用来存放客户端发送来的交易;
步骤1-2-2:路由层将按照等待时间以及队列容量大小按智能合约分类打包一批交易,得到合约区块;
步骤1-2-3:主节点将随机选择某些节点作为该特定合约区块的执行节点,其他节点将成为同步节点;
步骤1-2-4:网络中的区块可由多个合约区块组成,但总交易数不超过共识过程所设定的区块交易最大值。
步骤2:利用执行加验证的方式保证***高性能和安全性,具体包括以下子步骤:
步骤2-1:执行节点在执行层进行合约的并发执行及并发验证过程,执行层分为不可信区域以及基于SGX的可信区域(Enclave),执行节点在不可信区域内并发执行特定的合约区块,在可信区域内并发验证获得可信的加密结果集;
步骤2-2:执行节点在不可信区域内并发执行合约区块中的交易,得到相应的验证信息,并将其传入可信区域;
步骤2-3:执行节点在可信区域中将通过获取到的验证信息并发验证不可信区域中执行结果的正确性,若正确则返回可信的加密写集;否则,验证失败,预示该节点是个拜占庭节点。
其中,不可信区域并发执行得到验证信息,具体包括以下子步骤:
步骤2-2-1:执行节点并发执行所得验证信息包括:合约区块交易依赖图,最简读写集,读集的Merkle证明及共识所得的Merkle根;
步骤2-2-2:执行节点并发执行过程中将会得到合约区块内交易冲突图,将交易冲突图中无依赖的交易划分为多个子图,即图切分过程,从而得到相应的合约区块交易依赖图;
步骤2-2-3:获得最简读写集以减少Enclave的传输开销,对于最简读集的获取只需要保证读的数据没有被之前的交易写过即可,即最旧值;对于最简写集的获取只需要保证写的数据一直最新即可,即最新值。
其中,步骤2-3中所述可信区域并发验证执行结果正确性,具体包括以下子步骤:
步骤2-3-1:执行节点在可信区域中通过读集的Merkle证明以及Merkle根来验证最简读集的正确性,若验证通过则进入步骤2-3-2;否则返回验证失败;
步骤2-3-2:执行节点在可信区域中根据交易依赖图以及最简读集并发执行获得新的最简写集,并将其与验证信息中的最简写集进行比对,若一致则返回该写集的加密结果;否则返回验证失败;
步骤2-3-3:执行节点将把验证通过的加密写集通过共识过程广播给同步节点。
实施例
本实施例是在联盟链***实施的一种多智能合约并发执行方法。
图1展示的是本发明的总体流程图。该图描述了网络中不同角色之间的交互方式,具体功能步骤如下:
步骤1:主节点负责接收客户端的交易并根据特定打包策略进行打包,当一个合约区块生成后,主节点将会随机的选择某些闲置节点成为该区块的执行节点并将相应信息附加在该合约区块中,一个或多个合约区块可以组成一个区块,得到的区块将通过共识过程被广播给其他节点。
步骤2:执行节点首先在可信区域内并发执行特定合约区块内的交易,并获取相应的最简验证信息。随后在可信区域内根据最简验证信息并发验证执行结果的正确性并获得相应加密结果集,最后通过共识过程广播此加密结果集。
步骤3:同步节点在可信区域内解密收到的加密结果集并更新本地状态,无需重新执行即可直接进行状态复制。
图2描述了本发明中一个节点结构示例图。一个节点中主要由存储层、共识层、路由层和执行层组成。存储层是一个leveldb的本地数据库,用来存储本地状态数据。共识层使用的是开源BFT-Smart框架。路由层维护多个合约队列,负责合约区块打包任务。执行层负责对应合约区块交易的执行及验证过程,分为不可信内存区域和可信内存区域。
图3展示的是本发明中合约打包过程示例图。为了最大化利用所有节点的计算资源,实现负载均衡,本发明设计了一个高效的打包策略。主节点在路由层维护了多个合约队列,即一个合约对应一个队列,按合约进行打包,即一个合约区块中只有一个合约对应的交易。当收到一个交易的时候,主节点首先会将其分发至相对应的队列之中。此处设计了两种打包指标,一种是基于时间的策略,对于每个合约队列,在等待某个时间t后,即使这个队列还没有满,主节点也会将其打包成一个合约区块。另一种是基于容量的,即当某个合约队列中的交易数量达到给定的阈值v,主节点便会将其打包成一个合约区块。而网络中的一个区块可由多个不同的合约区块组成。
图4展示的是本发明中执行节点的并发执行和并发验证过程示例图。验证信息包括合约区块交易依赖图,最简读写集,读集对应的Merkle证明以及共识所得的Merkle根。为了获得一个最简的读集,必须保证数据是没有被修改过的,即最旧的;为了获得一个最简的写集,必须保证数据不会再被修改,即最新的修改的值。执行节点在可信区域内利用验证信息中的Merkle证明验证最简读集的正确性,以免节点作恶传入错误的读集,从而保证***安全性。然后,根据合约区块交易依赖图以及验证通过的最简读集进行并发验证获得相应写集,并比对新获得的写集以及验证信息中的写集是否相等,若相等即验证通过返回加密写集,否则返回验证失败。
图5展示的是本发明中执行节点对交易冲突图进行图切分过程示例图。对于合约区块内的一批交易,执行节点将通过并发的执行过程可以获的相应的读写操作列表,随后通过这些读写操作获取得到交易冲突图。通过将无依赖的交易划分在一起进行图切分操作,从而得到相应的合约区块内的交易依赖图。
图6展示的是本发明中执行节点在可信区域内根据交易依赖图并发验证过程示例图。执行节点在可信区域内将收到的交易依赖图按执行代价进行排序并放入优先级队列中,随后通过线程不停的从队列中获取依赖图的形式并发的进行验证,直到队列为空。
本发明的保护内容不局限于以上实施例。在不背离发明构思的精神和范围下,本领域技术人员能够想到的变化和优点都被包括在本发明中,并且以所附的权利要求书为保护范围。

Claims (4)

1.一种面向联盟链的基于可信执行环境的智能合约并发执行方法,其特征在于,包括以下具体步骤:
步骤1:利用可信硬件SGX实现多智能合约并发执行;所述步骤1具体包括:
步骤1-1:联盟链中的节点从逻辑角色上分为:主节点、执行节点和同步节点;网络中的一个节点同时承担多种不同的角色;
步骤1-2:主节点负责将客户端发送来的交易按智能合约分类打包,并随机选择网络中哪些节点成为该打包好的合约区块的执行节点,即合约打包阶段,打包好的合约区块通过共识过程发送给执行节点和同步节点;
步骤1-3:执行节点负责执行某个特定合约区块中的交易并获得验证后的加密结果集,即合约执行阶段;
步骤1-4:同步节点是相对于执行节点存在的,不负责某个特定合约区块的执行,将直接根据接收到的加密结果集进行状态同步,即合约同步阶段;
步骤1-5:不同合约组成的区块的执行和同步阶段通过流水线并发进行;
步骤2:利用执行加验证的方式保证***高性能和安全性;所述步骤2具体包括:
步骤2-1:执行节点在执行层进行合约的并发执行及并发验证过程,执行层分为不可信区域以及基于SGX的可信区域,执行节点在不可信区域内并发执行特定的合约区块,在可信区域内并发验证获得可信的加密结果集;
步骤2-2:执行节点在不可信区域内并发执行合约区块中的交易,得到相应的验证信息,并将其传入可信区域;
步骤2-3:执行节点在可信区域中将通过获取到的验证信息并发验证不可信区域中执行结果的正确性,若正确则返回可信的加密写集;否则,验证失败,预示该节点是个拜占庭节点。
2.根据权利要求1所述的面向联盟链的基于可信执行环境的智能合约并发执行方法,其特征在于,所述步骤1-2具体包括:
步骤1-2-1:主节点在路由层维护了多个合约队列,用来存放客户端发送来的交易;其中,不同的合约对应不同的队列;
步骤1-2-2:路由层将按照等待时间以及队列容量大小按智能合约分类打包一批交易,得到合约区块;
步骤1-2-3:主节点将随机选择某些节点作为该特定合约区块的执行节点,其他节点将成为同步节点;
步骤1-2-4:网络中的区块可由多个合约区块组成,但总交易数不超过共识过程所设定的区块交易最大值。
3.根据权利要求1所述的面向联盟链的基于可信执行环境的智能合约并发执行方法,其特征在于,所述步骤2-2具体包括:
步骤2-2-1:执行节点并发执行所得验证信息包括:合约区块交易依赖图,最简读写集,读集的Merkle证明及共识所得的Merkle根;
步骤2-2-2:执行节点并发执行过程中将会得到合约区块内交易冲突图,将交易冲突图中无依赖的交易划分为多个子图,即图切分过程,从而得到相应的合约区块交易依赖图;
步骤2-2-3:获得最简读写集以减少Enclave的传输开销,对于最简读集的获取只需要保证读的数据没有被之前的交易写过即可,即最旧值;对于最简写集的获取只需要保证写的数据一直最新即可,即最新值。
4.根据权利要求1所述的面向联盟链的基于可信执行环境的智能合约并发执行方法,其特征在于,所述步骤2-3具体包括:
步骤2-3-1:执行节点在可信区域中通过读集的Merkle证明以及Merkle根来验证最简读集的正确性,若验证通过则进入步骤2-3-2;否则返回验证失败;
步骤2-3-2:执行节点在可信区域中根据交易依赖图以及最简读集并发执行获得新的最简写集,并将其与验证信息中的最简写集进行比对,若一致则返回该写集的加密结果;否则返回验证失败;
步骤2-3-3:执行节点将把验证通过的加密写集通过共识过程广播给同步节点。
CN202010338165.5A 2020-04-26 2020-04-26 面向联盟链的基于可信执行环境的智能合约并发执行方法 Active CN111683043B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010338165.5A CN111683043B (zh) 2020-04-26 2020-04-26 面向联盟链的基于可信执行环境的智能合约并发执行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010338165.5A CN111683043B (zh) 2020-04-26 2020-04-26 面向联盟链的基于可信执行环境的智能合约并发执行方法

Publications (2)

Publication Number Publication Date
CN111683043A CN111683043A (zh) 2020-09-18
CN111683043B true CN111683043B (zh) 2021-03-26

Family

ID=72452516

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010338165.5A Active CN111683043B (zh) 2020-04-26 2020-04-26 面向联盟链的基于可信执行环境的智能合约并发执行方法

Country Status (1)

Country Link
CN (1) CN111683043B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112764897B (zh) * 2020-12-31 2024-03-22 杭州趣链科技有限公司 任务请求的处理方法、装置、***及计算机可读存储介质
CN113205417B (zh) * 2021-04-27 2022-10-25 华东师范大学 一种面向联盟链的交易并行处理方法及***
CN113434522B (zh) * 2021-05-08 2023-06-09 华东师范大学 一种面向联盟链的状态树上的并行更新方法及更新***
CN113392419B (zh) * 2021-07-05 2022-12-23 南方电网科学研究院有限责任公司 基于中国剩余定理的安全同步控制方法、装置及设备
CN113923093B (zh) * 2021-10-29 2024-02-06 博雅正链(北京)科技有限公司 一种基于可信执行环境的新型拜占庭容错共识方法
CN113744061B (zh) * 2021-11-04 2022-08-09 支付宝(杭州)信息技术有限公司 在区块链***中执行交易的方法、区块链***、和从节点
CN116389284B (zh) * 2023-03-17 2023-11-07 南通大学 一种分布式量子计算中基于依赖图的传输代价优化方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107464148A (zh) * 2017-08-23 2017-12-12 众安信息技术服务有限公司 一种基于联盟链的智能合约升级方法和***
US10574453B2 (en) * 2018-01-10 2020-02-25 Ranjit Notani System and computer program product for certified confidential data collaboration using blockchains
CN109660358B (zh) * 2019-01-08 2022-04-08 余炀 一种基于区块链及安全执行环境的数据流通方法
CN111614464B (zh) * 2019-01-31 2023-09-29 创新先进技术有限公司 区块链中安全更新密钥的方法及节点、存储介质
CN110517140B (zh) * 2019-08-26 2020-08-04 华东师范大学 一种区块链智能合约交易并发执行方法

Also Published As

Publication number Publication date
CN111683043A (zh) 2020-09-18

Similar Documents

Publication Publication Date Title
CN111683043B (zh) 面向联盟链的基于可信执行环境的智能合约并发执行方法
CN110808838B (zh) 一种面向联盟链的分片方法
TWI677228B (zh) 向區塊鏈系統中寫入事務資料的方法和裝置
CN110457123B (zh) 一种区块处理任务的控制方法和装置
CN111899102A (zh) 区块链中实现隐私保护的方法
CN113168652B (zh) 区块链交易处理***和方法
US20110265098A1 (en) Message Passing with Queues and Channels
CN111417930B (zh) 优先处理共享区块链数据存储
CN111373378B (zh) 基于纠错码的共享区块链数据存储的数据安全性
CN113205417B (zh) 一种面向联盟链的交易并行处理方法及***
CN111406252A (zh) 基于纠错码的共享区块链数据存储的共识
CN103440171A (zh) 一种构件化硬件实时操作***的实现方法
Alchieri et al. Early scheduling in parallel state machine replication
WO2020232875A1 (zh) 一种基于Actor模型的任务调度方法、装置及存储介质
CN110888630B (zh) 一种基于区块链的分布式可编程业务研发***
CN109189749A (zh) 文件同步方法及终端设备
US20230275771A1 (en) Pre-execution of block chain transaction in parallel during block consensus
Mendizabal et al. Efficient and deterministic scheduling for parallel state machine replication
CN113743950A (zh) 在区块链中执行交易的方法、区块链节点和区块链
Howard et al. Fast flexible paxos: Relaxing quorum intersection for fast paxos
CN113454597A (zh) 区块链交易处理***和方法
US8543722B2 (en) Message passing with queues and channels
CN113744062A (zh) 在区块链中执行交易的方法、区块链节点和区块链
CN113946628A (zh) 一种基于***的数据同步方法及装置
Ben-David et al. Brief announcement: Classifying trusted hardware via unidirectional communication

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
GR01 Patent grant
GR01 Patent grant