首页> 中国专利> 合作伙伴的匿名化

合作伙伴的匿名化

摘要

示例操作可包含以下的一个或多个:由处理器节点生成资产生产者节点的标识符(ID);由处理器节点将该ID映射到资产生产者节点的身份;由处理器节点从多个供应商节点中的供应商节点接收将该资产生产者节点添加到供应区块链的请求;基于映射的ID向所述多个供应商节点提供权利。

著录项

  • 公开/公告号CN114830594A

    专利类型发明专利

  • 公开/公告日2022-07-29

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN202080084863.5

  • 发明设计人 N·R·巴里;S·舍蒂;徐逸岷;

    申请日2020-11-27

  • 分类号H04L9/06;H04L9/32;H04L9/08;G06Q10/08;

  • 代理机构北京市中咨律师事务所;

  • 代理人于静;刘薇

  • 地址 美国纽约

  • 入库时间 2023-06-19 16:08:01

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-07-29

    公开

    国际专利申请公布

说明书

技术领域

本申请总体涉及供应链系统,更具体地涉及合作伙伴的匿名化。

背景技术

集中式数据库将数据存储和维护位于一个位置的单个数据库(例如,数据库服务器)中。该位置通常是中央计算机,例如台式中央处理单元(CPU)、服务器CPU或大型计算机。存储在集中式数据库上的信息一般可从多个不同点访问。多个用户或客户端工作站可以例如基于客户端/服务器配置在集中式数据库上同时工作。集中式数据库由于其单个位置而易于—尤其是出于安全目的—进行管理、维护和控制。在集中式数据库内,数据冗余被最小化,因为所有数据的单个存储位置也意味着给定数据集仅具有一个主记录。

然而,集中式数据库的缺点显著。例如,集中式数据库具有单个故障点。具体地,如果缺乏容错考虑而发生故障(例如,硬件、固件和/或软件故障),则数据库内的所有数据都会丢失,所有用户的工作都被中断。此外,集中式数据库高度依赖于网络连接性。因此,连接速度越慢,每个数据库访问所需的时间量就会增加。另一个缺点是当集中式数据库由于单个位置而经历高流量时发生瓶颈。此外,集中式数据库提供对数据的有限访问,因为数据库只维护一份数据。因此,多个设备不可能同时访问同一条数据而不产生重写所存储的数据的重大问题或风险。此外,因为数据库存储系统具有最小数据冗余甚至没有数据冗余,所以要检索回意外地丢失的数据非常困难,除非通过手动操作从备份存储检索。

在供应链管理系统中,第3层级成员(即,种植者)供应给多个第2层级合作伙伴(即,供应商),后者供应给第1层级合作伙伴(即,零售商)。零售商需要能够查看来自整个供应链的可追溯性事件,以识别来自同一种植者(甚至跨不同的供应商)的产品。这是监管合规和更有效的召回所需要的。通常,由于担心被淘汰,供应商不愿共享关于他们的种植者的身份(identification)或其他信息。供应商希望从外部看来这是他们的资产(例如,农作物),而种植者可能甚至不想加入任何可追溯性解决方案。然而,没有能够满足所有供应链合作伙伴的围绕可追溯性需要和数据隐私限制的需要的单个解决方案。

因此,期望有一种基于区块链网络提供具有可追溯性的供应链中的合作伙伴的匿名化的解决方案。

发明内容

一个示例性实施例提供一种系统,所述系统包括处理器和存储器,其中所述处理器被配置为执行以下操作中的一个或多个:生成资产生产者节点的标识符(ID);将所述ID映射到资产生产者节点的身份;从多个供应商节点中的供应商节点接收将所述资产生产者节点添加到供应区块链的请求;以及基于所述映射的ID向所述多个供应商节点提供权利。

优选地,本发明提供一种系统,其中,所述指令进一步使所述处理器响应于所述请求而将所述映射的ID和所述资产生产者节点的私有加密密钥存储在所述供应区块链的分类账上。

优选地,本发明提供一种系统,其中,所述指令进一步使所述处理器基于映射的ID上传资产可追溯性事件。

优选地,本发明提供其中由供应商节点引用资产可追溯性事件的系统。

优选地,本发明提供一种系统,其中,所述指令进一步使所述处理器基于匹配请求将通过所述资产生产者节点的私有加密密钥加密的数据提供给所述多个供应商节点。

优选地,本发明提供一种系统,其中,所述匹配请求包含至少一个与所述映射的ID相关联的元素。

优选地,本发明提供一种系统,其中,所述指令进一步使所述处理器处理来自所述多个供应商节点的对所述资产生产者节点的加入所述供应区块链的邀请。

另一个示例性实施例提供一种包括处理器和存储器的系统,其中,所述处理器被配置为执行以下操作中的一个或多个:通过供应区块链从资产生产者节点获取身份数据(identification data);生成所述资产生产者节点的唯一性标识符(ID);执行智能合约,以将所述ID映射到所述身份数据并且基于映射的ID向多个供应商节点提供所述资产生产者节点的权利。

另一个示例性实施例提供一种方法,所述方法包含以下操作中的一个或多个:由处理器节点产生资产生产者节点的标识符(ID);由处理器节点将所述ID映射到资产生产者节点的身份;由处理器节点从多个供应商节点中的供应商节点接收将所述资产生产者节点添加到供应区块链的请求;以及基于映射的ID向所述多个供应商节点提供权利。

优选地,本发明提供一种方法,进一步包括:基于映射的ID上传资产可追溯性事件。

优选地,本发明提供一种方法,其中,由供应商节点引用资产可追溯性事件。

优选地,本发明提供一种方法,进一步包括基于匹配请求向所述多个供应商节点提供通过所述资产生产者节点的私有加密密钥加密的数据。

优选地,本发明提供一种方法,其中,匹配请求包含至少一个与所述映射的ID相关联的元素。

优选地,本发明提供一种方法,进一步包括处理来自所述多个供应商节点的对资产生产者节点的加入供应区块链的邀请。

优选地,本发明提供一种方法,进一步包括基于映射的ID上传资产可追溯性事件。

优选地,本发明提供一种方法,其中,由供应商节点引用资产可追溯性事件。

优选地,本发明提供一种方法,进一步包括基于匹配请求向所述多个供应商节点提供通过所述资产生产者节点的私有加密密钥加密的数据。

优选地,本发明提供一种方法,其中,匹配请求包含至少一个与所述映射的ID相关联的元素。

优选地,本发明提供一种方法,进一步包括处理来自多个供应商节点的对资产生产者节点的加入供应区块链的邀请。

另一个示例性实施例提供一种方法,所述方法包括以下的一个或多个:由处理器节点通过供应区块链从资产生产者节点获取身份数据;由所述处理器节点生成所述资产生产者节点的唯一性标识符(ID);执行智能合约,以将所述ID映射到所述身份数据并且基于映射的ID向多个供应商节点提供所述资产生产者节点的权利。

又一示例性实施例提供一种包括指令的非瞬态计算机可读介质,所述指令在由处理器读取时致使所述处理器执行以下的一个或多个:生成资产生产者节点的标识符(ID);将所述ID映射到资产生产者节点的身份;从多个供应商节点中的供应商节点接收将所述资产生产者节点添加到供应区块链的请求;以及基于映射的ID向所述多个供应商节点提供权利。

又一示例性实施例提供一种包括指令的非瞬态计算机可读介质,所述指令在由处理器读取时致使所述处理器执行以下操作中的一个或多个:通过供应区块链从资产生产者节点获取身份数据;生成所述资产生产者节点的唯一性标识符(ID);执行智能合约,以将所述ID映射到所述身份数据并基于所述映射的ID向多个供应商节点提供所述资产生产者节点的权利。

附图说明

图1A示出根据示例性实施例的包括数据库的系统的网络图。

图1B示出根据另一示例性实施例的包括数据库的系统的网络图。

图2A示出根据示例性实施例的示例区块链架构配置。

图2B示出根据示例性实施例的区块链交易流程。

图3A示出根据示例性实施例的许可网络。

图3B示出根据示例性实施例的另一个许可网络。

图3C示出根据示例性实施例的无许可网络。

图4A示出根据示例性实施例的流程图。

图4B示出根据示例性实施例的另一流程图。

图4C示出了根据示例性实施例的流程图。

图4D示出了根据示例性实施例的另一流程图。

图5A示出根据示例性实施例的被配置为执行本文所述的一个或多个操作的示例系统。

图5B示出根据示例性实施例的被配置为执行本文所述的一个或多个操作的另一示例系统。

图5C示出根据示例性实施例的被配置为利用智能合约的另一示例系统。

图5D示出根据示例性实施例的被配置为利用区块链的又一示例系统。

图6A示出根据示例性实施例的将新块添加到分布式分类账的过程。

图6B示出根据示例性实施例的新数据块的内容。

图6C示出根据示例性实施例的数字内容的区块链。

图6D示出根据示例性实施例的可表示区块链中块结构的块。

图7A示出根据示例性实施例的存储机器学习(人工智能)数据的示例区块链。

图7B示出根据示例性实施例的示例量子安全模区块链。

图8示出了支持一个或多个示例性实施例的示例性系统。

具体实施方式

将容易理解的是,如在本文的附图中大体描述和例示的那样,本发明的组件可以以各种不同的配置来布置和设计。因此,以下对如附图中表示的方法、装置、非瞬态计算机可读介质和系统中的至少一个的实施例的详细说明并不旨在限制本申请所要求保护的范围,而只是代表所选择的实施例。

在一个或多个实施例中,如贯穿本说明书所描述的本发明的特性、结构、或特征可以以任何适合的方式被组合或去除。例如,贯穿本说明书使用的短语“示例性实施例”、“一些实施例”或其他类似语言实际指的是结合实施例所描述的特定特性、结构或特征可以包括在至少一个实施例中。因此,贯穿本说明书出现的短语“示例性实施例”、“在一些实施例中”、“在其它实施例中”、或其它类似语言不一定都指同组实施例,在一个或多个实施例中,可以任何合适的方式组合或去除所描述的特性、结构、或特征。进一步,示意图中元素之间的任何连接可允许单向和/或双向的通信,即使所示的连接是单向或双向箭头。而且,附图中所示的任何装置可以是不同的装置。例如,如果所示的是移动设备发送信息,则也可用有线设备来发送该信息。

此外,尽管在实施例的描述中可能使用了术语“消息”,但是本申请可以应用于许多类型的网络和数据。此外,尽管在示例性实施例中可能描述特定类型的连接、消息和信令,但是本申请不限于特定类型的连接、消息和信令。

示例性实施例提供的方法、系统、组件、非瞬态计算机可读介质、设备、和/或网络,提供对具有可追溯性的供应链中的合作伙伴的匿名化。

在一个实施例中,本申请利用作为分布式存储系统的去中心化的数据库(诸如区块链),该分布式存储系统包括彼此通信的多个节点。去中心化的数据库包括类似于能够在互不信任各方之间维护记录的分布式分类账的仅附加不可变数据结构。互不信任各方在本文中称为对等体或对等节点。每个对等体维护数据库记录的副本,在分布式对等体之间没有达成共识的情况下,任何单个对等体都不能修改数据库记录。例如,对等体可以执行共识协议来验证区块链存储交易,将存储交易分组成块,并在块上建立哈希链。为了一致性,该过程根据需要通过对存储交易进行排序来形成分类账。在各种实施例中,可以使用许可区块链和/或无许可区块链。在公共或无许可区块链中,任何人都可以在没有特定身份的情况下参与。公共区块链可以涉及本机加密货币并且使用基于诸如工作证明(PoW)的各种协议的共识。另一方面,许可区块链数据库在一组共享共同目标但不完全相互信任的实体之间提供安全的交互,诸如交换资金、商品、信息之类的业务。

本申请可利用区块链操作为去中心化的存储方案定制的并被称为“智能合约”或“链码”的任意、可编程逻辑。在一些情况下,可能存在称为系统链码的、用于管理功能和参数的专用链码。本申请能进一步利用智能合约,其是利用区块链数据库的防篡改特性和节点之间称为背书或背书策略的基础协议的可信分布式应用。与本申请相关联的区块链交易可以在向区块链提交之前进行“背书”,而未背书的交易则被忽略。背书策略允许链码为交易指定以背书所需的对等节点集合为形式的背书者。当客户端将交易发送给背书策略中指定的对等体时,将执行交易以验证交易。在验证之后,交易进入排序阶段,其中使用共识协议来生成有序的分组为块的背书交易序列。

本申请可利用作为区块链系统的通信实体的节点。在不同类型的多个节点可在相同物理服务器上运行的意义上,“节点”可以执行逻辑功能。节点在信任域中分组,并且与以各种方式控制它们的逻辑实体相关联。节点可以包括不同类型,诸如客户端或提交-客户端节点,其向背书者(例如,对等体)提交交易调用并且向排序服务(例如,排序节点)广播交易提议。另一类型的节点是对等节点,它可以接收客户端提交的交易、提交该交易并维护区块链交易的分类账的状态和副本。对等体也可以扮演背书者的角色,尽管这不是一项要求。排序服务节点或排序者是为所有节点运行通信服务的节点,其实现交付保证,诸如在提交交易和修改区块链的世界状态时向系统中的每个对等节点进行广播,区块链的世界状态是初始区块链交易的另一个名称,其通常包括控制和设置信息。

本申请可利用作为区块链的所有状态转换的排序的、防篡改记录的分类账。状态转换可以由参与方(例如,客户端节点、排序节点、背书者节点、对等节点等)提交的链码调用(即,交易)引起。每个参与方(诸如对等节点)可维护分类账的副本。交易可能导致一组资产键-值对被作为诸如创建、更新、删除之类的一个或多个操作数而提交到分类账。分类账包括用于按块存储不可变的有序记录的区块链(也称为链)。分类账进一步包括维护区块链的当前状态的状态数据库。

本申请可利用作为被构造为哈希链接块的交易日志、每个块包含N个交易的序列(其中N等于或大于1)的链。块头包括该块的交易的哈希以及前一个块的头的哈希。以这种方式,分类账上的所有交易都可以被排序并以密码方式链接在一起。因而,在不破坏哈希链接的情况下不可能篡改分类账数据。最近添加的区块链块的哈希代表链上在它之前已经出现的每个交易,从而使得可以确保所有对等节点都处于一致且可信的状态。可以将链存储在对等节点文件系统(即本地的、附加的存储、云等)上,有效地支持区块链工作负载的仅附加性质。

不可变分类账的当前状态代表链交易日志中包括的所有键的最新值。由于当前状态代表通道已知的最新键值,因此有时将其称为世界状态。链调用执行针对分类账的当前状态数据的交易。为了使这些链码交互有效,键的最新值可以存储在状态数据库中。状态数据库可以只是链的交易日志的索引视图,因此可以在任何时间根据链重新生成状态数据库。状态数据库可以在对等节点启动和交易被接受之前自动恢复(或者在需要时生成)。

本文描述和示出的本发明解决方案的一些好处包括用于基于区块链网络对具有可追溯性的供应链中的合作伙伴匿名化的方法和系统。示例性实施例通过扩展数据库的特征(诸如不可变性、数字签名和作为单个真实源)来解决时间和信任的问题。示例性实施例提供了一种用于基于区块链网络对具有可追溯性的供应链中的合作伙伴匿名化的解决方案。基于资产类型和基于智能合约管理资产的规则,区块链网络可以是同质的。

区块链与传统数据库的不同之处在于,区块链不是中央存储,而是去中心化的、不可变的和安全的存储,其中节点必须共享对存储中的记录的改变。区块链中的一些固有的并且有助于实现区块链的属性包括但不限于不可变分类账、智能合约、安全、隐私、去中心化、共识、背书、可访问性等,其在本文中有进一步描述。根据不同方面,由于区块链固有和独特的不可变的责任性(accountability)、安全性、隐私性、允许的去中心化、智能合约的可用性、签章以及可访问性,实现用于基于区块链网络的具有可追溯性的供应链中的合作伙伴匿名化的系统。特别地,区块链分类账数据是不可变的,这提供用于基于区块链网络对具有可追溯性的供应链中的合作伙伴匿名化的高效方法。此外,区块链中加密的使用提供安全性并建立信任。智能合约管理资产的状态以完成生命周期。示例区块链是许可去中心化的。因此,每个终端用户可以有其自己的分类账副本可访问。多个组织(和对等体)可以在区块链网络上绑定。关键组织可以充当背书对等体,以验证智能合约执行结果、读取集和写入集。换言之,区块链固有特征提供了用于基于区块链网络对具有可追溯性的供应链中的合作伙伴匿名化的方法的有效实现。

示例性实施例的好处之一是,其通过实现用于对基于区块链的系统中的具有可追溯性的供应链中的合作伙伴匿名化的方法来改进计算系统的功能。通过本文所述的区块链系统,计算系统可通过提供对诸如分布式分类账、对等体、加密技术、MSP、事件处理等能力的访问来执行用于基于区块链网络对具有可追溯性的供应链中的合作伙伴匿名化的功能。此外,区块链使得能够创建商业网络并且使任何用户或组织能参与场内交易。因此,区块链不仅仅是数据库。区块链具有创建用户和场内交易/场外交易(on-board/off-board)组织的商业网络的能力,以便以智能合约的形式协作和执行服务过程。

此外,示例性实施例通过允许参与者(例如,种植者)将可追溯性信息(诸如收获物的特定批次(lot)的农场的精确位置的身份数据)的某些方面保密(除非需要)同时仍允许其他有资格的参与者的完全可追溯,来改善所提交和存储的数据的隐私性。

示例性实施例提供优于传统数据库的许多好处。例如,通过区块链,实施例提供了区块链固有和独特的不可变的责任性、安全性、隐私性、许可的去中心化、智能合约的可用性、背书以及可访问性。

同时,不能使用传统数据库来实现示例性实施例,因为传统数据库不是将所有各方都带到商业网络上,不创建可信协作并且不提供数字资产的有效存储。传统数据库不提供防篡改存储,并且不提供对所存储的数字资产的保存。因此,所提出的用于基于区块链网络对具有可追溯性的供应链中的合作伙伴匿名化的方法不能在传统数据库中实现。

同时,若是将传统数据库用于实现示例性实施例,则示例性实施例将具有不必要的缺点,诸如:

-数据将由单个实体存储/控制,可以想到该单个实体可能其他参与者不知情的情况下改变或删除数据。供应链中的实体可能是竞争对手,因此可能不信任任何具有这种能力的单个实体。

-将数据存储在区块链上提供可以用来在需要时(例如在需要私有身份数据以便验证供应链可追溯性的召回场景中)验证从唯一性标识符到私有身份数据的映射以及引用该唯一性标识符的事件数据的真实性的不可变性(immutability)。

因而,示例性实施例提供对供应链中的可追溯性技术/领域中的问题的特定解决方案。

示例性实施例还改变数据可以如何存储在区块链的块结构内。例如,数字资产数据可以安全地存储在数据块的某个部分内(即,在报头、数据段或元数据内)。通过将数字资产数据存储在区块链的数据块内,可以通过块的哈希链接链将数字资产数据附加到不可变区块链分类账。在一些实施例中,通过使与数字资产相关联的个人数据不与区块链的传统块结构内的资产一起存储,数据块可以不同于传统数据块。通过去除与数字资产相关联的个人数据,区块链可基于不可变责任性和安全性来提供匿名性的好处。

根据示例性实施例,提供了一种用于基于区块链网络对具有可追溯性的供应链中的合作伙伴匿名化的系统和方法。

引用受保护的数据(例如,种植者身份)的可追溯性事件可以加密该数据以保护种植者的身份。额外的事件数据可以用作加密盐,以进一步混淆供应链伙伴模式。示例性实施例提供了在需要时增加可追溯性的效用。根据一个示例性实施例,一种方法使得供应商能够识别种植者而不使零售商能够识别他们或分发加密密钥。

本申请可以应用于食品供应链,其中种植者身份是受保护的数据元素。然而,相同方法可应用于任何值链中的任何受保护数据。在食品供应链示例中,可追溯性事件包含受保护的数据(例如,种植者身份)。可能期望公开与保护数据相关的方面(例如,种植者农场的位置的名称)。受保护的数据元素(例如,营业地点)可以以组合受保护的数据的加密副本以及未受保护的数据的明文副本的方式来构造,诸如:

urn:ibm:location:farm:.

EncryptedInfo可以作为受保护数据以及关于下述事件的附加信息的函数而导出。附加信息可以在不同的用例中改变,以提供期望的透明度水平。注意,受保护数据的函数可以被实现为加密方法。然而,如果系统不需要反转操作(例如,供应商具有其自己的跟踪受保护数据元素的IT系统),则可以使用单向哈希函数。使用单向功能减少了分发密钥的需要。

PublicInfo还可以在也是未加密的标识符中包括期望的数据元素。例如,零售商在系统中可能需要位置或近似地理哈希,并且在没有保护的情况下共享所述位置或近似地理哈希。由此,示例性实施例在允许一定程度的可追溯性的同时保护数据。

如上所述,加密盐可以用于受保护数据以用于进一步混淆。这降低了用于从加密数据中提取供应链模式的能力。关于事件的附加信息的示例基于食品供应链。每次收获产品时,产品的批次ID都会变化。这对于数据隐私是理想的,因为数据冗余或在受保护数据上进行模式匹配的机会非常少。这对于零售商可追溯性可能是次优的,但是可以使用下面详细讨论的附加实用程序来极大地改进。零售商可能仅能识别来自普通种植者的普通批次(在某些情况下不是很有用)。这对于支持附加到种植者位置的文档也可能是次优的,但也可进行改进。与种植者相关的额外数据(例如,认证记录)可能必须针对每个批次复制。

供应商的组织ID可能适合于可追溯性:零售商可以在不知道种植者的身份的情况下从种植者到同一供应商追溯产品。这对于数据隐私可能是次优的:零售商可能能够推断供应商的数据模式,即使不知道身份(例如,零售商可能看到供应商从单个种植者获得90%的产品)。组织ID可能适合于支持文档,因为需要最少的重复。如果供应链模式(包括供应商之间的共同合作伙伴)不需要隐藏,则可以去除加密盐以实现最大的零售商可追溯性。

例如,有零售商和供应商-1二者均可访问的表示追踪(trace)的三个可追溯性事件资产。零售商进行追踪时,可以看见农场位置为混淆标识符的事件。有不授权予零售商的第四资产,其包含映射到真实世界身份的种植者ID。这是理解身份(identity)的关键。供应商-1进行追踪时,能用种植者ID资产来解密原始事件资产中的数据以显示完整身份。供应商-2可从相同批次接收信息。如果召回特定商品,零售商可以搜索从该种植者接收到该批次的其他供应商并看到该种植者向供应商-2提供了该商品。因此,零售商知道相关物品也受召回影响。

在一些情况(例如,召回等)下,零售商可能需要更多信息。这可能基于要求以及基于在加密中使用的盐而不同,因为其影响零售商可看到的数据。例如,零售商从供应商接收了不良的批次。零售商可能需要知道哪些其他供应商在某个时间范围内生产了来自同一种植者的批次。供应链实用程序可能需要将同一个月内的其他受影响的批次退回与那个种植者打交道的供应商。然而,种植者身份可能不需要暴露。相反,可以返回批次标识符的列表。该示例性过程可以被描述为:

GetCommonLocations(Encrypt(GrowerID+item_lot 1),daterange,

Geograpicalidentifier)=>Encrypt(GrowerID+item_lot 2)

根据示例性实施例,实用程序可以根据需要提供附加的上下文。实用程序可以提供要返回附加数据,其在可查看的事件中不是直接可见的。将所返回的数据最小化到刚好所需的程度。可以用上限来防止零售商获得比所需更多的访问。可以提供使用通知,使得合作伙伴可看见提升的访问请求,从而进一步防止不必要的使用。

如上所述,供应商想要保护他们的农民的身份。在很大程度上,知道农民身份消除了保护该信息的需要。因此,种植者身份的纯知识(例如,电子邮件、电话、地址、农场名称等)可以让人们知道系统内的种植者身份。这样的假设可以允许系统即使在种植者不是成员的情况下也可以运行。然后可以将种植者身份表示为数字标识符。映射到种植者的物理身份的数字标识符和私人加密密钥,可以用于对与该种植者相关的数据进行加密。此数据可以在第一供应商邀请种植者到示例性系统时生成的同一资产上存储和共享(并授权给该供应商)。

例如,供应商-A邀请Acme Grower到系统,提供标识符(即,农场名称、农场地址、联系电子邮件和电话号码)。系统生成种植者ID和加密密钥,鉴于他们的种植者网络向供应商-A显示种植者ID。供应商-A现在在上传的可追溯性事件中引用种植者ID。该资产可以被授权给尝试邀请相同ID的其他供应商。供应商-B然后可以邀请同一种植者,并且可以借助于能够匹配而自动获得对该数据的授权。如果已经知道种植者联系信息,那么实际上不大需要保护身份。可以设置邀请上限,以防止零售商试图利用这一点来猛烈攻击。匹配标准可因解决方案而异,诸如:

-如果当事方提供确切的电话号码、电子邮件、或地址,则系统可以匹配现有记录;

-如果当事方提供相同的组织名称(具有模糊匹配),该系统可以找到匹配。

该资产可有权获得彼此直接共享种植者联系的额外供应商。从种植者网络的角度来看,供应商-A可以将种植者推荐给供应商-B,并可有权获得种植者ID。

一旦种植者接受邀请,加入供应链解决方案,种植者可以更主动地管理对他的身份/证书的访问(接受、拒绝、撤销、明确地分享给其他供应商)。

虽然以上示例将农民身份描述为可隐藏的数据,但是还有更多候选者可以利用此技术。以下可以是数据的示例:

数量:收获的批次可能包括流向多个合作伙伴的内容。向那些伙伴展示收获数量指示他们正在与其他人打交道,可能并不理想;

数量和事件时间:对于一些供应链,多种成分组合起来产生最终产品。一些事件的展示量和事件时间可能暴露关于处理步骤的机密细节;

GTIN(产品ID):GTIN例如在其GS1前缀中包括注册公司。通常GTIN在提供给合作伙伴之前会重新命名,因此无需共享原始GTIN;

GLN:与种植者身份非常相似。GLN是事件发生的注册地点,因此暴露GLN实际上就是暴露农民身份;

批号:信息(如农民ID和收获人员)在许多组织中被编码到批号中,可用于识别种植者;

认证数据:零售商可能需要提供认证,但有关它的确切细节可能是私密的。如果当事方是合规的,则可能不需要共享诸如当事方的证书到期日期或确切的审计分数之类的详细信息;

事件描述:描述事件的文本可能仅对于特定应用是期望的。

根据示例性实施例,过程中存在多个可能发生加密的地方。在一个实施例中,可以在上传之前对数据进行加密。这在一些方式中更简单,但是对上传应用施加了更多压力,可能不是最有用的。在另一实施例中,可以在上传时在服务器端过程中对数据进行加密。服务器端过程可在数据被上传时应用逻辑来加密该数据,从而减轻上传应用或实体的负担。这可以通过确保使用公共逻辑对所有数据进行加密的智能合约来实现。进一步,如果被授权方有权访问私钥,则服务器端逻辑可以对被授权方的数据进行解密。可以在下载期间在服务器端过程中加密数据。如果数据源本身被加密并且对于第1层级1参与者不是直接可见的,则可以以明文形式(即,未加密)存储数据,并且在由访问私钥的可信服务器侧应用下载适当的身份时,对数据进行加密。

图1A示出根据示例性实施例的用于基于区块链网络对具有可追溯性的供应链中的合作伙伴匿名化的逻辑网络图。

参考图1A,示例网络100包括连接到资产生产者节点103和供应商节点105的处理器节点102。处理器节点102可连接到区块链106,所述区块链106具有用于存储资产生产者节点103的映射的ID和私有加密密钥的分类账108。虽然此示例仅详细描述一个处理器节点102,但是可以将多个此类节点连接到区块链106。应当理解,处理器节点102可以包括额外的组件,在不偏离本文公开的处理器节点102的范围的情况下,可以去除和/或修改本文所述的组件中的一些。处理器节点102可以是计算设备或服务器计算机等,并且可以包括处理器104,处理器104可以是基于半导体的微处理器、中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)和/或另一硬件设备。尽管示出了单个处理器104,但应当理解的是,在不偏离处理器节点102系统的范围的情况下,处理器节点102可以包括多个处理器、多个核等。

处理器节点102还可以包括非瞬态计算机可读介质112,其可以具有存储在其上的可由处理器104执行的机器可读指令。机器可读指令的示例被示出为114-120,并在下面进一步讨论。非瞬态计算机可读介质112的示例可以包括包含或存储可执行指令的电子、磁性、光学或其他物理存储设备。例如,非瞬态计算机可读介质112可以是随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)、硬盘、光盘或其他类型的存储设备。

处理器104可以执行机器可读指令114,以生成资产生产者节点的标识符(ID)。如上文所论述,区块链分类账108可存储资产生产者节点103的映射的ID和私用加密密钥110。供应区块链106网络可以被配置为使用管理多个参与节点的交易的一个或多个智能合约。

处理器104可以执行机器可读指令116,以将ID映射到资产生产者节点103的身份。处理器104可以执行机器可读指令118,以从多个供应商节点105中的供应商节点接收将资产生产者节点103添加到供应区块链106的请求。处理器104可以执行机器可读指令120,以基于映射的ID向多个供应商节点105提供权利。

图1B示出了根据示例性实施例的用于基于区块链网络对具有可追溯性的供应链中的合作伙伴匿名化的逻辑网络图。

参考图1B,示例网络130包括连接到资产生产者节点103和供应商节点105的处理器节点102。处理器节点102可连接到区块链106,区块链106具有用于存储资产生产者节点103的映射的ID和私有加密密钥的分类账108。虽然这个示例仅详细描述了一个处理器节点102,但是可以将多个此类节点连接到区块链106。应当理解,处理器节点102可以包括额外的组件,在不偏离本文公开的处理器节点102的范围的情况下,可以去除和/或修改本文所述的组件中的一些。处理器节点102可以是计算设备或服务器计算机等,并且可以包括处理器104,该处理器104可以是基于半导体的微处理器、中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)和/或另一硬件设备。尽管示出了单个处理器104,但应当理解的是,在不偏离处理器节点102系统的范围的情况下,处理器节点102可以包括多个处理器、多个核等。

处理器节点102还可以包括非瞬态计算机可读介质112’,其可以具有存储在其上的可由处理器104执行的机器可读指令。机器可读指令的示例被示出为113-117,并在下面进一步讨论。非瞬态计算机可读介质112’的示例可以包括包含或存储可执行指令的电子、磁性、光学或其他物理存储设备。例如,非瞬态计算机可读介质112可以是随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)、硬盘、光盘、或其他类型的存储设备。

处理器104可以执行机器可读指令113,以通过供应区块链106从资产生产者节点103获取身份数据。如上文所述,区块链分类账108可存储资产生产者节点103的映射的ID和私有加密密钥110。供应区块链106网络可以被配置为使用一个或多个管理多个参与节点的交易的智能合约。

处理器104可以执行机器可读指令115,以生成资产生产者节点的唯一性标识符(ID)。处理器104可以执行机器可读指令117,以执行智能合约,以将ID映射到身份数据并基于映射的ID向多个供应商节点提供对资产生产者节点的权利。

图2A示出根据示例性实施例的区块链架构配置200。参照图2A,区块链架构200可包括某些区块链元素,例如,一组区块链节点202。区块链节点202可以包括一个或多个节点204-210(这四个节点仅通过示例示出)。这些节点参与许多活动,诸如区块链交易添加和确认过程(共识)。区块链节点204-210中的一个或多个可以基于背书策略对交易进行背书,并且可以为架构200中的所有区块链节点提供排序服务。区块链节点可发起区块链认证并试图写入在区块链层216中存储的、其副本也可能存储在底层物理基础设施214上的区块链不可变分类账。区块链配置可以包括链接到应用编程接口(API)222以访问和执行所存储的程序/应用代码220(例如,链码、智能合约等)的一个或多个应用224,所存储的程序/应用代码220可以根据参与者寻求的定制配置来创建并且可以维护其自己的状态、控制其自己的资产和接收外部信息。这可以被部署为交易并通过附加到分布式分类账而安装在所有区块链节点204-210上。

区块链基础或平台212可以包括各种层的区块链数据、服务(例如,加密信任服务、虚拟执行环境等)和用于接收和存储新交易并向试图访问数据条目的审计者提供访问的支持物理计算机基础设施。区块链层216可以暴露提供处理程序代码和参与物理基础设施214所必需的虚拟执行环境的访问的接口。密码信任服务218可用于验证交易(诸如资产交换交易)并保持信息私有。

图2A的区块链架构配置可通过由区块链平台212暴露的一个或多个接口和提供的服务来处理和执行程序/应用代码220。代码220可以控制区块链资产。例如,代码220可以存储和转移数据,可以由节点204-210以智能合约和相关联的链式代码的形式来执行,该链式代码具有受其执行影响的条件或其他代码元素。作为非限制性示例,可以创建智能合约以执行提醒、更新和/或受改变、更新等的其他通知。智能合约本身可用于识别与分类账的授权和访问要求和使用相关联的规则。例如,资产生产者身份信息226可以由区块链层216中包括的一个或多个处理实体(例如,虚拟机)进行处理。结果228可以包括基于资产生产者身份信息的供应商节点的权利。可以利用物理基础设施214来检索本文所述的任何数据或信息。

智能合约可以通过高级应用和编程语言来创建,然后被写入到区块链中的块。智能合约可以包括利用区块链(例如,区块链对等体的分布式网络)注册、存储和/或复制的可执行代码。交易是智能合约代码的执行,其可以响应于满足与智能合约相关联的条件而执行。智能合约的执行可以触发对数字区块链分类账的状态的可信修改。由智能合约执行引起的对区块链分类账的修改可以通过一个或多个共识协议在整个区块链对等体的分布式网络被自动复制。

智能合约可以以键-值对的格式向区块链写入数据。此外,智能合约代码可以读取存储在区块链中的值,并在应用操作中使用它们。智能合约代码可以将不同逻辑操作的输出写入到区块链中。代码可以用于在虚拟机或其他计算平台中创建临时数据结构。写入区块链的数据可以是公共的和/或可以是加密的并维持为私有的。由智能合约使用/生成的临时数据由所提供的执行环境保存在存储器中,然后一旦识别了区块链需要的数据就被删除。

链码可以包括具有附加特征的智能合约的代码解释。如本文所描述的,链码可以是部署在计算网络上的程序代码,其中链码在共识过程期间由链确认者一起执行和验证。链码接收哈希并且从区块链中检索与通过使用先前存储的特征提取器创建的数据模板相关联的哈希。如果哈希标识符的哈希与从所存储的标识符模板数据创建的哈希匹配,则链码向所请求的服务发送授权密钥。链码可以向区块链写入与加密细节相关联的数据。

图2B示出根据示例性实施例的区块链的节点之间的区块链交易流程250的示例。参考图2B,该交易流程可包括由应用客户端节点260发送至背书对等节点281的交易提议291。背书对等体281可验证客户端签名并且执行链码函数以发起交易。输出可以包括链码结果、在链码中读取的键/值版本的集合(读取集)、以及在链码中写入的键/值的集合(写入集)。如果被批准,提议响应292连同背书签名一起被发送回客户端260。客户端260将背书组装成交易有效载荷293并将其广播至排序服务节点284。排序服务节点284然后将排序的交易作为块交付到通道上的所有对等体281-283。在提交到区块链之前,每个对等体281-283可以验证交易。例如,对等体可检查背书策略以确保指定对等体的正确分配已经对结果进行签名并对照交易有效载荷293来验证签名。

再次参考图2B,客户端节点260通过构建请求并将请求发送至作为背书者的对等节点281来发起交易291。客户端260可以包括利用得到支持的软件开发工具包(SDK)的应用,所述SDK利用可用的API来生成交易提议。该提议是一个调用链码函数以使得数据可以被读取和/或写入到分类账(即,写入新的资产键值对)的请求。SDK可以充当垫片,以将交易提议封装成适当的架构化格式(例如,远程过程调用(RPC)上的协议缓冲区)并采用客户端的加密凭证来产生交易提议的唯一签名。

作为响应,背书对等节点281可验证(a)交易提议形成良好,(b)交易在过去尚未被提交(重放攻击保护),(c)签名是有效的,以及(d)提交者(在该示例中,客户端260)被适当地授权以在该通道上执行所提议的操作。背书对等节点281可以将交易提议输入作为所调用的链码函数的自变量。然后,对照当前状态数据库执行链码以产生包括响应值、读取集和写入集的交易结果。然而,此时没有对分类账进行更新。在292,该值集合连同背书对等节点281的签名一起作为提议响应292被传递回客户端260的SDK,SDK解析有效载荷以供应用程序消费。

作为响应,客户端260的应用程序检查/验证背书对等体签名,并且比较提议响应以确定提议响应是否相同。如果链码仅查询了分类账,则应用程序将检查查询响应并且通常将不向排序节点服务284提交该交易。如果客户端应用程序意图将该交易提交给排序节点服务284以更新分类账,则应用程序确定在提交之前指定的背书策略是否已被满足(即,交易所需的所有对等节点是否背书该交易)。这里,客户端可以仅包括交易的多方中的一个。在这种情况下,每个客户端可以有其自己的背书节点,并且每个背书节点都将需要背书该交易。该架构使得即使某应用程序选择不检查响应或以其他方式转发未经背书的交易,背书策略仍将由对等体强制执行并在提交验证阶段得到保持。

在成功检查之后,在步骤293,客户端260将背书组装成交易并在交易消息内将交易提议和响应广播至排序节点284。交易可包含读取集/写入集、背书对等体签名和通道ID。排序节点284不需要为了执行其操作而检查交易的全部内容,相反,排序节点284可以简单地从网络中的所有通道接收交易,按通道对它们按时间顺序进行排序,并且创建每通道的交易块。

交易的块被从排序节点284交付到通道上的所有对等节点281-283。块内的交易294被验证以确保任何背书策略被满足并确保自从读取集由交易执行生成以来读取集变量的分类账状态没有变化。块中的交易被标记为有效或无效。此外,在步骤295,每个对等节点281-283将块附加到通道的链,并且将每个有效交易的写入集被提交到当前状态数据库。发出一个事件以通知客户端应用程序该交易(调用)已经不可更改地附加到链中,以及通知该交易被验证还是被无效。

图3A示出了以分布式、去中心化的对等架构为特征的许可区块链网络300的示例。在该示例中,区块链用户302可以向许可区块链304发起交易。在该示例中,交易可以是部署、调用或查询,并且可以通过利用SDK的客户端侧应用程序、直接通过API等来发布。网络可以提供对诸如审计者之类的监管者306的访问。区块链网络运营商308管理成员权限,诸如将监管者306登记为“审计者”,将区块链用户302登记为“客户端”。审计者可能仅限于查询分类账,而客户端可以被授权部署、调用和查询某些类型的链码。

区块链开发者310可编写链码和客户端侧应用程序。区块链开发者310可以通过接口将链码直接部署到网络。为了在链码中包括来自传统数据源312的凭证,开发者310可使用带外连接来访问数据。在该示例中,区块链用户302通过对等节点314连接到许可区块链304。在进行任何交易之前,对等节点314从管理用户角色和许可的证书认证机构316检索用户的注册和交易证书。在一些情况下,区块链用户必须拥有这些数字证书才能在许可区块链304上进行交易。同时,尝试利用链码的用户可能需要在传统数据源312上验证他们的凭证。为了确认用户的授权,链码可以通过传统处理平台318使用到该数据的带外连接。

图3B示出了以分布式、去中心化的对等架构为特征的许可区块链网络320的另一示例。在该示例中,区块链用户322可以向许可区块链324提交交易。在该示例中,交易可以是部署、调用或查询,并且可以通过利用SDK的客户端侧应用程序、直接通过API等来发布。网络可以提供对诸如审计者之类的监管者326的访问。区块链网络运营商328管理成员权限,诸如将监管者326登记为“审计者”,将区块链用户322登记为“客户端”。审计者可能仅限于查询分类账,而客户端可以被授权部署、调用和查询某些类型的链码。

区块链开发者330编写链码和客户端侧应用。区块链开发者330可以通过接口将链码直接部署到网络。为了在链码中包括来自传统数据源332的凭证,开发者330可以使用带外连接来访问数据。在该示例中,区块链用户322通过对等节点334连接到网络。在进行任何交易之前,对等节点334从证书认证机构336检索用户的注册和交易证书。在一些情况下,区块链用户必须拥有这些数字证书才能在许可区块链324上进行交易。同时,尝试利用链码的用户可能需要在传统数据源332上验证他们的凭证。为了确认用户的授权,链码可以通过传统处理平台338使用到该数据的带外连接。

在一些实施例中,本文中的区块链可以是无许可的区块链。与需要许可才能加入的许可区块链相比,任何人都可以加入无许可区块链。例如,为了加入无许可区块链,用户可通过提交交易、从而向分类账添加条目来创建个人地址并开始与网络交互。此外,所有各方都可以选择运行系统上的一个节点并采用挖掘协议来帮助验证交易。

图3C示出了由包括多个节点354的无许可区块链352处理的交易的过程350。发送方356希望通过无许可区块链352向接收方358发送付款或某一其他形式的价值(例如,契约、医疗记录、合同、商品、服务或可被封装在数字记录中的任何其他资产)。在一个实施例中,发送方设备356和接收方设备358中的每一个都可以有提供用户界面控制和交易参数的显示的数字钱包(与区块链352相关联)。作为响应,交易贯穿区块链352被广播到节点354。取决于区块链352的网络参数,节点基于无许可区块链352创建者建立的规则(其可以是预定义的或动态分配的)来验证360交易。例如,这可以包括验证所涉及的各方的身份等。可以立即验证交易,或者可以将其与其他交易放置在队列中,并且节点354基于网络规则集来确定交易是否有效。

在结构362中,将有效交易形成为块并用锁(哈希)密封。该过程可以通过节点354中的挖掘节点来执行。挖掘节点可以利用专用于挖掘和创建无许可区块链352的块的附加软件。每个块可由使用由网络商定的算法创建的哈希(例如,256位数等)来标识。每个块可包括一个头、一个指向链中前一个块的头的哈希的指针或引用、以及一组有效交易。对前一个块的哈希的引用与安全独立区块链的创建相关联。

在可以将块添加到区块链之前,必须验证块。对无许可区块链352的验证可包括工作证明(PoW),其是从块的头导出的谜题的解。虽然在图3C的示例中未示出,但是验证块的另一过程是权益证明。与其中算法奖励解决数学问题的挖掘者的工作证明不同,通过权益证明,新块的创建者是根据其财富(也被定义为“权益”)以确定的方式选择的。然后,由选定的/选择的节点执行类似的证明。

通过挖掘364,节点尝试通过对一个变量进行增量改变来对块求解,直到解满足网络范围的目标。这会创建PoW,从而确保正确答案。换言之,潜在的解必须证明计算资源在解决问题时耗尽。在一些类型的无许可区块链中,挖掘者会因为正确地挖掘块而获得值(例如币等)的奖励。

这里,PoW过程连同块的链使得极其难以修改区块链,因为攻击者要让对一个块的修改被接受就必须修改所有的后续块。此外,随着新块的挖掘,修改块的难度增加,后续块的数量也会增加。通过分发366,成功验证的块通过无许可区块链352被分发,并且所有节点354将该块添加到作为无许可区块链352的可审计的分类账的多数链中。此外,将由发送方356提交的交易中的值被存入或以其他方式传送到接收方设备358的数字钱包。

图4A示出了根据示例性实施例的基于区块链网络对具有可追溯性的供应链中的合作伙伴匿名化的示例方法的流程图400。参照图4A,方法400可以包括以下描述的一个或多个步骤。

图4A示出了由处理器102(见图1A)执行的示例性方法的流程图。应当理解,图4A中所示的方法400可以包括额外的操作,在不偏离方法400的范围的情况下,可以去除和/或修改其中描述的一些操作。为了说明的目的,对方法400的描述也参照图1A中描述的特征。具体地,处理器节点102的处理器104可以执行方法400中包括的操作中的一些或全部。

参考图4A,在框412,处理器104可以生成资产生产者节点的标识符(ID)。在框414,处理器104可以将该ID映射到资产生产者节点的身份。在框416,处理器104可以从多个供应商节点中的供应商节点接收将所述资产生产者节点添加到供应区块链的请求。在方框418,处理器104可以基于映射的ID向所述多个供应商节点提供权利。

图4B示出了根据示例性实施例的示例方法的流程图450。参照图4B,方法450还可以包括一个或多个以下步骤。在框452,处理器104可响应于所述请求,将资产生产者节点的映射的ID和私有加密密钥存储在供应区块链的分类账上。在框454,处理器104可以基于映射的ID上传资产可追溯性事件。注意,资产可追溯性事件可以由供应商节点引用。在框456,处理器104可以基于匹配请求将通过资产生产者节点的私有加密密钥加密的数据提供给所述多个供应商节点。注意,匹配请求可以包含至少一个与所述映射的ID相关联的元素。在框458,处理器104可以处理来自多个供应商节点的对资产生产者节点的加入供应区块链的邀请。

图4C示出根据示例性实施例的基于区块链网络对具有可追溯性的供应链中的合作伙伴匿名化的示例方法的流程图460。参照图4C,方法460可包括以下描述的一个或多个步骤。

图4C示出了由处理器节点102(参见图1B)执行的示例方法的流程图。应当理解,图4C中所示的方法460可以包括额外的操作,在不偏离方法460的范围的情况下,可以去除和/或修改其中描述的一些操作。为了说明的目的,还参照图1B中所示的特征对方法460进行描述。具体地,处理器节点102的处理器104可以执行方法460中包括的操作中的一些或全部。

参考图4C,在框462,处理器104可以通过供应区块链从资产生产者节点获取身份数据。在框464,处理器104可以生成资产生产者节点的唯一性标识符(ID)。在框466,处理器104可执行智能合约,以将ID映射到身份数据并基于映射的ID向多个供应商节点提供资产生产者节点的权利。

图4D示出了根据示例性实施例的示例方法的流程图470。参考图4D,方法470还可以包括以下步骤中的一个或多个。在框472,处理器104可以将资产生产者节点的映射的ID和私有加密密钥存储在供应区块链的分类账上。在框474,处理器104可以执行智能合约,以处理来自所述多个供应商节点的对资产生产者节点的加入供应区块链的邀请。在框476,处理器104可以基于匹配请求将通过私钥加密的数据提供给所述多个供应商。注意,匹配请求可以包含资产生产者的身份数据的至少一个元素。在框478,处理器104可以执行智能合约,以基于匹配请求将资产生产者节点授权给多个供应商节点。在框480,处理器104可以执行智能合约,以基于精确匹配标准或模糊匹配标准来匹配所述请求。

图5A示出了包括按照示例性实施例的被配置为执行各种操作的物理基础设施510的示例性系统500。参考图5A,物理基础设施510包括模块512和模块514。模块514包括区块链520和智能合约530(其可以驻留在区块链520上),其可以执行任何示例性实施例中包括的任何操作步骤508(在模块512中)。步骤/操作508可以包括所描述或示出的实施例中的一个或多个,并且可以代表从一个或多个智能合约530和/或区块链520写入或读取的输出或写入信息。物理基础设施510、模块512和模块514可以包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。此外,模块512和模块514可以是同一个模块。

图5B示出了按照示例性实施例的被配置为执行各种操作的另一个示例系统540。参考图5B,系统540包括模块512和模块514。模块514包括区块链520和智能合约530(其可以驻留在区块链520上),智能合约530可以执行任何示例性实施例中包括的任何操作步骤508(在模块512中)。步骤/操作508可以包括所描述或示出的实施例中的一个或多个,并且可以代表从一个或多个智能合约530和/或区块链520写入或读取的输出或写入信息。物理基础设施510、模块512和模块514可以包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。此外,模块512和模块514可以是同一个模块。

图5C示出按照示例性实施例被配置为在订约方之间利用智能合约配置的示例系统和被配置为在区块链上强制执行智能合约条款的中介服务器。参考图5C,配置550可以代表由明确标识一个或多个用户设备552和/或556的智能合约530驱动的通信会话、资产转移会话或进程或过程。智能合约的执行、操作和执行结果可以由服务器554管理。智能合约530的内容可能需要作为智能合约交易的各方的实体552和556中的一个或多个的数字签名。智能合约执行结果可以作为区块链交易写入区块链520。智能合约530驻留在区块链520上,区块链520则可以驻留在一个或多个计算机、服务器、处理器、存储器和/或无线通信设备上。

图5D示出了根据示例性实施例的包括区块链的系统560。参考图5D的示例,应用编程接口(API)网关562提供用于访问区块链逻辑(例如,智能合约530或其他链码)和数据(例如,分布式分类账等)的公共接口。在该示例中,API网关562是用于通过将一个或多个实体552和556连接至区块链对等体(即,服务器554)来对区块链执行交易(调用、查询等)的公共接口。这里,服务器554是区块链网络对等体组件,其持有世界状态的副本和分布式分类账,允许客户端552和556查询关于世界状态的数据以及将交易提交到区块链网络中,其中,根据智能合约530和背书策略,背书对等体将运行智能合约530。

以上实施例可以以硬件、由处理器执行的计算机程序、固件或以上的组合来实现。计算机程序可以体现在计算机可读介质上,例如存储介质上。例如,计算机程序可以驻留在随机存取存储器(“RAM”)、闪存、只读存储器(“ROM”)、可擦除可编程只读存储器(“EPROM”)、电可擦除可编程只读存储器(“EEPROM”)、寄存器、硬盘、可移动盘、致密盘只读存储器(“CD-ROM”)、或本领域已知的任何其他形式的存储介质中。

示例性存储介质可以耦合到处理器,使得处理器可以从存储介质读取信息和将信息写入到存储介质。在替代方案中,存储介质可以与处理器集成一体。处理器和存储介质可驻留在专用集成电路(“ASIC”)中。在替代方案中,处理器和存储介质可作为分立组件驻留。

图6A示出根据示例性实施例的将新块添加到分布式分类账620的过程600,图6B示出根据示例性实施例的区块链的新数据块结构630的内容。新数据块可含有如上所述的基于映射的ID的对多个供应商节点的权利。

参考图6A,客户端(未示出)可向区块链节点611、612和/或613提交交易。客户端可以是从任何源接收用以制定在区块链620上的活动的指令。作为示例,客户端可以是代表请求者(诸如设备、个人或实体)提议针对区块链的交易的应用程序。多个区块链对等体(例如,区块链节点611、612和613)可以维护区块链网络的状态和分布式分类账620的副本。区块链网络中可以存在不同类型的区块链节点/对等体,包括模拟并背书由客户端提出的交易的背书对等体和验证背书、验证交易和向分布式分类账620提交交易的提交对等体。在此示例中,区块链节点611、612和613可担当背书者节点、提交者节点或二者的角色。

分布式分类账620包括在块中存储不可变的有序记录的区块链和维护区块链622的当前状态的状态数据库624(当前世界状态)。每个通道可以存在一个分布式分类账620,并且每个对等体为它们作为其成员的每个通道维护其自己的分布式分类账620副本。区块链622是交易日志,被构造为哈希链接的块,其中每个块包含N个交易的序列。块可包括诸如图6B中所示的各种组件。块的链接(由图6A中的箭头示出)可以通过在当前块的块头内添加前一个块的头的哈希来生成。以此方式,将区块链622上的所有交易都被排序并以密码方式链接在一起,从而防止篡改区块链数据而不破坏哈希链接。此外,由于链接,区块链622中的最新块代表在它之前发生的每个交易。区块链622可以存储在支持仅附加区块链工作负载的对等文件系统(本地或附加存储)上。

区块链622的当前状态和分布式分类账622,可以存储在状态数据库624中。这里,当前状态数据代表区块链622的链交易日志中曾经包括的所有键的最新值。链码调用对照状态数据库624中的当前状态执行交易。为了使这些链码交互极其有效,所有键的最新值都被存储在状态数据库624中。状态数据库624可以包括区块链622的交易日志的索引视图,因此可以随时从链中重新生成。在交易被接受之前,状态数据库624可以在对等体启动时自动恢复(或者在需要时生成)。

背书节点从客户端接收交易,并基于模拟结果为交易背书。背书节点持有模拟交易提议的智能合约。当背书节点背书交易时,背书节点创建交易背书,交易背书从背书节点到客户端应用程序的签名响应,指示对模拟交易的背书。背书交易的方法取决于可以在链码中指定的背书策略。背书策略的示例是“多数背书对等体必须背书交易”。不同的通道可以有不同的背书策略。经背书的交易由客户端应用程序转发到排序服务610。

排序服务610接受经背书的交易,将它们排序到块中,并将块交付到提交对等体。例如,排序服务610可以在已经达到交易阈值、定时器超时或另一条件时,发起新块。在图6A的示例中,区块链节点612是已经接收到要在区块链620上存储的新数据块630的提交对等体。区块链中的第一个块可以称为生成块,其包括关于区块链、其成员、其中存储的数据等的信息。

排序服务610可以由排序者群集构成。排序服务610不处理交易、智能合约或维护共享分类账。相反,排序服务610可以接受经背书的交易并指定这些被提交到分布式分类账620的顺序。可以区块链网络的架构设计得使得‘排序’(例如,Solo、Kafka、BFT等)的具体实现变成可插拔组件。

交易以一致的顺序被写到分布式分类账620。交易的顺序的建立确保交易被提交到网络时对状态数据库624的更新有效。与其中通过求解密码谜题或挖掘而发生排序的密码货币区块链系统(例如,比特币等)不同,在该示例中,分布式分类账620的各方可以选择最适合该网络的排序机制。

当排序服务610初始化新数据块630时,可以将新数据块630广播到提交对等体(例如,区块链节点611、612和613)。作为响应,每个提交对等体通过检查以确保读取集和写入集仍匹配状态数据库624中的当前世界状态来验证新数据块630内的交易。具体地,提交对等体可以确定当背书者模拟交易时存在的读数据是否与状态数据库624中的当前世界状态相同。当提交对等体验证交易时,交易被写到分布式分类账620上的区块链622,并且状态数据库624用来自读取-写入集的写数据来更新。如果交易失败,即,如果提交对等体发现读取-写入集与状态数据库624中的当前世界状态不匹配,排序到块中的交易将仍然被包括在该块中,但它将被标记为无效的,并且状态数据库624将不被更新。

参考图6B,存储在分布式分类账620的区块链622上的新数据块630(亦称数据块)可以包括多个数据段,诸如块头640、块数据650和块元数据660。应当理解,所示的各种块及其内容,诸如图6B中所示的新数据块630及其内容,仅仅是示例,并不意味着对示例性实施例的范围的限制。新数据块630可以在块数据650内存储N个交易(例如,1、10、100、500、1000、2000、3000等)的交易信息。新数据块630还可以包括指向块头640内前一个块(例如,图6A中的区块链622上)的链接。具体来说,块头640可以包含前一个块的头的哈希。块头640还可包括唯一块号、新数据块630的块数据650的哈希等。新数据块630的块号可以是唯一的并按各种顺序进行分配,诸如从零开始按递增的/连续的顺序进行分配。

块数据650可以存储在新数据块630内记录的每个交易的交易信息。例如,交易数据可以包括以下的一项或多项:交易的类型、版本、时间戳、分布式分类账620的通道ID、交易ID、时期、有效载荷可见性、链码路径(部署交易)、链码名称、链码版本、输入(链码和函数)、客户端(创建者)标识(诸如公钥和证书),客户端的签名、背书者的身份、背书者签名、提议哈希、链码事件、响应状态、命名空间、读取集(由交易读取的键和版本的列表等)、写入集(键和值的列表等)、开始键、结束键、键的列表、Merkel树查询概要等。可以为N个交易中的每个交易存储交易数据。

在一些实施例中,块数据650还可存储向区块链622中的哈希链接的块链添加附加信息的新数据662。附加信息包括本文中描述或示出的步骤、特征、过程和/或动作中的一个或多个。相应地,新数据662可以存储在分布式分类账620上的不可变块日志中。存储这样的新数据662的一些好处反映在本文公开和示出的不同实施例中。虽然新数据662在图6B中被示出在块数据650中,但是也可位于块报头640或块元数据660中。新数据662可以包括基于映射的ID的多个供应商节点的权利。块的新数据可以由从身份数据到为保护隐私由本发明分配的唯一性标识符的加密映射组成。该新信息改善了区块链的数据隐私能力。

块元数据660可存储元数据的多个字段(例如,作为字节阵列等)。元数据字段可以包括关于块创建的签名、对最后一个配置块的引用、标识块内的有效和无效交易的交易过滤器、对块进行排序的排序服务的最后一个偏移量等。签名、最后一个配置块以及排序者元数据可以由排序服务610添加。同时,块(诸如区块链节点612)的提交者可以基于背书策略、读取集/写入集的验证等来添加有效/无效信息。交易过滤器可包括大小等于块数据650中的交易的数量的字节阵列和标识交易是否有效/无效的验证码。

图6C示出了根据本文所述实施例的数字内容的区块链670的实施例。数字内容可包括一个或多个文件和相关联的信息。文件可包含介质、图像、视频、音频、文本、链接、图形、动画、网页、文档或其他形式的数字内容。区块链的不可变更、仅附加的特点是保护数字内容的完整性、有效性和真实性的保障,从而使其适用于适用可采性规则适用的法律程序,或考虑证据的其它环境,或对数字信息的呈示和使用感兴趣的其他环境。在这种情况下,数字内容可以称为数字证据。

区块链可以以各种方式形成。在一个实施例中,数字内容可以包括在区块链本身中并且从区块链本身访问。例如,区块链的每个块可以与相关联的数字内容一起存储引用信息(例如,头、值等)的哈希值。然后可以将哈希值和相关联的数字内容一起进行加密。因此,可以通过解密区块链中的每个块来访问每个块的数字内容,并可以用每个块的哈希值作为引用前一个块的基础。这可以例示如下:

块1 块2...... 块N

哈希值1 哈希值2 哈希值N

数字内容1 数字内容2 数字内容N

在一个实施例中,数字内容可以不包括在区块链中。例如,区块链可以存储每个块的内容的加密的哈希而不带有任何数字内容。可以将数字内容存储在与原始文件的哈希值相关联的另一存储区或存储器地址中。其他存储区可以是用于存储区块链的相同存储设备,或者可以是不同的存储区或者甚至是单独的关系数据库。通过获得或查询感兴趣的块的哈希值,然后在存储区中查找与实际的数字内容对应地存储的该哈希值,可以引用或访问每个块的数字内容。该操作可以例如通过数据库守门员(database gatekeeper)来执行。这可以例示如下:

在图6C的示例性实施例中,区块链670包括按排序顺序密码连接的多个块678

区块链中的块678

区块链中的第一个块678

头672

生成块中的原始文件674

生成块中的值676

1)原始文件的SHA-2计算的哈希值

2)始发设备ID

3)原始文件的起始时间戳

4)原始文件的初始存储位置

5)软件当前控制原始文件和相关联的元数据的区块链网络成员ID

区块链中的其他块678

其他块中的头672

其他块中的文件674

另外或可替代地,所述处理可以涉及仅从先前块复制文件、改变文件的存储位置、分析来自一个或多个先前块的文件、将文件从一个存储或内存位置移动到另一个、或执行相对于区块链的文件和/或其相关联的元数据的动作。涉及分析文件的处理可以包括例如附加、包括或以其他方式将不同分析、统计或与该文件相关联的其他信息相关联。

其他块中的其他块676

例如,考虑前一个块中的文件的部分被编辑、屏蔽或像素化以保护在文件中示出的人的身份的情况。在这种情况下,包括编辑文件的块将包括与编辑文件相关联的元数据,例如,如何执行编辑、谁执行编辑、编辑发生的时间戳等。元数据可被哈希以形成值。因为块的元数据不同于经哈希处理以在前一个块中形成值的信息,所以这些值彼此不同并且可以在解密时恢复。

在一个实施例中,当发生以下任何一个或多个时,可以更新前一个块的值(例如,计算新的哈希值)以形成当前块的值。在该示例性实施例中,可以通过对以下指出的信息的全部或一部分进行哈希来计算新的哈希值。

a)新SHA-2计算的哈希值,如果文件已经以任何方式经过处理(例如,如果文件被编辑、复制、更改、访问或采取一些其他动作)

b)文件的新存储位置

c)所识别的与文件相关联的新元数据

d)将文件的访问或控制从一个区块链参与者转移至另一个区块链参与者

图6D示出按照一个实施例可以代表区块链690中的块的结构的块的实施例。所述块Block

头672

文件674

一旦元数据被分配给数据(例如,通过智能合约),在不改变哈希的情况下就不能更改元数据,这很容易地被识别为无效。因此,元数据创建了可被访问以供区块链中的参与者使用的信息的数据日志。

值676

一旦形成区块链670,在任何时间点,可以通过查询区块链以获得跨块的值的交易历史来获得文件的不可变监管链。该查询或跟踪过程可以从解密当前包括的块(例如,最后一个(第N个)块)的值开始,然后继续解密其他块的值,直到到达生成块并恢复原始文件为止。该解密还可能涉及解密每个块的头和文件以及相关联的元数据。

解密是基于在每个块中发生的加密的类型来执行的。这可能会涉及使用私钥、公钥或公钥-私钥对。例如,当使用非对称加密时,网络中的区块链参与者或处理器可使用预定算法生成公钥和私钥对。公钥和私钥通过某种数学关系相互关联。公钥可以公开分发以用作从其他用户接收消息的地址,例如IP地址或家庭地址。私钥要保密,用于对发送到其他区块链参与者的消息进行数字签名。签名被包括在消息中,使得接收方可以用发送方的公钥来验证。这样,接收方可以确信仅可能是发送方发送了消息。

生成密钥可类似于在区块链上创建账户,但不必实际上在任何地方注册。此外,在区块链上执行的每个交易由发送方使用其私钥进行数字签名。此签名确保只有账户的所有者才能跟踪和处理(如果在由智能合约确定的许可的范围内)区块链的文件。

图7A和图7B示出了可以在本文中并入和使用的区块链的用例的附加示例。具体地,图7A示出了存储机器学习(人工智能)数据的区块链710的示例700。机器学习依赖于大量历史数据(或训练数据)来构建预测模型,以对新数据进行准确预测。机器学习软件(例如,神经网络等)通常可以筛选数百万个记录来发现非直观模式。

在图7A的示例中,主机平台720构建并部署用于资产730的预测监控的机器学习模型。这里,主机平台720可以是云平台、工业服务器、web服务器、个人计算机、用户设备等。资产730可以是任何类型的资产(例如,机器或设备等),诸如飞机、机车、涡轮机、医疗机器和设备、油气设备、船只、船舶、车辆等。作为另一示例,资产730可以是无形资产,诸如股票、货币、数字币、保险等。

可以使用区块链710,来显著地改进机器学习模型的训练过程702和基于训练后的机器学习模型的预测过程704。例如,在702中,不是要求数据科学家/工程师或其他用户收集数据,而是可由资产730自身(或通过中介,未示出)在区块链710上存储历史数据。这可以显著地减少主机平台720在执行预测模型训练时所需的收集时间。例如,使用智能合约,数据可以直接地且可靠地从其起源位置直接传输到区块链710。通过使用区块链710来确保所收集的数据的安全性和所有权,智能合约可以直接将数据从资产发送到用该数据来构建机器学习模型的个体。这允许在资产730之间共享数据。

可以基于共识机制将所收集的数据存储在区块链710中。共识机制拉入(许可节点)以确保被记录的数据经过验证且准确。所记录的数据是带时间戳的、加密签名的且不可变的。因此,它是可审计的、透明的、并且安全的。在某些情况下(即,供应链、医疗保健、物流等),添加直接写到区块链的物联网设备可以增加被记录的数据的频率和准确度。

此外,机器学习模型在所收集的数据上的训练可能要由主机平台720进行多轮次的微调和测试。每个轮次都可以基于附加的数据或先前未考虑的数据来帮助扩展机器学习模型的知识。在702中,不同的训练和测试步骤(以及与其相关联的数据)可以由主机平台720存储在区块链710上。机器学习模型的每次微调(例如,变量、权重等的变化)可以存储在区块链710上。这提供了训练模型是如何训练的以及使用什么数据来训练模型的可验证证明。此外,当主机平台720已经实现最终训练的模型时,所得到的模型可以被存储在区块链710上。

在训练了模型之后,可以将其部署到可以基于最终训练的机器学习模型的执行来进行预测/决策的现场环境。例如,在704中,机器学习模型可以用于诸如飞机、风力涡轮机、医疗保健机器等资产的基于条件的维护(CBM)。在该示例中,从资产730反馈的数据可以被输入到机器学习模型并且用于进行诸如故障事件、错误代码等的事件预测。通过在主机平台720处执行机器学习模型而做出的判定,可以存储在区块链710上以提供可审核/可验证的证明。作为一个非限制性示例,机器学习模型可以预测资产730的零件的未来损坏/故障,并且创建替换该零件的警报或通知。此决策背后的数据可由主机平台720存储在区块链710上。在一个实施例中,本文描述和/或示出的特征和/或动作可以在区块链710上或关于区块链710发生。

可以将区块链的新交易聚集到一个新块中并添加到现有哈希值。然后将其加密以创建新块的新哈希。当交易被加密时,其被添加到下一交易列表,等等。结果是各自包含所有先前块的哈希值的区块链。存储这些块的计算机定期比较它们的哈希值以确保它们都是一致的。任何不同意的计算机丢弃引起问题的记录。这种方式有利于确保区块链的抗篡改,但并不完美。

一种耍弄这种系统的方式是不诚实的用户以对他们有利、但保持哈希不变的方式改变交易列表。这可以通过蛮力来进行,换言之,通过改变记录、加密结果、然后查看哈希值是否相同来进行。如果不相同,就反反复复地尝试,直到找到匹配的哈希为止。区块链的安全性基于这样的信念:普通计算机只能在完全不切实际的时间尺度(诸如宇宙的年龄)上进行这种蛮力攻击。相比之下,量子计算机要快得多(快数千倍),因此构成更大的威胁。

图7B示出实施量子密钥分配(QKD)以防止量子计算攻击的量子安全区块链752的示例750。在该示例中,区块链用户可以使用QKD来验证彼此的身份。这利用诸如光子的量子粒子发送信息,窃听者无法在不破坏它们的情况下复制这些粒子。这样,发送方和接收方可以通过区块链来确定彼此的身份。

在图7B的示例中,存在四个用户754、756、758和760。每对用户均可在它们之间共享密钥762(即,QKD)。由于示例中有四个节点,因此存在六个节点对,因此使用六个不同的密钥762,包括QKDAB、QKDAC、QKDAD、QKDBC、QKDBD和QKDCD。每对可以通过使用窃听者无法在不破坏它们的情况下复制的量子粒子(例如光子)发送信息来创建QKD。这样,一对用户可以确定彼此的身份。

区块链752的操作基于以下两个过程:(i)交易的创建,以及(ii)聚集新交易的块的构造。可以类似于传统的区块链网络来创建新交易。每个交易可以包含关于发送方、接收方、创建时间、待转移的金额(或值)、证明发送方拥有用于操作的资金的参考交易的列表等的信息。该交易记录然后被发送到所有其他节点,在那里其被输入到未确认交易池中。这里,两方(即,754-760中的一对用户)通过提供他们的共享密钥762(QKD)来认证交易。该量子签名可以附接到每个交易,使得其非常难以篡改。每个节点相对于区块链752的本地副本检查它们的条目以验证每个交易具有足够的资金。然而,交易尚未确认。

可以使用广播协议以去中心化的方式来创建块,而不是对块执行传统的挖掘过程。在预定时间段(例如,秒、分钟、小时等),网络可将广播协议应用于任何未确认的交易,从而实现关于交易的正确版本的拜占庭协议(共识)。例如,每个节点可以拥有一个私有值(该特定节点的交易数据)。在第一个轮次中,节点互相传送它们的私有值。在随后的轮次中,节点传送它们在前一轮次从其他节点接收的信息。这里,诚实节点能够在新块内创建一组完整交易。这个新块可以被添加到区块链752中。在一个实施例中,本文描述和/或示出的特征和/或动作可在区块链752上或相对于区块链752发生。

图8示出了支持本文中描述和/或示出的一个或多个示例性实施例的示例性系统800。系统800包括计算机系统/服务器802,其可与许多其他通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器802一起使用的众所周知的计算系统、环境和/或配置的示例包括但不限于个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机系统、大型计算机系统和包括以上系统或设备中的任一个的分布式云计算环境等。

计算机系统/服务器802可以在由计算机系统执行的诸如程序模块之类的计算机系统可执行指令的一般上下文中描述。一般而言,程序模块可包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机系统/服务器802可以在分布式云计算环境中实践,其中任务由通过通信网络链接的远程处理设备执行。在分布式云计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机系统存储介质中。

如图8所示,云计算节点800中的计算机系统/服务器802以通用计算设备的形式示出。计算机系统/服务器802的组件可以包括但不限于一个或多个处理器或处理单元804、系统存储器806、以及将包括系统存储器806的不同系统组件耦合至处理器804的总线。

总线代表若干类型的总线结构中的任何一种或多种,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种总线架构中的任一种的处理器或局部总线。作为示例而非限制,此类体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线以及外围组件互连(PCI)总线。

计算机系统/服务器802通常包括各种计算机系统可读介质。这样的介质可以是可由计算机系统/服务器802访问的任何可用介质,并且其包括易失性和非易失性介质、可移动和不可移动介质。在一个实施例中,系统存储器806实现其他附图的流程图。系统存储器806可包括易失性存储器形式的计算机系统可读介质,诸如随机存取存储器(RAM)810和/或高速缓冲存储器812。计算机系统/服务器802还可以包括其他可移动/不可移动、易失性/非易失性计算机系统存储介质。仅通过示例的方式,存储系统814可以被提供用于从不可移除的非易失性磁性介质(未示出,通常被称为“硬盘驱动器”)进行读取和写入。尽管未示出,可以提供用于从可移动非易失性磁盘(例如,“软盘”)读取或向其写入的磁盘驱动器,以及用于从可移动非易失性光盘(如CD-ROM、DVD-ROM或其他光学介质)读取或向其写入的光盘驱动器。在这样的情况下,每一个可以通过一个或多个数据介质接口连接到总线。如以下将进一步示出和描述的,存储器806可以包括具有被配置成用于执行该应用的不同实施例的功能的一组(例如,至少一个)程序模块的至少一个程序产品。

具有一组(至少一个)程序模块818的程序/实用程序816,以及操作系统、一个或多个应用程序、其他程序模块和程序数据,可以通过示例而非限制的方式存储在存储器806中。操作系统、一个或多个应用程序、其他程序模块和程序数据中的每一个或它们的一些组合可以包括网络环境的实现方式。程序模块818通常执行如本文所述的应用的不同实施例的功能和/或方法。

如本领域技术人员将理解的,本申请的方面可以体现为系统、方法或计算机程序产品。因此,本申请的方面可以采取完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或者结合软件和硬件方面的实施例的形式,在本文中可以统称为“电路”、“模块”或“系统”。此外,本申请的各方面可以采取体现在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质具有体现在其上的计算机可读程序代码。

计算机系统/服务器802还可与一个或多个外部设备820(例如,键盘、指点设备、显示器822等)通信;和/或使计算机系统/服务器802能够与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)。这样的通信可通过I/O接口824发生。此外,计算机系统/服务器802可以通过网络适配器826与诸如局域网(LAN)、通用广域网(WAN)和/或公共网络(例如,互联网)的一个或多个网络通信。如图所示,网络适配器826通过总线与计算机系统/服务器802的其他组件通信。应当理解,虽然未示出,但是其他硬件和/或软件组件可以与计算机系统/服务器802结合使用。示例包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器和数据归档存储系统等。

虽然系统、方法和非瞬态计算机可读介质中的至少一个的示例性实施例已经在附图中示出并且在前面的详细说明中作了描述,但是将理解的是,本申请不限于所公开的实施例,而是能够具有由以下权利要求阐述和定义的许多重排、修改和替换。例如,各种附图的系统的能力可由本文描述的或分布式架构中的一个或多个模块或组件来执行,并且可包括发射器、接收器或成对的发射器、接收器。例如,由单独模块执行的功能的全部或一部分可由这些模块中的一个或多个执行。进一步,本文描述的功能可以在不同时间和关于模块或组件内部或外部的不同事件来执行。此外,在各个模块之间发送的信息可以通过数据网络、互联网、语音网络、互联网协议网络、无线设备、有线设备和/或通过多个协议中的至少一个在模块之间发送。而且,由任何模块发送或接收的消息可直接和/或通过一个或多个其他模块发送或接收。

本领域技术人员将理解,“系统”可以体现为个人计算机、服务器、控制台、个人数字助理(PDA)、蜂窝电话、平板计算设备、智能电话或任何其他合适的计算设备或设备的组合。将上述功能呈现为由“系统”执行并不旨在以任何方式限制本申请的范围,而是旨在提供许多实施例的一个示例。实际上,本文公开的方法、系统和装置可以以与计算技术一致的局部和分布式形式来实现。

应注意,本说明书中所描述的系统特征中的一些已经被呈现为模块,以便更具体地强调其实现独立性。例如,模块可以被实现为硬件电路,所述硬件电路包括定制超大规模集成(VLSI)电路或门阵列、诸如逻辑芯片、晶体管之类的现成半导体、或其他分立组件。模块也可以以可编程硬件设备(诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备、图形处理单元等)来实现。

模块也可以至少部分地以软件来实现,由各种类型的处理器执行。所标识的可执行代码单元可以例如包括可以例如被组织为对象、过程或函数的计算机指令的一个或多个物理或逻辑块。然而,所识别的模块的可执行文件不需要在物理上位于一起,而是可以包括存储在不同位置的不同指令,当逻辑地结合在一起时,所述不同指令包括模块并且实现模块的所述目的。进一步,模块可存储在计算机可读介质上,所述计算机可读介质可为(例如)硬盘驱动器、快闪装置、随机存取存储器(RAM)、磁带或用于存储数据的任何其他此类介质。

实际上,可执行代码的模块可以是单个指令或许多指令,并且甚至可以分布在几个不同的代码段上、在不同的程序之间、以及跨几个存储器设备。类似地,操作数据可以在本文中在模块内被识别和示出,并且可以以任何合适的形式体现和组织在任何合适类型的数据结构内。操作数据可以作为单个数据集来收集,或者可以分布在不同位置上,包括在不同的存储设备上,并且可以至少部分地仅仅作为电子信号存在于系统或网络上。

将容易理解的是,如在此的附图中总体上描述和展示的,本申请的这些组件可以按多种多样的不同构型来安排和设计。因此,实施例的详细描述不旨在限制所要求的应用的范围,而仅代表本申请的所选实施例。

本领域普通技术人员将容易理解,可以用不同顺序的步骤和/或用与所公开的配置不同的配置的硬件元件来实践以上内容。因此,虽然已经基于这些优选实施例描述了本申请,但是对于本领域技术人员而言显而易见的是,某些修改、变化和替代构造将是显而易见的。

虽然已经描述了本申请的优选实施例,但是应当理解的是,所描述的实施例仅是说明性的,并且当考虑对其的全范围的等效物和修改(例如,协议、硬件设备、软件平台等)时,本申请的范围将仅由所附权利要求书限定。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号