一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于密码标签的存储和通信环境的制作方法

2022-11-16 16:11:51 来源:中国专利 TAG:


1.本发明涉及经由区块链存储数据,尤其涉及用于将与物理对象相关联的可读标签数据安全地传递到位于远程的区块链的机制。


背景技术:

2.集中式数据库在一个位置处的单个数据库(例如,数据库服务器)中存储和维护数据。该位置通常是中央计算机,例如台式中央处理单元(cpu)、服务器cpu或大型计算机。存储在集中式数据库上的信息通常是从多个不同点可访问的。多个用户或客户工作站可以例如基于客户端/服务器配置同时在集中式数据库上工作。集中式数据库由于其单个位置而易于管理、维护和控制,尤其是出于安全的目的。在集中式数据库内,数据冗余被最小化,因为所有数据的单个存储位置也暗示给定数据集合仅具有一个主记录。
3.同时,区块链系统存储关于不可变分类账(ledger)的数据,提供通过非信任参与者对不可变分类账的分布式和去中心化访问,建立对非信任参与者之间的协定的共识要求,从而使得没有一个实体可以在没有来自其他实体的协定的情况下改变不可变分类账,调用智能合约等。区块链由同意将区块(其中存储有数据)添加到不可变分类账的参与者的网络形成。在被添加之前,该区块被链接到不可变分类账上的前一区块,从而形成链。区块链的这种不可变且不可破坏的性质使得其免受伪造的信息和黑客的侵害。去中心化的性质还给予它独特的无信任质量,因为各方不需要在他们可以安全事务之前建立信任。


技术实现要素:

4.从第一方面看,本发明提供一种装置,包括:网络接口,其被配置为接收从与物理对象相关联的标签读取的并且利用分配给所述标签的密钥签名的标签数据;处理器,其被配置为基于区块链对等体可访问的标签的对应密钥对来确定经签名的标签数据被有效地签名,并且经由所述区块链对等体确定所解密的标签数据是否满足所述物理对象的一个或多个预定义条件;以及存储器,其被配置为经由区块链数据库存储所述确定。
5.优选地,本发明提供一种装置,其中,所述标签数据包括由耦合到标签的一个或多个传感器设备感测的传感器数据。
6.优选地,本发明提供一种装置,其中,传感器数据包括以下中的一个或多个的值:温度,位置,流体流速,ph,速度,加速度,粘度,照明,频谱测量,图像,压力,振动,重力和旋转速度。
7.优选地,本发明提供一种装置,其中,所述处理器还被配置成基于包括在所述标签数据内的传感器标识符来验证所述标签的真实性。
8.优选地,本发明提供了一种装置,其中,处理器被配置为确定所述标签数据是否违反嵌入在运行在所述区块链对等体上的链代码的逻辑内的一个或多个预定义条件。
9.优选地,本发明提供了一种装置,其中,所述网络接口还被配置为经由运行在所述区块链对等体上的链代码向与所述物理对象相关联的计算机设备发送警报。
10.优选地,本发明提供了一种装置,其中,所述标签数据还由分配给读取器的密钥签名,并且所述处理器还被配置为基于区块链对等体可访问的读取器的对应密钥对来确定经签名的标签数据是被有效地签名。
11.优选地,本发明提供了一种装置,其中,所述处理器被配置为将所述标签的标识符和所述标签数据作为键-值对存储在所述区块链的状态数据库中。
12.从另一方面来看,本发明提供了一种方法,包括:从耦合到标签的一个或多个硬件传感器检索传感器数据,并且将所述传感器数据存储在所述标签的存储器内;从与区块链平台相关联的读取器接收读取请求;经由所述读取器基于所述标签和所述区块链之间的握手协议来验证所述区块链平台的真实性;以及响应于区块链平台的成功验证,基于所述标签的私钥对传感器数据进行签名,并且向所述读取器发送经签名的传感器数据。
13.优选地,本发明提供了一种方法,进一步包括:在标签上电期间,经由标签上的引导加载器检查在所述标签上运行的软件的完整性。
14.优选地,本发明提供了一种方法,其中,验证区块链平台的真实性包括接收由区块链平台签名的数据,并且基于由所述标签存储的所述区块链平台的对应密钥来验证所述经签名的数据。
15.优选地,本发明提供了一种方法,进一步包括:由所述标签基于与读取器的握手协议来验证所述读取器的真实性。
16.优选地,本发明提供了一种方法,进一步包括:执行与所述区块链平台的密钥交换,以在所述标签和所述区块链平台之间建立共享密钥。
17.优选地,本发明提供了一种方法,其中,所述传感器数据的签名还包括在向所述读取器发送经签名的传感器数据之前,基于与所述区块链平台的所述共享密钥来加密所述传感器数据。
18.优选地,本发明提供了一种方法,进一步包括:经由所述标签,基于从所述一个或多个硬件传感器检索的所述传感器数据的值来检测已经发生数据违规,并且将所述数据违规存储在存储器内。
19.优选地,本发明提供了一种方法,其中,所述标签的存储器受到读取和写入保护,从而防止私钥被外部实体读取或修改。
20.从另一方面来看,本发明提供了一种方法,包括:经由网络接收从与物理对象相关联的标签读取的并且利用分配给所述标签的密钥签名的标签数据;经由区块链对等体,基于所述区块链对等体可访问的所述标签的对应密钥对,来确定经签名的标签数据被有效地签名;经由所述区块链对等体确定所述标签数据是否满足所述物理对象的一个或多个预定义条件;以及经由区块链数据库存储所述确定。
21.优选地,本发明提供了一种方法,该方法进一步包括:基于包括在标签数据内的传感器标识符来验证标签的真实性。
22.优选地,本发明提供了一种方法,其中,所述确定包括确定所述标签数据是否违反嵌入在运行在所述区块链对等体上的链代码的逻辑内的一个或多个预定义条件。
23.优选地,本发明提供了一种方法,进一步包括:经由运行在区块链对等体上的链代码向与物理对象相关联的计算设备发送警报。
附图说明
24.图1是示出根据示例实施例的在标签和区块链之间的存储和通信环境的图。
25.图2a是示出根据示例实施例的示例区块链架构配置的示图。
26.图2b是示出根据示例实施例的节点之间的区块链事务流的图。
27.图3a是示出根据示例实施例的许可网络的示图。
28.图3b是示出根据示例实施例的另一许可网络的示图。
29.图3c是示出根据示例实施例的无许可网络的示图。
30.图4a是示出根据示例实施例的在供应链的不同位置读取标签数据的过程的示图。
31.图4b是示出根据示例性实施例的将标签数据存储到区块链分类账的过程的图。
32.图4c是示出根据示例实施例的显示与物理对象相关联的标签数据的用户界面的图。
33.图5a是示出根据示例实施例的接收标签数据的方法的示图。
34.图5b是示出根据示例实施例的发送标签数据的方法的示图。
35.图6a是示出根据示例实施例的被配置为执行这里描述的一个或多个操作的示例系统的图。
36.图6b是示出根据示例实施例的被配置为执行这里描述的一个或多个操作的另一示例系统的图。
37.图6c是示出了根据示例实施例的被配置为利用智能合约的另一示例系统的图。
38.图6d是示出根据示例实施例的被配置为利用区块链的又一示例系统的示图。
39.图7a是图示了根据示例实施例的、新区块被添加到分布式分类账的过程的图。
40.图7b是示出根据示例实施例的新数据块的数据内容的示图。
41.图7c是示出了根据示例实施例的用于数字内容的区块链的图。
42.图7d是示出根据示例性实施例的可以表示区块链中的区块的结构的区块的示图。
43.图8a是示出根据示例实施例的存储机器学习(人工智能)数据的示例区块链的图。
44.图8b是示出根据示例实施例的示例量子安全区块链的示图。
45.图9是示出支持一个或多个示例实施例的示例系统的图。
具体实施方式
46.容易理解,如在本文附图中一般性描述和说明的,本发明的部件可以以各种不同的配置来布置和设计。因此,如附图中所表示的方法、装置、非暂时性计算机可读介质和系统中的至少一个的实施例的以下详细描述不旨在限制如所要求保护的本技术的范围,而仅仅是所选实施例的代表。
47.在一个或多个实施例中,可以以任何适当的方式组合或去除本说明书中描述的本特征、结构或特性。例如,在整个说明书中,短语“示例实施例”、“一些实施例”或其它类似语言的使用指的是结合实施例描述的特定特征、结构或特性可以被包括在至少一个实施例中的事实。因此,在整个说明书中出现的短语“示例实施例”、“在一些实施例中”、“在其它实施例中”或其它类似语言不一定全部指代同一组实施例,并且所描述的特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合或去除。此外,在图中,元件之间的任何连接可以允许单向和/或双向通信,即使所描绘的连接是单向或双向箭头。而且,附图中描绘的
任何设备可以是不同的设备。例如,如果移动设备被示为发送信息,则有线设备也可以用于发送信息。
48.另外,虽然在实施例的描述中可能已经使用了术语“消息”,但是本技术可以应用于许多类型的网络和数据。此外,虽然在示例性实施例中可以描述某些类型的连接、消息和信令,但是本技术不限于某些类型的连接、消息和信令。
49.示例实施例提供了将区块链的信任、安全性和不可改变性扩展到物理世界的方法、系统、组件、非瞬态计算机可读介质、设备和/或网络。
50.在一个实施例中,本技术利用去中心化数据库(诸如区块链),其为分布式存储系统,包括彼此通信的多个节点。去中心化数据库包括只附加的不可改变的数据结构,类似于能够在相互不信任的各方之间维护记录的分布式分类账。不可信方在这里被称为对等体或对等节点。每个对等体都维护数据库记录的副本,并且在分布式对等体之间没有达成共识的情况下,没有单个对等体可以修改数据库记录。例如,对等体可以执行共识协议以验证区块链存储事务,将存储事务分组为区块,并在区块上构建散列链。该过程通过根据需要对存储事务进行排序以便保持一致性,从而形成分类帐。在各种实施方式中,可以使用许可的和/或无许可的区块链。在公共或无许可的区块链中,任何人都可以在没有特定身份的情况下参与。公共区块链可以涉及原生加密货币并基于诸如工作证明(pow)等各种协议来使用共识。另一方面,许可的区块链数据库提供了在共享共同目标但不完全信任彼此的一组实体之间的安全事务,例如交换资金、商品、信息等的企业。
51.本技术可以利用操作任意的、可编程的逻辑的区块链,其被定制为去中心化存储方案并且被称为“智能合约”或“链代码”。在某些情况下,可能存在用于管理功能和参数的专用链代码,其被称为系统链代码。本技术还可以利用作为可信分布式应用程序的智能合约,该智能合约利用区块链数据库的防篡改特性和节点之间的底层协定,这被称为签署或签署策略。与本技术相关联的区块链事务在被提交给区块链之前可被“背书(endorsed)”,而未经背书的事务被忽略。签署策略允许链代码以背书所必需的对等节点集合的形式指定事务的背书者。当客户端向背书策略中指定的对等体发送事务时,该事务被执行以验证该事务。在验证之后,该事务进入排序阶段,在该排序阶段中使用共识协议来产生被分组成区块的经背书的事务的有序序列。
52.本技术可以利用作为区块链系统的通信实体的节点。“节点”可以执行逻辑功能,其意义在于不同类型的多个节点可以在同一物理服务器上运行。节点被分组在信任域中,并且与以各种方式控制它们的逻辑实体相关联。节点可以包括不同类型,例如向背书者(例如,对等方)提交事务调用并向排序服务(例如,排序节点)广播事务建议的客户端或提交客户端节点。另一种类型的节点是对等节点,其可接收客户端提交的事务、提交事务并维护区块链事务的分类账的状态和副本。对等体也可以具有背书者的角色,尽管这不是必需的。排序服务节点或排序者是为所有节点运行通信服务的节点,并且当提交事务并修改区块链世界状态时,其实现递送保证,例如广播到系统中的每个对等节点,这是初始区块链事务的另一名称,其通常包括控制和设置信息。
53.本技术可以利用分类账,该分类账是区块链的所有状态转换的排序的、防篡改的记录。状态转换可以由参与方(例如,客户端节点、排序节点、背书节点、对等节点等)提交的链代码调用(即,事务)产生。每个参与方(诸如对等节点)可以维护分类账的副本。事务可以
导致一组资产键-值对被提交给分类账作为一个或多个操作对象(operand),例如创建、更新、删除等。分类账包括用于将不可改变的有序记录存储在区块中的区块链(也称为链)。分类账还包括维护区块链的当前状态的状态数据库。
54.本技术可以利用作为事务日志的链,该事务日志被构造为散列链接的区块,并且每个区块包含n个事务的序列,其中n等于或大于一。区块头包括区块事务的散列,以及前一区块头的散列。以这种方式,可以对分类账上的所有事务进行排序并且将其加密地链接在一起。因此,不可能在不破坏散列链接的情况下篡改分类账数据。最近添加的区块链块区块的散列表示在其之前到来的链上的每个事务,使得其可以确保所有对等节点处于一致且可信的状态。该链可以被存储在对等节点文件系统(即,本地、附加存储、云等)上,从而高效地支持区块链工作负荷的仅附加性质。
55.不可变分类账的当前状态表示被包括在链事务日志中的所有键的最新值。由于当前状态表示信道已知的最近的键值,所以它有时被称为世界状态。链代码调用执行针对分类账的当前状态数据的事务。为了使这些链代码事务有效,可以将键的最新值存储在状态数据库中。根据各种实施例,区块链分类账的状态数据库是键值存储(kvs)。状态数据库可以简单地是链的事务日志中的索引视图,因此可以在任何时间从链中重新生成。在对等节点启动时,并且在事务被接受之前,状态数据库可以被自动恢复(或者如果需要的话,可以被生成)。
56.区块链技术使得能够通过具有可验证的起源和属性的安全、不可改变的分布式分类账在多方之间共享数据。区块链系统可以与现有的行业结合,包括食品安全、海上运输、供应链、物联网(iot)、钻石跟踪等。在相关的区块链系统中,为了访问区块链,系统通常提供通过外部源操作的输入方法,所述外部源可以包括企业软件、物理文档的扫描、缺乏安全性的现有设备内的集成以及人工输入。然而,这些输入方法不能提供由区块链网络实现的相同级别的信任和安全性。最易受攻击的输入源是依赖于人类输入或非安全设备的那些输入源。
57.因此,为了使区块链安全地扩展到物理世界,安全性和通信必须与区块链本身一样安全。射频识别(rfid)系统向物理世界提供一个这样的信道。rfid标签可以被附着到实物资产上或资产的周围环境中(例如,货盘、汽车、卡车、存储区等)。然而,rfid标签可以被相当容易地克隆。此外,rfid标签通信的rf信道可以容易地被截取,因为这种标签倾向于依赖于基于简单密码的方案以用于认证。
58.示例实施例涉及一种基于标签的通信环境,其通过将区块链扩展到附着到实物资产或实物资产周围的标签来克服先前的基于标签的系统的缺点。因此,可以在标签、读取器和区块链之间建立信任链。标签可以包括嵌入(写入)在标签的安全存储器内并且外部实体不可访问的私钥。同时,私钥的对应公钥可被存储在区块链网络处,例如,存储在区块链分类账、区块链存储等上。每个标签可以被提供有私钥,然后被注册到区块链中。当标签向区块链发送数据时,标签可以用其私钥来对数据进行签名。区块链然后可以使用相应的公钥来验证标签的签名,并且同样验证标签的数据的真实性。
59.安全可执行程序可以被加载到标签中,该安全可执行程序包括用于响应来自标签的读取器的请求的指令。将信息从标签中继到区块链的读取器可以是可信的或不可信的。如果读取器是可信的,则它们可以包括存储在其中的私钥,该私钥具有由区块链存储的对
应公钥。可信读取器还可以对标签数据进行签名,从而创建附加安全层。此外,区块链可以存储读取器的相应公钥,从而验证读取器的签名是有效的。
60.标签可以是具有安全硬件信任根的可编程计算机系统。标签可以包括网络接口(例如,在一个实施例中的rfid,等等),无线天线,电池,等等。标签还可以包括一个或多个通信接口(例如蓝牙等),其使得标签能够与一个或多个传感器设备电耦合。因此,标签可以以周期性的阶段唤醒并从与其耦合的传感器捕获传感器数据。
61.在一些实施例中,标签可以被提供有来自区块链证书授权中心(ca)的密钥,然而,实施例不限于此。在一些实施例中,ca可用于减少标签和/或区块链上的存储负载。私钥可以经由使用例如rfid、蓝牙(无线)或端口(有线)之类的通信接口的外部系统被存储在标签的保护性非易失性存储器中。此外,一旦提供了标签,外部系统就可以保护存储私钥的存储器位置,以防止私钥被访问或被重写。此外,可以控制标签的硬件,使得只有在硬件上以特定特权运行的程序才能访问私钥。这种程序的一个例子是引导加载器,其在标签加电时加载。引导加载器还可以启用硬件保护方案,从而使得在硬件上永远不会运行任何后续代码。引导加载器还可以保护访问端口,并防止调试器对存储器和标签的cpu进行读和写访问。
62.引导加载器可以在标签每次开始加电时启动。这里,引导加载器可以检查在标签上运行的软件应用程序的完整性。该检查可以在每次标签通电时被执行。例如,引导加载器可以在每次标签引导时检查应用映像的crc,以验证应用的完整性。引导加载器还可以通过用秘密密钥签名的设备固件更新而被更新。该更新可以使应用代码对标签是永久的。
63.标签可以被提供有私钥,该私钥具有由区块链存储的对应公钥。这里,标签可以使用私钥来对标签数据进行签名,而存储在区块链上的对应公钥可以用于验证经签名的标签数据。因此,标签可以向区块链发送标签数据和基于标签数据的数字签名。标签可以使用椭圆曲线diffie-hellman(ecdh)等来执行密钥交换。在密钥交换之后,标签可以使用所生成的共享密钥来使用诸如aes等算法对标签数据进行加密,并将加密数据存储在区块链上,其中加密数据可以由区块链例如自动地或在满足一个或多个条件时解密。
64.为了创建数字签名,标签可以创建要签名的电子标签数据的单向散列。私钥可以用于使用诸如椭圆曲线数字签名算法(ecdsa)等的算法来生成散列。散列是数字签名。可以加密散列而不是整个标签数据,因为散列可以将任意大小的输入转换成通常比原始标签数据短得多的固定长度值。散列的值对于散列数据是唯一的。区块链可以使用公钥(对应于标签的私钥)来验证签名确实对应于标签数据,并且它确实是使用正确的私钥生成的。例如,区块链可以使用ecdsa签名验证算法。这确保了标签数据被认证并且不被篡改。
65.标签可以响应来自rfid读取器的查询。例如,标签可以是“智能”标签。当rfid阅读器查询标签时,标签可以以对rfid阅读器的可验证签名和标识符的请求来响应。这里,标签可以存储相关联的rfid读取器的相应公钥。当rfid读取器以其标识符(可以使用rfid读取器的私钥对该标识符进行散列)进行响应时,标签可以基于相应的公钥来验证私钥,以验证rfid读取器的完整性。此外,标签可以提供传感器数据、标签序列号等,其由标签使用加密密钥(例如,在ecdh密钥交换之后等)进行加密。rfid读取器可以经由诸如wi-fi、蓝牙(如果是短距离的)等无线协议将该数据中继(通过首先解密,然后利用rfid读取器和区块链之间的共享密钥重新加密)标签数据到区块链。rfid读取器还可以添加来自读取器所附接到的任何传感器的附加数据,例如来自提供其位置的定位传感器。授权的rfid读取器将能够解
密标签数据。否则,rfid读取器仅作为标签和区块链之间的中继器工作。当rfid读取器作为中继器工作时,ecdh密钥交换是在标签和区块链服务器之间,并且经加密的标签数据被从标签发送到服务器,而rfid读取器不在其间对其进行解密。在这种情况下,标签还通过使用服务器的存储的公钥来验证区块链服务器的完整性,其方式类似于上面针对rfid读取器的验证所描述的方式。
66.该系统的一个示例使用情况是供应链。每个实体(例如,制造商、经销商、运输商、零售商等)可以被连接到区块链,并被要求在供应链中的各个点捕捉标签数据。同时,标签可以电耦合到传感器,标签使得传感器周期性地(例如,每10分钟等)感测信息。例如,标签可以耦合到温度计,该温度计每10分钟捕获温度读数,该读数然后由标签存储。当标签被读取器读取时,标签可以用其私钥对传感器数据进行签名并将其提供给读取器。标签还可以利用在标签和读取器之间或者标签和区块链服务器之间的、利用ecdh等生成的共享密钥来加密数据。传感器数据可以被馈送到区块链以供进一步分析。在一些实施例中,传感器数据还可以用于进一步认证标签。例如,传感器标识符、地理位置等也可以由标签提供,以验证标签与预定义的传感器通信。
67.示例实施例的一些益处包括将区块链的安全性扩展到标签所位于的物理环境。嵌入在标签内的私钥可以允许标签对从标签向区块链发送的所有数据进行唯一签名。此外,附加数据可以由标签提供(例如,传感器id、传感器数据、地理位置等),其可以用于进一步验证标签的真实性,并且因此验证标签所附接到的对象的真实性。区块链可以具有用于标签的公钥。作为另一个例子,安全读取器也可以具有使读取器也能够验证标签签名的公共密钥。
68.在示例实施例中,区块链可以用作为标签数据提供后端存储的工具。然而,实施例不限于此。应当理解,存储装置可以包括任何可信系统,例如安全服务器、安全数据库等。
69.图1示出了根据示例实施例的在标签110和区块链130之间的存储和通信环境100。参照图1,区块链130分布在多个区块链对等体之间,每个区块链对等体存储区块链分类账的副本。区块链对等体也可以参与事务的背书。可以通过在安全网络(区块链网络)内与区块链对等体通信的排序节点(未示出)将新的区块添加到区块链130。
70.标签110可以包括天线111,用于与具有相应天线121的读取器120进行无线射频通信。标签110还包括通信接口112,其使得标签110能够耦合到传感器115。这里,通信接口112可以包括有线/端口、蓝牙接口、rfid接口、nfc接口,等等。因此,标签110和传感器115可以电耦合、光耦合、经由射频耦合,等等。传感器115可以包括温度计、速度计、全球定位系统、加速度计、流量计、湿度计、压力传感器,等等。传感器115可以包括多种不同类型的传感器(例如,两种或更多种类型的传感器)。而且,应当理解,传感器的类型可以是与具体列出的那些不同的类型。
71.例如,标签110可以周期性地(例如,每5分钟)唤醒,并且经由通信接口112请求来自传感器115的读数。传感器读数可以存储在标签110的存储器中,该存储器包括传感器读数列表。此外,当标签110被读取器120读取时,标签110可以发送来自传感器115的自从由读取器120最近读取以来已经收集的读数的列表。标签还可以发送关于传感器数据的经处理信息,例如,最小和最大温度读数和相应的时间戳,或者在对相机图像进行图像处理之后房间中的人数。标签110可以用其私钥对传感器数据进行签名。标签还可以对传感器数据进行
加密。而且,标签可以发送标签的序列号(id)、地理位置、时间戳等。
72.在向读取器120发送数据之前,标签110可以首先使用握手协议验证读取器120是有效的读取器。例如,标签110可以存储与一个或多个读取器相对应的公钥的列表。标签110可以向读取器120查询其私钥(或由读取器120利用读取器的私钥签名的数据)。读取器120可以向标签110提供经签名的数据。如果签名验证成功,则标签110可以确定读取器120是有效的读取器。
73.在一些实施例中,ecdh可以被用于计算用于加密和散列的秘密密钥(会话密钥)。共享秘密可以是用于散列的密钥,或者可以用于导出该密钥。例如,标签110可以与托管区块链130的区块链网络建立aes加密密钥。加密的标签数据可以被存储在区块链130上,并由智能合约或区块链应用来解密,并被使得对于例如分析等的其他应用可用。
74.标签110可以支持各种安全算法,例如aes、sha256和ecdsa。外部系统可以在标签110内的存储器的一部分中编程私钥,该私钥可以被永久地确定,从而确保一旦私钥被存储在标签110上,就不能被改变。此外,在标签110的处理器中运行的初始代码可以被配置成使得写入标签110中的私钥不能被处理器上运行的任何非特权代码读取。这些特征确保标签110不能被克隆。标签110还可以支持不同的通信协议,例如nfc、rfid和蓝牙低能量配置(ble)、有线接口(例如i2c、spi)或其他标准或专有接口,从而提供用于将传感器和读取器耦合到标签110的灵活性。
75.在示例实施例中,区块链130存储标签的私钥的对应公钥,并且标签110被保护以免被克隆和/或重写。因此,在标签110与区块链130之间创建信任链。读取器120也不必是可信读取器。然而,示例实施例可以包括这两种情况。在一个示例中,读取器120可以包括其自己的私钥,用于对从标签110读取的标签数据进行签名。因此,读取器120可以分开地对标签数据进行签名,从而验证读取器120的真实性。如果读取器120不是可信的,则读取器120可以简单地充当通过设备,并将标签数据中继到区块链130或其他中间节点。
76.区块链130存储从标签110接收的标签数据。数据可以被使得由包括智能合约(被部署为区块链对等体132上的链代码)、区块链应用等的区块链对等体132可用。例如,标签数据可以被提供给分析应用、智能合约、支付过程和其他商业过程软件。
77.在一些实施例中,证书授权中心140可以用于减少标签110上的存储负载,并且还生成分配给标签110、读取器120和区块链130的密钥。在该示例中,证书授权中心140可以存储区块链公钥,标签110在需要时可检索该区块链公钥,然后在使用后删除。同样,在需要时,区块链130可以从证书授权中心140检索标签(包括标签110)的公钥。在该替代布置中,在标签110和证书授权中心140之间以及在区块链130和证书授权中心140之间还可以存在一个或多个中间证书授权中心(未示出)。在该示例中,中间证书授权中心可以响应于来自标签110的请求,以及证书授权中心140因此请求不会在证书授权中心140处瓶颈。此外,中间证书授权中心可以用其自己的签名来签署对请求的响应。
78.在该替代示例中,读取器120可以查询标签110。标签110可以标识其自身(id)并生成随机消息,该随机消息请求来自其可以信任的源的经签名消息。在该示例中,读取器120可以是不可信读取器,因此其然后将请求转发到区块链130。如果区块链节点/服务器具有主私钥(标签110的相应公钥),则区块链服务器可以对消息签名,并且还创建对标签110的质询以认证其自身。然而,如果区块链服务器不具有私钥,则其可请求证书授权中心140对
消息进行签名。在该示例中,假定证书授权中心140被区块链130信任。
79.在该示例中,区块链服务器可以经由与区块链130的其余部分的共识机制来访问标签的公钥。经签名的消息可以被发送到标签110,标签110可以验证服务器的真实性,因为标签可访问证书授权中心140的公钥。标签110还可以对由区块链服务器发送的质询进行签名,并将其发送到服务器,该服务器可以验证该签名,因为其具有标签110的公钥。区块链服务器还可以将其自己的公钥(由证书授权中心140签名)发送到标签110。在该示例中,区块链服务器(由证书授权中心140认证并由标签110验证)和标签110(由区块链服务器验证)可以利用由它们各自的私钥签名的消息通信。区块链服务器和标签110还可以执行ecdh并生成用于数据加密的对称会话密钥。在会话结束时(或超时,或指定的使用次数),标签110可以删除服务器的对称会话密钥和/或公钥。
80.替代机制可以包括标签110存储一些区块链服务器的公钥(例如,经由服务器之间的共识确定的小子集)。在这种情况下,当标签110请求区块链服务器的认证时,服务器可以请求其对等体中的一个对等体提供签名。在该示例中,由于“证书授权中心”现在分布在网络内,因此不需要“证书授权中心”。这种区别可能是许可的区块链与公共区块链的区别。另外,该协议可以包括用于更新可信公钥集合的机制。在以上ca和共识方法中,可以完成更新可信密钥的协议。例如,标签110可以请求来自两个或更多信任源的认证以发起密钥更新,以便使其更难破解,并且使得单个不良行为人不能破解它。
81.图2a示出了根据示例实施例的区块链结构配置200。参考图2a,区块链架构200可以包括某些区块链元件,例如,一组区块链节点202。区块链节点202可以包括一个或多个节点204和210(这四个节点仅通过示例来描述)。这些节点参与多个活动,诸如区块链事务增加和验证过程(共识)。区块链节点204-210中的一个或多个可以基于背书策略来对事务进行背书,并可以为体系结构200中的所有区块链节点提供排序服务。区块链节点可以启动区块链认证并且设法写入存储在区块链层216中的区块链不可变分类账,其副本也可存储在支撑物理基础设施214上。区块链配置可以包括一个或多个应用224,其链接到应用编程接口(api)222以访问和执行所存储的程序/应用代码220(例如,链代码、智能合约等),其可以根据参与者所寻求的定制配置来创建,并且可以维护它们自己的状态、控制它们自己的资产、以及接收外部信息。这可以被部署为事务,并且通过附加到分布式分类账而被安装在所有区块链节点204-210上。
82.区块链基础或平台212可以包括区块链数据、服务(例如,密码信任服务、虚拟执行环境等)和支撑物理计算机基础设施的各层,支撑物理计算机基础设施可以被用于接收和存储新的事务并提供对试图访问数据条目的审核器的访问的。区块链层216可以暴露提供对处理程序代码和参与物理基础设施214所需的虚拟执行环境的访问的接口。密码信任服务218可以用于验证诸如资产交换事务等事务并保持信息私密。
83.图2a的区块链架构配置可以经由区块链平台212所暴露的一个或多个接口以及所提供的服务,来处理和执行程序/应用代码220。代码220可以控制块链资产。例如,代码220可以存储和传送数据,并且可以以智能合约和具有条件关联链代码的或服从于其执行的其它代码元素的形式由节点204-210执行。作为非限制性示例,可以创建智能合约以执行提醒、更新和/或服从改变、更新等的其他通知。智能合约本身可以用于识别与分类账的授权和访问要求以及使用相关联的规则。例如,智能合约(或执行智能合约的逻辑的链代码)可
以读取区块链数据226,其可以由包括在区块链层216中的一个或多个处理实体(例如,虚拟机)处理,以生成在复杂服务场景内包括警报、确定责任等的结果228。物理基础设施214可以用于检索本文所述的任何数据或信息。
84.智能合约可以经由高级应用和编程语言来创建,并且然后被写入区块链中的区块。智能合约可以包括向区块链(例如,区块链对等体的分布式网络)注册、存储和/或复制的可执行代码。事务是智能合约代码的执行,其可以响应于与智能合约相关联的条件被满足而被执行。智能合约的执行可以触发对数字区块链分类账的状态的(一个或多个)可信修改。由智能合约执行引起的对区块链分类账的(一个或多个)修改可以通过一个或多个共识协议在整个区块链对等体的分布式网络中被自动复制。
85.智能合约可以以键-值对的格式将数据写入区块链。此外,智能合约代码可以读取存储在区块链中的值,并在应用操作中使用它们。智能合约代码可以将各种逻辑操作的输出写入区块链内的一个或多个区块中。该代码可以用于在虚拟机或其它计算平台中创建临时数据结构。写入到区块链的数据可以是公共的和/或可以被加密并被维护为私有的。由智能合约使用/生成的临时数据是由所供应的执行环境保持在存储器中,然后一旦区块链所需的数据被识别,该临时数据就被删除。
86.链代码可以包括智能合约的代码解释(例如,逻辑)。例如,链代码可以包括智能合约中的逻辑的封装和可部署版本。如这里所述,链代码可以是部署在计算网络上的程序代码,其中它在共识过程期间由链验证器一起执行和验证。链代码可以接收散列,并从区块链中检索与通过使用先前存储的特征提取器创建的数据模板相关联的散列。如果散列标识符的散列与从所存储的标识符模板数据创建的散列匹配,则链代码向所请求的服务发送授权密钥。该链代码可以向区块链写入与密码细节相关联的数据。
87.图2b示出了根据示例实施例在区块链的节点之间的区块链事务流250的示例。参考图2b,事务流可以包括客户端节点260向背书对等节点281发送事务提议291。背书对等体281可以验证在事务提议291中的客户端签名,并执行链代码功能以发起事务。输出可以包括链代码结果、在链代码中读取的键/值版本集合(读取集合)以及在链代码中写入的键/值集合(写入集合)。这里,背书对等体281可以确定是否对该事务提议进行背书。如果批准,则提议响应292连同背书签名一起被发送回客户端260。客户端260将背书组装成事务有效载荷293,并将其广播到排序服务节点284。然后,排序服务节点284将排序的事务作为区块在信道上递送给所有对等体281-283。在提交到区块链之前,每个对等体281-283可以验证该事务。例如,对等体可以检查背书策略以确保指定对等体的正确分配已经对结果进行了签名并对照事务有效载荷293来认证签名。
88.再次参考图2b,客户端节点通过构造请求并向作为背书者的对等节点281发送请求来发起事务291。客户端260可以包括利用支持软件开发工具包(sdk)的应用,其利用可用的api来生成事务提议。该提议是请求调用链代码功能,从而使得可以将数据读取和/或写入到分类账(即,写入用于资产的新的键值对)。sdk可以用作垫片(shim),以将事务提议封装为适当的架构化格式(例如,远程过程调用(rpc)上的协议缓冲区),并采用客户端的密码证书来产生事务提议的唯一签名。
89.作为响应,背书对等节点281可以验证(a)事务提议形成得很好,(b)事务过去尚未被提交(重放攻击保护),(c)签名有效,以及(d)提交者(在该示例中为客户端260)被正确授
权在该信道上执行所提议的操作。背书对等节点281可以将事务提议输入作为所调用的链代码函数的自变量。于是,对照当前状态数据库执行该链代码,以产生包括响应值、读取集合和写入集合的事务结果。然而,此时不对分类账进行更新。在292,值的集合连同背书对等节点281的签名一起作为提议响应被传递回客户端260的sdk,该sdk解析应用程序要消耗的有效载荷。
90.作为响应,客户端260的应用检查/验证背书对等体签名,并比较该提议响应以确定该提议响应是否相同。如果该链代码只查询分类帐,则该应用将检查查询响应,并且通常不向排序节点服务284提交事务。如果客户端应用想要将该事务提交给排序节点服务284以更新分类账,则该应用程序确定在提交之前是否已经满足了指定的背书策略(即,该事务所必需的所有对等节点是否对该事务进行了背书)。这里,客户端可以仅包括事务的多方中的一方。在这种情况下,每个客户端可以具有它们自己的背书节点,并且每个背书节点将需要背书该事务。该体系结构使得即使应用程序选择不检查响应或以其它方式转发未经背书的事务,背书策略仍将由对等体实施并在提交确认阶段得到支持。
91.在成功检查之后,在步骤293中,客户端260将背书装配到事务提议中,并在事务消息内将事务提议和响应广播到排序节点284。事务可以包含读取/写入集合、背书对等体的签名和信道id。排序节点284不需要检查事务的全部内容以便执行其操作,而是排序节点284可以简单地从网络中的所有信道接收事务,由信道按时间顺序对它们排序,并且每信道地创建事务的区块。
92.这些区块在信道上从排序节点284被递送到所有对等节点281-283。可以验证区块内的数据部分以确保背书策略被满足并且确保自从读取集合被事务执行生成以来不存在对读取集合变量的分类账状态的改变。此外,在步骤295,每个对等节点281-283将区块附加到信道的链,并且对于每个有效事务,写入集合被提交到当前状态数据库。可以发出事件,以通知客户端应用该事务(调用)已经被不可变地附加到链,以及通知该事务是有效还是无效。
93.图3a示出了许可的区块链网络300的示例,其特征在于分布式、去中心化对等体系结构。在该示例中,区块链用户302可以向许可的区块链304发起事务。在该示例中,事务可以是部署、调用或查询,并且可以通过利用sdk的客户端侧应用、直接通过api等来发出。网络可以提供对例如审核员的监管者306的访问。区块链网络运营商308管理成员许可,例如将监管者306注册为“审核员”并且将区块链用户302注册为“客户端”。审核员可以被限制为仅查询分类账,而客户端可以被授权部署、调用和查询某些类型的链代码。
94.区块链开发者310可以编写链代码和客户端侧应用。区块链开发者310可以通过接口直接将链代码部署到网络。为了在链代码中包括来自传统数据源312的凭证,开发者310可以使用带外连接来访问数据。在该示例中,区块链用户302通过对等节点314连接到许可的区块链304。在进行任何事务之前,对等节点314从管理用户角色和许可的证书授权中心316检索用户的登记和事务证书。在一些情况下,区块链用户必须拥有这些数字证书以便在许可的区块链304上事务处理。同时,可能需要试图利用链代码的用户验证他们在传统数据源312上的凭证。为了确认用户的授权,链代码可以通过传统的处理平台318使用到该数据的带外连接。
95.图3b示出了许可的区块链网络320的另一示例,其特征在于分布式、去中心化对等
体系结构。在该示例中,区块链用户322可以向许可的区块链324提交事务。在该示例中,事务可以是部署、调用或查询,并且可以通过利用sdk的客户端侧应用、直接通过api等来发出。网络可以提供对例如审核员的监管者326的访问。区块链网络运营商328管理成员许可,例如将监管者326登记为“审核员”并且将区块链用户322登记为“客户端”。审核员可以被限制为仅查询分类账,而客户端可以被授权部署、调用和查询某些类型的链代码。
96.区块链开发者330编写链代码和客户端侧应用。区块链开发者330可以通过接口将链代码直接部署到网络。为了在链代码中包括来自传统数据源332的凭证,开发者330可以使用带外连接来访问数据。在该示例中,区块链用户322通过对等节点334连接到网络。在进行任何事务之前,对等节点334从证书管理中心336检索用户的登记和事务证书。在一些情况下,区块链用户必须拥有这些数字证书以便在许可的区块链324上进行事务处理。同时,可能需要试图使用链代码的用户验证他们在传统数据源332上的凭证。为了确认用户的授权,链代码可以通过传统的处理平台338使用到该数据的带外连接。
97.在一些实施方式中,本文的区块链可以是无许可的区块链。与需要用以加入的许可的许可区块链相反,任何人都可以加入无许可的区块链。例如,为了加入无许可区块链,用户可以创建个人地址并通过提交事务并因此向分类账添加条目来开始与网络交互。另外,所有各方都可以选择在系统上运行节点并采用挖掘协议来帮助验证事务。
98.图3c示出了由包括多个节点354的无许可区块链352处理的事务的过程350。发送者356期望经由无许可区块链352向接收者358发送支付或一些其他形式的价值(例如,契约、医疗记录、合同、货物、服务、或可以被封装在数字记录中的任何其他资产)。在一个实施例中,发送者设备356和接收者设备358中的每一个可以具有(与区块链352相关联的)数字钱包,该数字钱包提供用户界面控制和事务参数的显示。作为响应,事务在整个区块链352中被广播到节点354。取决于区块链352的网络参数,节点基于由无许可区块链352的创建者建立的规则(其可以是预定义的或动态分配的)来验证360事务。例如,这可以包括验证所涉及各方的身份等。该事务可以被立即验证,或者该事务可以与其它事务一起被放入队列中,并且节点354基于网络规则集合来确定事务是否有效。
99.在构造362中,有效事务被形成为区块并用锁(散列)来密封。该过程可以通过节点354中的挖矿节点来执行。挖矿节点可以利用专用于挖掘和创建用于无许可区块链352的区块的附加软件。每个区块可以由使用网络商定的算法创建的散列(例如,256位的数字等)来标识。每个区块可以包括头、指向链中前一区块头的散列的指针或引用、以及一组有效事务。对前一区块的散列的引用是与区块的安全独立链的创建相关联的。
100.在区块可以被添加到区块链之前,必须验证这些区块。对无许可区块链352的验证可以包括作为从区块的头部导出的谜题的解的工作证明(pow)。尽管在图3c的示例中未示出,但是用于验证区块的另一过程是权益证明。与,其中算法奖励解决数学问题的矿工(miner)的工作证明,利用权益证明,新区块的创建者是根据其财富(也被定义为“权益”)以确定性方式被选择的。于是,由所选择/挑选的节点执行类似的证明。
101.通过挖掘364,节点试图通过对一个变量进行递增改变直到该解满足网络范围的目标,来求解该区块。这创建了pow,从而确保正确的答案。换句话说,潜在的解决方案必须证明在解决问题时计算资源被耗尽。在某些类型的无许可区块链中,矿工可以因正确挖掘区块而被奖励价值(例如,代币,等)。
102.这里,除了区块链之外,pow过程使得区块链的修改极其困难,因为为了针对一个区块的修改被接受,攻击者必须修改所有后续区块。此外,随着新的区块被挖掘,修改区块的难度增加,并且后续区块的数量增加。通过分发366,成功验证的区块通过无许可区块链352被分发,并且所有节点354将区块添加到多数链,其是无许可块链352的可审计分类账。此外,由发送者356提交的事务中的值被存放或以其他方式转移到接收者设备358的数字钱包。
103.图4a示出了根据示例实施例的在供应链的不同位置处读取标签数据的过程400a。参照图4a,示出了供应链的不同位置处的标签(未示出)和区块链网络410之间的安全协议。在该示例中,标签电耦合到温度传感器。这里,标签可以每2分钟、5分钟、20分钟等唤醒一次,并且获取存储在标签上的温度读数。温度读数可以被加密并添加到标签在其本地存储器中维护的读数列表中。读取器位于供应链上的不同位置处,包括制造商402、运输商404和零售商406。区块链网络410可以包括分布在不同地理位置的区块链对等体的网络。因此,制造商402、运输商404和零售商406中的每一个可以与区块链网络410的不同区块链对等体交互。
104.当标签被读取时,标签可以通过握手协议验证读取器。例如,标签可以是存储每个相应读取器的公钥的智能标签。标签可以请求读取器使用读取器的私钥来提供签名。于是标签可以使用读取器的对应公钥(例如,通过对相同数据进行散列/加密等)并确定两个散列匹配来验证读取器的私钥有效,并且因此签名有效。如果读取器被验证,则可以开始会话。可替换地,验证可以发生在区块链服务器和标签之间,其中rfid读取器充当通路。例如,ecdh可以被标签用来建立会话密钥,用于加密和与区块链散列。然后,标签向读取器发送标签数据(包括捕获并存储在列表中的任何温度测量结果,或后处理的标签数据)。标签使用标签的私钥对标签数据进行签名。而且,标签可以使用利用ecdh建立的会话密钥来加密数据。因此,读取器将不能解密标签数据。
105.在该示例中,在制造商402、运输方404和零售方406处的读取器可以经由超文本传输协议(http)连接而连接至区块链网络410。区块链网络410可以接收标签数据并将加密的标签数据解包以解密标签数据并使用标签的对应公钥来验证标签的签名。如果读取器是可信读取器,则区块链网络410可以进一步解包读取器的签名以基于由区块链网络410存储的读取器的对应公钥来确定读取器是有效读取器。如果标签和读取器的验证成功,则区块链410将标签数据(例如,如图4b所示)存储到区块链分类账。如果标签或读取器未被成功验证,则区块链可以记录由未注册标签或读取器在区块链上的尝试。此外,在任一场景中,关于标签的任何附加信息,例如日期、时间、地理位置等,也可以由区块链网络410记录在区块链分类账上。
106.如果读取器是不可信的,则标签可以拒绝与读取器通信。作为另一示例,标签可以检查读取器是否是半信任的,这意味着读取器可以到达正确的区块链网络410并确认由区块链网络410和标签共享的某一秘密,例如共享秘密。这里,标签可以经由不可信读取器向区块链网络410发送质询。如果从区块链网络410返回的响应是正确的,则标签知道读取器正在与正确的区块链网络410通信,并将发送标签数据。即使读取器正在拦截来自标签的数据,数据也将不会有太多用处,因为它也是使用在标签和区块链网络410之间共享的会话密钥被加密的。
107.在一些实施例中,区块链网络410可以包括由供应链的相应方控制的对等节点,供应链的相应方包括制造商402、运输商404和零售商406,然而,实施例不限于此。在该示例中,每一方可以通过传统的背书/共识协议将数据写入区块链,并且每一方维护其自己的区块链分类账的副本。
108.区块链网络410还可以包括一个或多个智能合约412,其可以分析从供应链提供的标签数据。例如,智能合约412可以查询由给定读取器扫描的所有标签,查询对于给定标签的所有追踪历史,查询所有背书的标签,验证来自给定标签的传感器读数(例如,温度读数等)在智能合约412的逻辑中预定义的安全限制内,交叉验证来自标签的时间戳与区块链中的其他数据(gps日志、读取器日志)以进一步验证标签数据的真实性,等等。在一些实施例中,智能合约412还可以使数据可用于其他应用,例如通知应用414,其可以向一个或多个感兴趣方(例如,其计算设备)发出警报,指示传感器数据已经指示了例如预定义条件未被满足的问题。在图4a的示例中,通知服务414向用户设备420上显示的用户界面发送警报或其他通知。
109.智能合约412可以存储由标签追踪的物理对象的各种监视条件。例如,货物、材料、部件等可以通过供应链运输,并且具有各种要求,例如温度要求(例如,冷链等)、湿度要求、压力要求、定时要求等。从供应链上的每个位置处的读取器中继回来的标签数据可以由智能合约412监视,以确定是否违反了任何条件。这些条件可以被嵌入在智能合约412的逻辑内。此外,尽管在此被称为智能合约,但是当被打包到可执行代码中并部署在区块链对等体上时,智能合约可以被称为包括智能合约的逻辑的链代码。
110.图4b示出了根据示例实施例的将标签数据存储到区块链分类账的过程400b。参照图4b,包括在图4a中所示的区块链网络410内的每个区块链对等体可以包括在区块链分类账内所包括的区块链432和状态数据库434。区块链对等体还可以包括用于区块链通信的对等应用431和可以与图4a所示的智能合约412相同或不同的智能合约430。
111.每次标签发送回标签数据时,区块链432可以用新的区块433更新。此外,状态数据库434可以被更新以反映标签的最近值。这里,状态数据库434可以存储键-值对,其中键对应于标签的设备id,并且该值实际上是多个值436,包括由读取器从标签读取的各种数据,例如,调用标签的读取器的日志id、呼叫者的日志签名、操作码、标签的设备id、标签的设备签名、标签的设备元数据、终端id、终端签名、终端元数据等。该日期也可以作为区块链432上的唯一事务来存储(例如,在新区块433内)。在该示例中,智能合约430可以分析存储在区块链432和状态数据库434上的标签数据,并且执行各种操作并与其他应用/服务通信。
112.图4c示出了根据示例实施例的显示与物理对象相关联的标签数据的用户界面450。例如,用户界面450可以由运行区块链或与区块链或区块链对等体通信的服务或应用输出。参考图4c,用户界面包括在不同读取时间处和在供应链上不同位置处的标签的数据。在该示例中,用户界面450包括例如状态值451、数据值452、标签id值453、读取器id值454和传感器值455的属性。用户界面还可以显示其他或附加的数据属性,例如地理位置,标签签名的验证是否成功,等等。在该示例中,用户接口输出警告456,指示标签读数中的一个标签读数指示在智能合约的逻辑内包括的条件的失败。
113.图5a示出了根据示例实施例的接收标签数据的方法510。作为非限制性示例,方法500可由区块链对等节点、服务器、数据库节点等执行。参照图5,在512,该方法可以包括:经
由网络接收从与物理对象相关联的标签读取的并使用分配给该标签的私钥签名的标签数据,并且该数据可以由该标签加密。例如,接收可以包括从标签的读取器接收消息或其他通信。在一些实施例中,标签可以是rfid标签。然而,实施例不限于此。
114.标签数据可以包括标签的标识符以及被反馈并且能够验证标签的附加数据。例如,附加数据可以包括来自电耦合到标签的一个或多个传感器的传感器数据。这里,标签可以周期性地或随机地触发或以其他方式请求传感器捕获读数。传感器数据可以包括任何种类的传感器的任何种类的传感器值,包括流体流速、温度、速度、加速度、湿度、压力等。传感器数据可以用于验证与标签相关联的物理对象被正确地关注。换句话说,传感器数据可以用于验证物理对象正被保持处于指定条件下等。作为另一个示例,传感器数据可以用于进一步验证标签的真实性。例如,地理位置值、传感器id等可以被包括在标签数据内,并且被用于进一步验证标签被耦合到正确的传感器。在一些实施例中,除了对标签数据签名之外,标签还可以使用与区块链建立的aes加密等来对标签数据进行加密。
115.在514中,该方法可以包括:经由区块链对等体,基于区块链对等体可访问的标签的对应密钥对,来确定经签名的标签数据是被有效地签名。例如,可以用唯一地分配并嵌入在标签的安全存储内的私钥来签名标签。同时,区块链对等体可以访问并使用存储在区块链对等体存储器中的标签的公钥来验证标签的私钥是有效的。在一些实施例中,该方法还可以包括基于包括在标签数据内的传感器标识符来验证标签的真实性。
116.在516,该方法可以包括:经由区块链对等体,确定标签数据是否满足物理对象的一个或多个预定义条件。在518,该方法可以包括经由区块链数据库存储该确定。在一些实施例中,确定可以包括确定标签数据是否违反嵌入在运行在区块链对等体上的链代码的逻辑内的一个或多个预定义条件。这里,条件可以包括针对物理对象的环境条件,例如存储条件、温度条件、定时条件等。
117.在一些实施例中,该方法还可以包括经由在区块链对等体上运行的链代码向与物理对象相关联的计算设备发送警报。在一些实施例中,标签数据还由分配给读取器的密钥签名,并且该方法还包括基于区块链对等体可访问的读取器的对应密钥对来确定经签名的标签数据是被有效地签名。在一些实施例中,存储可以包括将标签的标识符和标签数据作为键-值对存储在区块链的状态数据库中。在一个非限制性示例用例中,确定可以包括确定标签数据内的温度数据是否违反嵌入在运行在区块链对等体上的链代码的逻辑内的针对物理对象的一个或多个温度要求。
118.图5b示出了根据示例实施例的发送标签数据的方法520。参考图5b,在522中,该方法可以包括:从耦合到标签的一个或多个硬件传感器检索传感器数据,并且将传感器数据存储在标签的存储器内。在524,方法可以包括:从与区块链平台相关联的读取器接收读取请求。在526,方法可以包括:经由读取器,基于在标签和区块链之间的握手协议,来验证区块链平台的真实性。在528中,该方法可以包括:响应于区块链平台的成功验证,基于标签的私钥来签名传感器数据,并向读取器发送经签名的传感器数据。
119.在一些实施例中,该方法还可以包括在标签的加电期间经由标签上的引导加载器检查在标签上运行的软件的完整性。在一些实施例中,所述方法还可以包括验证区块链平台的真实性,包括接收由区块链平台签名的数据,以及基于由标签存储的区块链平台的对应密钥来验证经签名的数据。在一些实施例中,该方法还可以包括由标签基于与读取器的
rom”)或本领域已知的任何其它形式的存储介质中。
126.示例性存储介质可以耦合到处理器,从而使得处理器可以从存储介质读取信息并向存储介质写入信息。在替代方案中,存储媒体可以与处理器成一体式。处理器和存储介质可以驻留在专用集成电路(“asic”)中。在替代方案中,处理器和存储介质可以作为离散组件而驻存。
127.图7a图示了根据示例实施例的新区块被添加到分布式分类账720的过程700,并且图7b图示了根据示例实施例的用于区块链的新数据块结构730的内容。参照图7a,客户端(未示出)可以向区块链节点711、712和/或713提交事务。客户端可以是从任何源接收的指令,以在区块链720上制定活动。作为示例,客户端可以是代表请求者(例如设备、人或实体)行动以提议针对区块链的事务的应用。多个区块链对等体(例如,区块链节点711、712和713)可以维护区块链网络的状态和分布式分类账720的副本。在区块链网络中可以存在不同类型的区块链节点/对等体,包括对由客户端提出的事务进行模拟和背书的背书对等体,以及证实背书、验证事务并将事务提交给分布式分类帐720的提交对等体。在该示例中,区块链节点711、712和713可以执行背书者节点、提交者节点或两者的角色。
128.分布式分类账720包括以区块存储不可改变的有序记录的区块链,以及维护区块链722的当前状态的状态数据库724(当前世界状态)。每个信道可以存在一个分布式分类账720,并且每个对等体维护针对其作为成员的每个信道的其自己的分布式分类账720的副本。区块链722是事务日志,其被构造为散列链接的区块,其中每个区块包含n个事务的序列。区块可以包括例如图7b中所示的各种组件。可以通过在当前区块的区块头内添加先前区块头的散列来产生区块的链接(图7a中的箭头所示)。这样,区块链722上的所有事务被排序并被密码性地链接在一起,从而防止在不破坏散列链接的情况下篡改区块链数据。此外,由于链接,区块链722中的最后一个区块表示在其之前到来的每个事务。区块链722可以被存储在对等文件系统(本地或附连存储)上,对等文件系统支持仅附加区块链的工作负载。
129.区块链722和分布式分类账722的当前状态可以被存储在状态数据库724中。这里,当前状态数据表示区块链722的链事务日志中曾经包括的所有键的最新值。链代码调用针对状态数据库724中的当前状态执行事务。为了使这些链代码事务非常有效,所有键的最新值都存储在状态数据库724中。状态数据库724可以包括区块链722的事务日志中的索引视图,因此,可以在任何时间从链中重新生成索引视图。在接受事务之前,状态数据库724可以在对等启动时被自动恢复(或者如果需要的话,被生成)。
130.背书节点从客户端接收事务并基于模拟结果对该事务进行背书。背书节点持有模拟事务提议的智能合约。当背书节点对事务进行背书时,背书节点创建事务背书,该事务背书是从背书节点到客户端应用的指示所模拟的事务的背书的经签名响应。对事务进行背书的方法取决于可以在链代码内指定的背书策略。背书策略的一个例子是“大多数背书对等体必须对该事务背书”。不同的信道可以具有不同的背书策略。经背书的事务由客户端应用转发给排序服务710。
131.排序服务710接受经背书的事务,将它们排序到区块中,并将这些区块传递给提交对等体。例如,当已经达到事务的阈值、定时器超时或另一条件时,排序服务710可以发起新的区块。在图7a的示例中,区块链节点712是已经接收到用于存储在区块链720上的新数据块730的提交对等体。区块链中的第一区块可以被称为起源区块,起源区块包括关于区块
链、其成员、存储在其中的数据等的信息。
132.排序服务710可以由一组排序者组成。排序服务710不处理事务、智能合约或维护共享分类账。相反,排序服务710可以接受经背书的事务并指定将这些事务提交给分布式分类账720的顺序。区块链网络的体系结构可以被设计成使得“排序”的特定实现(例如,solo、kafka、bft等)变为可插式组件。
133.事务以一致的顺序被写入分布式分类帐720。事务的顺序被建立以确保对状态数据库724的更新在被提交给网络时是有效的。与通过密码谜题的求解或挖掘来进行排序的加密货币区块链系统(例如bitcoin等)不同,在该示例中,分布式分类帐720的各方可以选择最适合该网络的排序机制。
134.当排序服务710初始化新数据区块730时,新数据区块730可以被广播到提交对等体(例如,区块链节点711、712和713)。作为响应,每个提交对等体通过检查以确保读取集合和写入集合仍然匹配状态数据库724中的当前世界状态,来验证新数据区块730内的事务。具体地,提交对等体可以确定在背书者模拟事务时存在的读取数据是否与状态数据库724中的当前世界状态相同。当提交对等体确认事务时,事务被写入分布式分类账720上的区块链722,并且利用来自读写集合的写入数据来更新状态数据库724。如果事务失败,即,如果提交对等体发现读取-写入集合不匹配在状态数据库724中的当前世界状态,则排序成区块的事务将仍然被包括在该区块中,但它将被标记为无效,并且状态数据库724将不被更新。
135.参考图7b,存储在分布式分类账720的区块链722上的新数据区块730(也称为数据区块)可以包括多个数据段,例如区块头740、区块数据750(区块数据部分)和区块元数据760。应当理解,图7b中所示的各种所示区块及其内容,例如新数据区块730及其内容,仅仅是示例,而不意味着限制示例实施例的范围。在常规区块中,数据部分可以将n个事务(例如,1、10、100、500、1000、2000、3000等)的事务信息存储在区块数据750内。
136.新数据区块730可以在区块头740内包括到(例如,图7a中的区块链722上的)先前区块的链接。特别地,区块头740可以包括先前区块头的散列。区块头740还可以包括唯一的区块编号、新数据区块730的区块数据750的散列等。新数据区块730的区块编号可以是唯一的,并且以各种顺序分配,例如从零开始的递增/顺序。
137.根据各种实施例,区块数据750可以存储从例如rfid标签等的电子标签接收的标签数据752。标签数据752可以包括传感器数据、标签标识符、读取器数据、读取器标识符等。标签数据752包括本文描述或描绘的步骤、特征、过程和/或动作中的一个或多个。因此,标签数据752可以被存储在分布式分类账720上的区块的不可变日志中。在区块链上存储标签数据752的一些益处反映在本文公开和描述的各种实施例中。尽管在图7b中,标签数据752被描绘为在区块数据750中,但是在其他实施例中,其可以位于区块头740或区块元数据760中。此外,标签数据752可以作为键-值对存储在状态数据库724内。
138.区块元数据760可以存储元数据的多个字段(例如,作为字节数组等)。元数据字段可以包括针对区块创建的签名、对最后配置区块的引用、标识区块内的有效和无效事务的事务过滤器、对区块进行排序的排序服务的所持续的最后偏移量等等。签名、最后配置区块和排序者元数据可以由排序服务710添加。同时,区块的提交者(例如区块链节点712)可以基于背书策略、读取/写入集合的验证等来添加有效性/无效性信息。事务过滤器可以包括大小等于包括在区块数据750中的事务的数量的字节数组和标识事务是有效还是无效的验
证码。
139.图7c示出了根据本文所述实施例的用于数字内容的区块链770的实施例。数字内容可以包括一个或多个文件和相关联的信息。文件可以包括媒体、图像、视频、音频、文本、链接、图形、动画、网页、文档或其他形式的数字内容。区块链的不可变的、仅附加的方面用作保护数字内容的完整性、有效性和真实性的安全措施,使其适合用于其中应用了容许性规则的法律程序,或者其中考虑证据或其中数字信息的呈现和使用是另外感兴趣的其它设置。在这种情况下,数字内容可以被称为数字证据。
140.区块链可以以各种方式形成。在一个实施例中,数字内容可以被包括在区块链本身中并且从区块链本身访问。例如,区块链的每个区块可以沿着相关联的数字内容存储引用信息的散列值(例如,头、值等)。然后,散列值和相关联的数字内容可以一起被加密。因此,每个区块的数字内容可以通过解密区块链中的每个区块来访问,并且每个区块的散列值可以用作引用先前区块的基础。这可以如下说明:
[0141][0142]
在一个实施例中,数字内容可以不被包括在区块链中。例如,区块链可以存储每个区块的内容的加密散列而没有任何数字内容。数字内容可以被存储在与原始文件的散列值相关联的另一存储区域或存储器地址中。另一存储区域可以是用于存储区块链的相同存储设备,或者可以是不同的存储区域,或者甚至是分开的关系数据库。可以通过获得或查询感兴趣的区块的散列值,然后在存储区域中查找具有与实际数字内容相对应地存储的值,来引用或访问每个区块的数字内容。例如,可以由数据库看门人来执行该操作。这可以如下说明:
[0143][0144]
在图7c的示例实施例中,区块链770包括以有序序列密码性地链接的多个区块7781,7782,

778n,其中n≥1。用于链接区块7781,7782,

778n的加密可以是多个密钥的(keyed)或非密钥的(unkeyed)散列函数中的任何一个。在一个实施例中,区块7781,7782,

778n经受散列函数,该散列函数从基于区块中的信息的输入产生n位字母数字输出(其中n是256或另一数字)。这种散列函数的例子包括但不限于sha型(sha代表安全散列算法)算法、merkle-damagard算法、haifa算法、merkle-tree算法、基于随机数的算法和非抗冲突prf算法。在另一实施例中,区块7781,7782,

,778n可以通过不同于散列函数的函数来密码
性地链接。为了说明的目的,以下描述是参考散列函数,例如sha-2来进行的。
[0145]
区块链中的区块7781,7782,

,778n中的每一个包括头、文件的版本和值。作为区块链中的散列的结果,头和值对于每个区块是不同的。在一个实施例中,该值可以被包括在头中。如以下更详细地描述的,文件的版本可以是原始文件或原始文件的不同版本。
[0146]
区块链的第一区块7781被称为起源区块,并且包括头7721、原始文件7741和初始值7761。用于起源区块的并且实际上在所有后续区块中的散列方案可以变化。例如,第一区块7781中的所有信息可以一起并且一次被散列,或者第一区块7781中的信息的每一个或一部分可以被分开地散列,然后可以执行对分开散列的部分的散列。
[0147]
头7721可以包括一个或多个初始参数,其例如可以包括版本号、时间戳、随机数、根信息、难度等级、共识协议、持续时间、媒体格式、源、描述性关键字和/或与原始文件7741和/或区块链相关联的其他信息。头7721可以被自动生成(例如,通过区块链网络管理软件)或由区块链参与者手动生成。与其他区块7782至778n中的头不同,起源区块的头7721不引用先前区块,仅因为不存在先前区块。
[0148]
起源区块中的原始文件7741可以是例如设备所捕获的数据,该数据在被包括在区块链中之前经过或未经过处理。原始文件7741是通过系统的接口从设备、媒体源或节点接收的。原始文件7741与元数据相关联,该元数据例如可以由用户、设备和/或系统处理器手动或自动生成。元数据可以被包括在与原始文件7781相关联的第一区块7741中。
[0149]
起源区块的值7761是基于原始文件7741的一个或多个唯一属性生成的初始值。在一个实施例中,一个或多个唯一属性可以包括用于原始文件7741的散列值、用于原始文件7741的元数据、以及与文件相关联的其它信息。在一个实现方式中,初始值7761可以基于以下唯一属性:
[0150]
1)用于原始文件的sha-2计算的散列值
[0151]
2)起始设备id
[0152]
3)用于原始文件的开始时间戳
[0153]
4)用于原始文件的初始存储位置
[0154]
5)用以当前控制原始文件和关联元数据的用于软件的区块链网络成员id
[0155]
区块链中的其它区块7782至778n也具有头、文件和值。然而,与第一区块7721不同,其他区块中的头7722至772n中的每一个包括紧接在前的区块的散列值。紧接在前的区块的散列值可以仅仅是先前区块的头的散列,或者可以是整个先前区块的散列值。通过将在前区块的散列值包括在每个剩余区块中,可以在逐区块的基础上执行从第n个区块回到起源区块(以及相关联的原始文件)的追踪,如箭头780所示,以建立可审计且不可变的监管链。
[0156]
在其他区块中的头7722至772n中的每一个还可以包括其它信息,例如版本号、时间戳、随机数、根信息、难度等级、共识协议和/或通常与相应文件和/或区块链相关联的其它参数或信息。
[0157]
文件7742至774n的其他区块可以等于原始文件,或者可以是起源区块中原始文件的修改版本,这取决于例如所执行的处理的类型。所执行的处理的类型可以因区块而异。处理可以涉及例如对在前区块中的文件的任何修改,例如编辑信息或以其他方式改变文件的内容、从文件中取走信息、或向文件添加或附加信息。
[0158]
附加地或替换地,处理可以仅涉及从在前区块复制文件、改变文件的存储位置、从
一个或多个在前区块分析文件、将文件从一个存储或存储器位置移动到另一个存储或存储器位置、或相对于区块链的文件和/或其相关联的元数据执行动作。涉及分析文件的处理可以包括例如附加、包括或者关联各种分析、统计或与文件相关联的其他信息。
[0159]
其它区块中的其它区块7762至776n中的每个区块中的值是唯一值,并且由于执行的处理而全部不同。例如,任何一个区块中的值对应于先前块中的值的更新版本。更新反映在被分配了值的区块的散列中。因此,区块的值提供了在区块中执行了什么处理的指示,并且还允许追踪通过区块链回到原始文件。该追踪确认了文件在整个区块链中的监管链。
[0160]
例如,考虑其中在先前区块中的文件的部分被编辑、分块或像素化以便保护文件中所示的人的身份的情况。在这种情况下,包括所编辑文件的区块将包括与所编辑文件相关联的元数据,例如,编辑是如何执行的、谁执行了编辑、编辑发生时的时间戳等。元数据可以被散列以形成值。因为该区块的元数据不同于被散列以形成先前区块中的值的信息,所以这些值彼此不同并且可以在解密时被恢复。
[0161]
在一个实施例中,当以下中的任何一个或多个发生时,可以更新先前区块的值(例如,计算的新的散列值)以形成当前区块的值。在该示例实施例中,可以通过对下面提到的信息的全部或一部分进行散列来计算新的散列值。
[0162]
a)如果文件已经以任何方式被处理(例如,如果文件被编辑、复制、更改、访问、或采取了某些其他动作),则新的sha-2计算的散列值
[0163]
b)用于文件的新的存储位置
[0164]
c)所识别的与文件相关联的新的元数据
[0165]
d)将对文件的访问或控制从一个区块链参与者转移到另一区块链参与者
[0166]
图7d示出了根据一个实施例可以表示区块链790中的区块的结构的区块的实施例。区块blocki包括头772i、文件774i和值776i。
[0167]
头772i包括先前区块block
i-1
的散列值和附加引用信息,该附加引用信息例如可以是本文所讨论的任何类型的信息(例如,包括引用、特性、参数等的头信息)。所有区块引用先前区块的散列,当然除了起源区块之外。先前区块的散列值可以仅仅是先前区块中的头的散列,或者是先前区块中的全部或部分信息(包括文件和元数据)的散列。
[0168]
文件774i包括多个数据,例如顺序的数据1、数据2、

、数据n。数据被标记有描述与数据相关联的内容和/或特性的元数据1、元数据2、

、元数据n。例如,每个数据的元数据可以包括用于以下的信息:指示数据的时间戳、处理数据、指示数据中描绘的人或其他内容的关键字和/或可以有助于建立文件作为整体的有效性和内容的其他特征,并且特别是其使用数字证据,例如,如结合下文讨论的实施例所描述的。除了元数据之外,每个数据可以用对先前数据的引用ref1、ref2、

、refn来标记,以防止文件中的篡改、间隙以及通过文件的顺序引用。
[0169]
一旦元数据被分配给数据(例如,通过智能合约),元数据在散列没有改变的情况下不能被更改,这可以容易地被识别以用于无效。因此,元数据创建了可以被访问以供区块链中的参与者使用的信息的数据日志。
[0170]
值776i为基于先前讨论的任何类型的信息计算的散列值或其他值。例如,对于任何给定区块blocki,可以更新该区块的值以反映针对该区块执行的处理,例如,新的散列值、新的存储位置、用于关联文件的新的元数据、控制或访问的转移、标识符、或要添加的其
他动作或信息。尽管每个区块中的值被示为与文件和头的数据的元数据分开,但是在另一实施例中,该值可以部分地或全部基于该元数据。
[0171]
一旦形成了区块链770,在任何时间点,通过向区块链查询跨区块的值的事务历史,可以获得针对文件的不可改变的监管链。该查询或追踪过程可以开始于解密最当前包括的区块(例如,最后(第n个)区块)的值,然后继续解密其他区块的值,直到到达起源区块并且恢复原始文件。解密也可以涉及解密每个区块中的头和文件以及相关联的元数据。
[0172]
解密是基于在每个区块中发生的加密的类型而执行的。这可以涉及私钥、公钥或公钥-私钥对的使用。例如,当使用非对称加密时,区块链参与者或网络中的处理器可以使用预定算法生成公钥和私钥对。公钥和私钥通过某种数学关系彼此相关联。公共密钥可以被公开分发以用作从其他用户接收消息的地址,例如ip地址或家庭地址。私钥保持秘密并且用于对向其他区块链参与者发送的消息进行数字签名。签名被包括在消息中,从而使得接收者可以使用发送者的公钥来验证。这样,接收者可以确信只有发送者可以发送该消息。
[0173]
生成密钥对可类似于在区块链上创建帐户,但不必实际上在任何地方注册。而且,在区块链上执行的每个事务由发送者使用其私钥来数字地签名。该签名确保只有账户的所有者能够追踪和处理(如果在由智能合约确定的许可范围内)区块链的文件。
[0174]
图8a和8b示出了可以结合和用于本文的区块链的使用情况的另外的示例。具体地,图8a示出了存储机器学习(人工智能)数据的区块链810的示例800。机器学习依赖于大量的历史数据(或训练数据)来构建用于对新数据进行准确预测的预测模型。机器学习软件(例如,神经网络等)通常可以筛选数百万条记录以找出非直观模式。
[0175]
在图8a的示例中,主机平台820构建和部署用于资产830的预测性监控的机器学习模型。这里,主机平台820可以是云平台、工业服务器、web服务器、个人计算机、用户设备等。资产830可以是任何类型的资产(例如,机器或设备等),例如飞机、机车、涡轮机、医疗机械和设备、油气设备、船、舰、车辆等。作为另一个例子,资产830可以是非有形资产,例如股票、货币、数字代币、保险等。
[0176]
区块链810可以用于显著地改进机器学习模型的训练过程802和基于经训练的机器学习模型的预测过程804两者。例如,在802中,历史数据可以由资产830本身(或通过中介,未示出)存储在区块链810上,而不是要求数据科学家/工程师或其他用户来收集数据。这可以显著减少主机平台820在执行预测模型训练时所需的收集时间。例如,使用智能合约,数据可以直接且可靠地从其原产地直接传递到区块链810。通过使用区块链810来确保所收集的数据的安全性和所有权,智能合约可以直接将数据从资产发送到使用该数据来构建机器学习模型的个体。这允许在资产830之间共享数据。
[0177]
所收集的数据可以基于共识机制存储在区块链810中。共识机制拉入(许可节点)以确保正被记录的数据是被验证的和准确的。记录的数据是时间标记的、密码签名的和不可变的。因此,它是可审计的、透明的和安全的。在某些情况下(即,供应链、保健、物流等),添加直接写入区块链的iot设备可以增加数据被记录的频率和准确性。
[0178]
此外,在所收集的数据上训练机器学习模型可以由主机平台820进行若干轮细化和测试。每轮可以基于附加数据或先前未被考虑以帮助扩展机器学习模型的知识的数据。在802中,不同的训练和测试步骤(以及与其相关联的数据)可以由主机平台820存储在区块链810上。机器学习模型的每个细化(例如,变量、权重等的改变)可以被存储在区块链810
上。这提供了模型如何被训练以及什么数据被用于训练模型的可验证的证明。此外,当主机平台820已经实现最终训练的模型时,所得模型可以被存储在区块链810上。
[0179]
在已经训练了模型之后,可以将其部署到现场环境,在现场环境中,可以基于最终训练的机器学习模型的执行来进行预测/决策。例如,在804中,机器学习模型可以用于例如飞机、风力涡轮机、保健机器等资产的基于条件的维护(cbm)。在该示例中,从资产830反馈的数据可以被输入机器学习模型,并且被用于进行事件预测,例如故障事件、错误代码等。通过在主机平台820处执行机器学习模型所做出的确定可以被存储在区块链810上以提供可审计/可验证的证明。作为一个非限制性示例,机器学习模型可以预测资产830的一部分的未来故障/失败,并且创建替换该部分的警报或通知。该决定背后的数据可以由主机平台820存储在区块链810上。在一个实施例中,本文描述和/或描绘的特征和/或动作可以在区块链810上或相对于区块链810发生。
[0180]
针对区块链的新事务可以被一起聚集到新的区块中并被添加到现有的散列值。然后,它被加密以创建用于新区块的新散列。当对事务进行加密时,它们被添加到下一个事务列表,诸如此类。结果是这样的区块的链,每个区块都包含所有在前区块的散列值。存储这些区块的计算机定期比较它们的散列值以确保它们都表示同意。任何不同意的计算机都丢弃引起问题的记录。这种方法对于确保区块链的防篡改是有益的,但它不是完美的。
[0181]
游戏该系统的一种方式是不诚实的用户改变事务列表以对它们有利,但是保持散列不变。这可以通过强力来完成,换句话说,通过改变记录、加密结果、以及查看散列值是否相同来完成。如果不是,则反复地尝试直到找到匹配的散列。区块链的安全性基于这样的信念,即普通计算机仅能在完全不切实际的时间尺度上(例如宇宙年龄上)执行这种强力攻击。相反,量子计算机快得多(快1000倍),因此造成大得多的威胁。
[0182]
图8b示出了实现量子密钥分发(qkd)以防止量子计算攻击的量子安全区块链852的示例850。在该示例中,区块链用户可以使用qkd验证彼此的身份。这使用例如光子的量子粒子发送信息,窃听者在不破坏量子粒子的情况下不能复制该量子粒子。这样,发送者和接收者通过区块链可以确信彼此的身份。
[0183]
在图8b的示例中,存在四个用户854、856、858和860。每对用户可以在他们之间共享密钥862(即,qkd)。由于在该示例中存在四个节点,因此存在六对节点,因此使用了六个不同的密钥862,包括qkd
ab
、qkd
ac
、qkd
ad
、qkd
bc
、qkd
bd
和qkd
cd
。每对可以通过使用诸如光子的量子粒子发送信息来创建qkd,窃听者在不破坏qkd的情况下不能复制qkd。这样,一对用户可以确信彼此的身份。
[0184]
区块链852的操作基于两个过程:(i)事务的创建,以及(ii)聚集新事务的区块的构造。可以类似于传统的区块链网络那样创建新的事务。每个事务可以包含关于发送者、接收者、创建时间、要转移的量(或值)、证明发送者具有用于操作的资金的参考事务的列表等的信息。然后,该事务记录被发送到所有其它节点,在所有其它节点中,该事务记录被输入未确认事务池。这里,两方(即,854-860中的一对用户)通过提供他们的共享密钥862(qkd)来认证事务。该量子签名可以被附加到每个事务,使得极难篡改它。每个节点检查其关于区块链852的本地副本的条目,以验证每个事务具有足够的资金。然而,事务还没有被确认。
[0185]
不是对区块执行传统的挖掘过程,而是可以使用广播协议以去中心化的方式创建区块。在预定的时间段(例如,几秒、几分钟、几小时等),网络可以将广播协议应用于任何未
确认的事务,从而实现关于事务的正确版本的拜占庭协定(共识)。例如,每个节点可以拥有私有值(该特定节点的事务数据)。在第一轮中,节点向彼此发送它们的私有值。在随后的轮次中,节点传送它们在前一轮次中从其它节点接收的信息。这里,诚实节点能够在新的区块内创建完整的事务集合。该新的区块可以被添加到区块链852。在一个实施例中,本文描述和/或描绘的特征和/或动作可以在区块链852上或相对于区块链852发生。
[0186]
图9示出了支持在此描述和/或描绘的示例实施例中的一个或多个的示例系统900。系统900包括计算机系统/服务器902,其可以与许多其它通用或专用计算系统环境或配置一起操作。可以适合与计算机系统/服务器902一起使用的公知的计算系统、环境和/或配置的示例包括但不限于:个人计算机系统、服务器计算机系统、瘦客户端、胖客户端、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络pc、小型计算机系统、大型计算机系统、以及包括任何上述系统或设备的分布式云计算环境等。
[0187]
计算机系统/服务器902可以在计算机系统可执行指令的一般上下文中描述,例如由计算机系统执行的程序模块。通常,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机系统/服务器902可以在分布式云计算环境中实践,其中任务由通过通信网络链接的远程处理设备执行。在分布式云计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机系统存储介质中。
[0188]
如图9所示,云计算节点900中的计算机系统/服务器902以通用计算设备的形式示出。计算机系统/服务器902的组件可以包括但不限于一个或多个处理器或处理单元904、系统存储器906以及将包括系统存储器906在内的各种系统组件耦合到处理器904的总线。
[0189]
总线表示若干类型的总线结构中的任何一种的一个或多个,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种总线体系结构中的任何一种的处理器或局部总线。作为示例而非限制,这些体系结构包括工业标准体系结构(isa)总线、微通道体系结构(mca)总线、增强型isa(eisa)总线、视频电子技术标准协会(vesa)局部总线和外围部件互连(pci)总线。
[0190]
计算机系统/服务器902通常包括各种计算机系统可读介质。这样的介质可以是由计算机系统/服务器902可访问的任何可用介质,并且它包括易失性和非易失性介质、可移动和不可移动介质。在一个实施例中,系统存储器906实现其它附图的流程图。系统存储器906可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)910和/或缓存912。计算机系统/服务器902还可以包括其它可移动/不可移动、易失性/非易失性计算机系统存储介质。仅作为示例,存储系统914可以被提供用于从不可移动、非易失性磁介质(未示出且通常被称为“硬盘驱动器”)读取和向其写入。尽管未示出,但是可以提供用于从可移动、非易失性磁盘(例如,“软盘”)读取和向其写入的磁盘驱动器,以及用于从诸如cd-rom、dvd-rom或其它光学介质等可移动、非易失性光盘读取或向其写入的光盘驱动器。在这种情况下,每个都可以通过一个或多个数据介质接口连接到总线。如下面将进一步描绘和描述的,存储器906可以包括至少一个程序产品,该程序产品具有一组(例如,至少一个)程序模块,该组程序模块被配置成执行本技术的各种实施例的功能。
[0191]
作为示例而非限制,具有一组(至少一个)程序模块918的程序/实用程序916以及操作系统、一个或多个应用程序、其它程序模块和程序数据可以被存储在存储器906中。操
作系统、一个或多个应用程序、其它程序模块和程序数据或其某种组合中的每一个可以包括联网环境的实现。程序模块918通常执行如本文所述的应用的各种实施例的功能和/或方法。
[0192]
如本领域技术人员将理解的,本技术的各方面可以被实现为系统、方法或计算机程序产品。因此,本技术的各方面可以采取完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或组合软件和硬件方面的实施例的形式,其在这里可以被统称为“电路”、“模块”或“系统”。此外,本技术的各方面可以采取在其上包含计算机可读程序代码的一个或多个计算机可读介质中包含的计算机程序产品的形式。
[0193]
计算机系统/服务器902还可以与一个或多个外部设备920通信,例如键盘、定点设备、显示器922等;一个或多个设备,其使得用户能够与计算机系统/服务器902交互;和/或使计算机系统/服务器902能够与一个或多个其它计算设备通信的任何设备(例如,网卡、调制解调器等)。这种通信可以经由i/o接口924发生。此外,计算机系统/服务器902可以经由网络适配器926与例如局域网(lan)、通用广域网(wan)和/或公共网络(例如,因特网)之类的一个或多个网络通信。如所描绘的,网络适配器926经由总线与计算机系统/服务器902的其他组件通信。应当理解,尽管未示出,但是其他硬件和/或软件组件可以与计算机系统/服务器902结合使用。实例包括但不限于:微码、设备驱动程序、冗余处理单元、外部磁盘驱动器阵列、raid系统、磁带驱动器和数据档案存储系统等。
[0194]
尽管在附图中示出并在前述详细描述中描述了系统、方法和非瞬态计算机可读介质中的至少一个的示例性实施例,但是将理解,本技术不限于所公开的实施例,而是能够进行如所附权利要求书所阐述和定义的众多重新布置、修改和替换。例如,各附图的系统的能力可以由本文描述的模块或组件中的一个或多个或以分布式架构来执行,并且可以包括发射机、接收机或两者的配对。例如,由各个模块执行的所有或部分功能可以由这些模块中的一个或多个模块执行。此外,本文描述的功能可以在各种时间执行,并且可以与模块或组件内部或外部的各种事件相关。而且,在各种模块之间发送的信息可以经由以下中的至少一个在模块之间发送:数据网络、因特网、语音网络、因特网协议网络、无线设备、有线设备和/或经由多个协议。而且,由任何模块发送或接收的消息可以直接和/或经由一个或多个其他模块发送或接收。
[0195]
本领域技术人员将理解,“系统”可以被实现为个人计算机、服务器、控制台、个人数字助理(pda)、蜂窝电话、平板计算设备、智能电话或任何其他合适的计算设备、或设备的组合。将上述功能呈现为由“系统”执行不旨在以任何方式限制本技术的范围,而是旨在提供许多实施例的一个示例。实际上,本文公开的方法、系统和装置可以以与计算技术一致的本地化和分布式形式来实现。
[0196]
应当注意,本说明书中描述的一些系统特征已经被呈现为模块,以便更具体地强调它们的实现独立性。例如,模块可以被实现为包括定制超大规模集成(vlsi)电路或门阵列、例如逻辑芯片、晶体管或其他分立组件的现成半导体的硬件电路。模块还可以在可编程硬件设备中实现,例如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备、图形处理单元等。
[0197]
模块还可以至少部分地以由各种类型的处理器执行的软件来实现。可执行代码的标识单元例如可以包括计算机指令的一个或多个物理或逻辑块,其例如可以被组织为对
象、过程或函数。然而,标识模块的可执行代码不需要物理地位于一起,而是可以包括存储在不同位置的不同指令,当这些指令逻辑地结合在一起时,包括该模块并实现该模块的规定目的。此外,模块可以存储在计算机可读介质上,该计算机可读介质可以是例如硬盘驱动器、闪存设备、随机存取存储器(ram)、磁带或用于存储数据的任何其他这样的介质。
[0198]
实际上,可执行代码的模块可以是单个指令或多个指令,并且甚至可以分布在若干不同的代码段上、在不同的程序之间、以及跨若干存储器设备。类似地,操作性数据可以在模块内被标识和示出,并且可以以任何合适的形式被体现并且被组织在任何合适类型的数据结构内。操作性数据可以被收集为单个数据集合,或者可以分布在包括不同存储设备的不同位置上,并且可以至少部分地仅作为系统或网络上的电子信号存在。
[0199]
容易理解,如在本文附图中一般性描述和示出的,本技术的组件可以以各种不同的配置来布置和设计。因此,实施例的详细描述不是要限制所要求保护的本技术的范围,而仅仅是本技术的所选实施例的代表。
[0200]
本领域的普通技术人员将容易理解,可以用不同顺序的步骤和/或用配置不同于所公开的配置的硬件元件来实践以上内容。因此,尽管已经基于这些优选实施例描述了本技术,但是对于本领域技术人员来说,某些修改、变化和替代构造将是显而易见的。
[0201]
尽管已经描述了本技术的优选实施例,但是应当理解,所描述的实施例仅是说明性的,并且当考虑到其全部范围的等同物和修改(例如,协议、硬件设备、软件平台等)时,本技术的范围仅由所附权利要求来限定。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献