首页> 中国专利> 基于区块链的验证框架

基于区块链的验证框架

摘要

通过经过区块链和智能合约实施已知良好状态的数据库来使验证框架去中心化。以该方式,系统可以提供开放平台来证明可能源自不同供应商的各种组件的完整性。如此,系统支持对多供应商基础设施的证明。在一些情况下,系统可以利用加密经济学来将平台货币化。例如,可以根据在区块链网络上实施的智能合约的条款对验证者进行奖励。此外,在一些情况下,可以经由诸如星际文件系统(“IPFS”)的不可变文件系统来交付组件。IPFS是基于点对点协议的去中心化文件系统,从而改进文件分发效率。使用IPFS存储的组件均被指派唯一标识符,该标识符是文件区块上的哈希摘要组合。因此,可以经由哈希比较来检测对组件的任何修改。

著录项

说明书

技术领域

本发明的领域涉及基于区块链的验证框架,其将表示组件的已知良好状态的哈希文件存储在分布式账簿中,以进行验证和通过去中心化文件系统来分发组件以获得增强安全性。

背景技术

鉴于当前全球情报机构泄漏、网络恐怖主义以及商业或国家级间谍活动的情况,针对软件和硬件栈中的不同层级的威胁变得越来越智能。供应链是一种目标,其中由任何供应商提供的硬件可以被篡改,以提供来自给定公司或政府的内部信息。由于最近和越来越多的网络威胁,对健壮和开放的供应链完整性管理的需求日益增长。但是,供应链是涉及许多合作方的复杂生态系统。

同时,消费者日益要求开放架构来满足这些以及其他计算机安全挑战。这部分地由多样化的多供应商平台驱动,包括在消费者基础设施上操作的新旧硬件。这些和其他问题存在于常规的验证系统中。

发明内容

解决这些和其他问题的公开涉及用于管理组件的供应链的基于区块链的验证框架。在一些实施方式中,可以通过经过区块链和智能合约实施已知良好状态(Known GoodStates,KGS)的数据库来使验证框架去中心化。以该方式,系统可以提供开放平台来证明可能源自不同供应商的各种组件的完整性。如此,系统支持对多供应商基础设施的证明。在一些情况下,系统可以利用加密经济学来将平台货币化。例如,可以根据在区块链网络上实施的智能合约的条款对验证者进行奖励。此外,在一些情况下,可以经由诸如星际文件系统(“IPFS”)的不可变文件系统来交付组件。IPFS是基于点对点协议的去中心化文件系统,从而改进文件分发效率。使用IPFS存储的组件均被指派唯一标识符,该标识符是文件区块上的哈希摘要组合。因此,可以经由哈希比较来检测对组件的任何修改。

验证框架可以利用经测量的引导和远程证明来计算跨不同场景的链哈希,场景包括操作系统、应用以及在服务器处预安装的其他组件、没有操作系统的硬件、具有动态软件定义网络(SDN)规则和配置的网络交换机(SDN)和/或其他组件。

系统可以生成确定性签名(诸如组件的哈希摘要)的一次性计算结果。确定性签名可以包括确定性函数的输出,该确定性函数在给定相同输入的情况下将生成相同的输出。给定不同的输入,确定性函数将生成不同的输出。以该方式,可以基于组件的确定性签名来检测对组件的任何改变。哈希摘要可以被存储在区块链网络的分布式账簿中。在组件分发者(诸如,软件和/或硬件提供者)处的第一代理可以获得每个组件的哈希摘要的一次性预先计算结果。在一些情况下,哈希摘要可以由IPFS生成。

一旦组件被安装在诸如特定服务器上的消费者基础设施上,就可以使用相关的确定性签名来证明组件的状态,该确定性签名可以从区块链网络的分布式账簿中获得。在将组件实施到消费者基础设施中的消费者处的第二代理可以验证组件的完整性。例如,第二代理可以被实施为在消费者基础设施中执行的守护程序(daemon)或其他进程,以执行基础设施组件的检查。第一和第二两个代理之间的哈希摘要和其他元数据的交换可以通过区块链智能合约作为中介。如此,系统可以促进它们之间的信任。此外,区块链智能合约的使用可以生成新的市场来获取合适的经济条件,以通过对参与验证框架生态系统进行自动奖励来激励这些代理愿意合作。

在操作中,在一些情况下,系统可以从第一节点接收与要被查验的组件的测量结果有关的第一信息。测量结果可以包括确定性签名,诸如组件的哈希摘要。第一信息可以由第一区块链节点提供。系统可以包括从第二节点接收与要被查验的组件的测量结果有关的第二信息。第二信息可以由第二区块链节点提供。系统可以确定第一信息与第二信息匹配。在该示例中,至少两个节点已经验证了用于该组件的确定性签名是相同的,与仅一个节点验证了确定性签名的情况相比,这可以指示该签名有效的更高置信度水平。系统可以在分布式账簿中生成包括第一信息的条目。例如,系统可以广播包括第一信息的区块链交易。备选地或附加地,系统可以包括生成区块链区块并且广播要被添加到分布式账簿的区块链区块。以该方式,确定性签名可以被存储在分布式账簿上。在一些情况下,系统可以确定确定性签名,并且通过广播区块链交易和/或广播要被合并到分布式账簿中的区块链区块,将确定性签名写入分布式账簿。

在一些情况下,同意确定性签名的节点的数目可以被计数。数目越大,确定性签名正确的置信度越大。在一些情况下,作为对验证者(诸如,针对组件的测量结果生成了匹配信息的节点)的激励,可以将奖励分摊给节点中的每个节点。此外,该数目可以被提供给希望验证消费者的基础设施的组件的KGS的消费者。该数目可以指示组件处于KGS的置信度水平。

在参考附图考虑以下描述和所附权利要求(所有这些均构成本说明书的一部分)时,本文公开的系统和/或方法的这些和其他目的、特征和特性,以及操作的方法和结构的相关元件的功能和部件的组合和制造的经济性将变得更加明显,其中相同的附图标记在各个附图中表示对应的部分。然而,应当明确地理解,附图仅出于说明和描述的目的,并且不旨在作为对本发明的限制的定义。如说明书和权利要求中所使用的,单数形式的“一个”、“一种”和“该”包括复数对象,除非上下文另外明确指示。

附图说明

图1图示了根据本公开的一种实施方式的用于管理组件的供应链的基于区块链的验证框架的系统的示例。

图2图示了根据本公开的一种实施方式的用于管理组件的供应链的基于区块链的验证框架中的数据流的示例。

图3图示了根据本公开的一种实施方式的管理组件的供应链的验证框架的过程的示例。

图4图示了根据本公开的一种实施方式的在基于区块链的验证框架中使用受信任平台模块为组件生成确定性签名数据的示例。

图5图示了根据本公开的一种实施方式的经由区块链记录组件的已知良好状态的过程的示例。

图6图示了根据本公开的一种实施方式的经由区块链验证组件的已知良好状态的过程的示例。

图7描绘了示例计算机系统的框图,其中可以实施本文描述的任何实施例。

具体实施方式

本公开涉及通过用区块链和智能合约实施已知良好状态(KGS)的数据库来使验证框架去中心化。以该方式,系统可以提供开放平台来证明可能源自不同供应商的各种组件的完整性。如此,系统支持对多供应商基础设施的证明。在一些情况下,系统可以利用加密经济学来使平台货币化。例如,可以根据在区块链网络上实施的智能合约的条款对验证者进行奖励。此外,在一些情况下,可以经由诸如星际文件系统(“IPFS”)的不可变文件系统来交付组件。IPFS是基于点对点协议的去中心化文件系统,从而改进文件分发效率。使用IPFS存储的组件均被分配唯一的标识符,该标识符是文件区块上的哈希摘要组成。因此,可以经由哈希比较来检测对组件的任何修改。

验证框架可以利用经测量的引导和远程证明来计算跨不同场景的链哈希,场景包括操作系统、应用以及在服务器处预安装的其他组件、没有操作系统的硬件、具有动态SDN规则和配置的网络交换机(SDN)和/或其他组件。

系统可以生成确定性签名(诸如组件的哈希摘要)的一次性计算。哈希摘要可以被存储在区块链网络的分布式账簿中。在组件分发者(诸如,软件和/或硬件提供者)处的第一代理可以获得每个组件的哈希摘要的一次性预先计算结果。在一些情况下,哈希摘要可以由IPFS生成。

一旦组件被安装在诸如特定服务器上的消费者基础设施上,就可以使用相关的确定性签名来证明组件的状态,该确定性签名可以从区块链网络的分布式账簿中获得。在将组件实施到消费者基础设施中的消费者处的第二代理可以验证组件的完整性。例如,第二代理可以被实施为在消费者基础设施中执行的守护程序或其他进程,以执行对基础设施组件的检查。第一和第二两个代理之间的哈希摘要和其他元数据的交换可以通过区块链智能合约作为中介。如此,系统可以促进它们之间的信任。此外,区块链智能合约的使用可以生成新的市场来获取合适的经济条件,以通过对参与验证框架生态系统进行自动奖励来激励这些代理愿意合作。

本文使用的各种示例将描述如软件包(诸如,操作系统和应用)的组件以及相关联的元数据,以进行说明而非限制。供应链中的其他类型的组件(诸如硬件)也可以类似地被跟踪和验证。此外,除非另有说明,否则术语“消费者”将用于表示被提供了可以使用系统来验证的软件包或其他组件的实体。同样如本文中所使用的,各种示例将描述诸如SHA-1摘要的哈希摘要,以使确定性签名表示KGS。但是,也可以使用其他确定性签名。

图1图示了根据本公开的一种实施方式的用于管理组件的供应链的基于区块链的验证框架的系统100的示例。系统100可以包括区块链网络102、去中心化文件系统104、计算机系统110、分发者服务器120、消费者服务器140和/或其他组件。

区块链网络102可以包括使用一种或多种连接协议(包括点对点连接协议)彼此连接的一个或多个区块链节点2。节点的具体数目、配置和连接可以变化。区块链网络102可以包括每个节点都可以存储的分布式账簿。分布式账簿可以包括一系列数据区块,该数据区块至少引用另一个区块,诸如之前的区块。以该方式,数据区块可以被链接在一起。

每个区块链节点2可以包括区块链代理103,区块链代理103被配置为与区块链网络102的其他区块链节点2交互。例如,区块链代理103可以广播区块链交易以供其他节点处理并且对分布式账簿进行“挖矿”。区块链代理103还可以广播要被添加到分布式账簿中的被提议的区块链区块。更进一步,区块链代理103可以被配置为:通过添加到被提议的区块链区块上以将被提议的区块链区块合并到分布式账簿中来生成共识决策。区块链代理103可以根据各种区块链协议和规范来这样做。应当注意,区块链代理103可以包括与区块链代理126相同的功能,反之亦然。还应当注意,为了附图的清楚起见,在图1中用区块链代理103图示了区块链节点2中的仅一个区块链节点。然而,如前所述,区块链节点2中的每个区块链节点2可以包括区块链代理103。

一般而言,区块链是通过使用哈希连接在一起的数据记录的区块的集合。例如,当将新区块添加到区块链时,新区块包括诸如之前区块的哈希的引用。以该方式,每个附加区块为整个区块链的有效性创建了附加的安全性。区块链可以被实现为分布式账簿,其是去中心化数据库的形式,该去中心化数据库被存储在参与区块链的每个(或其中至少一些)节点(诸如区块链节点2)处。

区块链网络102可以被实施为公共或私有区块链。在私有区块链实施方式中,可以为区块链节点2被指派访问分布式账簿的某些权限。例如,一些节点2可以具有只读权限,而其他区块链节点2将具有读写权限。在这些实施方式中,每个代理/区块链节点2可能需要向区块链网络102和/或计算机系统110注册以使用该系统。在一些情况下,计算机系统110可以限制对区块链网络102的访问,从而确保其隐私。例如,经由公钥私钥加密,本文描述的一些区块链代理103可以仅访问与该代理有关的数据。在该示例中,私有分布式账簿上的数据或与给定区块链代理103有关的区块链交易,可以由计算机系统110使用区块链代理103的公钥来加密,使得只有区块链代理103的私钥可以解密其内容。

去中心化文件系统104可以包括一个或多个文件系统节点4,其使用一种或多种连接协议(包括点对点连接协议)彼此连接。节点的具体数目、配置和连接可以变化。文件系统节点4中的每个文件系统节点4可以存储全部或部分数据,诸如与本文涉及的供应链中的组件有关的数据。在一些实施方式中,去中心化文件系统104可以被实施为IPFS。各种IPFS规范在https://github.com/ipfs/specs处公开,并且通过引用以其整体并入本文。

计算机系统110可以包括或访问一个或多个处理器112、一个或多个存储设备114、可信平台模块(“TPM”)116和/或其他组件。一个或多个存储设备124可以存储指令,当该指令在一个或多个处理器112上执行时,对其进行编程以执行本文描述的各种功能。例如,一个或多个存储设备114可以存储TPM接口117、验证接口118和/或其他指令。TPM接口117可以允许诸如分发者和消费者的用户访问TPM 116。验证接口118可以接收和请求验证组件的状态。例如,验证接口118可以从消费者服务器140接收哈希摘要和/或组件标识符。计算机系统110可以将该请求作为区块链交易来广播。可以操作一个或多个节点2的第三方验证者可以获取区块链交易,并且确定哈希摘要与分布式账簿中存储的内容是否匹配。如果匹配,则验证者可以返回匹配的指示(指示该组件处于KGS)。

TPM 116可以包括具有一个或多个集成密码密钥的安全处理器。通过TPM 116,计算机系统110可以提供安全环境,以用于获取和评估由分发者分发的组件的KGS,其中分发者可以操作分发者服务器120。例如,计算机系统110可以提供包括TPM 116的主机基础设施,并且向其余部分(诸如,分发者服务器120、消费者服务器140、本文所述的验证者节点和/或其他组件)提供对由TPM 116提供的安全环境的访问。应当注意,TPM 116也可以被托管在分发者基础设施220和/或消费者基础设施240处。

分发者服务器120可以用于构建组件,为每个组件生成哈希摘要,通过区块链网络102广播哈希摘要以存储在去中心化的KGS数据库中,以及通过去中心化文件系统104分发该组件。例如,分发者服务器120可以包括或访问一个或多个处理器122、一个或多个存储设备124和/或其他组件。

一个或多个存储设备可以存储区块链代理126、文件系统接口128和/或对一个或多个处理器122进行编程的其他指令。区块链代理126可以在区块链节点2上操作。换句话说,如下所述,分发者服务器120可以与区块链节点2对接或对其操作。文件系统接口128可以将组件提供给去中心化文件系统104,以分发给消费者。

消费者服务器140可以从去中心化文件系统104获得组件,生成组件的哈希摘要,以及基于哈希摘要和被存储在区块链网络102处的KGS数据库来验证组件的KGS。例如,消费者服务器140可以包括或访问一个或多个处理器142、一个或多个存储设备144和/或其他组件。一个或多个存储设备可以存储证明代理146、文件系统接口148和/或对一个或多个处理器122进行编程的其他指令。证明代理146可以请求消费者基础设施240上的特定组件或组件集被验证,以确保它或它们处于KGS。为此,证明代理146可以生成组件的哈希摘要。在一些情况下,证明代理146可以通过访问TPM 106来生成哈希摘要来这么做。证明代理146可以发送验证组件处于KGS的请求。例如,证明代理146可以发送哈希摘要和任何组件标识符(来自去中心化文件系统104)以用于验证。证明代理146可以周期性地验证消费者基础设施240的一个或多个组件的KGS。例如,证明代理146可以被实施为消费者基础设施240的守护程序或其他进程。文件系统接口148可以从去中心化文件系统104获得组件。例如,消费者服务器140可以访问或以其他方式执行文件系统节点4,来从去中心化文件系统104读取数据。

具体地,消费者服务器140可以将包括哈希摘要的请求发送到验证者组件,验证者组件确定哈希摘要是否被包含在KGS数据库中。如果是,则组件的KGS已经被查验(在本文也被称为“已验证”)。如果否,则组件未被验证。在一些情况下,可以与对请求的响应一起提供区块链网络102之中已经独立确认该组件的哈希摘要有效的区块链节点2的数目。确认了哈希摘要的更大数目的节点2通常与所查询的组件处于KGS的更大置信度水平相关联。应当注意,在附图中,尽管仅图示了一个分发者基础设施220和对应的组件,但是多个分发者基础设施220可以参与系统100,使得能够验证多供应商消费者基础设施处于KGS。同样,多个消费者基础设施240可以参与以验证其基础设施。

以下描述还将参考图2和图3,图2图示了用于管理组件的供应链的基于区块链的验证框架200中的数据流的示例,图3图示了管理组件的供应链的验证框架的过程300的示例。分发者服务器120可以是分发者基础设施220的一部分,并且消费者服务器140可以是消费者基础设施240的一部分。分发者基础设施220可以通过操作区块链节点2来参与区块链网络110,并且可以通过操作节点4来参与去中心化文件系统。同样,消费者基础设施240可以通过操作区块链节点2来参与区块链网络110,并且可以通过操作节点4来参与去中心化文件系统。消费者基础设施240可以包括来自各种供应商的组件,使得在不使用系统100的情况下,难以验证这些组件的状态。

在操作302中,通过TPM 116,分发者可以在安全环境中构建组件和相关联的元数据。例如,诸如组件的供应商的分发者可以经由TPM 116来构建该组件,以用于加密密钥管理。在一些情况下,TPM 116可以为组件的每个文件生成哈希摘要。

在操作304中,分发者服务器120可以使用文件系统接口128来将组件和元数据放置到去中心化文件系统104中。在一些情况下,文件系统接口128可以在去中心化文件系统104的节点4上操作。如此,分发者服务器120可以与节点4对接或操作节点4。在具体示例中,可以经由能够在IPFS上读和/或写文件的IPFS节点将组件和元数据放置到IPFS中。

在一些情况下,去中心化文件系统104可以在其中存储的每个组件的唯一标识符。在这些情况下,在操作306中,区块链代理126可以获得针对去中心化文件系统104中的每个组件的唯一标识符,并且从TPM 116获得哈希摘要。区块链代理126可以生成包括唯一标识符和哈希摘要的区块链交易,唯一标识符和哈希摘要可以彼此关联地存储,使得唯一标识符标识特定的组件,并且哈希摘要表示由唯一标识符标识的组件的确定性签名。在一些情况下,均操作相应区块链节点2的第三方验证者可以操作以确认一个或多个区块链交易,并且将它们的交易写入到分布式账簿的区块链区块中。在一些情况下,这些验证者可以通过生成相关组件的哈希摘要以确保所广播的事务包括正确的哈希摘要来独立地验证数据的真实性,这指示IPFS或其他文件系统中的组件未被篡改或以其他方式被修改。

在一种实施方式中,系统可以促进市场以使该系统货币化。因此,计算机系统110的操作者可以将开放的(基于区块链的)系统货币化,同时激励利益相关者参与市场。例如,利益相关者可以事先同意基于区块链的智能合约,并且将智能合约实施为自动交易,并具有:1)为向区块链添加交易而支付的费用,以及2)两方或多方之间的财务转移。系统可以利用智能合约来创建新的市场,该新的市场对所有软件和硬件供应商(诸如分发者120)及其客户开放,以提供可以保证其基础设施的完整性的解决方案。由于智能合约的委派,系统可以提供通用智能合约,该通用智能合约依据所涉及的供应商和合作伙伴,将交易路由到正确的合约。通过这样做,一方的收入流通过执行由完整性检查启动的智能合约而被自动生成。例如,验证者可以被奖励用于验证确定性签名的费用。同样,分发者可以被激励来使用该系统,不仅来满足其消费者对供应链完整性的需求,而且还被奖励来使用该系统。

在操作308中,可以发布组件构建的位置。例如,通过使用星际名称系统(它是用于IPFS的类似于DNS的服务),分发者可以在其IPNS地址处发布指针,该指针指向存储库根文件夹(在图2中被图示为“当前根目录”)的最新摘要。IPFS允许浏览子目录,诸如“根发行元数据”、“发行元数据”和“组件”子目录。以该方式,可以基于IPNS地址和分发者的指针来获得组件数据和元数据。

在操作310中,构建可以从去中心化文件系统104被获得,并且被安装在消费者基础设施240处,并且被验证该构建处于KGS。例如,消费者服务器140可以请求验证一个或多个组件。在一些情况下,请求和/或请求的结果可以作为区块链交易被广播到区块链网络102,该区块链交易可以被写入分布式账簿。以该方式,系统可以保证任何验证检查的可审计交易。

图4图示了根据本公开的一种实施方式的数据流400的示例,该数据流400用于在基于区块链的验证框架中使用TPM 116来生成用于组件的确定性签名数据,并且使用该数据进行验证。关于图4描述的“测量结果”意在传达指示组件的状态的确定性签名。例如,如果组件被更改,则由例如哈希函数生成的确定性签名也将被更改。

在操作402中,过程400可以包括状态引导加载器的第一状态的测量结果,诸如芯片的引导ROM的测量结果。可以在TPM 116中生成由哈希值“b83fac83fb9286”图示的测量结果。该测量结果可以被存储在TPM 116的一个或多个平台配置寄存器(PCR)中。分发者或其他人也可以将测量结果存储在区块链网络102的分布式账簿中。

在操作404A中,过程400可以包括加载和测量第二状态引导加载器,诸如统一可扩展固件接口(“UEFI”)或基本输入输出系统(“BIOS”)。在操作404B中,过程400可以包括将所得的测量结果(例如,“a34fc80fdeB3f1”)存储在一个或多个PCR和/或分布式账簿中。

在操作406A中,过程400可以包括加载和测量操作系统(“OS”)。在操作406B中,过程400可以包括将所得的测量结果(例如,“f9392c876d55a8”)存储在一个或多个PCR和/或分布式账簿中。

在操作408A中,过程400可以包括加载和测量一个或多个应用(“APP”)。在操作408B中,过程400可以包括将所得的测量结果(例如,“a82057ac840d83”)存储在一个或多个PCR和/或分布式账簿中。在一些情况下,每个测量结果(诸如,来自402、404B,406B和408B的结果)可以被存储在相应的PCR中,并且因此可以从TPM 116中被单独获得。

在操作410中,过程400可以包括由另一应用加载和测量一个或多个应用(“APP”)。只要有可以跟踪和验证其KGS的组件,该过程就可以继续。如所图示的,组件可以包括多个其他子组件,其中每个子组件可以被测量以获得确定性签名来跟踪其KGS。如此,可以个体地跟踪每个子组件的KGS,并且跟踪作为一个整体的组件包的总体确定性签名,或者可以个体地跟踪每个子组件的KGS,不跟踪作为一个整体的组件包的总体确定性签名。

通过使用TPM 116和分布式账簿,分发者可以标识每个组件的KGS(经由确定性签名测量结果)。此外,即使子组件来源于各个供应商,每个子组件的KGS也可以被标识。因为确定性签名被存储在分布式账簿中,所以一旦组件(和任何子组件,被统称为“包”)被安装在消费者基础设施240处,消费者就可以周期性地验证其包构建处于KGS。

例如,在操作412中,过程400可以包括向TPM 116提供随机数。在操作414中,过程400可以包括从TPM 116获得已签名的测量结果。在操作416中,过程400可以包括:基于在存储了KGS数据库的分布式账簿中存储的测量结果,来查验签名和测量结果。

图5图示了根据本公开的一种实施方式的经由区块链记录组件的已知良好状态的过程500的示例。在操作502中,过程500可以包括从第一节点接收与要被查验的组件的测量结果有关的第一信息。测量结果可以包括确定性签名,诸如组件的哈希摘要。第一信息可以由第一区块链节点提供。

在操作504中,过程500可以包括从第二节点接收与要被查验的组件的测量结果有关的第二信息。第二信息可以由第二区块链节点提供。

在操作506中,过程500可以包括确定第一信息与第二信息匹配。在该示例中,针对该组件,至少两个节点验证了确定性签名相同,与仅一个节点验证了确定性签名的情况相比,这可以指示该签名有效的更高置信度水平。

在操作508中,过程500可以包括在分布式账簿中生成包括第一信息的条目。例如,过程500可以广播包括第一信息的区块链交易。备选地或附加地,过程500可以包括生成区块链区块,并且广播要被添加到分布式账簿的区块链区块。以该方式,确定性签名可以被存储在分布式账簿上。应当注意,过程500可以确定确定性签名,并且通过广播区块链交易和/或广播要被合并到分布式账簿中的区块链区块来将该确定性签名写入分布式账簿。

在一些情况下,同意确定性签名的节点的数目可以被计数。数目越大,确定性签名正确的置信度越大。在一些情况下,作为对验证者(诸如,针对组件的测量结果生成了匹配信息的节点)的激励,可以将奖励分摊给节点中的每个节点。

图6图示了根据本公开的一种实施方式的经由区块链来验证组件的已知良好状态的过程600的示例。

在操作602中,过程600可以包括接收来自请求者的请求,该请求包括与要被查验的组件的测量结果有关的第一信息。

在操作604中,过程600可以包括:确定第一信息与被存储在分布式账簿中的内容是否匹配,分布式账簿用于验证包括该组件在内的多个组件。在操作606中,过程600可以包括生成查验结果,该验证结果指示第一信息与被存储在分布式账簿中的内容是否匹配。在操作608中,过程600可以包括将查验结果提供给请求者。

尽管在图1中被图示为单个组件,但计算机系统110可以包括多个单独的组件(诸如计算机设备),每个单独的组件利用本文描述的功能中的至少一些功能进行编程。本文描述的一个或多个处理器中的每个处理器可以包括由计算机程序指令编程的一个或多个物理处理器。出于说明性目而提供本文描述的各种指令。可以使用其他配置和指令的数目,只要处理器20被编程为执行本文描述的功能即可。

此外,应当理解,尽管在图1中将各种指令图示为共同位于单个处理单元内,但在其中处理器包括多个处理单元的实施方式中,一个或多个指令可以与其他指令远程地执行。

由本文描述的不同指令提供的功能的描述是出于说明性目的,而不是旨在限制,因为任何指令都可以提供比所描述的更多或更少的功能。例如,指令中的一个或多个指令可以被消除,并且其功能中的一些或全部可以由指令中的其他指令提供。作为另一示例,处理器可以由一个或多个附加指令编程,该一个或多个附加指令可以执行本文中归因于其中一个指令的一些或全部功能。

本文描述的各种指令可以存储在存储设备中,存储设备可以包括随机存取存储器(RAM)、只读存储器(ROM)和/或其他存储器。存储设备可以存储要由处理器执行的计算机程序指令(诸如上述指令)以及可以由处理器操纵的数据。所描述的存储设备中的每个存储设备可以包括一个或多个非暂态机器可读存储介质,诸如软盘、硬盘、光盘、磁带或其他物理存储介质,以用于存储计算机可执行指令和/或数据。

图1和其他附图中所图示的组件可以经由网络彼此耦合,该网络可以包括例如因特网、内联网、PAN(个人局域网)、LAN(局域网)、WAN(广域网)、SAN(存储区域网)、MAN(大都会区域网)、无线网络、蜂窝通信网络、公用电话交换网和/或其他网络中的任何一个或多个。在图1以及其他附图中,可以使用与所描绘的实体数目不同的实体数目。此外,根据各种实施方式,可以以硬件和/或配置硬件的软件实施本文描述的组件。

在图3(和其他附图)中描绘的各种处理操作和/或数据流在本文中被更详细地描述。可以使用上面详细描述的系统组件中的一些或所有系统组件来实现所描述的操作,并且在一些实施方式中,可以以不同的顺序执行各种操作,并且可以省略各种操作。可以与所描绘的流程图中示出的操作中的一些或全部操作一起执行附加操作。可以同时执行一个或多个操作。因此,所图示的(并且在下面更详细地描述)的操作本质上是示例性的,并且因此不应当被视为限制。

图7描绘了示例计算机系统700的框图,在其中可以实施本文描述的任何实施例。计算机系统700包括总线702或用于传送信息的其他通信机制、与总线702耦合以用于处理信息的一个或多个硬件处理器704。硬件处理器704可以是例如一个或多个通用微处理器。

计算机系统700还包括耦合到总线702以用于存储将由处理器704执行的信息和指令的主存储器706,诸如随机存取存储器(RAM)、高速缓存和/或其他动态存储设备。存储器706还可以用于在要由处理器704执行的指令的执行过程中存储临时变量或其他中间信息。这些指令当存储在处理器704可以访问的存储介质中时将计算机系统700渲染为被定制为执行说明中指定的操作的专用机器。

计算机系统700还包括耦合到总线702以用于存储处理器704的静态信息和指令的只读存储器(ROM)708或其他静态存储设备。存储设备710(诸如磁盘、光盘或USB拇指驱动器(闪存驱动器)等)被提供并且耦合到总线702以存储信息和指令。

计算机系统700可以经由总线702耦合到显示器712(诸如阴极射线管(CRT)或LCD显示器(或触摸屏))以向计算机用户显示信息。输入设备714(包括字母数字键和其他键)耦合到总线702以用于将信息和命令选择传送到处理器704。另一种类型的用户输入设备是用于将方向信息和命令选择传送到处理器704并且用于控制显示器712上的光标移动的光标控件716,诸如鼠标、轨迹球或光标方向键。该输入设备通常在两个轴(第一轴(例如,x)和第二轴(例如,y))上具有两个自由度,以允许设备指定平面中的位置。在一些实施例中,可以通过在没有光标的情况下接收触摸屏上的触摸来实现与光标控件相同的方向信息和命令选择。

计算系统700可以包括用于实现GUI的用户界面组件,该GUI可以作为由计算设备执行的可执行软件代码存储在大容量存储设备中。作为示例,该组件和其他组件可以包括诸如软件组件、面向对象的软件组件、类组件和任务组件、进程、功能、属性、过程、子例程、程序代码段、驱动程序、固件、微代码、电路、数据、数据库、数据结构、表、数组和变量等组件。

一般地,如本文使用的词语“组件”可以指在硬件或固件中具体化的逻辑,或者软件指令的集合,可能具有以编程语言编写的入口和出口点,编程语言诸如例如Java、C或C++。软件组件可以编译并且链接到可执行程序中,安装在动态链接库中,或者可以用解译编程语言来编写,诸如例如BASIC、Perl或Python。可以理解,软件组件可以从其他组件或者从其自身可调用,和/或可以响应于检测到的事件或者中断而被调取。配置用于在计算设备上运行的软件组件可以在计算机可读介质上提供,诸如紧致盘、数字视频盘、闪速驱动器、磁盘或任何其他有形介质,或者作为数字下载(并且可以初始以压缩或可安装格式存储,在运行之前需要安装、解压和解密)。此类软件代码可以部分或者全部存储在运行计算设备的存储器设备上,以用于由计算设备运行。软件指令可以嵌入在固件中,诸如EPROM。还可以理解的是,硬件组件可以包括连接的逻辑单元,诸如门和触发器,和/或可以包括可编程单元,诸如可编程门阵列或者处理器。本文描述的组件或计算设备功能优选地被实施为软件组件,但是可以用硬件或固件来表示。通常,本文描述的组件指代可以与其他组件组合或被划分为子组件的逻辑组件,而不管其物理组织或存储如何。

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

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

非暂态介质不同于传输介质,但是可以与传输介质相结合使用。传输介质参与非暂态介质之间的信息传输。例如,传输介质包括同轴电缆、铜线和光纤,包括构成总线702的电线。传输介质还可以采用声波或光波的形式,诸如在无线电波和红外数据通信期间生成的声波或光波。

各种形式的介质可以涉及将一个或多个指令的一个或多个序列传送到处理器704以执行。例如,指令最初可以承载在远程计算机的磁盘或固态驱动器上。远程计算机可以将指令加载到其动态存储器中,并且使用调制解调器通过电话线发送指令。计算机系统700本地的调制解调器可以在电话线上接收数据,并且使用红外发射器将数据转换为红外信号。红外检测器可以接收红外信号中携带的数据,并且适当的电路可以将数据放置在总线702上。总线702将数据携带到主存储器706,处理器704从主存储器706中检索和执行指令。由主存储器706接收的指令可以检索和执行指令。由主存储器706接收的指令可以可选地在由处理器704执行之前或之后存储在存储设备710上。

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

网络链路720通常通过一个或多个网络提供到其他数据设备的数据通信。例如,网络链路可以通过本地网络提供到主机计算机724或到由因特网服务提供商(ISP)726操作的数据设备的连接。ISP 726又通过全球分组数据通信网络(通常称为“因特网”728)提供数据通信服务。本地网络722和因特网728都使用携带数字数据流的电、电磁或光信号。通过各种网络的信号以及在网络链路上并且通过通信接口718的携带去往和来自计算机系统700的数字数据的信号是传输介质的示例形式。

计算机系统700可以通过网络、网络链路和通信接口718发送消息和接收数据,包括程序代码。在因特网示例中,服务器730可以通过因特网728、ISP 726、局域网722和通信接口718传输应用的请求代码。

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

尽管本公开描述了基于区块链的验证框架,但是该框架可以被实施在任何类型的基于分布式账簿的系统中。区块链通常被认为是分布式账簿的一个示例。在本公开中,区块链和分布式账簿技术(“DLT”)可以被互换使用。

前面部分中描述的每个过程、方法和算法可以由包括计算机硬件的一个或多个计算机系统或计算机处理器执行的代码组件实施,并且被完全或部分自动化。过程和算法可以部分或全部地在专用电路装置中实现。

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

本文将某些实施例描述为包括逻辑或多个组件、引擎或机构。引擎可以构成软件引擎(例如,在机器可读介质上体现的代码)或硬件引擎。“硬件引擎”是能够执行某些操作的有形单元,并且可以以某种物理方式配置或布置。在各种示例实施例中,一个或多个计算机系统(例如,独立计算机系统、客户端计算机系统或服务器计算机系统)或计算机系统的一个或多个硬件引擎(例如,处理器或一组处理器)可以由软件(例如,应用或应用部分)配置为可以执行如本文所述的某些操作的硬件引擎。

在一些实施例中,硬件引擎可以机械地、电子地或其任何合适的组合来实现。例如,硬件引擎可以包括永久配置为执行某些操作的专用电路或逻辑。例如,硬件引擎可以是专用处理器,诸如现场可编程门阵列(FPGA)或专用集成电路(ASIC)。硬件引擎还可以包括由软件临时配置以执行某些操作的可编程逻辑或电路。例如,硬件引擎可以包括由通用处理器或其他可编程处理器执行的软件。一旦由这种软件配置,硬件引擎就变成专门定制的特定机器(或机器的特定组件)以执行配置的功能,而不再是通用处理器。应当理解,在专用和永久配置的电路中或在临时配置的电路(例如,由软件配置)中机械地实现硬件引擎的决定可以由成本和时间考虑来驱动。

因此,短语“硬件引擎”应当被理解为包含有形实体,即物理构造、永久配置(例如,硬连线)或临时配置(例如,编程)以按照特定方式操作或执行本文所述的某些操作的实体。如本文所使用的,“硬件实现的引擎”指硬件引擎。考虑其中临时配置(例如,编程)硬件引擎的实施例,不需要在任何一个时刻配置或实例化每个硬件引擎。例如,在硬件引擎包括由软件配置成为专用处理器的通用处理器的情况下,通用处理器可以在不同时间被配置为分别不同的专用处理器(例如,包括不同的硬件引擎)。软件相应地配置特定的一个或多个处理器,例如,在一个时刻构成特定的硬件引擎,并在不同的时刻构成不同的硬件引擎。

硬件引擎可以向其他硬件引擎提供信息并且从其接收信息。因此,所描述的硬件引擎可以被视为通信地耦合。在同时存在多个硬件引擎的情况下,可以通过在两个以上硬件引擎之间或之中的信号传输(例如,通过适当的电路和总线)来实现通信。在其中在不同时间配置或实例化多个硬件引擎的实施例中,可以例如通过存储和检索多个硬件引擎可访问的存储器结构中的信息来实现这些硬件引擎之间的通信。例如,一个硬件引擎可以执行操作并将该操作的输出存储在与其通信耦合的存储器设备中。然后,另一硬件引擎可以稍后访问存储器设备以检索和处理存储的输出。硬件引擎还可以发起与输入或输出设备的通信,并且可以在资源(例如,信息集合)上操作。

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

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

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

尽管已经参考特定示例实施例描述了主题的概述,但是在不脱离本公开的实施例的更宽范围的情况下,可以对这些实施例进行各种修改和改变。本文的主题的这些实施例可以单独地或共同地由术语“本发明”来引用,仅是为了方便,并且在事实上公开了多个发明概念的情况下,不旨在主动地将本申请的范围限制为任何单个发明或概念。

足够详细地描述本文示出的实施例以使本领域的技术人员能够实践公开教导。可以利用并从中导出其他实施例,使得可以在不脱离本公开的范围的情况下进行结构和逻辑替换和改变。因此,该详细描述不应被视为具有限制意义,并且各种实施例的范围仅由所附权利要求以及这些权利要求所享有的等同物的全部范围来限定。

应当理解,“引擎”、“系统”、“数据存储”和/或“数据库”可以包括软件、硬件、固件和/或电路。在一个示例中,包括能够由处理器执行的指令的一个或多个软件程序可以执行本文描述的引擎、数据存储、数据库或系统的一个或多个功能。在另一示例中,电路可以执行相同或类似的功能。替代实施例可以包括更多、更少或功能上等同的引擎、系统、数据存储或数据库,并且仍然在本实施例的范围内。例如,各种系统、引擎、数据存储和/或数据库的功能可以不同地组合或划分。

“开源”软件在本文中被定义为源代码,源代码允许可选地利用允许以源代码形式进行分发,并且可选地,在具有修改和派生工作的许可的情况下,利用获取源的广为人知的和索引的手段以编译形式进行分发。

本文描述的数据存储可以是任何合适的结构(例如,活动数据库、关系数据库、自引用数据库、表、矩阵、阵列、平面文件、面向文档的存储系统、非关系型No-SQL系统等),可以是基于云的或其他方式。

如本文所使用的,术语“或”可以以包含性或排他性的含义来解释。此外,可以为在此描述为单个实例的资源、操作或结构提供多个实例。另外,各种资源、操作、引擎、引擎和数据存储之间的边界在某种程度上是任意的,并且在特定说明性配置的上下文中示出了特定操作。功能的其他分配也被预期到,并且可以落入本公开的各种实施例的范围内。通常,在示例配置中作为单独资源呈现的结构和功能可以实现为组合结构或资源。类似地,作为单个资源呈现的结构和功能可以实现为单独的资源。这些和其他变化、修改、添加和改进落入由所附权利要求表示的本公开的实施例的范围内。因此,说明书和附图被认为是说明性的而不是限制性的。

除非另有说明,或者在所使用的上下文中以其他方式理解,否则条件性语言,诸如“可以”、“可”、“有可能”或“可能”通常旨在表达特定实施例包括而其他实施例不包括特定特征、元素和/或步骤。因此,这种条件性语言通常不旨在暗示一个或多个实施方式以任何方式需要特征、元素和/或步骤,或者一个或多个实施例必须包括用于在有或没有用户输入或提示的情况下决定在任何特定实施例中是否包括或要实现这些特征、元素和/或步骤的逻辑。

尽管出于说明的目的,已经基于当前被认为是最实用和优选的实施方式详细描述了本发明,但是应当理解,这种细节仅用于该目的并且本发明不是本发明的实施例仅限于所公开的实施方式,而是相反,旨在覆盖在所附权利要求的精神和范围内的修改和等同布置。例如,应当理解,本发明预期的是,在可能的范围内,任何实施例的一个或多个特征可以与任何其他实施例的一个或多个特征组合。

通过考虑本文公开的本发明的说明书和实践,本公开的其他实施方式、用途和优点对于本领域技术人员将是很清楚的。本说明书应当仅被认为是示例性的,并且本发明的范围因此旨在仅由所附权利要求来限制。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号