首页> 中国专利> 基于区块链的隐私交易中提供隐私和安全保护的系统和方法

基于区块链的隐私交易中提供隐私和安全保护的系统和方法

摘要

提供了用于实施基于区块链的隐私交易的方法、系统和装置,包括编码在计算机存储介质上的计算机程序。所述方法之一包括:在隐私交易所涉及的多个(N个)区块链节点中的第一区块链节点处,将所述隐私交易发送至所述N个区块链节点中的多个第二区块链节点中的每个,其中,N至少为四;分别从所述第一区块链节点和所述第二区块链节点中的至少(N‑F)个区块链节点获得证明所述隐私交易的至少(N‑F)个签名,其中,F为不大于(N‑1)/2的最大整数;以及在所述第一区块链节点处,将与所述至少(N‑F)个签名相关联的所述隐私交易的哈希值提交给公有区块链的一个或多个区块链节点以添加到所述公有区块链中。

著录项

  • 公开/公告号CN112513914A

    专利类型发明专利

  • 公开/公告日2021-03-16

    原文格式PDF

  • 申请/专利权人 支付宝(杭州)信息技术有限公司;

    申请/专利号CN202080003649.2

  • 发明设计人 杨达一;夏凝;李康;

    申请日2020-07-03

  • 分类号G06Q40/04(20120101);G06F16/27(20190101);G06F16/23(20190101);G06F21/60(20130101);G06F21/64(20130101);

  • 代理机构11415 北京博思佳知识产权代理有限公司;

  • 代理人周嗣勇

  • 地址 310000 浙江省杭州市西湖区西溪路556号8层B段801-11

  • 入库时间 2023-06-19 10:14:56

说明书

技术领域

本申请总体上涉及用于为基于区块链的隐私交易提供隐私和安全保护的方法和设备。

背景技术

区块链通过将数据保存在彼此之间具有先后关系的一系列数据区块中而以去中心化方式提供数据存储。区块链由节点网络维护并更新,所述节点也用于验证数据。存储的数据可能涉及各方之间的交易,存储数据的区块链也可以称为记录这些交易的共享账本。

有效交易通常包括诸如发送方(例如,发送方账户地址),接收方(例如,接收方账户地址)和交易金额的要素。在传统的区块链系统中,为防止双花和其他欺诈活动,这些要素被明确公开以供验证,此类交易称为公开交易。在不进行隐私保护的情况下,这些公开交易被广播到所有区块链节点,以供他们验证和执行。

另一方面,隐私交易需要向非参与方隐藏一个或多个要素。提供隐私保护的一个现有提议为Quorum隐私交易。在发起方与一个或多个参与方之间的隐私交易中,对于每个参与方,发起方都需要使用对称密钥对交易进行加密,使用参与方的公钥对对称密钥进行加密,然后将两种加密都发送给参与方。发起方和参与方通过他们相应的区块链节点进行隐私交易。然后,交易的哈希值可以由区块链节点进行共识验证并打包到区块链中。

提供隐私保护的另一现有提议为Fabric隐私交易。对于发起方与一个或多个参与方之间的隐私交易,通过链码(chaincode)指定参与方。由订购者节点订购的隐私交易的交易哈希值被记录在公开账本中,而隐私交易的交易信息被存储在背书对等节点中。发起方和参与方可以将隐私交易信息推送到背书对等节点或从背书对等节点提取隐私交易信息,以执行隐私交易。

现有区块链技术通常将对隐私交易的控制集中在几个专用节点(例如Quorum中发起方的对应节点或Fabric中的背书对等节点),并依赖于专用节点正常工作的假设。如果专用节点采取恶意行为并且未将隐私交易通知所有参与方或专用节点以其他方式变为未正常工作,则不知情参与方可能会因缺少隐私交易的交易信息而被阻止进行进一步的交易。缺少的信息可能与记录在公开账本上的隐私交易的表示形式冲突,这可指示涉及不知情参与方的隐私交易已完成。因此,对于希望进行隐私交易的各方,希望提供一种使具有隐私保护的交易得到足够的安全保护的基于区块链的机制。

发明内容

本文的各种实施例包括但不限于用于实施基于区块链的隐私交易的系统、方法和非暂时性计算机可读介质。

根据一些实施例,一种计算机实现的用于实施基于区块链的隐私交易的方法,包括:在隐私交易所涉及的多个(N个)区块链节点中的第一区块链节点处,将所述隐私交易发送至所述N个区块链节点中的多个第二区块链节点中的每个,其中,N至少为四;在所述第一区块链节点处,分别从所述第一区块链节点和所述第二区块链节点中的至少(N-F)个区块链节点获得证明所述隐私交易的至少(N-F)个签名,其中,F为不大于(N-1)/2的最大整数;以及在所述第一区块链节点处,将与所述至少(N-F)个签名相关联的所述隐私交易的哈希值提交给公有区块链的一个或多个区块链节点以添加到所述公有区块链中。

根据其他实施例,所述隐私交易包括交易信息,所述交易信息包括所述隐私交易的一个或多个发送方、所述隐私交易的一个或多个接收方以及所述隐私交易的一个或多个交易金额。

根据其他实施例,所述方法是根据原子广播协议执行的。

根据其他实施例,将所述隐私交易发送至所述多个第二区块链节点中的每个包括:用分别与所述多个第二区块链节点对应的多个公钥分别对所述隐私交易进行加密;将所述加密的隐私交易分别发送至所述多个第二区块链节点。

根据一些实施例,证明所述隐私交易包括:证明对所述隐私交易的接收和所述隐私交易的有效性。

根据其他实施例,所述签名包括:用与所述第一区块链节点或所述第二区块链节点对应的私钥对所述隐私交易的加密。

根据其他实施例,获得所述至少(N-F)个签名包括:分别从所述N个区块链节点中的(N-F)个不同的区块链节点获得至少(N-F)个一致且有效的签名。

根据其他实施例,所述(N-F)个签名之一来自所述第一区块链节点;其他(N-F-1)个签名分别来自所述多个第二区块链节点。

根据一些实施例,将与所述至少(N-F)个签名相关联的所述隐私交易的哈希值提交给所述公有区块链的所述一个或多个区块链节点以添加到所述公有区块链中,包括:将区块链交易发送到所述公有区块链的所述一个或多个区块链节点,以添加到所述公有区块链中,所述区块链交易包括所述隐私交易的交易哈希值、所述至少(N-F)个签名、以及与所述N个区块链节点对应的组标识,其中,当所述组标识存储到所述公有区块链中时,用作向所述N个区块链节点提供的已成功完成对所述隐私交易的共识验证的通知。

根据其他实施例,所述方法还包括:在所述第一区块链节点处从所述公有区块链获得所述隐私交易;以及在所述第一区块链节点处通过验证所获得的隐私交易中包括的签名的数量是否达到至少(N-F)个来验证所述隐私交易。

根据其他实施例,所述方法还包括:在所述第一区块链节点处,根据存储在所述公有区块链中的所述隐私交易相对于存储在所述公有区块链中的其他隐私交易和公开交易的顺序在本地执行所述隐私交易。

根据其他实施例,所述方法还包括:在所述第一区块链节点处,从发出请求的区块链节点接收同步请求;在所述第一区块链节点处,确定所述发出请求的区块链节点是否为所述N个区块链节点之一;响应于确定所述发出请求的区块链节点为所述N个区块链节点之一,在所述第一区块链节点处,经由非区块链通道向所述发出请求的区块链节点发送所述隐私交易。

根据一些实施例,所述发出请求的区块链节点为所述N个区块链节点中的F个未正常工作的区块链节点之一。

根据其他实施例,一种用于实施基于区块链的隐私交易的系统,包括:一个或多个处理器;以及耦接到所述一个或多个处理器并且其上存储有指令的一个或多个计算机可读存储器,所述指令可由所述一个或多个处理器执行以执行前述任一实施例所述的方法。

根据一些实施例,一种用于实施基于区块链的隐私交易的装置,包括用于执行前述任一实施例所述的方法的多个模块。

根据一些实施例,一种存储有指令的非暂时性计算机可读介质,当所述指令被设备的处理器执行时,促使所述设备执行前述任一实施例所述的方法。

根据其他实施例,一种用于实施基于区块链的隐私交易的系统,包括:一个或多个处理器;以及一个或多个计算机可读存储器,其耦接到所述一个或多个处理器并且配置有可由所述一个或多个处理器执行以促使所述系统执行操作的指令。所述操作可包括:在参与隐私交易的多个(N个)区块链节点中的第一区块链节点处,将所述隐私交易发送至所述N个区块链节点中的多个第二区块链节点中的每个,其中,N至少为四;在所述第一区块链节点处,分别从所述第一区块链节点和所述第二区块链节点中的至少(N-F)个区块链节点获得证明所述隐私交易的至少(N-F)个签名,其中,F为不大于(N-1)/2的最大整数;以及在所述第一区块链节点处,将与所述至少(N-F)个签名相关联的所述隐私交易的哈希值提交给公有区块链的一个或多个区块链节点以添加到所述公有区块链中。

根据其他实施例,一种用于实施基于区块链的隐私交易的非暂时性计算机可读存储介质,所述存储介质配置有可由所述一个或多个处理器执行以促使所述一个或多个处理器执行操作的指令。所述操作可包括:在参与隐私交易的多个(N个)区块链节点中的第一区块链节点处,将所述隐私交易发送至所述N个区块链节点中的多个第二区块链节点中的每个,其中,N至少为四;在所述第一区块链节点处,分别从所述第一区块链节点和所述第二区块链节点中的至少(N-F)个区块链节点获得证明所述隐私交易的至少(N-F)个签名,其中,F为不大于(N-1)/2的最大整数;以及在所述第一区块链节点处,将与所述至少(N-F)个签名相关联的所述隐私交易的哈希值提交给公有区块链的一个或多个区块链节点以添加到所述公有区块链中。

根据其他实施例,一种用于实施基于区块链的隐私交易的装置可与参与多个(N个)区块链节点之间的隐私交易的第一区块链节点相关联。所述装置可包括:发送模块,用于将所述隐私交易发送至所述N个区块链节点中的多个第二区块链节点中的每个,其中,N至少为四;获得模块,用于分别从所述第一区块链节点和所述第二区块链节点中的至少(N-F)个区块链节点获得证明所述隐私交易的至少(N-F)个签名,其中,F为不大于(N-1)/2的最大整数;以及提交模块,用于将与所述至少(N-F)个签名相关联的所述隐私交易的哈希值提交给公有区块链的一个或多个区块链节点以添加到所述公有区块链中。

本文中公开的实施例具有一个或多个技术效果。在一些实施例中,公开了隐私交易递送和接收协议。参与隐私交易的各方的区块链节点可以遵循递送和接收协议来进行隐私交易,以保护隐私和安全。在其他实施例中,隐私交易递送和接收协议满足具有以下特性的原子广播协议:统一协议、有效性和统一总顺序。在一些实施例中,隐私交易的表示形式被记录到公有区块链以确保对隐私交易的发生的公开通知和识别,同时隐私交易的交易信息不被公有区块链得知以提供隐私保护。在一个实施例中,隐私交易的交易信息(例如,诸如发送方、接收方和交易金额之类的详细信息)在参与隐私交易的各方或其区块链节点之间传输并且可被其访问,而不被未参与隐私交易的各方或其区块链节点得知。在另一实施例中,可以通过公有区块链的节点来验证隐私交易的有效性。从而可以防止双花和其他欺诈行为。在另一实施例中,进行隐私交易的所有各方的区块链节点都被通知并因此同步到相同状态。在另一实施例中,提供了一种用于方便且安全地创建和管理这种隐私交易的方法。在其他实施例中,要求收集大于隐私交易的参与方的区块链节点的阈值百分比的确认(例如,就签名而言)并将其存储到公有区块链中,以防止发起方对隐私交易的恶意行为。在其他实施例中,根据组分配,参与隐私交易的各方可以识别参与隐私交易的其他方,获得其公共密钥以验证其签名,并在隐私交易的交易哈希值被打包到公有区块链中时被通知隐私交易的发生。因此,提高了隐私交易的安全性和隐私保护。

本文公开的系统、方法和非暂态计算机可读介质的这些和其他特征,以及结构的相关元件的功能和操作方法以及零件的组合及制造的经济性,在参考附图考虑以下描述和所附权利要求时将变得更加明显,所有这些附图、描述和权利要求均形成本文的一部分,其中,相似的附图标记指代各个附图中的相应部分。然而,应该明确理解,附图仅用于示例性和说明性,而不旨在限制。

附图说明

图1示出了根据一些实施例的用于实施基于区块链的隐私交易的系统。

图2示出了根据一些实施例的用于实施基于区块链的交易的框架。

图3示出了根据一些实施例的用于实施基于区块链的交易的递送方法的流程图。

图4示出了根据一些实施例的用于实施基于区块链的交易的接收方法的流程图。

图5示出了根据一些实施例的用于实施基于区块链的隐私交易的方法的流程图。

图6示出了根据一些实施例的用于实施基于区块链的隐私交易的装置的框图。

图7示出了可实施本文描述的任何实施例的计算机系统的框图。

具体实施方式

图1示出了根据一些实施例的区块链网络100的示例。如图所示,区块链网络100可以包括耦接至区块链系统112的一个或多个客户端设备(例如,节点A、节点B等)。客户端设备可以包括轻节点。轻节点可以不下载完整的区块链,而是可以只下载区块头以验证区块链交易的真实性。轻节点可以由全节点(例如,区块链系统112中的节点)服务并有效地依赖于全节点以访问区块链的更多功能。轻节点可以通过安装适当的软件在诸如笔记本电脑、移动电话等电子设备中实现。

区块链系统112可以包括多个区块链节点(例如,节点1、节点2、节点3、节点4、节点i等),这些节点可以包括全节点。全节点可以下载每个区块和区块链交易,并根据区块链的共识规则检查他们。区块链节点可以形成网络(例如,点对点网络(peer-to-peernetwork)),一个区块链节点与另一个区块链节点通信。如图所示的区块链节点的顺序和数量只是示例性的并且是为了简单说明。区块链节点可以在服务器、计算机等中实现。例如,区块链节点可以在服务器集群中实现。服务器的集群可以采用负载平衡。每个区块链节点可以对应于经由各种类型的通信方法诸如TCP/IP耦接在一起的一个或多个物理硬件设备或虚拟设备。根据分类,区块链节点也可以称为全节点、Geth节点、共识节点等。

客户端设备和区块链节点中的每一个可以安装有适当的软件(例如,应用编程接口)和/或硬件(例如,有线、无线连接)以访问区块链网络100的其他设备。通常,客户端设备和区块链节点可以通过一个或多个有线或无线网络(例如,互联网)相互通信,数据可以通过所述一个或多个有线或无线网络传输。客户端设备和区块链节点中的每一个可以包括一个或多个处理器和耦接至所述一个或多个处理器的一个或多个存储器。存储器可以是非暂态的且计算机可读的,并且配置有可由一个或多个处理器执行的指令,以使所述一个或多个处理器执行本文所述的操作。指令可以存储在存储器中,或者可以通过通信网络下载,而无需存储在存储器中。尽管客户端设备和区块链节点在此附图中示出为单独的组件,但应认识到,这些系统和设备可以作为单个设备或耦接在一起的多个设备来实现。也就是说,客户端设备(例如,节点A)可以交替集成到区块链节点(例如,节点1)中。

客户端设备诸如节点A和节点B可以安装有适当的区块链软件以发起、转发或访问区块链交易。节点A可以通过与节点1或者一个或多个其他区块链节点的通信来访问区块链,节点B可以通过与节点2或者一个或多个其他区块链节点的通信来访问区块链。在区块链之外,节点A和节点B可以具有其他通信信道(例如,不经过节点1和节点2的常规互联网通信)。在一些实施例中,节点A可以通过节点1或类似节点向区块链提交区块链交易,以请求将区块链交易添加到区块链中。

在一个实施例中,提交的区块链交易可以包括各方之间的金融交易。在另一实施例中,提交的区块链交易可以包括更新数据存储的数据更新事件。例如,提交的区块链交易可以包括用于部署在区块链上的区块链合约(例如,智能合约)。对于另一示例,提交的区块链交易可以包括用以调用已部署区块链合约的请求。在本文中,术语“区块链交易”可以通过区块链系统被实现并被记录到区块链中。区块链交易可以包括,例如,金融交易、用于部署或调用区块链合约的区块链合约交易、更新区块链的状态(例如,世界状态)的区块链交易等。区块链交易未必涉及金融交易。金融交易可以是基于区块链的,并且可以是隐私交易或公开交易。因此,隐私交易、公开交易和相关术语(例如交易金额、交易信息等)可以指对应的金融交易。

区块链合约可以包括以代码行编写的用户之间的合约条款。区块链合约可以是一种计算机协议,其旨在以数字方式促进、验证或施行合约的谈判或履行。在一些实施例中,为了处理区块链合约,区块链网络的每个节点运行对应的虚拟机(VM)并执行相同的指令。虚拟机是基于计算机体系架构并提供物理计算机的功能的计算机系统的软件仿真。区块链环境中的虚拟机可以被理解为被设计用作区块链合约的运时环境的系统。

区块链可由区块链节点维护,区块链节点可各自包括存储器或耦接到存储器。在一些实施例中,存储器可以存储池数据库(pool database)。池数据库可以被分布式方式的多个区块链节点访问。例如,池数据库可以分别被存储在区块链节点的存储器中。池数据库可以存储由类似于节点A的一个或多个客户端设备提交的多个区块链交易。

在一些实施例中,在接收到未确认的区块链交易的区块链交易请求后,接收方区块链节点可以对区块链交易进行一些初步验证。例如,节点1可以在从节点A接收到区块链交易后执行初步验证。一旦被验证,区块链交易就可以被存储在接收方区块链节点(例如,节点1)的池数据库中,该接收方区块链节点也可以将该区块链交易转发给一个或多个其他区块链节点(例如,节点3、节点4)。一个或多个其他区块链节点可以重复接收方节点进行的过程。

一旦对应池数据库中的区块链交易达到一定水平(例如,阈值数量),区块链节点就可以各自根据共识规则或其他规则来验证对应池数据库中的一批区块链交易。如果区块链交易涉及区块链合约(例如,智能合约),区块链节点可以在本地执行区块链合约。区块链合约可以包括用户编写的合约代码。区块链交易处理的一个示例可以在合约代码中编码数据以用于数据存储(通过合约部署)和检索(通过访问或执行合约)。

根据共识规则成功验证其批次的区块链交易的特定区块链节点可以将区块链交易打包到其区块链的本地副本中,并将结果多播到其他区块链节点。该特定区块链节点可以是首先成功完成验证、获得验证权限、或者基于其他共识规则等确定的区块链节点。然后,其他区块链节点可以在本地执行区块链交易,相互验证执行结果(例如,通过执行哈希计算),以及将其区块链的副本与特定区块链节点的副本同步。通过更新其区块链的本地副本,其他区块链节点可以将区块链交易中的此类信息写入各自的本地存储器中。因此,区块链合约可以部署在区块链上。如果验证在某些点失败,则区块链交易被拒绝。

部署的区块链合约可以具有地址,根据该地址可以访问部署的合约。区块链节点可以通过向区块链合约输入某些参数来调用部署的区块链合约。在一个实施例中,节点B可以请求调用部署的区块链合约来执行各种操作。例如,可以检索存储在部署的区块链合约中的数据。另一示例,数据可以被添加到部署的区块链合约。再一个示例,可以执行在部署的区块链合约中指定的金融交易。尽管上文所述,其他类型的区块链系统和相关的共识规则可应用于所公开的区块链系统。

在一些实施例中,区块链系统112包括维护公有区块链的区块链节点。在一个实施例中,提交给区块链系统112以添加到公有区块链的公开交易对于所有区块链节点都是可见的,以供验证和执行。在另一实施例中,隐私交易可以仅涉及代表参与隐私交易的各方的多个区块链节点。对于这种隐私交易,尽管仍可以像公开交易那样提交隐私交易的表示形式以添加到公有区块链,但是隐私交易的交易信息可以不被非参与方及其区块链节点知晓。在这种情况下,可以在有限数量的区块链节点(例如,参与隐私交易的各方的区块链节点)之间传输隐私交易的交易信息。也就是说,与公开交易不同,隐私交易可使交易信息的至少一部分(例如,发送方、接收方和交易信息)对交易各方已知,以供所述各方的相应区块链节点进行验证和执行,而不向非参与方广播。对于所有区块链节点可见的公有区块链可以记录隐私交易的证明,例如隐私交易的交易哈希值和交易信息的加密,但是没有显式地存储交易信息的至少一部分。交易哈希值是这样的哈希值:该哈希值可以是将哈希算法应用于交易的数据(例如,交易信息)的数值结果。例如,节点1和节点2之间的隐私交易的交易哈希值可以记录到公有区块链中,并且对节点1、节点2、节点3、节点4等可见,而隐私交易的交易信息可以仅被节点1和节点2知晓。为此,节点1和节点2可以在区块链之外进行通信,并将隐私交易的交易信息保密,或者在区块链上进行通信,但仅允许对某些节点可见(例如,通过公-私密钥加密)。

图2示出了根据一些实施例的用于实施区块链合约的框架。关于图2的描述将在下文中针对在公有区块链上部署和调用可公开访问的区块链合约。例如,需要基于共识进行公开验证并且存储的信息(例如,关于参与隐私交易的各方、隐私交易的交易哈希值)可以被包括在区块链合约中,以存储在公有区块链中。

在一些实施例中,区块链合约可以从其在源代码中的构造开始。例如,用户A可以将区块链合约编程为源代码,并将源代码输入到用户端应用211的接口。在该附图中,用户端应用211被安装在节点A中。为了部署区块链合约,节点A可以使用相应的编译器编译区块链合约源代码,编译器212将源代码转换成字节码。在接收到字节码后,用户端应用可以生成包括字节码的区块链交易A,并将该区块链交易提交给一个或多个区块链节点。例如,区块链交易A可以包括诸如以下的信息:随机数(例如,交易序列号)、发送者(例如,用户A的账户的地址)、接收者(例如,如果部署区块链合约则为空)、GasLimit(例如,交易消费的交易费用的上限)、GasPrice(例如,发送方提供的交易费用)、价值(例如,交易金额)、数据(例如,字节码)等。节点A可以利用各种加密方法对区块链交易A进行签名以表示节点A的背书。节点A可以通过远程过程调用(RPC)接口213将区块链交易A发送至区块链节点(例如,节点1)。RPC是一种协议,第一程序(例如,用户端应用)可以使用该协议从位于网络上的另一台计算机(例如,区块链节点)的第二程序请求服务,而无需了解网络的细节。当第一程序使得过程在不同的地址空间中(例如,在节点1上)执行时,就如同正常(本地)过程调用,而无需程序员显式地编码远程交互的细节。

在接收到区块链交易A时,如上文所述,节点1可以验证区块链交易A是否有效。例如,可以验证节点A的签名和其他格式。如果验证成功,节点1可以将区块链交易广播到包括其他各种区块链节点的区块链网络。一些区块链节点可以参与区块链交易的挖掘过程。区块链交易可以由特定节点挑选以进行共识验证从而打包到新区块中。该特定节点可以为区块链合约创建与合约账号地址相关的合约账号。该特定节点可以触发其本地VM执行区块链合约,从而将区块链合约部署到其区块链的本地副本,并更新区块链中的账号状态。如果该特定节点成功挖掘新区块,则该特定节点可以将新区块广播至其他区块链节点。其他区块链节点可以验证由该特定区块链节点挖掘的新区块。如果达成共识,区块链交易将被分别打包到由区块链节点维护的区块链的本地副本中。区块链节点可以类似地触发其本地虚拟机(例如,本地VM 1、本地VM i、本地VM 2)以执行区块链合约,从而调用部署在区块链的本地副本(例如,本地区块链副本1、本地区块链副本i、本地区块链副本2)上的区块链合约,并进行相应的更新。每个区块链节点的硬件机器可以访问一个或多个虚拟机,所述虚拟机可以是相应区块链节点的一部分或耦接到相应区块链节点。每次可以触发相应的本地VM以执行区块链交易A中的区块链合约。同样,新区块中的所有其他区块链交易也将被执行。轻节点也可以同步到更新后的区块链。

当区块链节点想要对已部署的区块链合约执行操作(例如,添加数据、接受要约)时,区块链节点可能需要调用区块链合约。在一些实施例中,用户B可以编程指令以调用源代码中的区块链合约,并将源代码输入到用户端应用221的接口。为了调用区块链合约,节点B可以使用相应编译器编译指令,编译器将源代码转换成字节码。在接收到字节码后,用户端应用可以生成包括字节码的区块链交易B,并将区块链交易提交给一个或多个区块链节点。类似地,区块链交易B可以包括诸如以下的信息:随机数(例如,交易序列号)、发送者(例如,用户B的账户的地址)、接收者(例如,部署的区块链合约的地址)、GasLimit(例如,交易消费的交易费用的上限)、GasPrice(例如,发送方提供的交易费用)、价值(例如,交易金额)、数据(例如,字节码)等。节点B可以利用各种加密方法对区块链交易B进行签名以表示节点B的背书。节点B可以通过远程过程调用(RPC)接口213将区块链交易B发送至区块链节点(例如,节点2)。

在接收到区块链交易B时,节点2可以验证区块链交易B是否有效。例如,可以验证节点B的签名和其他格式。如果验证成功,节点2可以将区块链交易广播到包括其他各种区块链节点的区块链网络。由节点B发送的区块链交易可以被特定节点选取来进行共识验证,以打包成新区块。该特定节点可以触发其本地虚拟机以执行区块链合约,从而调用部署在其区块链的本地副本上的区块链合约,并更新区块链中的账号状态。如果该特定节点成功挖掘新区块,则该特定节点可以将新区块广播至其他区块链节点。其他区块链节点可以验证由该特定区块链节点挖掘的新区块。如果达成共识,则将区块链交易B分别打包到由区块链节点维护的区块链本地副本中。区块链节点可以类似地触发其本地虚拟机以执行区块链合约,从而调用部署在区块链本地副本上的区块链合约并进行相应的更新。每个区块链节点的硬件机器可以访问一个或多个虚拟机,所述虚拟机可以是相应区块链节点的一部分或耦接到相应区块链节点。每次可以触发相应的本地VM以执行区块链交易A中的区块链合约。同样,新区块中的所有其他区块链交易也将被执行。轻节点也可以同步到更新后的区块链。

图3示出了根据一些实施例的用于实施基于区块链的交易的递送方法的流程图。以下呈现的方法的操作旨在是说明性的。取决于实施方式,所述方法可以包括以各种次序或并行执行的附加的、更少的或可选的步骤。

在一些实施例中,隐私交易可以涉及多方。例如,一方可以将付款转账给一个或多个其他方。一方可以是但不限于个人、实体、账户等。第一方是知道交易信息的一方,该交易信息可以包括发送方的信息(例如,发送方账户地址)、接收方的信息(例如,接收方账户地址)和交易金额。第一方可以是发起隐私交易的一方,也可以是隐私交易的发送方或接收方等。隐私交易可能需要向非参与方隐藏交易信息中的一个或多个要素。

区块链交易中的每一方可以具有一个或多个相应的区块链节点来实施区块链交易。在图3中,A代表第一区块链节点,而B、C和D代表第二区块链节点。A可属于第一方,而B,C,D可属于第二方。PA代表隐私交易。在一些实施例中,第一方可以使用可从设备(例如,移动电话、计算机)访问的账户来订购PA。该设备可以构成轻节点或全节点。本文描述的第二区块链节点可以代表参与PA的除了第一区块链节点之外的一部分或全部区块链节点。例如,如图3所示,A、B、C和D代表参与PA的所有区块链节点,其中A可以将一些资产转移到B、C和D。关于PA的步骤(例如,消息发送)由实线表示。每个隐私交易可涉及多个(N个)区块链节点。由于PA涉及A、B、C和D,因此PA的N为4。

在一些实施例中,A、B、C和D可以是与组标识相关联的组的预定组成员。组分配可以由管理员或替代角色确定,并存储在公有区块链中的区块链合约中。在该组中,A、B、C和D可执行各种隐私交易。与PA类似,PB代表另一隐私交易,而PC代表又一隐私交易。PB和PC可能都涉及A、B、C和D或者其中的一些,并且可以与PA类似地执行。关于PB的步骤由点线表示,而关于PC的步骤由点划线表示。PA将是以下描述的主要重点。

PXSY代表相应地证明隐私交易的各种签名。在此,“X”和“Y”可以分别是A、B或C。A、B和C可以证明自身发起的隐私交易和他们已接收到的隐私交易。例如,“PASB”代表B证明PA的签名,“PCSC”代表C证明PC的签名。在图3中,D未正常工作,因此不发送任何消息。在本文中,正常工作意味着无故障和诚实,而未正常工作意味着故障和/或恶意。可能的故障和/或恶意行为可包括:递送消息失败、消息递送延迟、消息递送无序、将任意消息递送到不同节点、违反协议等。

图3还示出了公有区块链及其区块的链。区块的链按顺序排列,其中新区块被添加到区块链并链接到链中最新的现有区块。公有区块链由区块链节点维护。公有区块链中存储的信息可由公有区块链的所有区块链节点访问,区块链节点可包括A、B、C、D和其他一些区块链节点。例如,隐私交易的交易哈希值可以存储到公有区块链,并且可以被所有区块链节点访问,因此所有区块链节点都知道隐私交易。隐私交易的交易信息(例如,明文形式的关于发送方、接收方、交易金额的信息)可能不会存储在公有区块链中,并且可能不被不参与隐私交易的其他区块链节点知晓。因此,交易信息可能仅对于参与方(例如,参与PA的区块链节点A、B、C和D)是已知的。

在一些实施例中,A可以将PA发送至参与PA的一个或多个第二方的一个或多个第二区块链节点。PA可以包括交易信息,该交易信息包括PA的一个或多个发送方、PA的一个或多个接收方以及PA的一个或多个交易金额。例如,PA的交易信息可以包括A发送$5,B发送$1,C接收$4,以及D接收$2。又例如,PA的交易信息可以包括A向B、C和D分别发送$2。在步骤311,A可以向B发送PA(例如,对应的交易信息)。在步骤312,A可以将PA发送给C。在步骤313,A可以向D发送PA。

在一些实施例中,步骤311、312和313的发送可以基于非对称密钥加密或另一种加密技术。例如,A可以分别用B、C和D的公钥对PA进行加密,并相应地将加密的PA发送给B、C和D。A、B、C和D的公钥可以是公开可用的。例如,公钥可以存储在公有区块链中并且可以从公有区块链访问。

在一些实施例中,在接收到PA时,B和C可以验证交易信息是否正确。B和C可以计算交易信息的表示形式(例如,哈希值)。哈希值可以被称为交易哈希值。附加地且可选地,所发送的PA可以进一步包括A已知的交易哈希值。例如,A可能已经计算了交易哈希值并将其包括在交易信息中。在接收到A已知的交易哈希值之后,B和C可以将自身计算的哈希值与A已知的交易哈希值进行比较以进行验证。无论哪种方式,如果验证了交易信息,则B和C中的每一个可以对交易哈希值进行签名(例如,通过使用其私钥加密的交易哈希值)并向A发送签名(例如,使用其私钥加密的交易哈希值)。如图3所示,在步骤321,向A发送PASB,在步骤322,向A发送PASC。签名表示第二方确认交易信息。A还可以使用其自己的签名对交易哈希值进行签名以确认交易信息。由于D未正常工作(例如,故障或采取恶意行为),因此D可能不会响应于PA或发送错误消息。

在一些实施例中,在从第一区块链节点和第二区块链节点中的一个或多个区块链节点获得证明隐私交易的至少(N-F)个签名之后,A可以执行步骤331。对于PA,区块链节点(和关联方)的数量(N)为4,并且F是不大于(N-1)/2的最大整数。即,F是不大于1.5的整数,并且“至少(N-F)个”实际上是至少三个。A可以获得PASB、PASC和PASA(A自己证明PA的签名),从而获得最低要求的三个签名。如所描述的,签名可以包括使用与第一方或第二方对应的私钥对隐私交易的加密(例如,对隐私交易的交易信息的加密)。签名可以从对应方的角度证明对PA的接收和PA的有效性。在一些实施例中,获得至少(N-F)个签名包括分别从N个区块链节点中的(N-F)个不同的区块链节点分别获得至少(N-F)个一致且有效的签名。如果解密的签名显示出对应于隐私交易的相同交易哈希值,则可以确定一致性。如果签名可以通过对应方的公钥解密,则可以确定有效性。例如,PASA、PASB和PASC分别是来自三个不同区块链节点的三个一致且有效的签名。即使D向A发送错误消息(例如,PASD不一致),三个一致且有效的签名仍然足以使A执行步骤331。因此,该协议可以有效地容忍参与隐私交易的各方的多达F个未正常工作的区块链节点,其中该隐私交易涉及各方的N个区块链节点。

在步骤331,A可以提交PA以添加到公有区块链中。在一些实施例中,A可以向公有区块链的一个或多个区块链节点发送PA以添加到公有区块链中,PA包括PA的交易哈希值(例如,交易信息的哈希值)、至少(N-F)个签名、以及相应的组标识。由于交易信息经过哈希处理,因此实现了交易信息的隐私保护。如图3所示,可以对PA进行共识验证并将其打包到公有区块链的区块n中。

类似地,可以执行PB和PC并将它们分别打包到公有区块链的区块n+1和区块n+2中。在一些实施例中,用于在公开交易中存储隐私交易的顺序将确定隐私交易的本地执行的顺序。区块n在区块n+1之前,区块n+1在区块n+2之前。PA将首先在本地执行,之后是PB,然后是PC。所示顺序仅是示例。PA、PB和PC可以在任何时间点由A、B和C发起,并且它们存储在公有区块链中的顺序可以确定参考图4描述的本地执行的顺序。该顺序也可以相对于存储在公有区块链中的其他隐私交易和公开交易。对于存储在同一区块中的隐私交易和公开交易,还有一个连续顺序,其将用于本地执行顺序。

图4示出了根据一些实施例的用于实施基于区块链的交易的接收方法的流程图。以下呈现的方法的操作旨在是说明性的。取决于实施方式,所述方法可以包括以各种次序或并行执行的附加的、更少的或可选的步骤。图4中使用的框和符号遵循图3中的框和符号。另外,虚线圆圈“PX”表示D不具有对应的隐私交易的交易信息,此处的“X”可以是A、B或C。

在一些实施例中,公有区块链的每个区块链节点可以周期性地与公有区块链同步以更新公有区块链的本地副本。当区块n被同步时,每个区块链节点可能会知道PA(PA的交易哈希值和签名)。在所有区块链节点中,A、B、C和D中的每一个都可知晓PA涉及到其自身,因为PA的相应组标识(也与PA一起存储到公有区块链中)指向自己所属的组。因此,A、B、C和D可以通过以下来验证PA:(1)验证存储在公有区块链中的PA中包括的签名数量是否达到至少(N-F)个,和/或(2)验证存储在公有区块链中的交易哈希值是否与自身计算的交易信息的哈希值一致。例如,作为参与PA的各方的区块链节点的A、B、C和D可以执行验证。

在一些实施例中,在成功验证了PA之后,A、B和C可以确定PA的交易信息是本地存储的,并且因此根据存储在公有区块链中的PA相对于存储在公有区块链中的其他隐私和公开交易(例如,PB和PC)的顺序在本地执行PA。A、B和C可以本地执行,从而基于PA的交易信息更新其本地数据库(例如,账户余额)。本地数据库可能对公众保密。在一个实施例中,公有区块链中的区块可以按照例如区块1、区块2、…、区块n排序。存储在每个区块中的公开交易和隐私交易也可以按照例如交易1、交易2、…、交易n排序。根据该顺序,较低的区块(例如,PA)中的公开交易或隐私交易可以在较高的区块(例如,PB)中的公开交易或隐私交易之前执行,并且同一区块中较小交易号的公开交易或隐私交易可在较大交易号的公开交易或隐私交易之前执行。

在一些实施例中,D可能不具有本地存储的PA的交易信息。例如,在图3中当A广播PA时,D可能经历停机时间并且错过了发送隐私交易。因此,在D得知其参与PA之后,在步骤421,D可以向A、B和/或C发送同步请求。A、B或C可以从D接收同步请求并确定D是否与参与PA的一方相关联。响应于确定D与参与PA的一方相关联,在步骤431,A、B或C可以将PA(例如,PA的交易信息)发送给D。D可以通过计算交易信息的哈希值并将计算出的哈希值与存储在公有区块链中的PA的交易哈希值进行比较,确保其接收到交易信息的真实副本。然后,D可以在本地执行PA。之后,D可以类似地获得并执行PB,然后执行PC。D可以从A、B和/或C获得PB和PC。

在一些实施例中,图3中描述的递送方法和图4中描述的接收方法遵循原子广播。如图所示,隐私交易递送和接收协议可以满足具有以下特性的原子广播协议:统一协议、有效性和统一总顺序。

在一个实施例中,统一协议可以指示:如果正常工作的区块链节点(参与隐私交易)接收到消息,则所有正常工作的区块链节点(参与隐私交易)最终将接收到该消息。在另一实施例中,有效性可以指示:如果正常工作的区块链节点(与参与隐私交易的一方关联)广播消息,则所有正常工作的区块链节点(与参与隐私交易的其他方关联)最终将接收到该消息。在一些实施例中,如果获得了来自参与隐私交易的不同区块链节点(与各方相关联)的阈值数量(N-F)的一致且有效的签名,则隐私交易可以存储在公有区块链中,其中总共N个区块链节点(与N方关联)参与了隐私交易,并且F是不大于(N-1)/2的整数,这意味着N不小于(2F+1)。因此,在将隐私交易添加到公有区块链之前,至少(N-F)个区块链节点已收到隐私交易。其余F个区块链节点可以通过与公有区块链同步而被通知该隐私交易,并通过向(N-F)个区块链节点请求来获得隐私交易的信息,从而达成统一协议。即使(N-F)个区块链节点中多达F个区块链节点发生故障(例如,恶意或故障),(N-F)个区块链节点中的至少一个仍在正常工作,这是因为N不小于(2F+1),因此(N-2F)不小于1。至少一个正常工作的区块链节点可以向参与隐私交易的其他区块链节点发送交易信息,从而实现有效性。

在又一实施例中,统一总顺序可以指示消息是完全排序的,并且如果正常工作的区块链节点(参与隐私交易)首先接收消息1再接收消息2,则另一正常工作的区块链节点(参与隐私交易)在接收消息2之前接收消息1。为了实现统一总顺序,可以将隐私交易的表示形式(例如,交易哈希值)存储到公有区块链,从而获得相对于其他隐私交易和/或公开交易的顺序。参与隐私交易的区块链节点可以根据存储在公有区块链中的相同顺序执行隐私交易。

图5示出了根据本文的一些实施例的用于实施基于区块链的隐私交易的示例性方法510的流程图。方法510可以由图1的系统100的一个或多个组件(例如,上述节点1、节点2、…、或节点i或者类似设备,或者这些节点中的任何一个与一个或多个其他设备(例如节点A)的组合))来实现。方法510可由包括各种硬件机器和/或软件的系统或设备(例如,计算机、服务器)实施。例如,系统或设备可以包括一个或多个处理器和一个或多个非暂态计算机可读存储介质(例如,一个或多个存储器),所述一个或多个非暂态计算机可读存储介质耦接至所述一个或多个处理器并且配置有可由所述一个或多个处理器执行的指令,以使系统或设备(例如,处理器)执行方法510。下文给出的方法510的操作旨在说明性的。根据实施方式,方法510可以包括以不同顺序执行或并行执行的附加步骤、更少步骤或可选步骤。方法510的进一步细节可以参考图1至图4及上面的相关描述。

在一些实施例中,方法510是用于实施基于区块链的隐私交易的方法。方法510是本文描述的原子广播。方法510可以由参与多个(N个)区块链节点之间的隐私交易的第一区块链节点(例如,第一方的第一区块链节点)执行。隐私交易还涉及一个或多个第二区块链节点(例如,第二方的第二区块链节点)。在一些实施例中,隐私交易可以仅涉及第一区块链节点以及一个或多个区块链节点。当步骤被描述为由第一方或第二方执行时,本领域普通技术人员将理解,该步骤可以由与对应方相关联的区块链节点执行。第一方和第二方可以属于相同实体或不同实体。第一区块链节点和第二区块链节点可以属于同一方或不同方。第一方或第二方可以是发起交易的一方、交易的发送方或接收方等。在一些实施例中,一方可以是私有交易的(资产、代币等的)发送方和/或接收方。也就是说,对于隐私交易,一方可以向参与隐私交易的另一方发送某物和/或从另一方接收某物。尽管如此,一方可以是观察者,并且不在隐私交易中发送和/或接收任何东西。

框511包括,在隐私交易中所涉及的多个(N个)区块链节点中的第一区块链节点处,将隐私交易发送至N个区块链节点中的多个第二区块链节点中的每个,其中,N至少为四。第二区块链节点可以指代参与隐私交易的第二方。在一些实施例中,隐私交易包括交易信息,该交易信息包括隐私交易的一个或多个发送方、隐私交易的一个或多个接收方以及隐私交易的一个或多个交易金额。第一区块链节点和第二区块链节点可以是相同的区块链节点或不同的区块链节点。在一些实施例中,第一区块链节点可以代表第一实体(例如,第一金融机构),第二区块链节点可以代表第二实体(例如,第二金融机构)。在一些实施例中,参与交易的N个区块链节点中的任何一个区块链节点可能会或可能不会直接参与基础隐私交易。直接参与可以是例如充当交易金额的发送方或接收方。间接参与可以是例如充当不接收或不发送任何金额的观察者、监管者或验证者。间接参与者可以替代地作为发送代币金额的一方。例如,在隐私交易中,A向B发送100万美元,C向D发送1美元,D向C发送1美元。这里,A和B是直接参与者,C和D是间接参与者。间接参与者的参与可以通过隐藏直接参与者来提高隐私保护,因为交易金额要受到保护。

在一些实施例中,将隐私交易发送至多个第二区块链节点中的每个包括:用分别与一个或多个第二区块链节点关联的(一个或多个第二方的)一个或多个公钥分别加密隐私交易(例如,隐私交易的交易信息);将经加密的隐私交易分别发送至一个或多个第二区块链节点。

框512包括在第一区块链节点处,分别从第一区块链节点和第二区块链节点中的至少(N-F)个区块链节点获得证明隐私交易的至少(N-F)个签名,其中,F为不大于(N-1)/2的最大整数。在一些实施例中,签名包括用与第一区块链节点或第二区块链节点对应的私钥对隐私交易(例如,隐私交易的交易信息)的加密。例如,签名包括用与第一方或第二方对应的私钥对隐私交易的加密,其中第一方或第二方对应地与第一区块链节点或第二区块链节点相关联。在一个实施例中,证明隐私交易包括证明对隐私交易的接收和隐私交易的有效性。

在一些实施例中,获得至少(N-F)个签名包括分别从N个区块链节点中的(N-F)个不同的区块链节点获得至少(N-F)个一致且有效的签名。在一个实施例中,(N-F)个签名之一来自第一区块链节点,而其他(N-F-1)个签名分别来自多个第二区块链节点。因此,第二区块链节点的数量可以是(N-F-1)或更多,但不超过(N-1)。

框513包括在第一区块链节点处,将与至少(N-F)个签名相关联的隐私交易的哈希值提交给公有区块链的一个或多个区块链节点以添加到公有区块链中。公有区块链的一个或多个区块链节点可以包括或可以不包括第一区块链节点和第二区块链节点。在一些实施例中,将与至少(N-F)个签名相关联的隐私交易的哈希值提交给公有区块链的一个或多个区块链节点以添加到公有区块链中,包括将区块链交易发送到公有区块链的一个或多个区块链节点以添加到公有区块链中,区块链交易包括(1)隐私交易的哈希值(例如,交易信息的哈希值)、(2)至少(N-F)个签名、和(3)包括参与隐私交易的N个区块链节点的组的组标识。组标识存储在公有区块链中后,将用作向N个区块链节点通知已成功完成对隐私交易的共识验证。N个区块链节点中不知道隐私交易的任何一个区块链节点可以通过与公有区块链同步并找出区块链中记录的与组标识相关联的交易而被通知。

在一些实施例中,该方法还包括:在第一区块链节点处从公有区块链获得隐私交易;以及通过验证所获得的隐私交易中包括的签名的数量是否达到至少(N-F)个来验证隐私交易。参与隐私交易的各方的区块链节点可以执行验证。

在一些实施例中,该方法还包括:根据存储在公有区块链中的隐私交易相对于存储在公有区块链中的其他隐私交易和公开交易的顺序在本地执行隐私交易。参与隐私交易的各方的区块链节点可以进行本地执行,并因此基于隐私交易的交易信息来更新区块链节点的本地数据库(例如,账户余额)。

在一些实施例中,该方法还包括:从发出请求的区块链节点接收同步请求;确定发出请求的区块链节点是否为N个区块链节点之一;响应于确定发出请求的区块链节点为N个区块链节点之一,经由非区块链通道向发出请求的区块链节点发送隐私交易(例如,隐私交易的交易信息)。在一个实施例中,发出请求的区块链节点是N个区块链节点中的F个未正常工作的区块链节点之一。例如,发出请求的区块链节点可以不是多个第二区块链节点之一;或可以是多个第二区块链节点之一,但是在第一区块链节点广播隐私交易时错过了隐私交易的发送。在此,发出请求的区块链节点可以通过根据公有区块链发现其参与隐私交易(例如,发出请求的区块链节点与公有区块链同步并检测与N个区块链节点的组标识相对应的新交易),意识到错过了隐私交易。由于在该组中,发出请求的区块链节点可能会意识到交易已通过共识验证,但其尚不知道该交易,因此请求从参与隐私交易的其他区块链节点获得隐私交易。第一区块链节点可以通过区块链外部的通信信道将隐私交易的详细信息直接发送至发出请求的区块链节点。由于存储在区块链中的交易可能仅包括交易的交易哈希值(例如,交易信息的哈希值)、至少(N-F)个签名和相应的组标识,因此可能无法从区块链获得详细信息,并且无法从交易哈希值中获得详细信息。

图6示出了根据一些实施例的用于实施基于区块链的隐私交易的系统610的框图。系统610(例如,计算机系统)可以是上述节点1、节点2、节点3、...、或节点i或者类似设备或者是所述节点中的任一个和附加设备(例如,节点A)的组合的实施的示例。例如,方法510可由系统610实施。系统610可以包括一个或多个处理器和一个或多个非暂态计算机可读存储介质(例如,一个或多个存储器),所述一个或多个非暂态计算机可读存储介质耦接至所述一个或多个处理器并且配置有可由所述一个或多个处理器执行的指令,以使系统或设备(例如,处理器)执行上述方法和操作,例如方法510。系统610可包括与指令(例如,软件指令)相对应的各种单元/模块。

在一些实施例中,系统610可被称为用于实施基于区块链的隐私交易的装置。该装置可以对应于参与多个(N)个区块链节点之间的隐私交易的第一区块链节点。该装置可以包括:发送模块611,用于将隐私交易发送至N个区块链节点中的多个第二区块链节点中的每个,其中N至少为四;获得模块612,用于分别从第一区块链节点和第二区块链节点中的至少(N-F)个区块链节点获得证明隐私交易的至少(N-F)个签名,其中,F为不大于(N-1)/2的最大整数;提交模块613,用于将与至少(N-F)个签名相关联的隐私交易的哈希值提交给公有区块链的一个或多个区块链节点以添加到公有区块链中。

本文所述的技术由一台或多台专用计算设备实施。专用计算设备可以是台式计算机系统、服务器计算机系统、便携式计算机系统、手持设备、网络设备、或者结合硬接线和/或程序逻辑以实现所述技术的任何其他设备或设备的组合。专用计算设备可实现为个人计算机、笔记本电脑、移动电话、照相手机、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏机、平板电脑、可穿戴设备或其组合。计算设备通常由操作系统软件控制和协调。常规的操作系统控制和调度计算机处理以执行、进行内存管理、提供文件系统、网络、I/O服务,以及提供用户界面功能,诸如图形用户界面(“GUI”),等等。本文所述的各种系统、装置、存储介质、模块和单元可以在专用计算设备、或者一台或多台专用计算设备的一个或多个计算芯片中实现。在一些实施例中,本文所述的指令可以在专用计算设备上的虚拟机中实现。在执行时,所述指令可以使专用计算装置执行本文所述的各种方法。虚拟机可以包括软件、硬件或其组合。

图7是示出计算机系统700的框图,在计算机系统700上可以实施本文所述的任何实施例。系统700可以执行本文所述的方法中的任一种(例如,用于实施基于区块链的隐私交易的方法510)。系统700可以在本文所述的系统中的任一种(例如,用于实施基于区块链的私有交易的系统620)中实现。系统700可以在本文所述的节点中的任一个中实现,并配置为执行用于实施区块链合约的相应步骤。计算机系统700包括用于通信信息的总线702或其他通信机制,与总线702耦接以处理信息的一个或多个硬件处理器704。硬件处理器704可以是例如一个或多个通用微处理器。

计算机系统700还包括耦接至总线702的用于存储信息和由处理器704可执行的指令的主存储器706,诸如随机存取存储器(RAM)、缓存和/或其他动态存储设备。主存储器706也可被用于在由处理器704可执行的指令的执行期间存储临时变量或其他中间信息。当这些指令存储在处理器704可访问的存储介质中时,将计算机系统700呈现到为了执行指令中指定的操作而定制的专用机器中。计算机系统700还包括只读存储器(ROM)708或耦接至总线702的用于存储静态信息和处理器704的指令的其他静态存储设备。提供存储设备710,诸如磁盘、光盘或USB拇指驱动器(闪存驱动器)等,并耦接至总线702以存储信息和指令。

计算机系统700可以使用定制的硬接线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑,其与计算机系统结合而使计算机系统700成为专用机器或将计算机系统700编程为专用机器,来实施本文所述的技术。根据一个实施例,本文所述的操作、方法和过程由计算机系统700响应处理器704执行主存储器706中包含的一个或多个指令的一个或多个序列来执行。这些指令可以从另一存储介质诸如存储设备710读取到主存储器706中。执行主存储器706中包含的指令序列导致处理器704执行本文所述的处理步骤。在替代的实施例中,可以使用硬接线电路代替软件指令或与软件指令结合使用。

主存储器706、ROM 708和/或存储设备710可包括非暂时性存储介质。术语“非暂态介质”和类似术语,在本文中使用时,是指存储使机器以特定方式运行的数据和/或指令的介质,所述介质不包括暂态信号。这种非暂态介质可包括非易失性介质和/或易失性介质。例如,非易失性介质包括光盘或磁盘,例如存储设备710。易失性介质包括动态存储器,例如主存储器706。非暂态介质的常见形式包括例如软盘、软磁盘、硬盘、固态驱动器、磁带或任何其他磁数据存储介质、CD-ROM、任何其他光学数据存储介质、具有孔图案的任何物理介质、RAM、PROM和EPROM、FLASH-EPROM、NVRAM、任何其他存储芯片或内存盒、以及他们的网络版本。

计算机系统700还包括耦合到总线702的网络接口718。网络接口718提供耦接到一个或多个网络链路的双向数据通信,所述网络链路连接到一个或多个本地网络。例如,网络接口718可以是综合业务数字网络(ISDN)卡、电缆调制解调器、卫星调制解调器、或向相应类型的电话线提供数据通信连接的调制解调器。作为另一示例,网络接口718可以是局域网(LAN)卡,以提供数据通信连接至可兼容的LAN(或与WAN通信的WAN组件)。也可以实现无线链接。在任何这样的实现中,网络接口718发送和接收携带代表各种类型信息的数字数据流的电信号、电磁信号或光信号。

计算机系统700可以通过网络、网络链接和网络接口718发送消息和接收包括程序代码的数据。在互联网示例中,服务器可以通过互联网、ISP、本地网络和网络接口718来传输应用程序的请求代码。

接收到的代码可以在接收时由处理器704执行,和/或存储在存储设备710或其他非易失性存储器中,以供以后执行。

上述部分所述的每个过程、方法和算法可以被包含在代码模块中并全部或部分由代码模块自动执行,所述代码模块由包括计算机硬件的一个或多个计算机系统或者计算机处理器执行。所述处理和算法可以部分地或全部地在专用电路中实现。

上述各种特征和过程可彼此独立使用,或者可以以各种方式组合使用。所有可能的组合和子组合均应落入本文的范围内。此外,在一些实施方式中可以省略某些方法或过程块。本文所述的方法和过程也不限于任何特定的顺序,与其相关的块或状态可以以适当的其他顺序执行。例如,所述块或状态可以以不同于具体公开的顺序执行,或者多个块或状态可以组合成单个块或状态。块或状态的示例可以串行、并行或以一些其他方式执行。块或状态可被添加到所公开实施例或从所公开实施例移除。本文所述的系统和组件的示例可以被配置为不同于所描述的。例如,与所公开的实施例相比,可以将元件添加、移除或重新排列。

本文所述的方法的各种操作可由临时配置(例如,通过软件)或永久配置以执行相关操作的一个或多个处理器至少部分地执行。无论临时配置或永久配置,这些处理器可以构成处理器实现的引擎,其操作以执行本文所述的一个或多个操作或功能。

类似地,本文所述的方法可以至少部分为处理器实施,一个或多个特定处理器是硬件的示例。例如,方法的至少一些操作可以由一个或多个处理器实现的引擎执行。此外,一个或多个处理器还可以操作以支持“云计算”环境中的相关操作的性能或作为“软件即服务”(SaaS)。例如,至少一些操作可以由一组计算机(例如,包括处理器的机器)执行,这些操作通过网络(例如,互联网)和一个或多个适当的接口(例如,应用编程接口(API))可访问。

某些操作的性能可以分布在处理器之间,不仅驻留在单个机器内,而且部署在多台机器上。在一些实施例中,处理器或处理器实现的引擎可以位于单个地理位置(例如,在家庭环境、办公室环境或服务器场中)。在其他实施例中,处理器或处理器实现的引擎可以分布在多个地理位置上。

在本文中,多个实例可以实现描述为单个实例的组件、操作或结构。虽然一种或多种方法的单个操作被示出并描述为单独的操作,但是一个或多个单个操作可以同时执行,而不需要按照所示的顺序执行操作。在配置中作为单独组件呈现的结构和功能可以作为组合结构或组件实现。同样,作为单个组件呈现的结构和功能可以作为单独的组件实现。这些和其他变更、修改、添加和改进落入本文主题的范围内。此外,本文中使用的相关术语(诸如“第一”、“第二”、“第三”等)不表示任何顺序、高度或重要性,而是被用于区分一个元件和另一元件。此外,术语“一个”和“多个”在本文中不表示数量限制,而是表示至少一种所述物品的存在。

尽管参考具体实施例描述了主题的概况,但可以对这些实施例进行各种修改和更改,而不背离本文的实施例的更广泛范围。详细说明不应以限制性的意义来理解,各种实施方案的范围仅由所附的权利要求以及这些权利要求的主题等同的全部范围来限定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号