HK40017317B - 基於可信执行环境的链外智能合约服务 - Google Patents
基於可信执行环境的链外智能合约服务 Download PDFInfo
- Publication number
- HK40017317B HK40017317B HK62020007770.4A HK62020007770A HK40017317B HK 40017317 B HK40017317 B HK 40017317B HK 62020007770 A HK62020007770 A HK 62020007770A HK 40017317 B HK40017317 B HK 40017317B
- Authority
- HK
- Hong Kong
- Prior art keywords
- smart contract
- service provider
- cross
- client
- chain data
- Prior art date
Links
Description
背景技术
分布式账本系统(DLS),也可称为共识网络和/或区块链网络,使参与的实体能够安全地、不可篡改地存储数据。在不引用任何特定用例的情况,DLS通常被称为区块链网络。区块链网络的示例类型可包括公有区块链网络、私有区块链网络和联盟区块链网络。公有区块链网络向所有实体开放以使用DLS,并开放参与共识过程。私有区块链网络针对特定实体提供,该实体集中控制读写权限。联盟区块链网络针对选定的实体组群提供,这些实体组群控制共识过程并包括访问控制层。
区块链是一种去中心化且防篡改的分布式数据存储技术。用户数据和合约被以公开的方式在链上进行逻辑操作和存储。在许多场景下,用户需要满足隐私保护要求,并且不希望自己的数据和逻辑被泄露给未经授权的各方。
尽管密码学可被用于为某些特定场景设计增强隐私保护,但期望更通用和高效的解决方案来解决区块链操作中的现有隐私问题。
发明内容
本文的实施例包括用于基于区块链技术的链外智能合约服务(称为区块链链外智能合约服务,或者简称为智能合约服务)的计算机实施的方法。更具体地,本文的实施例旨在提供能够在可信执行环境(TEE)下操作跨链数据的链外智能合约服务。
在一些实施例中,动作包括由包括可信计算执行环境(TEE)的智能合约服务提供者从与目标区块链网络相关联的客户端接收用于操作不同于目标区块链网络的一个或多个区块链网络的跨链数据的请求,该智能合约服务提供者处于目标区块链网络之外;由智能合约服务提供者将针对跨链数据的请求发送至数据访问服务提供者;由智能合约服务提供者从数据访问服务提供者接收跨链数据;由TEE利用跨链数据生成结果;以及由智能合约服务提供者将结果返回至客户端。其他实施例包括相应的系统、装置和计算机程序,该计算机程序被编码在计算机存储设备上,并且被配置为执行所述方法的动作。
在一些实施例中,一种非暂时性计算机可读存储介质耦接至一台或多台计算机,并且配置有可由一台或多台计算机执行以实现以下的指令:由包括可信计算执行环境(TEE)的智能合约服务提供者从与目标区块链网络相关联的客户端接收用于操作不同于目标区块链网络的一个或多个区块链网络的跨链数据的请求,其中智能合约服务提供者处于目标区块链网络之外;由智能合约服务提供者向数据访问服务提供者发送对跨链数据的请求;由智能合约服务提供者从数据访问服务提供者接收跨链数据;通过TEE利用跨链数据生成结果;以及由智能合约服务提供者将结果返回给客户端。
在一些实施例中,一种用于提供智能合约服务的系统包括:接口,配置为从与目标区块链网络相关联的客户端接收用于操作不同于目标区块链网络的一个或多个区块链网络的跨链数据的请求;其中该系统处于目标区块链网络之外;以及可信计算执行环境(TEE),其中TEE包括:一台或多台计算机;以及一个或多个计算机可读存储器,耦接至一台或多台计算机并且配置有可由一台或多台计算机执行以实现以下的指令:向数据访问服务提供者发送对跨链数据的请求;从数据访问服务提供者接收跨链数据;以及利用跨链数据生成结果;以及其中接口配置为将结果返回至客户端。
这些和其他实施例可各自可选地包括一个或多个以下特征:
第一特征,可与以下任一特征结合,其中用于操作跨链数据的请求包括用于操作跨链数据的智能合约计算逻辑。
第二特征,可与以下任一特征结合,其中用于操作跨链数据的智能合约计算逻辑是由客户端自行设计的。
第三特征,可与以下任一特征结合,其中结果是由TEE利用跨链数据执行智能合约计算逻辑而生成的。
第四特征,可与以下任一特征结合,还包括由智能合约服务提供者向客户端证明TEE包括虚拟机,该虚拟机可操作以执行用于操作跨链数据的请求中的智能合约计算逻辑。
第五特征,可与以下任一特征结合,还包括在从客户端接收用于操作跨链数据的请求之前,由智能合约服务提供者向客户端证明智能合约服务提供者包括TEE。
第六特征,可与以下任一特征结合,还包括由智能合约服务提供者向数据访问服务提供者证明智能合约服务提供者包括TEE;以及由智能合约服务提供者验证数据访问服务提供者包括TEE。
第七特征,可与以下任一特征结合,还包括由智能合约服务提供者将结果上传至目标区块链网络。
第八特征,可与以下任一特征结合,还包括将结果上传至目标区块链网络,由智能合约服务提供者向目标区块链网络证明智能合约服务提供者包括TEE。
第九特征,可与以下任一特征结合,其中智能合约服务提供者包括基于云的服务器。
第十特征,可与以下任一特征结合,其中结果是由TEE利用私钥签名的。
第十一特征,可与以下任一特征结合,其中跨链数据是从两个或更多个区块链网络获得的。
在一些实施例中,动作包括由与目标区块链网络相关联的客户端生成用于操作不同于目标区块链网络的一个或多个区块链网络的跨链数据的请求,其中用于操作跨链数据的请求包括用于操作跨链数据的智能合约计算逻辑;从客户端发送用于操作跨链数据的请求至包括可信计算执行环境(TEE)的智能合约服务提供者,其中智能合约服务提供者处于目标区块链网络之外;以及由客户端从智能合约服务提供者接收结果,其中结果是由TEE利用由智能合约服务提供者获得的跨链数据而生成的。其他实施例包括相应的系统、装置和计算机程序,该计算机程序被编码在计算机存储设备上,并且被配置为执行所述方法的动作。
在一些实施例中,一种非暂时性计算机可读存储介质耦接至一台或多台计算机,并且配置有可由一台或多台计算机执行以实现以下的指令:由与目标区块链网络相关联的客户端生成用于操作不同于目标区块链网络的一个或多个区块链网络的跨链数据的请求,其中用于操作跨链数据的请求包括用于操作跨链数据的智能合约计算逻辑;从客户端发送用于操作跨链数据的请求至包括可信计算执行环境(TEE)的智能合约服务提供者,其中智能合约服务提供者处于目标区块链网络之外;以及由客户端从智能合约服务提供者接收结果,其中结果是由TEE利用由智能合约服务提供者获得的跨链数据而生成的。
在一些实施例中,一种系统包括:一台或多台计算机;以及一个或多个计算机可读存储器,其耦接至一台或多台计算机并且配置有可由一台或多台计算机执行以实现以下的指令:由与目标区块链网络相关联的客户端生成用于操作不同于目标区块链网络的一个或多个区块链网络的跨链数据的请求,其中用于操作跨链数据的请求包括用于操作跨链数据的智能合约计算逻辑;从客户端发送用于操作跨链数据的请求至包括可信计算执行环境(TEE)的智能合约服务提供者,其中智能合约服务提供者处于目标区块链网络之外;以及由客户端从智能合约服务提供者接收结果,其中结果是由TEE利用由智能合约服务提供者获得的跨链数据而生成的。
这些和其他实施例可各自可选地包括一个或多个以下特征:
第一特征,可与以下任一特征结合,还包括由客户端发送接收到的结果至目标区块链网络。
第二特征,可与以下任一特征结合,还包括在将用于操作跨链数据的请求发送至智能合约服务提供者之前,由客户端验证智能合约服务提供者包括TEE。
第三特征,可与以下任一特征结合,还包括由客户端验证TEE包括虚拟机,该虚拟机可操作以执行用于操作跨链数据的请求中的智能合约计算逻辑。
第四特征,可与以下任一特征结合,还包括由客户端设计用于操作跨链数据的智能合约计算逻辑。
第五特征,可与以下任一特征结合,其中客户端包括软件开发工具包(SDK)。
第六特征,可与以下任一特征结合,其中结果是由TEE利用私钥签名的,该方法还包括由客户端利用与私钥相应的公钥来解密接收到的结果。
第七特征,可与以下任一特征结合,还包括在将用于操作跨链数据的请求发送至智能合约服务提供者之前,由客户端加密用于操作跨链数据的请求。
第八特征,可与以下任一特征结合,其中跨链数据是从两个或更多个区块链网络获得的。
本文还提供一个或多个非暂时性计算机可读存储介质,其耦接至一个或多个处理器并且其上存储有指令,这些指令在由一个或多个处理器执行时,导致一个或多个处理器按照本文提供的方法的实施例来执行操作。
本文还提供用于实施本文提供的方法的系统。该系统包括一个或多个处理器以及计算机可读存储介质,该计算机可读存储介质耦接至一个或多个处理器并且其上存储有指令,这些指令在由一个或多个处理器执行时,导致一个或多个处理器按照本文提供的方法的实施例来执行操作。
所描述的链外智能合约服务提供者没有耦接至任何特定的区块链网络,因此所提供的服务不限于特定形式的合约(例如,为特定区块链网络配置),而是支持用户定义的链外计算。此外,所描述的链外智能合约服务提供者可支持跨链数据访问,并且允许互不信任的各方对来自一个或多个区块链网络的私有数据运行智能合约。所描述的技术可实现几个优点。例如,使用TEE作为执行计算的临时介质可以保护数据的隐私。此外,将计算任务从区块链网络卸载到链外TEE可以节省区块链网络的计算时间和资源。此外,由于用户可以根据需要和需求的计算自行设计计算逻辑,因此TEE使用这些计算逻辑执行计算,并且可以以更灵活的方式执行各种计算。
应理解的是,按照本文的方法可包括本文描述的方面和特征的任何结合。也就是,按照本文的方法不限于本文具体描述的方面和特征的结合,而是也包括所提供的方面和特征的任意结合。
在附图和以下的描述中阐述了本文的一个或多个实施例的细节。根据说明书和附图以及权利要求,本文的其他特征和优点将显而易见。
附图说明
图1描绘了可被用于执行本文的实施例的环境的示例。
图2描绘了根据本文的实施例的概念结构的示例。
图3描绘了根据本文的实施例为客户端提供跨链数据服务的过程的示例。
图4描绘了可根据本文的实施例执行的过程的示例。
图5描绘了示出根据本文的实施例的跨链数据操作装置的模块的图示的示例。
图6描绘了示出根据本文的实施例的另一跨链数据操作装置的模块的图示的示例。
在各图中相同的附图标记表示相同的元件。
具体实施方式
本文的实施例包括用于基于区块链技术的链外智能合约服务(称为区块链链外智能合约服务,或者简称为智能合约服务)的计算机实施的方法。更具体地,本文的实施例旨在提供能够在可信执行环境中操作跨链数据的链外智能合约服务。
为本文的实施例提供进一步背景,并且如上所述,分布式账本系统(DLS),也可以称为共识网络(例如,由点对点(peer-to-peer)节点组成)和区块链网络,使参与的实体能够安全地、不可篡改地进行交易和存储数据。本文中使用的术语区块链一般指在不参照任何特定用例的情况下的DLS。
区块链是以交易不可改变并且随后可被验证的方式存储交易的数据结构。区块链包括一个或多个区块。链中的每个区块通过包括在链中紧邻其前的前一个区块的加密哈希值(cryptographic hash)而链接到该前一个区块。每个区块还包括时间戳、其自身的加密哈希值以及一笔或多笔交易。已经由区块链网络的节点验证的交易经哈希处理并编码到Merkle树中。Merkle树是一种数据结构,在树的叶节点处的数据是经哈希处理的,并且在树的每个分支中的全部哈希值可以连接到分支的根处。这个过程沿着树持续一直到整个树的根,在整个树的根处存储了代表树中全部数据的哈希值。声称是存储在树中的交易的哈希值可通过确定其是否与树的结构一致而被快速验证。
虽然区块链是用于存储交易的数据结构,但区块链网络是管理、更新和维护一个或多个区块链的计算节点的网络。如上所述,区块链网络可以作为公有区块链网络、私有区块链网络或联盟区块链网络而提供。
在公有区块链网络中,共识过程由共识网络的节点来控制。例如,数百、数千、甚至数百万的实体可协同运作公有区块链网络,每个实体在公有区块链网络中至少操作一个节点。因此,就参与实体而言,公有区块链网络可以被视为公有网络。在一些示例中,大多数实体(节点)必须签名每个区块,以使得该区块有效并被添加到区块链网络的区块链(分布式账本)中。示例性公有区块链网络包括利用分布式账本(称为区块链)的特定点对点支付网络。然而,如上所述,术语区块链通常用于指分布式账本,而不特指任何特定的区块链网络。
一般来说,公有区块链网络支持公开交易。公开交易为公有区块链网络内的所有节点共享,并存储在全局区块链中。全局区块链是跨所有节点复制的区块链。也就是说,对于全局区块链,所有节点都处于完全状态共识。为了达成共识(例如,同意向区块链添加区块),在公有区块链网络内实施共识协议。共识协议的示例包括但不限于工作量证明(POW)、权益证明(POS)和权限证明(POA)。在本文中进一步引用POW作为非限制性示例。
一般来说,私有区块链网络是为特定实体而提供的,该特定实体集中控制读写权限。实体控制哪些节点能够参与到区块链网络中。因此,私有区块链网络通常被称为许可网络,其对谁被允许参与网络及其参与水平(例如,仅在某些交易中)加以限制。可以采用各种类型的访问控制机制(例如,现有参与者投票添加新实体,监管机构可以控制许可)。
一般来说,联盟区块链网络在参与的实体之间是私有的。在联盟区块链网络中,共识过程由授权的节点集控制,一个或多个节点由各自的实体(例如,金融机构、保险公司)操作。例如,十(10)个实体(例如,金融机构、保险公司)的联盟可操作一个联盟区块链网络,每个实体操作联盟区块链网络中的至少一个节点。因此,联盟区块链网络可被视为与参与的实体相关联的私有网络。在一些示例中,每个实体(节点)必须签名每个区块,以使得该区块有效并被添加到区块链。在一些示例中,至少实体(节点)的子集(例如,至少7个实体)必须签名每个区块,以使得该区块有效并被添加到区块链。
区块链是一种防篡改的、共享的数字账本,其用于记录公有或私有的点对点网络中的交易。账本被分发到网络中的所有成员节点,网络中发生的资产交易的历史被永久记录在区块中。在参与交易之前,区块链上的节点可能需要使用各种技术来执行计算。在目前的解决方案下,由于每个区块链都是独立的,一个区块链的节点不能与其他链通信。例如,节点不能从其他区块链读取数据或者与其他区块链交换数据。此外,如果需要复杂的计算逻辑和协议,即使节点不需要来自其他区块链的数据来执行计算,完全在区块链上执行此类计算也会耗费区块链的计算资源和大量的时间。
在本文中参照联盟区块链网络进一步详细描述本文的实施例,联盟区块链网络在参与的实体之间是公开的。然而,可预期的是,本文的实施例可在任何适当类型的区块链网络中实现。
在本文中鉴于上述背景进一步详细描述本文的实施例。更具体地,如上所述,本文的实施例旨在提供能够在可信执行环境下操作跨链数据的链外智能合约服务。
解决这些问题的技术可包括使用链外智能合约服务来执行计算并操作跨链数据。智能合约可以是为了以信息方式传播、验证或施行合约而设计的计算机协议。智能合约允许在没有第三方参与的情况下执行可信交易。这些交易是可追踪且不可逆的。智能合约包括体现交易的协议或规则的逻辑或计算机程序。例如,智能合约可包括在特定条件下控制各方之间的数字货币或资产的转移的逻辑。智能合约可以以编程语言编码并部署到区块链网络运行时平台。
在一些实施例中,链外处理可被用来执行或施行智能合约。例如,智能合约中包括的逻辑可以在区块链网络的边界之外,例如,由链外智能合约服务提供者执行,同时仍然保持区块链网络的信任和透明度。例如,链外智能合约服务提供者可以是独立于区块链网络的计算机、服务器或其他类型的数据处理装置。通过链外处理,智能合约逻辑可以在可信执行环境(TEE)下执行,以保持区块链网络的信任和透明度。TEE可被用于在区块链网络之外执行智能合约中的逻辑并执行智能合约中包括的其他操作和交易。TEE可将代码绑定到智能合约并且提供多种服务,诸如身份验证、密钥管理、cerographical服务以及与外部世界的交互。TEE的可信环境确保仅允许授权代码访问数据,并且这种保护施行于在其内的代码的整个执行过程中。在一些实施例中,链外智能合约服务返回的智能合约的执行结果可被上传或以其他方式传送到区块链网络,例如,以更新区块链网络的状态。因此,链外智能合约服务提供者可以从区块链网络卸载计算负载,并且在执行不同的、复杂的计算逻辑和协议方面具有更大的灵活性。
在一些实施例中,所描述的链外智能合约服务提供者不与任何特定的区块链网络耦接,因此所提供的服务不限于指定形式的合约(例如,为特定的区块链网络配置),而是支持用户定义的链外计算。
此外,所描述的链外智能合约服务提供者可支持跨链数据访问,并且允许相互不信任的各方对来自一个或多个区块链网络的私有数据运行智能合约。例如,区块链网络A的客户端可定义智能合约,该智能合约不仅对来自区块链网络A的客户端数据进行操作,而且也对来自不同区块链网络、区块链网络B的数据进行操作。在一些实施例中,客户端调用链外合约服务来执行其定义的智能合约。链外合约服务可从区块链网络A和区块链网络B获取所请求的数据,在区块链网络A和区块链网络B之外执行客户端定义的智能合约以获得结果,然后将结果提交给区块链网络A以更新客户端的状态。
为使区块链网络节点可以并且更容易地执行复杂的计算并使用来自一个或多个其他区块链网络的数据来执行这些计算,描述了示例性技术。示例性技术可基于可信执行环境(TEE)。TEE是主机处理器上的安全区域,该主机处理器确保加载到环境中的代码和数据的安全性、机密性和完整性。TEE提供隔离的执行环境(例如,使用专用和隔离的硬件),其具有多个安全特征,诸如隔离执行、可信应用的完整性、可信数据的机密性和安全存储。所描述的链外智能合约服务提供者可包括TEE以及在TEE中实施区块链网络计算。所描述的技术可具有若干优势。例如,使用TEE作为临时介质来执行计算可保护数据的隐私。例如,区块链网络A的用户需要来自区块链网络B和区块链网络C的数据来执行计算。通常,区块链网络B和C各自都是封闭的链,并且由于隐私顾虑而不愿意将其数据共享给区块链网络A的用户。通过利用TEE,可以在不将来自区块链网络B和C的数据的详细信息公开给区块链网络A的情况下进行计算,并且仍然可实现基于跨链数据的跨链数据访问和智能合约的执行。此外,如前所述,在区块链网络上进行复杂的计算会耗费链的计算资源。将计算任务从区块链网络卸载到链外TEE可节省区块链网络的计算时间和资源。此外,由于用户可为其需要和请求的计算自行设计计算逻辑,因此TEE使用这些计算逻辑执行计算,并且可以更灵活和更广泛的方式执行各种计算。
在一些实施例中,所提出的技术可提供具有隐私保护的通用智能合约服务。例如,由于隐私顾虑,用于金融交易的智能合约需要隐藏转账金额和交易方(诸如发送方和收款方)。在所提出的方法下,发送方可以首先对交易内容进行加密,然后调用链外智能合约服务。链外智能合约服务可以在TEE中对交易内容进行解密,在TEE中执行交易,然后以密文的形式将交易结果返回到链(例如,具有交易是以正确的逻辑执行的证据)。在区块链网络验证返回的结果后,结果可被更新以反映区块链网络上的最新状态。
在一些实施例中,所提出的技术可提供跨链数据计算服务。作为示例,所提出的技术可被用于计算个人信用评分。在现实中,人们需要参与各种涉及信用评估的服务。例如,银行贷款申请、房地产租赁和汽车租赁。每个服务都可以由独立的联盟区块链网络或私有区块链网络来运行和维护。每个服务可能不希望与其他服务共享数据,在某些情况下,他们会加密其所拥有的个人数据。为了从不同的领域获得个人的综合信用评估,可以使用所提出的解决方案。在一些实施例中,用户可提供信用计算逻辑(代码)、数据请求授权(例如,使用签名或私钥)以使用私有通道来启动信用评估请求。所提出的解决方案中的服务从多个链请求数据,并在TEE中对数据进行解密,确保在正确的计算逻辑下生成结果。结果和结果证书返回给用户,用户可通过验证证明来保证数据和逻辑的机密性和完整性。然后,用户可使用此结果和证明向其区块链网络上的其他节点提供经认证的个人信用评分。
在一些实施例中,当用户需要执行区块链网络合约下的交易时,可以提前将合约中复杂的计算交给链外智能合约服务,然后将结果上传并存储到区块链网络中。在一些实施例中,结果可直接被用作在区块链网络上执行的交易的输入,减少区块链网络合约的运行时间,并提高效率。在这些实施例中,如果用户不想公开在区块链网络上施行的私人合约或安全协议,则可使用链外智能合约服务来进行计算,区块链网络的数据可被可靠地访问。
图1描绘了可被用于执行本文的实施例的环境100的示例。在一些示例中,环境100使得实体能够参与到区块链网络102中。环境100包括计算设备106、108和网络110。在一些示例中,网络110包括局域网(LAN)、广域网(WAN)、因特网或其组合,并连接网站、用户设备(例如,计算设备)和后端系统。在一些示例中,可通过有线和/或无线通信链接来访问网络110。在一些示例中,网络110能够与区块链网络102通信,并且能够在区块链网络102之内通信。通常,网络110表示一个或多个通信网络。在一些情况下,计算设备106、108可以是云计算系统的节点(未示出),或者计算设备106、108可各自是单独的云计算系统,其包括由网络互连并用作分布式处理系统的多台计算机。
在所描述的示例中,计算系统106、108可各自包括能够作为节点参与到区块链网络102中的任何适当的计算系统。计算设备的示例包括但不限于服务器、台式计算机、笔记本电脑、平板电脑和智能手机。在一些示例中,计算系统106、108承载用于与区块链网络102交互的一个或多个由计算机实施的服务。例如,计算系统106可承载第一实体(例如,参与者A)的由计算机实施的、诸如交易管理系统的服务,第一实体使用该交易管理系统管理其与一个或多个其他实体(例如,其他参与者)的交易。计算系统108可承载第二实体(例如,参与者B)的由计算机实施的、诸如交易管理系统的服务,第二实体使用该交易管理系统管理其与一个或多个其他实体(例如,其他参与者)的交易。在图1的示例中,区块链网络102表示为节点的点对点网络,计算系统106、108分别提供参与区块链网络102中的第一实体和第二实体的节点。
图2描绘了根据本文的实施例的概念架构200的示例。概念架构200的示例包括分别对应于参与者A、参与者B和参与者C的参与者系统202、204、206。每个参与者(例如,用户、企业)参与到区块链网络212中,区块链网络212被提供为点对点网络,其包括多个节点214,其中至少一些节点将信息不可篡改地记录在区块链216中。尽管在区块链网络212中示意性地描绘了单个区块链216,但在整个区块链网络212中提供并维护了区块链216的多个副本,如本文中进一步详细描述的。
在所描述的示例中,每个参与者系统202、204、206分别由参与者A、参与者B和参与者C提供,或代表参与者A、参与者B和参与者C,并用作区块链网络中的各个节点214。如本文中所使用的,节点通常指连接到区块链网络212并且使各参与者能够参与到区块链网络中的独立系统(如计算机、服务器)。在图2的示例中,参与者对应于每个节点214。然而,可预期的是,一个参与者可以在区块链网络212内操作多个节点214,和/或多个参与者可以共享一个节点214。在一些示例中,参与者系统202、204、206使用协议(例如,超文本传输协议安全(HTTPS))和/或使用远程过程调用(RPC)来与区块链网络212通信或经由区块链网络212通信。
节点214可在区块链网络212之内具有不同的参与度。例如,一些节点214可以参与共识过程(例如,作为向区块链216添加区块的矿工节点(miner node)),而其他节点214不参与共识过程。作为另一示例,一些节点214存储区块链216的完整副本,而其他节点214只存储区块链216的部分副本。例如,数据访问权限可限制各参与者在其各自系统内存储的区块链数据。在图2的示例中,参与者系统202、204、206存储各自的区块链216的完整副本216'、216”、216”'。
区块链(例如,图2的区块链216)由一系列区块组成,每个区块存储数据。数据的示例包括代表两个或更多个参与者之间的交易的交易数据。虽然在本文中“交易”被以非限制性示例的方式使用,但可预期的是,任何适当的数据都可被存储在区块链中(例如,文档、图像、视频、音频)。交易的示例可包括但不限于交换有价物(例如,资产、产品、服务和货币)。交易数据不可篡改地存储在区块链之内。也就是说,交易数据不能被改变。
在存储到区块中之前,交易数据被哈希处理。哈希处理是将交易数据(被提供为字符串数据)转换为固定长度的哈希值(也被提供为字符串数据)的过程。将哈希值进行去哈希处理(un-hash)来获得交易数据是不可能的。哈希处理确保即使交易数据微小变化也会导致完全不同的哈希值。此外,如上所述,哈希值具有固定长度。也就是说,不管交易数据的大小如何,哈希值的长度都是固定的。哈希处理包括通过哈希函数处理交易数据以生成哈希值。哈希函数的示例包括但不限于安全哈希算法(SHA)-256,其输出256位哈希值。
多笔交易的交易数据被哈希处理并存储在区块中。例如,两笔交易的哈希值被提供并且其自身被哈希处理以提供另一个哈希值。重复进行这个过程,直到针对要存储在区块中的所有交易提供单个哈希值为止。这个哈希值被称为Merkle根哈希值,并存储在区块的头中。任何交易中的改变都将导致其哈希值的改变,并最终导致Merkle根哈希值的改变。
区块通过共识协议被添加到区块链。区块链网络中的多个节点参与到共识协议中,并竞相将区块添加到区块链。这些节点被称为矿工(或矿工节点)。上面介绍的POW被用作非限制性示例。
矿工节点执行共识过程以将交易添加到区块链中。虽然多个矿工节点参与到共识过程中,但只有一个矿工节点可以将区块写入区块链。也就是说,矿工节点在共识过程中竞相将其区块添加到区块链。更详细地,矿工节点从交易池中周期性地收集待处理的交易(例如,最多达到区块中可包括的交易数量的预定限制,如果有的话)。交易池包括来自区块链网络中的参与者的交易消息。矿工节点构造区块并将交易添加到该区块。在将多个交易添加到区块之前,矿工节点检查所述多个交易中是否有任一交易已经被包括在区块链的区块中。如果有交易已经被包括在另一区块中,则该交易被丢弃。
矿工节点生成区块头,对区块中的所有交易进行哈希处理,并成对组合哈希值以生成进一步的哈希值,直到为区块中的所有交易提供单个哈希值(Merkle根哈希值)。此哈希值被添加到区块头中。矿工还确定区块链中的最新区块的哈希值(即添加到区块链中的最后区块)。矿工节点还向区块头添加随机数(nonce)和时间戳。在挖矿过程中,矿工节点尝试寻找满足所需参数的哈希值。矿工节点不断改变随机数,直到找到满足所需参数的哈希值。
区块链网络中的每个矿工都试图找到满足所需参数的哈希值,并以这种方式相互竞争。最后,矿工节点之一找到满足所需参数的哈希值,并将其通告给区块链网络中的所有其他矿工节点。其他矿工节点验证该哈希值,如果确定正确,则验证区块中的每笔交易,接受该区块,并将该区块附加到其区块链副本中。以这种方式,区块链的全局状态在区块链网络中的所有矿工节点上是一致的。上述过程是POW共识协议。
参照图2提供了非限制性示例。在此示例中,参与者A希望向参与者B发送一笔资金。参与者A生成交易消息(例如,包括发送方、接收方和数值字段),并将交易消息发送到区块链网络,从而将交易消息添加到交易池中。区块链网络中的每个矿工节点创建一个区块并从交易池获取所有交易(例如,最多达到可添加到区块的交易数量的预定限制,如果有的话),并将交易添加到区块。通过这种方式,参与者A发布的交易被添加到矿工节点的区块中。
在一些区块链网络中,用密码学来维护交易的隐私。例如,如果两个节点想要保持交易隐私,以使得区块链网络中的其他节点无法了解交易的细节,则这两个节点可对交易数据进行加密处理。加密处理的示例包括但不限于对称加密和非对称加密。对称加密是指使用单个密钥既进行加密(从明文生成密文)又进行解密(从密文生成明文)的加密过程。在对称加密中,同一密钥可用于多个节点,因此每个节点可对交易数据进行加密/解密。
非对称加密使用各包括私钥和公钥的密钥对,私钥仅为相应的节点所知,而公钥为区块链网络中的任何或所有其他节点所知。节点可使用另一个节点的公钥来加密数据,而该加密的数据可使用其他节点的私钥被解密。例如,再次参照图2,参与者A可使用参与者B的公钥来加密数据,并将加密的数据发送给参与者B。参与者B可使用其私钥来解密该加密的数据(密文),并提取原始数据(明文)。使用节点的公钥加密的消息只能使用该节点的私钥来解密。
非对称加密被用于提供数字签名,这使得交易中的参与者能够确认交易中的其他参与者和交易的有效性。例如,节点可对消息进行数字签名,另一节点可基于参与者A的该数字签名确认该消息是由该节点发送的。数字签名还可被用于确保消息在传送中不被篡改。例如,再次参照图2,参与者A将向参与者B发送消息。参与者A生成该消息的哈希值,然后使用其私钥对该哈希值进行加密以提供为加密哈希值的数字签名。参与者A将该数字签名附加到该消息上,并将该带有数字签名的消息发送给参与者B。参与者B使用参与者A的公钥解密该数字签名,并提取哈希值。参与者B对该消息进行哈希处理并比较哈希值。如果哈希值相同,则参与者B可确认该消息确实来自参与者A,且没有被篡改。
图3描绘了根据本文的实施例的向客户端提供跨链数据服务的过程300的示例。在一些实施例中,客户端302表示与诸如目标区块链网络306的区块链网络有关的应用(例如,客户端应用)。例如,客户端302可包括用于访问目标区块链网络306和与目标区块链网络306通信的客户端软件开发工具包(SDK)。客户端302可安装在用户的设备(也称为客户终端或节点)上(图3中未示出)。在一些实施例中,用户可通过使用客户端302发起交易来参与目标区块链网络306的交易。在一些实施例中,用户的账号信息可存储在目标区块链网络306上,用户有在目标区块链网络上执行交易的授权。客户端302可访问和读取存储在目标区块链网络306上的数据。在一些实施例中,为了获得跨链数据,例如,来自一个或多个不同的区块链网络(例如,图3中的316、318和320)的数据,客户端302可需要中继或可信数据访问服务提供者312以桥接目标区块链网络306的客户端302与其他不同的区块链网络之间的通信间隙。
在一些实施例中,客户端302可在目标区块链网络的合约下发起保密交易,并且此交易信息仅对客户端302的用户以及该交易的可能的其他参与者或当事方可见,而不对区块链网络上或区块链网络外的任何其他当事方可见。在一些实施例中,客户端302需要将结果呈现给目标区块链网络306上或目标区块链网络外的另一实体。
在一些实施例中,目标区块链网络306的客户端302的交易可包括使用来自目标区块链网络306的数据和/或跨链数据(例如,来自一个或多个不同的区块链网络316、318或320的数据)进行的各种计算操作。在一些实施例中,目标区块链网络306的客户端302的交易可包括使用来自目标区块链网络306的数据和/或跨链数据计算得到的结果。在一些实施例中,交易可包括各种计算逻辑和协议。在一些实施例中,计算可是复杂的,并且可耗费区块链网络的计算资源。在一些实施例中,可在客户端302设计的智能合约中指定交易。
例如,如图3所示,客户端302可例如使用客户端SDK 304来准备包括自行设计的计算逻辑和协议的智能合约,以基于跨链数据(例如,来自一个或多个不同的区块链网络316、318或320的数据)来执行交易。客户端302可将智能合约发送到智能合约服务提供者308来执行。智能合约服务提供者308处于目标区块链网络306之外,使得智能合约服务提供者308可独立于目标区块链网络306地执行智能合约中定义的计算逻辑和协议。
一旦接收并分析了智能合约,智能合约服务提供者308就确定执行智能合约需要跨链数据。智能合约服务提供者308可以向可信数据访问服务提供者312发送对跨链数据的请求,以获取跨链数据。例如,客户端302可能想要执行“a加b”的计算,其中a是来自目标区块链网络306的数据,b是来自区块链网络316的私有数据。在这种情况下,从客户端302发送的智能合约包含将a和b加到一起的计算逻辑以及数据a和b的位置指示符。智能合约服务提供者308可向可信数据访问服务提供者312发送请求,以获取区块链网络316的私有数据b。在一些实施例中,智能合约可被加密以保护用户的隐私。
在一些实施例中,链外智能合约服务提供者308可以是基于云的服务器提供者。在一些实施例中,这样的云服务器提供者可以是独立的第三方服务提供者,诸如在一些实施例中,多个实体是跨链数据的数据资源,他们中的任一方都不想将他们自己的数据上传到第三方服务提供者。在这种情况下,这些实体可自己构建智能合约服务提供者。
链外智能合约服务提供者308包括可信计算执行环境(TEE)310,其提供安全的计算执行环境。在一些实施例中,计算TEE 310是独立的硬件模块,其独立性确保了TEE 310内部执行的数据的安全性。在一些实施例中,为了配置用于区块链网络操作的TEE 310,虚拟机、应用接口或操作系统中的一个或多个可被编程、硬编码或以其他方式配置到TEE 310中,以使TEE 310适合执行智能合约中定义的计算逻辑。在一些实施例中,在将智能合约发送给链外智能合约服务提供者308之前,客户端302可以验证链外智能合约服务提供者308是否包括TEE 310,以及TEE 310是否包括与客户端302对应的执行程序或环境。例如,如果目标区块链网络306是基于以太坊的区块链网络,并且客户端302的SDK 304是基于以太坊的客户端SDK(例如,使用Solidity语言),则在客户端302向链外智能合约服务提供者308发送执行智能合约的请求之前,客户端302可验证TEE 310是否包括用于执行基于以太坊的计算逻辑的以太坊虚拟机(EVM)(例如,其支持Solidity语言)。
在接收到执行智能合约的请求后,如果该请求被加密,则TEE 310首先解密该请求,解析智能合约,并识别执行智能合约所需的数据。TEE 310可以调用可信数据访问服务提供者312,以例如通过可信数据访问服务提供者312的应用程序接口(API)314从一个或多个不同的源获取数据。可信数据访问服务提供者312是可检索一个或多个不同的区块链网络的私有数据的可信方。可信数据访问服务提供者312可以向链外智能合约服务提供者308的TEE 310提供可信数据,并确保数据的隐私性和准确性。
在一些实施例中,可信数据访问服务提供者312还可以包含TEE,例如,以从一个或多个不同的区块链网络的正确位置检索数据。在一些实施例中,可信数据访问服务提供者312中包括的TEE的逻辑比链外智能合约服务提供者308中的TEE 310的逻辑简单,因为前者主要被用于数据检索,不需要对检索到的数据进行计算。
在一些实施例中,在TEE 310调用API 314之前,在链外智能合约服务提供者308与可信数据访问服务提供者312之间执行双向验证过程。在一些实施例中,在验证过程期间,他们中的每个都向另一方证明其包括TEE。
在一些实施例中,可信数据访问服务提供者312可以从一个或多个不同的源检索数据,该一个或多个不同的源包括区块链网络、区块链网络集或区块链网络平台中的一个或多个(统称为一个或多个区块链网络)。区块链网络的示例被示出为图3中的我链(Mychain)316、超级账本(Hyperleger)318和以太坊(Ethereum)320。所获得的数据被送回TEE 310,TEE 310使用所获得的数据执行计算逻辑。
在一些实施例中,在计算TEE 310中生成计算结果之后,TEE 310使用私钥对结果进行签名,以证明结果的完整性和准确性。在一些实施例中,签名是表明计算结果是由TEE310根据客户端302发送的智能合约中包括的计算逻辑执行的证明。因此,结果可被目标区块链网络306的其他节点信任。
在一些实施例中,TEE 310将结果返回给客户端302。例如,客户端302使用与TEE310的私钥对应的公钥来解密结果。在一些实施例中,客户端302将结果上传到目标区块链网络306,使得该结果可被用于更新客户端302的状态或作为目标区块链网络306的交易的输入。在一些实施例中,客户端302可将结果用于与区块链网络无关的用途,诸如计算用户的平均信用分数。例如,用户可从不同的链(每个链代表相应的服务提供者,诸如汽车租赁、银行贷款或房屋租赁)获取数据信息,并使用该数据来计算用户的平均信用分数。用户可将结果呈现给商家,而无需将结果上传到任何区块链网络。
在一些实施例中,TEE 310可将结果直接返回到目标区块链网络306。在这种实施例中,在返回结果之前,目标区块链网络306可以验证链外智能合约服务提供者308是否包括在链外智能合约服务提供者308和目标区块链网络306之间建立信任所需的TEE。
图4描绘了可根据本文的实施例执行的过程400的示例。在一些实施例中,可以使用一个或多个计算机可执行程序(其使用一个或多个计算设备来执行)来执行示例性过程400。为了表达得清楚,下面的描述概括地描述在本文中其他附图的背景下的方法400。例如,客户端420可以是客户端302,智能合约服务提供者430可以是链外智能合约服务提供者308,可信数据访问服务提供者440可以是可信数据访问服务提供者312,区块链网络450可以是Mychain 316、Hyperleger 318和/或以太坊320,并且目标区块链网络410可以是目标区块链网络306,如针对图3所述。然而,可以理解的是,方法400可例如由任何适当的系统、环境、软件和硬件或系统、环境、软件和硬件的组合(适当地)来执行。在一些实施例中,方法400的各个步骤可以并行、组合、循环或以任何顺序运行。
在412,与目标区块链网络410相关联的客户端420生成用于操作不同于目标区块链网络的一个或多个区块链网络的跨链数据的请求。用于操作跨链数据的请求包括用于操作跨链数据的智能合约计算逻辑。在一些实施例中,用于操作跨链数据的请求可以被写成智能合约。用于操作跨链数据的请求可以是如关于图3所述的用于执行智能合约的请求的示例。
在一些实施例中,用于操作跨链数据的智能合约计算逻辑是由客户端自行设计的,允许用户自由和灵活地指定智能合约计算逻辑以实现用户的目的,而不限于由目标区块链网络410定义的计算逻辑。在这些实施例中,生成所述请求包括由客户端设计用于操作跨链数据的智能合约计算逻辑。在一些实施例中,客户端包括允许用户编写智能合约计算逻辑的软件开发工具包(SDK)。在一些实施例中,可以用Solidity语言编写计算逻辑。在一些实施例中,用于操作跨链数据的请求被客户端加密。
在414,与目标区块链网络410相关联的客户端420向智能合约服务提供者430发送用于操作不同于目标区块链网络410的一个或多个区块链网络的跨链数据的请求。智能合约服务提供者430包括可信计算执行环境(TEE)。智能合约服务提供者430处于目标区块链网络410之外。在一些实施例中,跨链数据是从两个或更多个区块链网络获得的。在一些实施例中,智能合约服务提供者430包括基于云的服务器。
在一些实施例中,用于跨链数据访问的请求是数据访问请求。在这些实施例中,TEE检索数据并且将数据返回至客户端420。
在一些实施例中,除了从多个区块链网络检索数据之外,TEE还基于请求中包括的智能合约计算逻辑对数据进行操作。在一些实施例中,智能合约服务提供者430可以配置TEE,例如,通过将EVM嵌入TEE以使TEE适当地执行请求中包括的智能合约计算逻辑。
在一些实施例中,在发送用于操作跨链数据的请求之前,在426,客户端420验证智能合约服务提供者430是否能够以安全方式执行智能合约计算逻辑。在一些实施例中,此验证过程包括:智能合约服务提供者430向客户端420证明智能合约服务提供者430包括TEE;智能合约服务提供者430向客户端420证明TEE包括如下的虚拟机,该虚拟机可操作用来执行用于操作跨链数据的请求中的智能合约计算逻辑。
例如,TEE可以是 SGX。在本示例中,利用由提供的签名和验证服务来证明智能合约服务提供者430是否包括SGX。此外,为了证明TEE包括所需的EVM,TEE计算被调用的EVM的脚本和代码的哈希值,然后将该哈希值发送到客户端420用于验证。因为客户端420也具有一套完整的EVM代码,所以其还可以计算其所具有的EVM的脚本和代码的哈希值,并比较两个哈希值是否一致。
在一些实施例中,在生成请求之前,客户端420和智能合约服务提供者430可以设置一对密钥。因此,在智能合约服务提供者430接收到利用密钥之一签名的请求之后,其可以利用该对密钥中的另一密钥解密该请求。在428,智能合约服务提供者430解密并解析接收到的请求。在一些实施例中,该请求被写成开发期间预定的数据格式,在这种情况下,基于每个数据段来解析请求。
在435,智能合约服务提供者430向数据访问服务提供者440发送跨链数据的请求,以获取在用于操作跨链数据的请求中指定的跨链数据。在一些实施例中,在向数据访问服务提供者440发送请求之前,在432,智能合约服务提供者430验证可信数据访问服务提供者440是否能够提供不同于目标区块链网络的一个或多个区块链网络的可信跨链数据。在一些实施例中,此验证过程包括智能合约服务提供者430验证数据访问服务提供者440是否包括TEE。
在一些实施例中,在向数据访问服务提供者440发送请求之前,在434,数据访问服务提供者440和智能合约服务提供者430可以执行验证过程以在两者之间建立信任。在一些实施例中,此验证过程包括智能合约服务提供者430向数据访问服务提供者440证明智能合约服务提供者430包括TEE。在一些实施例中,在432和434两个步骤中,可通过与如在步骤426中所述的相同的方法来验证/证明TEE的存在。
在436,数据访问服务提供者440从不同于目标区块链网络410的一个或多个区块链网络450请求数据。
在438,数据访问服务提供者440从不同于目标区块链网络410的一个或多个区块链网络450接收数据。
在439,智能合约服务提供者430从数据访问服务提供者440接收跨链数据。在一些实施例中,从两个或更多个区块链网络获得跨链数据。
在441,智能合约服务提供者430的TEE通过使用接收到的跨链数据执行智能合约计算逻辑而生成结果。在一些实施例中,结果是由使用跨链数据执行智能合约计算逻辑的TEE生成的。在一些实施例中,包括在TEE中的EVM执行代码,以使用计算逻辑和接收到的数据执行计算。
在442,智能合约服务提供者430签名结果。在一些实施例中,结果通过私钥来签名。例如,TEE包括与TEE的外部和其他部件隔离的私钥。在一些实施例中,由私钥签名了的签名是结果在TEE之内生成的证据。在一些实施例中,在智能合约服务提供者430签名结果之后,最终的输出结果包括:由TEE生成的结果和通过私钥签名了的结果的哈希值。
在443,智能合约服务提供者430将结果返回至客户端420。
在444,客户端420解密接收到的结果。在一些实施例中,客户端420利用与私钥对应的公钥来解密接收到的结果。在这些实施例中,接收到的结果包含由TEE生成的结果和该结果的签名的哈希值。在这些实施例中,客户端420计算由TEE利用私钥生成的结果的哈希值,并且将其与该结果的签名的哈希值进行比较,以确认他们是否一致。
在446,客户端420基于接收到的结果将交易发送到目标区块链网络410。在一些实施例中,客户端420将交易上传到目标区块链网络410,以更新客户端420的状态或者在目标区块链网络410上执行交易。
在一些实施例中,在452,智能合约服务提供者430将结果上传至目标区块链网络410。在一些实施例中,在将结果上传到目标区块链网络之前,在448,智能合约服务提供者向目标区块链网络证明智能合约服务提供者包括TEE。这里用于证明的方法可以与步骤426中使用的方法相同。
参照图5,图5描绘了示出根据本文的实施例的装置500的模块的图示的示例。装置500可以是包括可信计算执行环境(TEE)的智能合约服务提供者的示例性实施例,其中该智能合约服务提供者处于目标区块链网络之外。用于跨链数据操作的装置500可用于基于区块链网络技术的链外智能合约系统中。装置500可相应于图3和图4所示的实施例,装置500包括以下:第一接收器或第一接收单元510,配置为从与目标区块链网络相关联的客户端接收用于操作不同于目标区块链网络的一个或多个区块链网络的跨链数据的请求;发送器或发送单元520,配置为发送对跨链数据的请求;第二接收器或第二接收单元530,配置为从数据访问服务提供者接收跨链数据;生成器或生成单元540,配置为基于来自数据访问服务提供者的跨链数据生成结果;以及用户接口550,配置为将结果返回到客户端。
在可选实施例中,用于操作跨链数据的请求包括用于操作跨链数据的智能合约计算逻辑。
在可选实施例中,用于操作跨链数据的智能合约计算逻辑是由客户端自行设计的。
在可选实施例中,装置500还包括以下:第一提供子单元,配置为提供包括虚拟机的TEE,该虚拟机可操作以执行用于操作跨链数据的请求中的智能合约计算逻辑。
在可选实施例中,装置500还包括以下:第二提供子单元,配置为在从客户端接收用于操作跨链数据的请求之前,提供包括TEE的智能合约服务提供者。
在可选实施例中,装置500还包括以下:第三提供子单元,配置为提供包括TEE的智能合约服务提供者;以及验证子单元,配置为验证数据访问服务提供者包括TEE。
在可选实施例中,装置500还包括以下:上传子单元,配置为将结果上传至目标区块链网络。
在可选实施例中,装置500还包括以下:第四提供子单元,配置为在将结果上传到目标区块链网络之前,提供包括TEE的智能合约服务提供者。
在可选实施例中,智能合约服务提供者包括基于云的服务器。
在可选实施例中,跨链数据是从两个或更多个区块链网络获得的。
参照图6,图6描绘了示出根据本文的实施例的另一装置600的模块的图示的示例。装置600可以是与目标区块链网络相关联的客户端的示例性实施例。装置600可用于基于区块链网络技术的链外智能合约系统中。装置600可相应于图3和图4中所示的实施例,装置600包括以下:生成器或生成单元610,配置为生成用于操作不同于目标区块链网络的一个或多个区块链网络的跨链数据的请求,其中用于操作跨链数据的请求包括用于操作跨链数据的智能合约计算逻辑;发送器或发送单元620,配置为发送用于操作跨链数据的请求至包括可信计算执行环境(TEE)的智能合约服务提供者,其中智能合约服务提供者处于目标区块链网络之外;以及接收器或者接收单元630,配置为从智能合约服务提供者接收结果,其中该结果由TEE利用通过智能合约服务提供者获得的跨链数据而生成。
在可选实施例中,装置600还包括以下:第一发送子单元,配置为将接收到的结果发送到目标区块链网络。
在可选实施例中,装置600还包括以下:验证子单元,配置为在发送用于操作跨链数据的请求至智能合约服务提供者之前,验证TEE包括如下的虚拟机,该虚拟机可操作以执行用于操作跨链数据的请求中的智能合约计算逻辑。
在可选实施例中,装置600还包括以下:设计子单元,配置为设计用于操作跨链数据的智能合约计算逻辑。
在可选实施例中,客户端包括软件开发工具包(SDK)。
在可选实施例中,结果由TEE利用私钥来签名,装置600还包括以下:解密子单元,配置为利用与私钥对应的公钥来解密接收到的结果。
在可选实施例中,装置600还包括以下:加密单元,配置为在发送用于操作跨链数据的请求至智能合约服务提供者之前,加密用于操作跨链数据的请求。
在可选实施例中,跨链数据是从两个或更多个区块链网络获得的。
在前面的实施例中示出的系统、装置、模块或者单元可通过使用计算机芯片或实体来实施,也可以通过使用具有特定功能的产品来实施。典型的实施设备是计算机,计算机可以是个人计算机、笔记本电脑、移动电话、照相手机、智能手机、个人数字助理、媒体播放器、导航设备、电子邮件接收和发送设备、游戏控制台、平板电脑、可穿戴设备或这些设备的任何组合。
对于装置中每个单元的功能和作用的实施过程,可以参照前面方法中相应步骤的实施过程。为了简单起见,这里省略了细节。
由于装置实施基本上对应于方法实施,所以对于相关部件,可以参照方法实施中的相关描述。前面描述的装置实施只是示例性的。描述为分离部件的单元可以是或可以不是物理独立的,并且显示为单元的部件可以是或可以不是物理单元,可以位于一个位置,或者可以分布在多个网络单元上。可以基于实际需求来选择部分或全部模块,以实现本文的解决方案的目标。本领域的普通技术人员而无需创造性的努力就可以理解和实现本申请的实施例。
图5是示出跨链数据操作装置的内部功能模块和结构的示意图。跨链数据操作装置可以是包括可信计算执行环境(TEE)的智能合约服务提供者的示例。执行主体本质上可以是电子设备,电子设备包括以下部分:一个或多个处理器;以及存储器,配置为存储一个或多个处理器的可执行指令。
一个或多个处理器被配置为:从与目标区块链网络相关联的客户端接收用于操作不同于目标区块链网络的一个或多个区块链网络的跨链数据的请求,其中智能合约服务提供者处于目标区块链网络之外;将对跨链数据的请求发送至数据访问服务提供者;从数据访问服务提供者接收跨链数据;通过TEE利用跨链数据来生成结果;以及将结果返回至客户端。
可选地,用于操作跨链数据的请求包括用于操作跨链数据的智能合约计算逻辑。
可选地,用于操作跨链数据的智能合约计算逻辑是由客户端自行设计的。
可选地,结果通过TEE利用跨链数据执行智能合约计算逻辑而生成。
可选地,一个或多个处理器被配置为向客户端证明TEE包括虚拟机,该虚拟机可操作以执行用于操作跨链数据的请求中的智能合约计算逻辑。
可选地,一个或多个处理器被配置为在从客户端接收用于操作跨链数据的请求之前,向客户端证明智能合约服务提供者包括TEE。
可选地,一个或多个处理器被配置为向数据访问服务提供者证明智能合约服务提供者包括TEE;以及验证数据访问服务提供者包括TEE。
可选地,一个或多个处理器被配置为将结果上传到目标区块链网络。
可选地,一个或多个处理器被配置为在将结果上传到目标区块链网络之前,向目标区块链网络证明智能合约服务提供者包括TEE。
可选地,智能合约服务提供者包括基于云的服务器。
可选地,结果通过TEE利用私钥来签名。
可选地,跨链数据是从两个或更多个区块链网络获得的。
图6为示出另一跨链数据操作装置的内部功能模块和结构的示意图。另一跨链数据操作装置可以是与目标区块链网络相关联的客户端的示例。执行主体本质上可以是电子设备,电子设备包括以下:一个或多个处理器;以及存储器,配置为存储一个或多个处理器的可执行指令。
一个或多个处理器被配置为生成用于操作不同于目标区块链网络的一个或多个区块链网络的跨链数据的请求,其中用于操作跨链数据的请求包括用于操作跨链数据的智能合约计算逻辑;将用于操作跨链数据的请求发送至包括可信计算执行环境(TEE)的智能合约服务提供者,其中智能合约服务提供者处于目标区块链网络之外;从智能合约服务提供者接收结果,其中该结果是通过TEE利用由智能合约服务提供者获得的跨链数据而生成。
可选地,一个或多个处理器被配置为将接收到的结果发送到目标区块链网络。
可选地,一个或多个处理器被配置为在将用于操作跨链数据的请求发送到智能合约服务提供者之前,验证智能合约服务提供者包括TEE。
可选地,一个或多个处理器被配置为验证TEE包括虚拟机,该虚拟机可操作以执行用于操作跨链数据的请求中的智能合约计算逻辑。
可选地,客户端包括软件开发工具包(SDK)。
可选地,结果通过TEE利用私钥来签名。一个或多个处理器被配置为利用与私钥相应的公钥来解密接收到的结果。
可选地,一个或多个处理器被配置为在将用于操作跨链数据的请求发送至智能合约服务提供者之前,加密用于操作跨链数据的请求。
可选地,跨链数据是从两个或更多个区块链网络获得的。
本文中描述的主题、动作以及操作的实施例可在数字电子电路、有形体现的计算机软件或固件、计算机硬件中实施,包括本文中公开的结构及其结构等同物,或者它们中的一个或多个的组合。本文中描述的主题的实施例可以实施为一个或多个计算机程序,例如,编码在计算机程序载体上的一个或多个计算机程序指令的模块,用以通过数据处理装置执行或者控制数据处理装置的操作。载体可以是有形的非暂时性计算机存储介质。可选地或者附加地,载体可以是人工产生的传播信号,例如,机器产生的电信号、光信号或电磁信号,其被产生以编码信息,用以传输到适当的接收器装置而由数据处理装置执行。计算机存储介质可以是或者部分是机器可读存储设备、机器可读存储基板、随机或串行存取存储设备或其中一个或多个的组合。计算机存储介质不是传播信号。
术语“数据处理装置”包括用于处理数据的各种类型的装置、设备和机器,包括例如可编程处理器、计算机或者多处理器或计算机。数据处理装置可包括专用逻辑电路,例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)或图形处理单元(GPU)。除了硬件,该装置还可以包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或其中一个或多个的组合的代码。
计算机程序,也可以被称为或描述为程序、软件、软件应用程序、app、模块、软件模块、引擎、脚本或代码,可以以任何形式的编程语言编写,包括编译或解释性语言、说明性或程序性语言;其可以配置为任何形式,包括作为独立程序或者作为模块、组件、引擎、子程序或适合在计算环境下执行的其他单元,该环境可包括由数据通信网络互联的在一个或多个位置的一台或多台计算机。
计算机程序可以但非必须与文件系统中的文件相对应。计算机程序可被存储在保存其他程序或数据的文件的一部分(例如,存储在标记语言文档中的一个或多个脚本)中、存储在专用于所讨论的程序的单个文件中、或者存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的多个文件)中。
本文中描述的过程和逻辑流程可由一台或多台计算机执行一个或多个计算机程序进行,以进行通过对输入数据进行运算并产生输出的操作。过程和逻辑流程也可以通过专用逻辑电路(例如,FPGA、ASIC或GPU)或专用逻辑电路与一台或多台编程计算机的组合来执行。
适用于执行计算机程序的计算机可以基于通用和/或专用微处理器,或任何其他类型的中央处理单元。一般而言,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机元件可以包括用于执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器可以补充有专用逻辑电路或集成在专用逻辑电路中。
通常,计算机将耦接到至少一个非暂时性计算机可读存储介质(也称为计算机可读存储器)。耦接到计算机的存储介质可以是计算机的内部组件(例如,集成硬盘驱动器)或外部组件(例如,通用串行总线(USB)硬盘驱动器或通过网络访问的存储系统)。存储介质的示例可以包括,例如,磁盘、磁光盘或光盘、固态驱动器、诸如云存储系统的网络存储资源或其他类型的存储介质。然而,计算机不需要具有这些设备。此外,计算机可以嵌入其他设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或例如通用串行总线(USB)闪存驱动器的便携式存储设备,仅举几个例子。
为了提供与用户的交互,本文中描述的主题的实施例可在计算机上实现或者配置为与该计算机通信,该计算机具有显示设备和输入设备,该显示设备用于向用户显示信息,例如LCD(液晶显示器)监视器,用户可通过该输入设备提供输入至该计算机,例如键盘和例如鼠标、轨迹球或触摸板等的指向设备。其他类型的设备也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以接收来自用户的任何形式的输入,包括声音、语音或触觉输入。此外,计算机可通过发送文件至由用户使用的设备以及从由用户使用的设备接收文件来与用户交互;例如,通过发送web页面至用户设备上的web浏览器以响应从web浏览器接收到的请求,或者通过与用户设备(例如,智能电话或者电子平板电脑)上运行的应用程序(app)进行交互。另外,计算机可通过向个人设备(例如,运行消息应用的智能电话)轮流发送文本信息或者其他形式的信息并且接收来自用户的响应信息来与用户交互。
本文使用与系统、装置和计算机程序组件有关的术语“配置为”。对于一台或多台计算机的系统,被配置为执行特定操作或动作是指该系统已经在其上安装了在运行中促使该系统执行所述操作或动作的软件、固件、硬件或其组合。对于一个或多个计算机程序,被配置为执行特定操作或动作是指该一个或多个程序包括当被数据处理装置执行时促使该装置执行所述操作或动作的指令。对于专用逻辑电路,配置为执行特定操作或动作是指该电路具有执行所述操作或动作的电子逻辑。
虽然本文包含许多具体实施例细节,但是这些不应理解为对由权利要求自身限定的对要求保护的范围的限制,而应理解为对特定实施例的具体特征的描述。在本文多个单独实施例的上下文中描述的多个特定特征也可以在单个实施例中的组合实现。反之,在单个实施例的上下文中描述的不同特征也可以单独地或者以任何适合的子组合在多个实施例中实现。此外,尽管上述特征可以描述为在某些组合中起作用,并且甚至最初这样要求保护,但在某些情况下,可以从该组合中删除要求保护的组合中的一个或多个特征,并且可以要求保护指向子组合或子组合的变体。
类似地,虽然以特定顺序在附图中绘出了操作并且在权利要求中陈述了操作,但不应理解为:为了达到期望的结果,要求按照所示的特定顺序或依次执行这些操作,或要求执行所有示出的操作。在某些情况下,多任务并行处理会是有利的。此外,上述实施例中的各种系统模块和组件的划分不应理解为所有实施例中都要求如此划分,而应理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或打包成多个软件产品。
主题的特定实施例已经被描述。其他实施例在随附的权利要求的范围之内。例如,权利要求中陈述的动作可以按照不同的顺序执行并且仍实现所需的结果。作为一个示例,在附图中绘出的过程无需要求所示的特定顺序或次序以实现所需的结果。在一些情况下,多任务并行处理会是有利的。
Claims (54)
1.一种计算机实施的方法,包括;
由包括可信计算执行环境TEE的智能合约服务提供者,从与目标区块链网络相关联的客户端接收用于操作不同于所述目标区块链网络的一个或多个区块链网络的跨链数据的请求,其中,所述用于操作跨链数据的请求包括用于操作所述跨链数据的智能合约计算逻辑,所述智能合约计算逻辑是由所述客户端自行设计的,所述客户端提供具有隐私保护的通用智能合约服务以及跨链数据计算服务,所述智能合约服务提供者处于所述目标区块链网络之外;
由所述智能合约服务提供者向数据访问服务提供者发送对所述跨链数据的请求;
由所述智能合约服务提供者从所述数据访问服务提供者接收所述跨链数据;
由所述TEE利用所述跨链数据生成结果;以及
由所述智能合约服务提供者将所述结果返回至所述客户端。
2.根据权利要求1所述的计算机实施的方法,其中,所述结果是由所述TEE利用所述跨链数据执行所述智能合约计算逻辑而生成的。
3.根据权利要求1所述的计算机实施的方法,还包括:
由所述智能合约服务提供者向所述客户端证明所述TEE包括如下的虚拟机,所述虚拟机能够操作以执行用于操作所述跨链数据的请求中的所述智能合约计算逻辑。
4.根据权利要求1所述的计算机实施的方法,还包括:
在从所述客户端接收所述用于操作跨链数据的请求之前,由所述智能合约服务提供者向所述客户端证明所述智能合约服务提供者包括所述TEE。
5.根据权利要求1所述的计算机实施的方法,还包括:
由所述智能合约服务提供者向所述数据访问服务提供者证明所述智能合约服务提供者包括所述TEE;以及
由所述智能合约服务提供者验证所述数据访问服务提供者包括TEE。
6.根据权利要求1所述的计算机实施的方法,还包括:
由所述智能合约服务提供者将所述结果上传至所述目标区块链网络。
7.根据权利要求6所述的计算机实施的方法,还包括:
在将所述结果上传至所述目标区块链网络之前,由所述智能合约服务提供者向所述目标区块链网络证明所述智能合约服务提供者包括所述TEE。
8.根据权利要求1所述的计算机实施的方法,其中,所述智能合约服务提供者包括基于云的服务器。
9.根据权利要求1所述的计算机实施的方法,其中,所述结果是由所述TEE利用私钥签名的。
10.根据权利要求1所述的计算机实施的方法,其中,所述跨链数据是从两个或更多个区块链网络获得的。
11.一种计算机实施的方法,包括:
由与目标区块链网络相关联的客户端生成用于操作不同于所述目标区块链网络的一个或多个区块链网络的跨链数据的请求,其中,所述用于操作跨链数据的请求包括用于操作所述跨链数据的智能合约计算逻辑,由所述客户端设计用于操作所述跨链数据的所述智能合约计算逻辑,所述客户端提供具有隐私保护的通用智能合约服务以及跨链数据计算服务;
由所述客户端将所述用于操作跨链数据的请求发送至包括可信计算执行环境TEE的智能合约服务提供者,其中,所述智能合约服务提供者处于所述目标区块链网络之外;以及
由所述客户端从所述智能合约服务提供者接收结果,其中,所述结果是由所述TEE利用所述智能合约服务提供者获得的所述跨链数据生成的。
12.根据权利要求11所述的计算机实施的方法,还包括:
由所述客户端将接收到的所述结果发送至所述目标区块链网络。
13.根据权利要求11所述的计算机实施的方法,还包括:
在将所述用于操作跨链数据的请求发送至所述智能合约服务提供者之前,由所述客户端验证所述智能合约服务提供者包括所述TEE。
14.根据权利要求13所述的计算机实施的方法,还包括:
由所述客户端验证所述TEE包括如下的虚拟机,所述虚拟机能够操作以执行用于操作所述跨链数据的请求中的所述智能合约计算逻辑。
15.根据权利要求11所述的计算机实施的方法,其中,所述客户端包括软件开发工具包SDK。
16.根据权利要求11所述的计算机实施的方法,其中,所述结果是由所述TEE利用私钥签名的,所述方法还包括由所述客户端利用与所述私钥对应的公钥来解密接收到的所述结果。
17.根据权利要求11所述的计算机实施的方法,还包括:
在将所述用于操作跨链数据的请求发送至所述智能合约服务提供者之前,由所述客户端加密所述用于操作跨链数据的请求。
18.根据权利要求11所述的计算机实施的方法,其中,所述跨链数据是从两个或更多个区块链网络获得的。
19.一种非暂时性计算机可读存储介质,耦接至一台或多台计算机并且配置有能够由所述一台或多台计算机执行以实现以下的指令:
由包括可信计算执行环境TEE的智能合约服务提供者,从与目标区块链网络相关联的客户端接收用于操作不同于所述目标区块链网络的一个或多个区块链网络的跨链数据的请求,其中,所述用于操作跨链数据的请求包括用于操作所述跨链数据的智能合约计算逻辑,所述智能合约计算逻辑是由所述客户端自行设计的,所述客户端提供具有隐私保护的通用智能合约服务以及跨链数据计算服务,所述智能合约服务提供者处于所述目标区块链网络之外;
由所述智能合约服务提供者向数据访问服务提供者发送对所述跨链数据的请求;
由所述智能合约服务提供者从所述数据访问服务提供者接收所述跨链数据;
由所述TEE利用所述跨链数据生成结果;以及
由所述智能合约服务提供者将所述结果返回给所述客户端。
20.根据权利要求19所述的非暂时性计算机可读存储介质,其中,所述结果是由所述TEE利用所述跨链数据执行所述智能合约计算逻辑而生成的。
21.根据权利要求19所述的非暂时性计算机可读存储介质,还配置有能够由所述一台或多台计算机执行以实现以下的指令:
由所述智能合约服务提供者向所述客户端证明所述TEE包括如下的虚拟机,所述虚拟机能够操作以执行所述用于操作跨链数据的请求中的所述智能合约计算逻辑。
22.根据权利要求19所述的非暂时性计算机可读存储介质,还配置有能够由所述一台或多台计算机执行以实现以下的指令:
在从所述客户端接收用于操作跨链数据的请求之前,由所述智能合约服务提供者向所述客户端证明所述智能合约服务提供者包括所述TEE。
23.根据权利要求19所述的非暂时性计算机可读存储介质,还配置有能够由所述一台或多台计算机执行以实现以下的指令:
由所述智能合约服务提供者向所述数据访问服务提供者证明所述智能服务提供者包括所述TEE;以及
由所述智能合约服务提供者验证所述数据访问服务提供者包括TEE。
24.根据权利要求19所述的非暂时性计算机可读存储介质,还配置有能够由所述一台或多台计算机执行以实现以下的指令:
由所述智能合约服务提供者将所述结果上传到所述目标区块链网络。
25.根据权利要求24所述的非暂时性计算机可读存储介质,还配置有能够由所述一台或多台计算机执行以实现以下的指令:
在将所述结果上传到所述目标区块链网络之前,由所述智能合约服务提供者向所述目标区块链网络证明所述智能合约服务提供者包括所述TEE。
26.根据权利要求19所述的非暂时性计算机可读存储介质,其中,所述智能合约服务提供者包括基于云的服务器。
27.根据权利要求19所述的非暂时性计算机可读存储介质,其中,所述结果是由所述TEE利用私钥签名的。
28.根据权利要求19所述的非暂时性计算机可读存储介质,其中,所述跨链数据是从两个或更多个区块链网络获得的。
29.一种非暂时性计算机可读存储介质,耦接至一台或多台计算机并且配置有能够由所述一台或多台计算机执行以实现以下的指令:
由与目标区块链网络相关联的客户端生成用于操作不同于所述目标区块链网络的一个或多个区块链网络的跨链数据的请求,其中,所述用于操作跨链数据的请求包括用于操作所述跨链数据的智能合约计算逻辑,由所述客户端设计用于操作所述跨链数据的所述智能合约计算逻辑,所述客户端提供具有隐私保护的通用智能合约服务以及跨链数据计算服务;
由所述客户端将用于操作所述跨链数据的请求发送至包括可信计算执行环境TEE的智能合约服务提供者,其中,所述智能合约服务提供者处于所述目标区块链网络之外;以及
由所述客户端从所述智能合约服务提供者接收结果,其中,所述结果是由所述TEE利用所述智能合约服务提供者获得的所述跨链数据生成的。
30.根据权利要求29所述的非暂时性计算机可读存储介质,还配置有能够由所述一台或多台计算机执行以实现以下的指令:
由所述客户端将接收到的所述结果发送至所述目标区块链网络。
31.根据权利要求29所述的非暂时性计算机可读存储介质,还配置有能够由所述一台或多台计算机执行以实现以下的指令:
在将所述用于操作跨链数据的请求发送至所述智能合约服务提供者之前,由所述客户端验证所述智能合约提供者包括所述TEE。
32.根据权利要求29所述的非暂时性计算机可读存储介质,还配置有能够由所述一台或多台计算机执行以实现以下的指令:
由所述客户端验证所述TEE包括如下的虚拟机,所述虚拟机能够操作以执行用于操作所述跨链数据的请求中的所述智能合约计算逻辑。
33.根据权利要求29所述的非暂时性计算机可读存储介质,其中,所述客户端包括软件开发工具包SDK。
34.根据权利要求29所述的非暂时性计算机可读存储介质,其中,所述结果是由所述TEE利用私钥签名的,还配置有能够由所述一台或多台计算机执行以实现以下的指令:
由所述客户端利用与所述私钥对应的公钥来解密接收到的所述结果。
35.根据权利要求29所述的非暂时性计算机可读存储介质,还配置有能够由所述一台或多台计算机执行以实现以下的指令:
在将所述用于操作跨链数据的请求发送至所述智能合约服务提供者之前,由所述客户端加密所述用于操作跨链数据的请求。
36.根据权利要求30所述的非暂时性计算机可读存储介质,其中,所述跨链数据是从两个或更多个区块链网络获得的。
37.一种用于提供智能合约服务的系统,包括:
接口,配置为从与目标区块链网络相关联的客户端接收用于操作不同于所述目标区块链网络的一个或多个区块链网络的跨链数据的请求,其中,所述用于操作跨链数据的请求包括用于操作所述跨链数据的智能合约计算逻辑,所述智能合约计算逻辑是由所述客户端自行设计的,所述客户端提供具有隐私保护的通用智能合约服务以及跨链数据计算服务;其中,所述系统处于所述目标区块链网络之外;以及
可信计算执行环境TEE,其中,所述TEE包括:
一台或多台计算机;以及
一个或多个计算机可读存储器,耦接至所述一台或多台计算机并且配置有能够由所述一台或多台计算机执行以实现以下的指令:
向数据访问服务提供者发送对所述跨链数据的请求;
从所述数据访问服务提供者接收所述跨链数据;以及
利用所述跨链数据生成结果;以及
其中,所述接口配置为将所述结果返回至所述客户端。
38.根据权利要求37所述的系统,其中,所述结果是由所述TEE利用所述跨链数据执行所述智能合约计算逻辑生成的。
39.根据权利要求37所述的系统,其中,所述计算机可读存储器还配置有能够由所述一台或多台计算机执行以实现以下的指令:
由所述智能合约服务提供者向所述客户端证明所述TEE包括如下的虚拟机,所述虚拟机能够操作以执行所述用于操作跨链数据的请求中的所述智能合约计算逻辑。
40.根据权利要求37所述的系统,其中,所述计算机可读存储器还配置有能够由所述一台或多台计算机执行以实现以下的指令:
在从所述客户端接收用于操作跨链数据的请求之前,由所述智能合约服务提供者向所述客户端证明所述智能合约服务提供者包括所述TEE。
41.根据权利要求37所述的系统,其中,所述计算机可读存储器还配置有能够由所述一台或多台计算机执行以实现以下的指令:
由所述智能合约服务提供者向所述数据访问服务提供者证明所述智能合约服务提供者包括所述TEE;以及
由所述智能合约服务提供者验证所述数据访问服务提供者包括TEE。
42.根据权利要求37所述的系统,其中,所述计算机可读存储器还配置有能够由所述一台或多台计算机执行以实现以下的指令:
由所述智能合约服务提供者将所述结果上传到所述目标区块链网络。
43.根据权利要求42所述的系统,其中,所述计算机可读存储器还配置有能够由所述一台或多台计算机执行以实现以下的指令:
在将所述结果上传至所述目标区块链网络之前,由所述智能合约服务提供者向所述目标区块链网络证明所述智能合约服务提供者包括所述TEE。
44.根据权利要求37所述的系统,其中,所述智能合约服务提供者包括基于云的服务器。
45.根据权利要求37所述的系统,其中,所述结果是由所述TEE利用私钥签名的。
46.根据权利要求37所述的系统,其中,所述跨链数据是从两个或更多个区块链网络获得的。
47.一种用于提供智能合约服务的系统,包括:
一台或多台计算机;以及
一个或多个计算机可读存储器,耦接至所述一台或多台计算机并且配置有能够由所述一台或多台计算机执行以实现以下的指令:
由与目标区块链网络相关联的客户端生成用于操作不同于所述目标区块链网络的一个或多个区块链网络的跨链数据的请求,其中,所述用于操作跨链数据的请求包括用于操作所述跨链数据的智能合约计算逻辑,由所述客户端设计用于操作所述跨链数据的所述智能合约计算逻辑,所述客户端提供具有隐私保护的通用智能合约服务以及跨链数据计算服务;
由所述客户端将所述用于操作跨链数据的请求发送至包括可信计算执行环境TEE的智能合约服务提供者,其中,所述智能合约服务提供者处于所述目标区块链网络之外;以及
由所述客户端从所述智能合约服务提供者接收结果,其中,所述结果由所述TEE利用所述智能合约服务提供者获得的所述跨链数据生成。
48.根据权利要求47所述的系统,其中,所述计算机可读存储器还配置有能够由所述一台或多台计算机执行以实现以下的指令:
由所述客户端将接收到的所述结果发送至所述目标区块链网络。
49.根据权利要求47所述的系统,其中,所述计算机可读存储器还配置有能够由所述一台或多台计算机执行以实现以下的指令:
在将所述用于操作跨链数据的请求发送至所述智能合约服务提供者之前,由所述客户端验证所述智能合约服务提供者包括所述TEE。
50.根据权利要求47所述的系统,其中,所述计算机可读存储器还配置有能够由所述一台或多台计算机执行以实现以下的指令:
由所述客户端验证所述TEE包括如下的虚拟机,所述虚拟机能够操作以执行用于操作所述跨链数据的请求中的所述智能合约计算逻辑。
51.根据权利要求47所述的系统,其中,所述客户端包括软件开发工具包SDK。
52.根据权利要求47所述的系统,其中,所述结果是由所述TEE利用私钥签名的,所述计算机可读存储器还配置有能够由所述一台或多台计算机执行以实现以下的指令:
由所述客户端利用与所述私钥对应的公钥来解密接收到的所述结果。
53.根据权利要求47所述的系统,其中,所述计算机可读存储器还配置有能够由所述一台或多台计算机执行以实现以下的指令:
在将所述用于操作跨链数据的请求发送至所述智能合约服务提供者之前,由所述客户端加密所述用于操作跨链数据的请求。
54.根据权利要求47所述的系统,其中,所述跨链数据是从两个或更多个区块链网络获得的。
Publications (2)
| Publication Number | Publication Date |
|---|---|
| HK40017317A HK40017317A (zh) | 2020-09-18 |
| HK40017317B true HK40017317B (zh) | 2023-12-29 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN110520884B (zh) | 基于可信执行环境的链外智能合约服务 | |
| US10691835B1 (en) | Verifying integrity of data stored in a consortium blockchain using a public sidechain | |
| EP3577853B1 (en) | Smart contract whitelists | |
| WO2019179542A2 (en) | Improving integrity of communications between blockchain networks and external data sources | |
| CN111066019B (zh) | 处理存储在区块链网络中的数据元素 | |
| JP2020528224A (ja) | 信頼できる実行環境におけるスマート契約動作のセキュアな実行 | |
| CN110462621A (zh) | 在区块链网络中管理敏感数据元素 | |
| JP6921266B2 (ja) | パブリックサイドチェーンを使用してコンソーシアムブロックチェーンに記憶されたデータの完全性を検証すること | |
| HK40017317B (zh) | 基於可信执行环境的链外智能合约服务 | |
| HK40017317A (zh) | 基於可信执行环境的链外智能合约服务 | |
| HK40036090A (zh) | 使用公有侧链验证存储在联盟区块链中的数据的完整性 | |
| HK40036090B (zh) | 使用公有侧链验证存储在联盟区块链中的数据的完整性 | |
| HK40028812B (zh) | 处理存储在区块链网络中的数据元素 | |
| HK40028812A (zh) | 处理存储在区块链网络中的数据元素 |