CN116325833A - 将设备标识集成到区块链的许可框架中 - Google Patents
将设备标识集成到区块链的许可框架中 Download PDFInfo
- Publication number
- CN116325833A CN116325833A CN202180064307.6A CN202180064307A CN116325833A CN 116325833 A CN116325833 A CN 116325833A CN 202180064307 A CN202180064307 A CN 202180064307A CN 116325833 A CN116325833 A CN 116325833A
- Authority
- CN
- China
- Prior art keywords
- blockchain
- node
- transaction
- blockchain network
- service
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3271—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
- H04L9/3278—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response using physically unclonable functions [PUF]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0281—Proxies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3218—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3271—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/80—Wireless
- H04L2209/805—Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Abstract
一种用于配置区块链网络的计算机实现的方法、一种用于将设备标识集成到区块链网络的许可框架中的计算机程序产品、以及一种区块链网络。一个实施例可包括在区块链网络的描绘节点处注册设备,由描绘节点的处理器基于该注册创建设备的简档,由描绘节点的处理器执行用于设备的直通服务。该注册可包括通过网络接口从该设备接收不可改变的设备标识。
Description
背景技术
本公开涉及区块链网络的配置和管理;并且更具体地,涉及区块链网络中“物联网”(IoT)设备的配置和管理。
1948年EDVAC系统的开发经常被引用为计算机时代的开始。从那时起,计算机系统已经发展成为极其复杂的设备。当今的计算机系统通常包括复杂的硬件和软件组件、应用程序、操作系统、处理器、总线、存储器、输入/输出设备等的组合。随着半导体处理和计算机体系结构的进步推动性能越来越高,甚至更先进的计算机软件已经发展为利用这些能力的更高性能,导致今天的计算机系统比仅仅几年前强大得多。
这种新能力的一种应用是区块链。区块链一般是指促进在商业网络中记录交易(transaction)和跟踪资产的过程的共享的、不可改变的账本(immutable ledger)。资产可以是有形的(房屋、汽车、现金、土地)或无形的(知识产权、专利、版权、品牌)。实际上,任何有价值的东西都可以在区块链网络上被跟踪和交易,从而降低了风险并削减了所有涉及的成本。
发明内容
根据本公开的实施例,一种用于配置区块链网络的计算机实现的方法。一个实施例可包括在区块链网络的描绘节点注册设备,由描绘节点的处理器基于注册来创建设备的简档,由描绘节点的处理器执行设备的直通(pass-through)服务。该注册可包括通过网络接口从该设备接收不可改变的设备标识。
根据本公开的实施例,一种用于将设备标识集成到区块链网络的许可框架中的计算机程序产品。计算机程序产品可以包括具有随其体现的程序指令的计算机可读存储介质。程序指令可以使处理器通过节点提供直通安全服务,通过节点将设备注册为区块链网络上的注册节点,通过节点基于注册在安全飞地(enclave)中创建设备上的虚拟简档,维护设备的交易相关表,并且通过节点促进设备的交易提交(commitment)和客户端通信。在一些实施例中,该设备可以具有与其相关联的物理不可克隆功能。注册可以包括设备向节点发送物理不可克隆功能质询响应。直通安全服务可包括区块链网络中对等体(peer)的受信任注册。交易相关表可包括与设备相关联的区块链要素的记录,其中区块链要素包括信道、背书策略和委托权限证明。
优选地,本发明提供了一种方法,该方法还包括更新用于设备的交易相关表,其中,交易相关表包括与设备相关联的区块链功能的记录。
优选地,本发明提供了一种方法,其中,区块链功能包括维护区块链网络的背书策略和委托权限证明。
优选地,本发明提供了一种方法,该方法还包括:从区块链网络中的节点接收针对设备的成员资格服务指令(membership services directive);以及响应于成员资格服务指令,更新用于设备的交易相关表。
优选地,本发明提供了一种方法,该方法还包括:从设备接收针对区块链网络的成员资格服务指令;以及响应于成员资格服务指令,更新用于设备的交易相关表。
优选地,本发明提供了一种方法,其中,直通服务包括创建用于区块链网络上的对等体之间的通信的信道。
优选地,本发明提供一种方法,其中,直通服务包括代表设备促进交易。
优选地,本发明提供了一种方法,其中,直通服务包括促进设备和区块链网络中的其他节点之间的通信。
优选地,本发明提供了一种方法,其中,直通服务还包括代理设备和区块链网络中的其他节点之间的所有通信。
优选地,本发明提供了一种方法,其中,注册还包括向区块链网络的成员资格服务注册设备。
优选地,本发明提供了一种方法,其中,注册使得设备能够被注册为专用区块链网络上的对等节点。
优选地,本发明提供一种方法,其中,简档包括用于设备的虚拟简档,其中,虚拟简档包括用于设备的加密密钥对,并且其中,加密密钥对被存储在与描绘节点相关联的安全库中。
优选地,本发明提供了一种方法,其中,安全库包括硬件安全架构。
优选地,本发明提供了一种方法,该方法还包括:从设备接收注册请求;响应于注册请求:向设备发送质询;以及验证来自设备的响应;以及响应于成功的验证,注册设备。
优选地,本发明提供了一种方法,其中不可改变的设备标识包括与设备相关联的物理不可克隆功能(PUF)。
优选地,本发明提供了一种方法,其中,PUF自动提供用于不可改变的注册密钥的加密证明;并且其中,不可改变的注册密钥被用作区块链网络中的标识机制。
优选地,本发明提供了一种方法,其中,设备是物联网(IoT)设备,并且其中,描绘节点代表IoT设备维护分布式账本。
优选地,本发明提供了一种方法,其中,描绘节点包括用于执行直通服务的专用硬件协处理器。
根据本公开的实施例,一种区块链网络。一个实施例可包括多个相对更低能力的对等体和至少一个相对更高能力的对等体。每个相对更低能力的对等体可具有与其相关联的不可改变的设备标识。相对更高能力对等体可以代表多个相对更低能力对等体执行要求计算能力高于一个或多个预定义阈值的工作负载。
上述发明内容并非旨在描述本公开的每个所示实施例或每种实施方式。
附图说明
本申请中包括的附图并入说明书中并形成说明书的一部分。附图示出了本公开的实施例,并且与说明书一起用于解释本公开的原理。附图仅说明某些实施例,而不限制本公开。
图1示出了根据一些实施例的数据处理系统(DPS)的实施例。
图2描绘了根据一些实施例的云计算环境。
图3描绘了根据一些实施例的抽象模型层。
图4是根据一些实施例的区块链网络的一个实施例的系统图。
图5是示出了根据一些实施例的由处于操作中的描绘节点提供的直通服务的一个示例的流程图。
图6A是示出了根据一些实施例的由处于操作中的描绘节点提供的直通服务的另一示例的流程图。图6B是示出了根据一些实施例的由处于操作中的描绘节点提供的直通服务的另一示例的流程图。
图7A描绘了根据一些实施例的示例区块链架构配置。
图7B示出了根据一些实施例的区块链交易流。
图8A示出了根据一些实施例的流程图。
图8B示出了根据一些实施例的又一流程图。
图8C示出了根据一些实施例的被配置为执行本文描述的一个或多个操作的示例系统。
图8D示出了根据一些实施例的被配置为执行本文描述的一个或多个操作的另一示例系统。
图8E示出了根据一些实施例的被配置为利用智能合约的另一示例系统。
图8F示出了根据一些实施例的包括区块链的系统。
图9A示出了根据示例实施例的用于将新块添加到分布式账本的过程。
图9B示出了根据示例实施例的新数据块的内容。
图9C示出了根据示例实施例的用于数字内容的区块链。
图9D示出了根据示例实施例的可表示区块链中的区块的结构的块。
本发明可以有各种修改和替换形式,同时在附图中通过示例的方式示出其细节并且可以详细描述其细节。然而,应当理解,其目的不是将本发明限制于所描述的特定实施例。相反,本发明覆盖落入本发明范围内的所有修改、等效和替换。
具体实施方式
本公开的方面涉及区块链网络的配置和管理,更具体的方面涉及区块链网络中IoT设备的配置和管理。本公开不一定限于此类应用,同时通过使用此上下文的各种示例的讨论可以理解本公开的各个方面。
IoT一般是指专用计算系统的网络,专用计算系统例如设备、车辆、标志、建筑物和嵌入有电子器件、软件、传感器和/或致动器的其他对象,加上网络连接,该网络连接可以使得这些系统能够收集数据以及与其他IoT设备和/或计算机系统交换数据。IoT允许在现有网络基础设施上远程地感测或控制这些对象,从而为物理世界更直接地集成到基于计算机的系统中创造了机会,并且除了减少人为干预之外还导致了改进的效率、准确性和经济效益。当用IoT传感器和致动器来增强物理世界中的对象时,该组合成为更一般类别的网络-物理系统的实例,其也涵盖诸如智能电网、虚拟发电厂、智能家居、智能交通和智能城市的技术。
目前,世界经历商业、工业和私人环境中使用的IoT设备的数量的急剧上升。工作环境、工业环境、家庭环境、公共建筑、城市街道等都越来越多地配备有启用网络的设备,其能够连接到其它设备、接收命令、发送信息并执行特定功能。一些估计预测最终将存在超过500亿个IoT设备(即,能够在它们之间通信的智能设备)。
然而,IoT设备通常被设计成小型、廉价且轻量的。它们也可以设计用于被动操作(例如,仅使用由读取器发射的无线电能)。这些约束通常转化为具有相对更小的本地计算能力(例如,具有小于一个或多个预定义阈值的处理器速度、存储器大小和/或存储大小)的IoT设备,尤其是与现代膝上型计算机、智能电话和服务器计算机(例如,具有大于一个或多个预定义阈值的处理器速度、存储器大小和/或存储大小)相比。
这种本地计算能力的缺乏可能导致处理涉及IoT设备的机器对机器(M2M)交易(诸如区块链网络交易)中的困难。例如,在一些类型的区块链网络中的一个重要问题是建立新的对等设备(即,在该说明性示例中的IoT设备)的标识和可信赖性。某些类型的区块链网络的相关问题可能是这些对等设备的注册和中央管理。已经探索各种选项来解决这个问题,范围从使用IoT和其他设备的标识管理到验证和确认设备签名,但是对于较低能力的计算系统(像许多IoT设备)这些选项中没有一个被证明是足够的。
因此,本公开的一些实施例可提供不可改变的设备标识,诸如物理不可克隆功能,其可被集成到区块链网络的处理节点服务和/或基础设施中。一些实施例可采用不可改变设备标识作为注册机制,并提供直通信任服务,以使得较低计算能力的设备能够参与区块链网络。这些直通服务可包括注册、背书、账本维护、信道定义和维护、数据库指针跟踪和委托权限证明。
一些实施例可以以低处理开销将不可改变的设备标识集成到区块链网络的许可架构中,以使得较低功率设备(诸如IoT设备)能够满足区块链网络中计算节点的要求。这些实施例的一个特征和优点是它们能够信任低功率设备和传感器(诸如IoT设备)参与区块链网络。
这些实施例的一个特征和优点是,不可改变的设备标识可以自动地提供用于不可改变的注册密钥的密码证明,其然后可被用作区块链网络中的标识机制。然后,代表性节点可被选择作为描绘节点,其可使用该注册密钥来认证IoT设备并建立信任。在建立了信任之后,描绘节点就可以为IoT设备和/或代表IoT设备提供直通服务,诸如向网络注册、代表IoT设备维护分布式账本、管理信道元素、提供背书功能、以及其它客户端/对等体相关活动。这样,本公开的一些实施例可改进M2M和/或设备到设备通信,因为描绘节点可提供交易处理的本地化版本,从而实现网络的处理效率。
本公开还可提高区块链网络的效率。描绘节点可用作专用节点以引导某些性能和计算密集型工作负载(例如,要求高于一个或多个预定义阈值的处理器速度、存储器大小和/或存储大小的工作负载)。一些实施例可以进一步利用专门为这些工作负载设计的硬件配置和/或协处理器来优化这些专用节点。例如,描绘节点可包括用于从中央处理单元(CPU)卸载一些通信开销的专用输入/输出处理器(IOP)、用于存储大量IoT设备的交易的更大量的随机存取存储器、和/或代表IoT设备执行加密的协处理器。
虽然本公开的实施例一般是参考M2M和设备到设备(D2D)参与IoT设备之间的安全交易处理的实际模型来描述的,但是其也能够被应用于各种各样的其他应用。例如,一些实施例可以用作各种代理服务,以使用物理不可克隆功能(PUF)使能的移动设备和/或利用密钥管理的对应扩展将许可网络扩展到终端用户/消费者。
数据处理系统
图1示出了根据一些实施例的数据处理系统(DPS)100a的实施例。在该实施例中,DPS 100a可以实现为个人计算机;服务器计算机;便携式计算机,例如膝上型或笔记本计算机、PDA(个人数字助理)、平板计算机或智能电话;嵌入到诸如汽车、飞机、电话会议系统、电器的较大设备中的处理器;智能设备;或任何其它适当类型的电子设备。此外,可以存在不同于图1所示的组件或除了这些组件之外的组件,并且这些组件的数量、类型和配置可以改变。此外,图1仅描绘了DPS 100a的代表性主要组件,并且各个组件可以具有比图1中所表示的更大的复杂度。
图1中的数据处理系统100a包括通过系统总线122连接到存储器112、大容量存储接口114、终端/显示器接口116、网络接口118和输入/输出(“I/O”)接口120的多个中央处理单元110a-110d(这里一般称为处理器110或CPU 110)。在该实施例中,大容量存储接口114将系统总线122连接到一个或多个大容量存储设备,诸如直接存取存储设备140、通用串行总线(“USB”)存储设备141、或可读/可写光盘驱动器142。网络接口118允许DPS 100a通过通信介质106与其它DPS 100b通信。存储器112还包括操作系统124、多个应用程序126和程序数据128。
图1中的数据处理系统100a实施例是通用计算设备。因此,处理器110可以是能够执行存储在存储器112中的程序指令的任何设备,并且其自身可以由一个或多个微处理器和/或集成电路构成。在该实施例中,DPS 100a包括多个处理器和/或处理核,这对于较大的、能力更强的计算机系统是典型的;然而,在其他实施例中,DPS 100a可包括单个处理器系统和/或被设计为仿真多处理器系统的单个处理器。此外,处理器110可以使用多个异构数据处理系统100a来实现,其中主处理器与辅助处理器一起存在于单个芯片上。作为另一个说明性示例,处理器110可以是包括相同类型的多个处理器的对称多处理器系统。
当数据处理系统100a启动时,相关联的处理器110最初执行构成操作系统124的程序指令,该操作系统管理DPS 100a的物理和逻辑资源。这些资源包括存储器112、大容量存储接口114、终端/显示器接口116、网络接口118和系统总线122。如同处理器110,一些DPS100a实施例可以利用多个系统接口114、116、118、120和总线122,这些接口又可以各自包括其自己的单独的完全编程的微处理器。
用于操作系统、应用和/或程序的指令(一般称为“程序代码”、“计算机可用程序代码”或“计算机可读程序代码”)可以最初位于大容量存储设备140、141、142中,其通过系统总线122与处理器110通信。不同实施例中,程序代码可以在不同的物理或有形计算机可读介质(例如系统存储器112或大容量存储设备140、141、142)上实现。在图1的说明性示例中,指令以永久性存储的功能形式存储在直接存取存储设备140上。然后,这些指令被加载到存储器112中以便由处理器110执行。然而,程序代码也可以以功能形式位于可选择性地移除的计算机可读介质142上,并且可以被加载到或传送到DPS 100a以便由处理器110执行。
系统总线122可以是便于处理器110;存储器112;以及接口114、116、118、120之间的通信的任何设备。此外,尽管在该实施例中系统总线122是提供系统总线122之间的直接通信路径的相对简单的单个总线结构,但是其他总线结构与本公开一致,包括但不限于分层的点对点链路、星形或网状配置、多个分层总线、并行和冗余路径等。
存储器112和大容量存储设备140、141、142协同工作以存储操作系统124、应用程序126和程序数据128。在本实施例中,存储器112是能够存储数据和程序的随机存取半导体器件。尽管图1概念性地将该设备描述为单个单片实体,但是在一些实施例中,存储器112可以是更复杂的布置,例如高速缓存和其它存储器设备的层级。例如,存储器112可存在于多级高速缓存中,并且这些高速缓存可进一步按功能划分,使得一个高速缓存保存指令,而另一个高速缓存保存由一个或多个处理器使用的非指令数据。存储器112可以进一步分布并与不同的处理器110或处理器110的集合相关联,如在各种所谓的非均匀存储器存取(NUMA)计算机体系结构中的任何一种中已知的。此外,一些实施例可以利用虚拟寻址机制,该机制允许DPS 100a表现为好像其访问了大的单个存储实体,而不是访问了多个更小的存储实体(例如存储器112)和大容量存储设备140、141、142。
尽管操作系统124、应用程序126和程序数据128被示为包括在存储器112内,但在某些实施例中,它们中的一些或全部可物理地位于不同的计算机系统上,并可例如经由通信介质106远程访问。因此,尽管操作系统124、应用程序126和程序数据128被示为包括在存储器112内,但是这些元件不必同时完全包括在同一物理设备中,并且甚至可以驻留在其他DPS 100a的虚拟存储器中。
系统接口114、116、118、120支持与各种存储和I/O设备的通信。大容量存储接口114支持一个或多个大容量存储设备140、141、142的附接,这些大容量存储设备通常是旋转磁盘驱动存储设备、使用集成电路组件作为存储器以永久地存储数据(通常使用闪存)的固态存储设备(SSD)、或两者的组合。然而,大容量存储设备140、141、142也可以包括其它设备,包括被配置为对于主机表现为单个大型存储设备的盘驱动器阵列(通常称为RAID阵列)和/或档案存储介质,诸如硬盘驱动器、磁带(例如,mini-DV)、可写压缩盘(例如,CD-R和CD-RW)、数字多功能盘(例如,DVD、DVD-R、DVD+R、DVD+RW、DVD-RAM)、全息存储系统、蓝色激光盘、IBM Millipede设备等。
终端/显示器接口116用于将一个或多个显示单元(例如监测器180)直接连接到数据处理系统100a。这些显示单元180可以是非智能(即,哑的)终端,例如LED监测器,或者它们本身可以是用于允许IT管理员和客户与DPS 100a通信的完全可编程的工作站。然而,注意,尽管提供显示接口116以支持与一个或多个显示单元180的通信,但是DPS 100a不一定需要显示单元180,因为与客户和其他进程的所有所需交互可以经由网络接口118发生。
通信介质106可以是任何合适的网络或网络的组合,并且可以支持任何合适的协议,该协议适于向/从多个DPS 100a传送数据和/或代码。因此,网络接口118可以是促进这种通信的任何设备,而不管网络连接是使用当今的模拟和/或数字技术还是经由未来的某种联网机制来进行的。合适的通信介质106包括但不限于使用以下中的一个或多个实现的网络:“InfiniBand”或IEEE(电气和电子工程师协会)802.3x“以太网”规范;蜂窝传输网络;实现IEEE 802.11x、IEEE 802.16、通用分组无线服务(“GPRS”)、FRS(家庭无线服务)或蓝牙规范中的一个的无线网络;超宽带(“UWB”)技术(例如FCC 02-48中描述的技术)等。本领域技术人员将理解,许多不同的网络和传输协议可用于实现通信介质106。传输控制协议/网络协议(“TCP/IP”)套件包括合适的网络和传输协议。
云计算
图2示出了根据一些实施例的包括一个或多个DPS 100a的云环境。应当理解,尽管本公开包括关于云计算的详细描述,但是本文所陈述的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其它类型的计算环境来实现。
云计算是一种服务递送模型,用于实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池的方便的按需网络访问,可配置计算资源可以以最小的管理努力或与服务的提供者的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特征如下:
·按需自助:云消费者可以单方面地自动地根据需要提供计算能力,诸如服务器时间和网络存储,而不需要与服务的提供者进行人工交互。
·广域网接入:能力在网络上可用,并且通过促进由异构的薄或厚客户端平台(例如,移动电话、膝上型计算机和PDA)使用的标准机制来访问。
·资源池化:供应商的计算资源被集中以使用多租户模型来服务多个消费者,其中不同的物理和虚拟资源根据需求被动态地分配和重新分配。存在位置无关的意义,因为消费者通常不控制或不知道所提供的资源的确切位置,但是能够在较高抽象级别(例如国家、州或数据中心)指定位置。
·快速弹性:在一些情况下,可以快速且弹性地提供快速向外扩展的能力和快速向内扩展的能力。对于消费者,可用于提供的能力通常看起来不受限制,并且可以在任何时间以任何数量购买。
·测量服务:云系统通过利用在适合于服务类型(例如,存储、处理、带宽和活动客户账户)的某一抽象级别的计量能力来自动地控制和优化资源使用。可以监视、控制和报告资源使用,从而为所利用服务的提供者和消费者两者提供透明性。
服务模型如下:
·软件即服务(SaaS):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。应用可通过诸如web浏览器(例如,基于web的电子邮件)等瘦客户端界面从各种客户端设备访问。消费者不管理或控制包括网络、服务器、操作系统、存储、或甚至单独应用能力的底层云基础结构,可能的例外是有限的客户专用应用配置设置。
·平台即服务(PaaS):提供给消费者的能力是将消费者创建或获取的应用部署到云基础设施上,该消费者创建或获取的应用是使用由提供商支持的编程语言和工具创建的。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但具有对部署的应用和可能的应用托管环境配置的控制。
·基础设施即服务(IaaS):提供给消费者的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其它基本计算资源,软件可以包括操作系统和应用。消费者不管理或控制底层云基础设施,但具有对操作系统、存储、部署的应用的控制,以及可能对选择的联网组件(例如,主机防火墙)的有限控制。
部署模型如下:
·私有云:云基础设施仅为组织操作。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
·社区云:云基础设施由若干组织共享,并且支持具有共享关注(例如,任务、安全要求、策略和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
·公有云:云基础设施可用于一般公众或大型工业群体,并且由销售云服务的组织拥有。
·混合云:云基础设施是两个或更多云(私有、共同体或公共)的组合,云保持唯一实体,但是通过使数据和应用能够移植的标准化或私有技术(例如,用于云之间的负载平衡的云突发)绑定在一起。
云计算环境是面向服务的,其焦点在于无状态、低耦合、模块性和语义互操作性。在云计算的核心是包括互连节点的网络的基础设施。
现在参考图2,描绘了说明性云计算环境50。如图所示,云计算环境50包括云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点10,本地计算设备例如个人数字助理(PDA)或蜂窝电话54A、台式计算机54B、膝上型计算机54C和/或汽车计算机系统54N。节点10可以彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上文描述的私有云、社区云、公共云或混合云或其组合。这允许云计算环境50提供基础设施、平台和/或软件作为服务,云消费者不需要为其维护本地计算设备上的资源。应当理解,图1中所示的计算设备54A-N的类型仅旨在说明,并且计算节点10和云计算环境50可以通过任何类型的网络和/或网络可寻址连接(例如,使用web浏览器)与任何类型的计算机化设备通信。
现在参考图3,示出了由云计算环境50(图2)提供的一组功能抽象层。应当预先理解,图2中所示的组件、层和功能仅旨在说明,并且本发明的实施例不限于此。如所描绘的,提供了以下层和相应的功能:
硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:主机61;基于RISC(精简指令集计算机)架构的服务器62;服务器63;刀片服务器64;存储装置65;以及网络和网络组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。
虚拟化层70提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器71;虚拟存储器72;虚拟网络73,包括虚拟专用网络;虚拟应用和操作系统74;以及虚拟客户端75。
在一个示例中,管理层80可以提供以下描述的功能。资源供应81提供用于在云计算环境内执行任务的计算资源和其它资源的动态采购。计量和定价82提供了在云计算环境中利用资源时的成本跟踪,以及用于消耗这些资源的开帐单或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供标识验证,以及为数据和其他资源提供保护。客户入口83为消费者和系统管理员提供对云计算环境的访问。服务级别管理84提供云计算资源分配和管理,使得满足所需的服务级别。服务水平协议(SLA)规划和履行85提供对云计算资源的预安排和采购,其中根据SLA预期未来需求。
工作负载层90提供了可以利用云计算环境的功能的示例。可以从该层提供的工作负载和功能的示例包括:绘图和导航91;软件开发和生命周期管理92;虚拟教室教育传送93;数据分析处理94;交易处理95;以及区块链节点96。
区块链系统
图4是根据一些实施例的区块链网络400的一个实施例的系统图。有利地,该实施例中的区块链网络400可提供PUF,PUF可自动提供用于不可改变的注册密钥的密码证明,其用作区块链中的标识机制。网络400可包括用PUF启用的多个相对较低计算功率的IoT设备(IoT设备)410(单独地和共同地,为清楚起见仅标记了一些);维护分布式账本425的区块链网络420;以及描绘节点430。在一些实施例中,区块链网络420可使用现有区块链基础设施(诸如框架(Hyperledger是Linux基金会的商标)等)来创建和/或与现有区块链基础设施兼容。描绘节点430进而可为区块链网络420提供直通服务,诸如向区块链网络420注册、代表注册的IoT设备410维护分布式账本425、维护与注册的IoT设备410相关联的交易相关表435、提供信道元素、提供背书功能、以及其他客户端相关区块链活动。
在该实施例中,IoT设备410可参与M2M或设备引导的交易网络,诸如区块链网络420。IoT设备410进而可各自用PUF来启用,诸如SRAM PUF、延迟PUF、蝶形PUF、金属电阻PUF、双稳态环PUF、DRAM PUF、数字PUF、氧化物破裂PUF、涂层PUF、量子电子PUF、磁性PUF、光学PUF、量子光学PUF、RF PUF等。在一些实施例中,PUF可响应于给定输入和条件(质询)而提供物理定义的“数字指纹”输出,该物理定义的“数字指纹”输出可充当IoT设备410的唯一标识符。
在该实施例中,区块链网络420可包括交易处理基础设施,其将提供信任和交易处理设施,包括管理密码制品。区块链网络上的节点410可以协作地维护分布式账本425。
在该实施例中,描绘节点430可以是代表性节点,通常在云计算环境50中具有相对较高计算能力的DPS 100A上执行,其可以提供直通服务,例如向区块链网络420注册,并且代表相对较低功率IoT设备410维护分布式账本425,在一些实施例中,包括信道元素、背书功能和其他客户端相关或对等相关活动。
在一些实施例中,描绘节点430可提供用于虚拟和安全设备间通信的唯一接口,其中IoT设备410和区块链网络420之间的通信工作负载减少。
因此,描绘节点430可执行以下方法中的一些或全部:
a.提供商直通安全服务:该方法的范围可以从IoT设备410的初始注册到去往/来自启用PUF的IoT设备的所有通信。
b.初始注册:该方法允许IoT设备410向直通服务发送PUF响应以执行向成员资格服务的受信任注册。该方法可使得IoT设备410能够被注册为区块链网络420上的节点。
c.虚拟安全简档创建:在注册时,该方法允许节点在安全飞地中为IoT设备410创建虚拟简档,而不必使用可信执行环境(TEE)、可信计算基础(TCB)或类似架构来促进安全性。可在节点上创建具有所有加密制品的虚拟简档,并且这些虚拟简档可代表IoT设备410彼此交易,尤其是在IoT设备410低功率驱动时。
d.安全密钥管理:该方法提供安全简档以保护密码制品、PUF和对硬件安全模块(HSM)的设计调用,因此(多个)IoT设备410将不必是具有TEE/TCB和HSM使能的专用硬件,因为PUF使能的IoT设备410已经是具有不可克隆地址的专用硬件。
描绘节点430可以使用这些方法来维护交易相关表(未示出)。该表可以是表格形式,其保持区块链网络420状态和配置的记录,例如信道、背书策略、数据库指针和委托权限证明。在该实施例中,描绘节点430也可参与交易完成。即,除了充当加密制品和代理服务的维护者之外,该节点430还可以参与交易完成,包括交易提交和客户端通信。
在一些实施例中,描绘节点430还可基于公钥基础设施(PKI)成员资格而充当基于硬件的标识设备的子集的分布式/集中化认证机构(CA),以及针对区块链网络420的代理。这些实施例中的描绘节点430可以在基于硬件的标识设备与网络之间登记和代理。结果,鉴于分布式特性、临时登记以及将从其提交交易的相当大数量的设备,外部认证机构可能不知道该登记的设备。
直通服务
图5是示出了根据一些实施例的由处于操作中的描绘节点430提供的直通服务的一个示例方法500的流程图。在图5的实施例中,直通服务可以充当所有IoT和/或低功率PUF设备通过其通信的一个服务器,这可以简化通信和安全性。描绘节点430可注册(多个)设备、产生(多个)虚拟简档、以及执行虚拟简档间之间的所有交易等。更具体而言,在操作505,描绘节点430可初始化并开始提供直通服务。接下来,在操作510,描绘节点430可从IoT设备410之一接收注册请求。作为响应,描绘节点可在操作512处确认与该IoT设备410相关联的PUF。在一些实施例中,这可包括向IoT设备410发送质询并接收响应等。在一些实施例中,(多个)正确的响应可能先前被IoT设备410的制造商测量/计算并在独立的安全信道上通信。在其他实施例中,响应被定义为正确的,并且用于防止对区块链网络420的未来攻击。
取决于实施例,如果质询/响应握手被成功验证或成功完成,则在操作515,描绘节点430可在虚拟服务器简档中注册IoT设备410。可选地,描绘节点430还可以在操作520处创建用于IoT设备410的公钥/私钥对,并且在操作525处将该密钥对存储在安全库中。
接下来,在操作530,描绘节点430可从IoT设备410或区块链网络420中的其它节点中的任一个接收成员资格服务指令。作为响应,根据请求的性质(例如,它是创建新信道还是指向现有信道的新通信的请求),在操作540,描绘节点430可在交易相关表中创建新条目,或者查阅交易相关表中的现有条目。在任一情况下,描绘节点430将在操作550响应成员资格服务指令。
图6A是示出了根据一些实施例的由处于操作中的描绘节点430提供的直通服务的另一示例方法600的流程图。在该示例中,描绘节点430充当IoT设备410的代理(即,标识对等节点)。在操作605处,描绘节点430可以从IoT设备410中的一者接收要添加到分布式账本425的建议交易。在操作610,描绘节点430可以代表IoT设备410中的一者、使用其在一些实施例中的专用PKI硬件、使用存储在其安全库中的密钥对来签署所提议的交易,该密钥对与IoT设备410中的一者相关联并由认证机构签署。在操作612,描绘节点430可存储在其交易相关表中指向所提出的交易的指针。
在操作615,描绘节点430可将提出的交易呈现给区块链网络420中的背书节点中的一者,其将根据区块链网络420的协议正常地处理所提出的交易。这可包括使用认证机构来确认IoT设备的标识。接下来,在操作620,描绘节点430可将背书交易呈现给区块链网络420中的排序节点中的一个,其也将根据区块链网络420的协议正常处理所提出的交易。这可也包括使用认证机构来确认IoT设备410的标识。在操作625,区块链网络420可再次使用网络的正常协议来完成到分布式账本425上的建议交易。
图6B是示出了根据一些实施例的由处于操作中的描绘节点430提供的直通服务的另一示例方法650的流程图。在该示例中,描绘节点430充当IoT设备410的代理(即,标识对等节点)。在操作655,描绘节点430可从IoT节点410中的一个接收指向区块链网络420上的另一对等节点的创建信道请求。在操作660,描绘节点430可代表IoT设备410使用其在一些实施例中的专用PKI硬件、并使用存储在其安全库中的密钥对来签署信道请求,该密钥对与IoT设备410中的一者相关联并由认证机构签署。在操作665,描绘节点430可在其交易相关表中为所请求的信道创建记录。
接下来,在操作670,描绘节点430可将信道请求转发给所请求的对等节点。在操作675,对等节点进而可通过首先使用签名和认证机构确认请求方IoT设备410的标识来作出响应。然后,在操作680,对等节点将根据区块链网络420的协议正常处理信道请求交易。
这些方法的一个特征和优点是,在一些实施例中,描绘节点430对于区块链网络420的其余部分可能是透明的,包括背书节点、排序节点和其他对等节点。即,其他节点可处理所提议的(多个)交易和(多个)请求,如同它们直接来自IoT设备410中的一者。有利地,这可以允许使用专用节点来改进计算密集型工作负载和/或工作流的性能。此外,这些实施例中的描绘节点430可提供用于虚拟和安全设备间通信的接口,其中IoT设备410与区块链网络420之间的通信工作负载减少。
区块链架构
图7A示出了根据一些实施例的区块链结构配置700。这些实施例中的区块链架构700可包括某些区块链元件,例如,一组区块链节点702。在一些实施例中,在描绘节点430上创建的虚拟安全简档也可充当单独的区块链节点720。一组区块链节点702进而可包括一个或多个成员节点704-710(仅通过示例描绘这四个节点)。这些成员节点704-710可参与多个活动,诸如区块链交易增加和验证过程(共识)。会员节点704和710中的一个或多个可基于签注策略签注交易,并可为体系结构700中的所有区块链节点提供排序服务。成员节点704-710可发起区块链认证并试图写入存储在区块链层716中的区块链不可改变账本,其副本也可存储在基础物理基础设施714上。
在一些实施例中,区块链架构700可包括一个或多个应用724,其链接到应用编程接口(API)722以访问和执行存储的程序/应用代码720(例如,链码、智能合约等)。所存储的程序/应用代码720进而可以根据参与者所寻求的定制配置来创建,并且可以维护其自身的状态、控制其自身的资产、以及接收外部信息。存储的程序/应用代码720可被部署为交易,并经由附加到分布式账本而被安装在所有区块链节点704-710上。
区块链基础或平台712可包括区块链数据、服务(例如,密码信任服务、虚拟执行环境等)的各层,并支持可用于接收和存储新的交易并提供对试图访问数据条目的审核者的访问的物理计算机基础设施。区块链层716可展示提供对处理程序代码和使用物理基础结构714所需的虚拟执行环境的访问的接口。密码信任服务718可用于验证(诸如资产交换交易)并保持信息私密。
图7A的区块链架构配置可经由区块链平台712所暴露的一个或多个接口和所提供的服务来处理和执行程序/应用代码720。程序/应用代码720可以控制区块链资产。例如,代码720可存储以及传送数据,并且可以由成员节点704-710以具有服从其执行的条件或其他代码元素的智能合约和相关联的链码的形式来执行。作为非限制性示例,可以创建智能合约以执行提醒、更新和/或服从改变、更新等的其他通知。智能合约本身可以用于识别与账本的授权和访问要求以及使用相关联的规则。例如,(多个)文档属性信息726可由包括在区块链层716中的一个或多个处理实体(例如,虚拟机)处理。结果728可包括多个链接的共享文档。物理基础设施714可用于取得本文所述的任何数据或信息。
在一些实施例中,智能合约可经由高级应用和编程语言来创建,并且然后被写入区块链中的区块。智能合约可包括向区块链(例如,区块链对等体的分布式网络)注册、存储和/或复制的可执行代码。交易是智能合约代码的执行,其可以响应于与智能合约相关联的条件被满足而被执行。智能合约的执行可触发对数字区块链账本的状态的(多个)可信修改。在一些实施例中,由智能合约执行引起的对区块链账本的(多个)修改可以通过一个或多个一致协议在整个区块链对等体的分布式网络中自动复制。
智能合约可以以键-值对的格式将数据写入区块链。在一些实施例中,智能合约代码还可以读取存储在区块链中的值,并且在应用操作中使用该值。这些实施例中的智能合约代码然后可以将各种逻辑操作的输出写入区块链中。在一些实施例中,智能合约代码可以用于在虚拟机或其他计算平台中创建临时数据结构。在这些实施例中,被写入区块链的数据可以是公共的,或者可以被加密并被维护为私有。智能合约所使用/生成的临时数据可由所提供的执行环境保持在存储器中,并且然后在标识了区块链所需的数据后可删除临时数据。
在一些实施例中,链码可包括具有附加特征的智能合约的代码解释。在一些实施例中,可将链码实现为部署在计算网络上的程序代码,其中在一致性过程期间由链式验证器共同执行并验证该链码。链码可接收哈希(hash),并且可以从区块链取得与通过使用先前存储的特征提取器创建的数据模板相关联的哈希。如果哈希标识符的哈希与从所存储的标识符模板数据创建的哈希匹配,则链码可向所请求的服务发送授权密钥。链码可以向区块链写入与密码细节相关联的数据。
图7B示出了根据一些实施例的区块链的节点之间的区块链交易流750的示例。这些实施例中的交易流可包括由应用客户端节点760发送到背书的对等节点781的交易提议791。背书对等体781可以验证客户端签名并执行链码功能以启动交易。输出可包括链码结果、在链码中读取的一组键/值版本(读取集)以及在链码中写入的一组键/值(写入集)。然后,如果被认可,则可将提议响应792连同背书签名一起发送回客户端760。
作为响应,客户端760可以将背书汇编到交易有效载荷793中,并将其广播到排序服务节点784。然后,排序服务节点784可以将排序的交易作为区块传递到信道上的所有对等体781-783。在提交到区块链之前,每个对等体781-783可以验证交易。例如,在一些实施例中,对等体可以检查背书策略以确保指定对等体的正确分配已签署了结果并对照交易有效载荷793认证了签名。
继续参考图7B,在一些实施例中,客户端节点760可通过构造请求并将请求发送到可用作背书者的对等节点781来发起交易791。客户端760可包括利用支持的软件开发工具包(SDK)的应用,其可利用可用的API来生成交易建议。交易建议又可以是调用链码函数的请求,使得数据可以被读取和/或写入到分布式账本(即,写入用于资产的新的键值对)。SDK可以用作将交易建议封装为适当的架构化格式(例如,远程过程调用(RPC)上的协议缓冲区)的垫片(shim),并采用客户端的密码证书来产生交易建议的唯一签名。
作为响应,背书的对等节点781可以验证:(a)交易建议是形成良好的;(b)交易过去还没有被提交(重放攻击保护);(c)签名有效;以及(d)提交者(在该示例性实施例中为客户760)被正确地授权在该信道上执行所提议的操作。背书对等节点781可将交易建议输入作为所调用的链码函数的自变量。然后,可对当前状态数据库执行该链码,以产生交易结果,包括响应值、读取集和写入集。在一些实施例中,此时不对账本进行更新。相反,该组值连同背书对等节点的781签名一起可作为提议响应792被传递回客户端760的SDK,其解析应用要使用的有效载荷。
作为响应,客户端760的应用可检查/验证背书对等体的签名,并可比较提议响应以确定该提议响应是否相同。如果链码只查询账本,则应用可检查查询响应,并且通常不向排序服务784提交交易。如果客户端应用想要将交易提交给排序服务784以更新账本,则应用可确定在提交之前是否已经满足指定的背书策略(即,交易所需的所有对等节点是否背书了交易)。这里,客户端可以仅包括交易的多方中的一方。在这种情况下,每个客户端可具有它们自己的背书节点,并且每个背书节点将需要背书该交易。该体系结构使得即使应用选择不检查响应或以其它方式转发未背书的交易,背书策略仍将由对等体实施并在提交验证阶段得到支持。
在成功检查之后,在操作793中,客户端760可将背书集合到交易中,并可将交易建议和交易消息内的响应广播给排序服务784。交易可包括读取/写入集、背书对等体的签名和信道ID。排序服务784不需要为了执行其操作而检查交易的全部内容;相反,排序服务784可简单地从网络中的所有信道接收交易,按信道按时间顺序对它们排序,并且创建每个信道的交易块。
+是由交易执行生成的。区块中的交易可以被标记为有效或无效。此外,在操作795中,每个对等节点781-783可将块附加到信道的链,并针对每个有效交易,写入集被提交到当前状态数据库。可将事件发出以通知客户端应用该交易(调用)被不可改变地附加到链,以及通知交易是有效还是无效。
许可的区块链
图8A示出了根据一些实施例的许可的区块链网络的示例,该区块链网络的特征在于分布式、分散式对等架构。在该示例中,区块链用户802可向许可的区块链804发起交易。在该示例中,交易可以是部署、调用或查询,并且可以通过利用SDK的客户端侧应用、直接通过API等来发出。网络可提供对诸如审核者的监管者806的访问。区块链网络运营商808管理成员许可,诸如将监管者806登记为“审核者”并且将区块链用户802登记为“客户端”。审核者可被限制为仅查询账本,而客户端可被授权部署、调用和查询某些类型的链码。
在一些实施例中,区块链开发者810可编写链码和客户端应用。这些实施例中的区块链开发者810可通过接口直接将链码部署到网络。为了在链码中包括来自传统数据源812的证书,开发者810可使用带外(out-of-band)连接来访问数据。在该示例中,区块链用户802可通过对等节点814连接到许可区块链804。在进行任何交易之前,对等节点814可以从管理用户角色和许可的认证机构816取得用户的登记和交易证书。在一些实施例中,区块链用户必须拥有这些数字证书以在许可的区块链804上交易。在其他实施例中,区块链用户可使用其他技术来认证,诸如经由分布式信任链。同时,可要求尝试利用链码的用户验证他们在传统数据源812上的证书。链码可使用通过传统处理平台818到此数据的带外连接来确认用户的授权。
图8B示出了根据一些实施例的许可的区块链网络的另一示例,该区块链网络的特征在于分布式、分散式对等架构。在该示例中,区块链用户822可向许可的区块链824提交交易。在该示例中,交易可以是部署、调用或查询,并且可通过利用SDK的客户端侧应用、直接通过API等来发出。网络可提供对诸如审核者的监管者826的访问。区块链网络运营商828管理成员许可,诸如将监管者826登记为“审核者”并且将区块链用户822登记为“客户端”。审核者可以被限制为仅查询账本,而客户端可以被授权部署、调用和查询某些类型的链码。
这些实施例中的区块链开发者831可编写链码和客户端侧应用。区块链开发者831可通过接口将链码直接部署到网络。为了在链码中包括来自传统数据源832的证书,开发者831可使用带外连接来访问数据。在该示例中,区块链用户822通过对等节点834连接到网络。在进行任何交易之前,对等节点834从认证机构836取得用户的登记和交易证书。在一些实施例中,区块链用户必须拥有这些数字证书以在许可的区块链824上交易。在其他实施例中,区块链用户可使用其他技术来认证,诸如经由分布式信任链。同时,可要求试图利用链码的用户验证他们在传统数据源832上的证书。链码可使用通过传统处理平台838到该数据的带外连接来确认用户的授权。
图8C示出了根据一些实施例的包括被配置为执行各种操作的物理基础设施811的示例系统。参考图6C,物理基础设施811包括模块888和模块889。模块819包括区块链820和智能合约830(其可位于区块链820上),其可执行包括在任何示例实施例中的操作步骤878(在模块812中)的任一者。步骤/操作878可包括所描述或描绘的一个或多个实施例,并且可表示从一个或多个智能合约830和/或区块链820写入或读取的输出或写入信息。物理基础设施811、模块888和模块889可包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。此外,模块888和模块889可以是相同的模块。
图8D示出了根据一些实施例的被配置为执行各种操作的另一示例系统。参考图8D,系统包括模块812和模块814。模块814包括区块链820和智能合约830(其可位于区块链820上),其可执行包括在任何示例实施例中的操作步骤878(在模块812中)的任一者。步骤/操作878可包括所描述或描绘的一个或多个实施例,并且可表示从一个或多个智能合约830和/或区块链820写入或读取的输出或写入信息。物理模块812和模块814可包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。此外,模块812和模块814可以是相同的模块。
图8E示出了根据一些实施例的被配置为在合约各方之间利用智能合约配置的示例系统以及被配置为在区块链820上实施智能合约条款的中介服务器。参考图8E,该配置可以表示通信会话、资产转移会话、或者由智能合约830驱动的过程或规程,其明确地标识一个或多个用户设备852和/或856。智能合约执行的执行、操作和结果可以由服务器854管理。智能合约830的内容可能需要由实体852和856中的一个或多个进行的数字签名,这些实体是智能合约交易的各方。智能合约执行的结果可作为区块链交易被写入区块链820。智能合约830位于区块链820上,其可以位于一个或多个计算机、服务器、处理器、存储器和/或无线通信设备上。
图8F示出了根据一些实施例的包括区块链的系统860。参考图8D的示例,应用编程接口(API)网关862提供用于访问区块链逻辑(例如,智能合约830或其他链码)和数据(例如,分布式账本等)的公共接口。在该示例中,API网关862是用于通过将一个或多个实体852和856连接到区块链对等体(即,服务器854)来在区块链上执行交易(调用、查询等)的公共接口。这里,服务器854是保持世界状态的副本的区块链网络对等组件,以及允许客户端852和856查询世界阶段上的数据并将交易提交到区块链网络中的分布式账本,其中,取决于智能合约830和背书策略,背书对等体将运行智能合约830。
区块处理
图9A示出了根据一些实施例的将新数据块930添加到分布式账本920的过程900,并且图7B示出了根据一些实施例的区块链的新数据块930的内容。新数据块930可包括文档链接数据。
参照图9A,客户端(未示出)可向区块链节点911、912和/或913提交交易。客户端可以是从任何源接收的指令,以在区块链922上制定活动。作为示例,客户端可以是代表请求者(例如设备、人或实体)行动以提议对区块链的交易的应用。多个区块链对等体(例如,区块链节点911、912和913)可维护区块链网络的状态和分布式账本920的副本。在区块链网络中可以存在不同类型的区块链节点/对等体,包括对模拟并背书由客户端提出的交易的背书对等体(endorsing peer),以及对验证背书、验证交易并将交易提交给分布式账本920的提交对等体(committing peer)。在一些实施例中,区块链节点911、912和913可以执行背书节点、提交节点或两者的角色。
分布式账本920可包括在块中存储不可改变的有序记录的区块链,以及维护区块链922的当前状态的状态数据库924(当前世界状态)。每个信道可以存在一个分布式账本920,并且每个对等体为其成员的每个信道维护其自己的分布式账本920的副本。区块链922可以是交易日志,其被构造为哈希链接的区块,其中每个区块包括N个交易的序列。区块可以包括诸如图9B中所示的各种组件。可以通过在当前区块的区块头内添加先前区块的头部的哈希来产生区块的链接(图9A中的箭头所示)。这样,区块链922上的所有交易可被排序并加密地链接在一起,从而防止篡改区块链数据而不破坏哈希链接。此外,由于链接,区块链922中的最新的区块表示在其之前到来的每个交易。区块链922可被存储在对等文件系统(本地或附加存储)上,其支持append-only(仅附加)区块链工作负载。
区块链922和分布式账本920的当前状态可以被存储在状态数据库924中。这里,当前状态数据表示区块链922的链交易日志中曾经包括的所有密钥的最新值。链码调用针对状态数据库924中的当前状态执行交易。为了使这些链码交互更有效,所有密钥的最新值可被存储在状态数据库924中。状态数据库924可包括区块链922的交易日志中的索引视图,因此其可以在任何时间从链中重新生成。在接受交易之前,状态数据库924可以在对等启动时自动恢复(或者如果需要的话自动生成)。
背书节点从客户端接收交易并基于模拟结果背书该交易。背书节点持有模拟交易建议的智能合约。当背书节点背书交易时,背书节点创建交易背书,其是从背书节点到客户端应用的指示模拟交易的背书的签名响应。背书交易的方法取决于可在链码内指定的背书策略。背书政策的示例是“大多数的背书对等体必须背书该交易”。不同的信道可以具有不同的背书策略。背书的交易由客户端应用转发给排序服务910。
排序服务910接受背书的交易,将它们排序成区块,并将这些区块传递给提交对等体。例如,当达到交易的阈值、定时器超时或另一条件时,排序服务910可以发起新的区块。在图9A的示例中,区块链节点912是已经接收了新数据块930以存储在区块链922上的提交对等体。区块链中的第一区块可以被称为起源区块,起源区块包括关于区块链、其成员、存储在其中的数据等的信息。
排序服务910可以由排序节点的群集组成。在一些实施例中,排序服务910可以不处理交易、智能合约或维护共享账本。相反,这些实施例中,排序服务910可以接受背书的交易,并指定这些交易被提交给分布式账本920的顺序。区块链网络的体系结构可被设计成使得“排序”的特定实现(例如,Solo、Kafka、BFT等)变为可插式组件。
在一些实施例中,可以以一致的顺序将交易写入分布式账本920。在这些实施例中,可以建立交易的顺序以确保当将对状态数据库924的更新提交给网络时它们是有效的。与加密货币区块链系统(例如,Bitcoin等)不同的(其中,排序通过密码难题的解决或挖掘而发生),在该示例中,分布式账本920的各方可以选择最适合该网络的排序机制。
在一些实施例中,当排序服务910初始化新数据块930时,新数据块930可被广播到提交对等体(例如,区块链节点911、912和913)。作为响应,每个提交对等体可以通过检查以确保读取集和写入集仍然匹配状态数据库924中的当前世界状态来验证新数据块930内的交易。具体地,提交对等体可以确定在背书者模拟交易时存在的读取数据是否与状态数据库924中的当前世界状态相同。当提交对等体确认交易时,交易可以被写入分布式账本920上的区块链922,并且可以用来自读取-写入集的写数据来更新状态数据库924。在一些实施例中,如果交易失败(例如,如果提交对等体发现读取-写入集合不匹配状态数据库924中的当前世界状态),则排序成区块的交易仍可被包括在该区块中,但被标记为无效,并且状态数据库924不被更新。
参考图9B,在一些实施例中,存储在分布式账本920的区块链922上的新数据块930(也被称为数据块)可包括多个数据段,诸如区块头940、区块数据950和区块元数据960。应当理解,图9B中所示的各种描述的区块及其内容(例如新数据块930及其内容)仅仅是示例,并不意味着限制示例实施例的范围。新数据块930可以将N个交易(例如,1、10、100、200、1000、2000、3000等)的交易信息存储在区块数据950内。新数据块930还可以包括到区块头940内的(例如,图9A中的区块链922上的)先前区块的链接。特别地,区块头940可以包括前一区块的头部的哈希。区块头940还可以包括唯一的区块号、新数据块930的区块数据950的哈希等。新数据块930的区块号可以是唯一的,并且以各种顺序分配,例如从零开始的递增/顺序。
区块数据950可存储记录在新数据块930中的每个交易的交易信息。例如,交易数据可包括以下中的一个或多个:交易的类型、版本、时间戳、分布式账本920的信道ID、交易ID、纪元、有效载荷可见性、链码路径(部署tx)、链码名称、链码版本、输入(链码和函数)、诸如公钥和证书的客户端(创建者)标识、客户端的签名、背书者的标识、背书者签名、建议哈希、链码事件、响应状态、命名空间、读取集(通过交易读取的密钥和版本的列表等)、写入集(密钥和值的列表等)、开始密钥、结束密钥、密钥的列表、Merkel树查询摘要等。可以为N个交易中的每一个存储交易数据。
在一些实施例中,区块数据950还可以存储新数据962,其向区块链922中的哈希链接的区块链添加附加信息。附加信息可以包括本文描述或描绘的步骤、特征、过程和/或动作中的一个或多个。因此,新数据962可以被存储在分布式账本920上的区块的不可变日志中。存储该新数据962的好处中的一些反映于本文所描述和描绘的各种实施例中。尽管在图9B中,在区块数据950中描绘新数据962,但是在一些实施例中,新数据962也可以位于区块头940或区块元数据960中。新数据962还可以包括用于链接组织内的文档合成密钥。
区块元数据960可存储元数据的多个字段(例如,作为字节数组等)。元数据字段可包括:区块创建上的签名、对最后配置区块的引用、标识区块内的有效和无效交易的交易过滤器、排序该区块的排序服务的最后偏移量持久保存等等。签名、最后配置区块和排序者元数据可以由排序服务910添加。同时,区块的提交者(诸如区块链节点912)可以基于背书策略、读取/写入集的验证等来添加有效性/无效性信息。交易过滤器可以包括大小等于区块数据950中的交易数量的字节数组和标识交易是有效/无效的验证码。
图9C示出了根据一些实施例的用于数字内容的区块链970的实施例。数字内容可包括一个或多个文件和相关联的信息。文件可包括交易数据、媒体、图像、视频、音频、文本、链接、图形、动画、网页、文档或其他形式的数字内容。一些区块链实施例的不可改变的、append-only的方面可能是期望的,以用作保护数字内容的完整性、有效性和真实性的安全措施,使得其适合用于法律程序,其中适用准入规则或考虑证据或数字信息的呈现和使用是另外感兴趣的其他设置。在这种情况下,数字内容可以被称为数字证据。
这些实施例中的区块链可以以各种方式形成。在一个实施例中,数字内容可以被包括在区块链本身中并且从区块链本身访问。例如,区块链中的每个区块可以沿着相关联的数字内容存储参考信息的哈希值(例如,区块头、值等)。然后,可以一起加密哈希值和相关联的数字内容。因此,每个块的数字内容可以通过解密区块链中的每个区块来访问,并且每个区块的哈希值可以用作引用前一区块的基础。这可以如下说明:
在一个实施例中,数字内容可以不包括在区块链中。例如,区块链可以存储每个区块的内容的加密哈希而没有任何数字内容。数字内容可以存储在与原始文件的哈希值相关联的另一存储区域或存储器地址中。另一存储区域可以是用于存储区块链的相同存储设备,或者可以是不同的存储区域,或者甚至是单独的关系数据库。可以通过获得或查询感兴趣的区块的哈希值,然后在存储区域中查找具有与实际数字内容相对应地存储的值,来引用或访问每个区块的数字内容。例如,可以由数据库看门人(database gatekeeper)来执行该操作。这可以如下说明:
在图7C的示例实施例中,区块链970包括以有序序列密码链接的多个区块9781、9782、…978N,其中N≥1。用于链接区块9781、9782、…978N的加密可以是多个加密钥或非加密钥的哈希函数中的任何一个。在一个实施例中,区块9781、9782、…978N经受哈希函数,该哈希函数从基于区块中的信息的输入产生n位字母数字输出(其中n是256或另一数字)。该哈希函数的示例包括但不限于:SHA型(SHA代表安全哈希算法)算法、Merkle-Damgard算法、HAIFA算法、Merkle-tree算法、基于随机数的算法和非抗冲(non-collision-resistant)PRF算法。在另一实施例中,区块9781、9782、…、978N可以通过不同于哈希函数的函数来加密链接。出于说明的目的,以下描述是参考哈希函数(例如SHA-2)来进行的。
区块链中的区块9781、9782、…、978N中的每一个可包括区块头、文件的版本、以及值。作为区块链中的哈希的结果,对于每个区块,区块头和值可以是不同的。在一个实施例中,该值可以被包括在区块头中。如以下更详细地描述的,文件的版本可以是原始文件或者可以是原始文件的不同版本。
区块链中的第一区块9781被称为起源区块,并且可以包括头部9721、原始文件9741和初始值9761。用于起源区块并且实际上在所有后续区块中的哈希机制可以变化。例如,第一区块9781中的所有信息可以一起并且一次被哈希,或者第一区块9781中的信息的每一个或其一部分可以被单独地哈希,然后可以执行单独哈希的部分的哈希。
头部9721可包括一个或多个初始参数,其例如可包括版本号、时间戳、nonce(现时值)、根信息、难度等级、一致性协议、持续时间、媒体格式、源、描述性关键字和/或与原始文件9741和/或区块链相关联的其他信息。头部9721可自动生成(例如,通过区块链网络管理软件)或由区块链参与者手动生成。与其他区块9782到978N中的头部不同,起源区块的头部9721可不引用先前区块,仅因为不存在先前区块。
起源区块的原始文件9741可以是例如在设备被包括在区块链中之前经过或未经过处理的设备所采集的数据。原始文件9741可以通过系统的接口从设备、媒体源或节点接收。原始文件9741可以与元数据相关联,该元数据例如可以由用户、设备和/或系统处理器手动地或自动地生成。元数据可以被包括在与原始文件9741相关联的第一区块9781中。
起源区块的值9761可以是基于原始文件9741的一个或多个唯一属性生成的初始值。在一个实施例中,一个或多个唯一属性可包括原始文件9741的哈希值、原始文件9741的元数据、以及与文件相关联的其它信息。在一个实现中,初始值9761可以基于以下唯一属性:
1)SHA-2计算的原始文件的哈希值
2)发起设备ID
3)原始文件的开始时间戳
4)原始文件的初始存储位置
5)用于软件的区块链网络成员ID,以当前控制原始文件和相关联的元数据
区块链中的其它区块9782到978N也具有头部、文件和值。然而,与第一区块的头部9721不同、其他区块的头部9722到972N中的每一个包括紧接在前区块的哈希值。前一区块的哈希值可以仅仅是前一区块的头部的哈希,或者可以是整个前一区块的哈希值。通过将前一区块的哈希值包括在每个剩余区块中,可以在逐区块的基础上执行从第N区块回到起源区块(以及相关联的原始文件)的跟踪,如箭头980所示,以建立可审核且不可变的监管链(chain-of-custody)。
其它区块中的每个头部9722到972N还可包括其它信息,例如版本号、时间戳、现时值、根信息、难度等级、一致性协议和/或通常与对应文件和/或区块链相关联的其它参数或信息。
其它区块中的文件9742到974N可以等于原始文件,或者可以是起源区块中原始文件的修改版本,这取决于例如所执行的处理的类型。所执行的处理的类型可在区块与区块之间变化。处理可涉及例如对在前区块中的文件的任何修改,诸如编辑信息或以其他方式改变文件的内容、从文件中取走信息、或向文件添加或附加信息。
附加地或替换地,处理可仅涉及从在前区块复制文件、改变文件的存储位置、分析来自一个或多个在前区块的文件、将文件从一个存储或存储器位置移动到另一个存储或存储器位置、或相对于区块链的文件和/或其相关联的元数据执行动作。涉及分析文件的处理可以包括例如附加、包括或者关联各种分析、统计或与文件相关联的其他信息。
其它区块中的每个区块中的值9762到976N是唯一值,并且由于所执行的处理而全部不同。例如,任何一个区块中的值对应于先前区块中的值的更新版本。更新反映在被分配了值的区块的哈希中。因此,区块的值提供了在区块中执行了什么处理的指示,并且还允许通过区块链回到原始文件的跟踪。该跟踪确认了文件在整个区块链中的监管链。
例如,考虑其中在前区块中的文件的部分被编校(redact)、分块或像素化以便保护文件中所示的人的标识的情况。在这种情况下,包括编校文件的区块将包括与编校的文件相关联的元数据,例如,编校是如何执行的、谁执行了编校、编校发生的时间戳等。元数据可以被哈希以形成该值。因为该块的元数据不同于被哈希以形成前一区块中的值的信息,所以这些值彼此不同并且可以在解密时被恢复。
在一个实施例中,当以下中的任何一个或多个发生时,可以更新先前区块的值(例如,计算的新的哈希值)以形成当前区块的值。在该示例实施例中,可以通过对下面提到的信息的全部或一部分进行哈希来计算新的哈希值。
a)如果文件已经以任何方式被处理(例如,如果文件被编校、复制、更改、访问、或采取了一些其他动作),则新的SHA-2计算的哈希值
b)文件的新存储位置
c)与文件相关联的新的元数据被识别
d)将对文件的访问或控制从一个区块链参与者转移到另一区块链参与者
图9D示出了根据一些实施例的区块的实施例,其可以表示区块链990中的区块的结构。区块(区块i)可包括头部972i、文件974i和值976i。
头部972i可包括先前区块i-1的哈希值和附加参考信息,该附加参考信息例如可以是本文讨论的任何类型的信息(例如,包括引用、特性、参数等的头部信息)。在一些实施例中,除了起源区块之外,所有区块可以引用先前区块的哈希。先前区块的哈希值可以仅仅是先前区块中的头部的哈希,或者是先前区块中的全部或部分信息(包括文件和元数据)的哈希。
文件974i可以包括多个数据,例如顺序的数据1、数据2、…、数据N。数据被标记有元数据1、元数据2、…、元数据N,它们描述与数据相关联的内容和/或特性。例如,每个数据的元数据可以包括:指示数据的时间戳、处理数据、指示数据中描绘的人或其他内容的关键词、和/或可能有助于建立文件作为整体的有效性和内容的其他特征的信息,尤其是其使用数字证据,例如,如结合以下讨论的实施例所描述的。除了元数据之外,每个数据可以用对先前数据的引用REF1、REF2、…、REFN来标记,以防止文件中的篡改、间隙以及通过文件的顺序引用。在元数据被分配给数据(例如,通过智能合约)后,在一些实施例中,在哈希不变的情况下元数据不能被更改,这可以被容易地标识以用于无效。因此,这些实施例中的元数据创建了可以被访问以供区块链中的参与者使用的信息的数据日志。
一些实施例中,值976i可以是基于先前讨论的任何类型的信息计算的哈希值或其他值。例如,对于任何给定区块i,可以更新该区块的值以反映针对该区块执行的处理,例如,新的哈希值、新的存储位置、关联文件的新的元数据、控制或访问的转移、标识符、或要添加的其他动作或信息。尽管每个块中的值被示为与文件和头部的数据的元数据分开,但是在另一实施例中,该值可以部分或全部基于该元数据。
在形成区块链970后,在一些实施例中,在任何时间点,通过向区块链查询跨区块的值的交易历史,可以获得文件的不可变的监管链。该查询或跟踪过程可以开始于对当前最多包括的区块(例如,最后(第N)区块)的值进行解密,然后继续对其他区块的值进行解密,直到到达起源区块并且恢复原始文件为止。解密也可涉及解密每个区块中的头部和文件以及相关联的元数据。
可以基于在每个区块中发生的加密类型来执行解密。这可以涉及私钥、公钥或公钥-私钥对的使用。例如,当使用非对称加密时,区块链参与者或网络中的处理器可使用预定算法生成公钥和私钥对。公钥和私钥可以通过某种数学关系彼此相关联。公钥可以被公开分发以用作从其他用户接收消息的地址,例如IP地址或家庭地址。私钥可以保持秘密并且可以用于对发送到其他区块链参与者的消息进行数字签名。该签名又可以被包括在消息中,以使得接收者可以使用发送者的公钥来验证。这样,接收者可以确信只有发送者可以发送该消息。
在一些实施例中,生成密钥对可类似于在区块链上创建帐户,但不必实际上在任何地方注册。在这些实施例中,在区块链上执行的每个交易可以由发送者使用其私钥来数字地签名。该签名可帮助确保仅账户的所有者可跟踪和处理(如果在由智能合约确定的许可范围内)区块链的文件。
计算机程序产品
本发明可以是任何可能的技术细节集成水平的系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),计算机可读程序指令用于使处理器执行本发明的各方面。
计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、诸如上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码装置,以及上述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络,例如因特网、局域网、广域网和/或无线网络,下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据,或者以一种或多种编程语言(包括面向对象的编程语言,例如Smalltalk、C++等)和过程编程语言(例如“C”编程语言或类似的编程语言)的任意组合编写的源代码或目标代码。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或者可以连接到外部计算机(例如,使用因特网服务提供商通过因特网)。在一些实施例中,为了执行本发明的各方面,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化。
在此参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。
这些计算机可读程序指令可以被提供给计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的方面的指令。
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方式中,框中所注明的功能可不按图中所注明的顺序发生。例如,连续示出的两个框实际上可以作为一个步骤来实现,同时、基本同时、以部分或全部时间重叠的方式执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。
通用
在本说明书中使用的任何特定程序术语仅仅是为了方便,因此本发明不应限于仅在由这样的术语标识和/或暗示的任何特定应用中使用。因此,例如,被执行以实现本发明的实施例的例程,无论是作为操作系统的一部分还是特定应用、组件、程序、模块、对象或指令序列来实现,都可以被称为“程序”、“应用”、“服务器”或其他有意义的术语。实际上,在不脱离本发明的范围的情况下,可以使用其它替代硬件和/或软件环境。
因此,希望在此描述的实施例在所有方面都被认为是说明性的而非限制性的,并且参考所附权利要求来确定本发明的范围。
Claims (20)
1.一种用于配置区块链网络的计算机实现的方法,包括:
在区块链网络的描绘节点处注册设备,其中,所述注册包括通过网络接口从所述设备接收不可改变的设备标识;
由所述描绘节点的处理器基于所述注册创建所述设备的简档;以及
由所述描绘节点的所述处理器执行针对所述设备的直通服务。
2.根据权利要求1所述的方法,还包括更新用于所述设备的交易相关表,其中,所述交易相关表包括与所述设备相关联的区块链功能的记录。
3.根据权利要求2所述的方法,其中,所述区块链功能包括维护所述区块链网络的背书策略和委托权限证明。
4.根据权利要求2所述的方法,还包括:
从所述区块链网络中的节点接收针对所述设备的成员资格服务指令;以及
响应于所述成员资格服务指令,更新所述设备的所述交易相关表。
5.根据权利要求2所述的方法,还包括:
从所述设备接收针对所述区块链网络的成员资格服务指令;以及
响应于所述成员资格服务指令,更新所述设备的所述交易相关表。
6.根据权利要求1所述的方法,其中,所述直通服务包括创建用于所述区块链网络上的对等体之间的通信的信道。
7.根据权利要求1所述的方法,其中,所述直通服务包括代表所述设备促进交易。
8.根据权利要求1所述的方法,其中,所述直通服务包括促进所述设备与所述区块链网络中的其他节点之间的通信。
9.根据权利要求8所述的方法,其中,所述直通服务还包括代理所述设备与所述区块链网络中的所述其他节点之间的所有通信。
10.根据权利要求1所述的方法,其中,所述注册还包括向所述区块链网络的成员资格服务注册所述设备。
11.根据权利要求10所述的方法,其中,所述注册使得所述设备能够被注册为专用区块链网络上的对等节点。
12.根据权利要求1所述的方法,其中,所述简档包括所述设备的虚拟简档,其中,所述虚拟简档包括所述设备的加密密钥对,并且其中,所述加密密钥对被存储在与所述描绘节点相关联的安全库中。
13.根据权利要求12所述的方法,其中,所述安全库包括硬件安全架构。
14.根据权利要求1所述的方法,还包括:
从所述设备接收注册请求;
响应于所述注册请求:
向所述设备发送质询;以及
验证来自所述设备的响应;以及
响应于成功的验证,注册所述设备。
15.根据权利要求1所述的方法,其中,所述不可改变的设备标识包括与所述设备相关联的物理不可克隆功能(PUF)。
16.根据权利要求15所述的方法,其中,所述PUF自动提供针对不可改变的注册密钥的加密证明;并且其中,所述不可改变的注册密钥被用作所述区块链网络中的标识机制。
17.根据权利要求1所述的方法,其中,所述设备是物联网(IoT)设备,并且其中,所述描绘节点代表所述IoT设备维护分布式账本。
18.根据权利要求1所述的方法,其中,所述描绘节点包括用于执行所述直通服务的专用硬件协处理器。
19.一种计算机程序产品,用于将设备标识集成到区块链网络的许可框架中,所述计算机程序产品包括具有随其体现的程序指令的计算机可读存储介质,所述程序指令能够由处理器执行以使所述处理器:
由节点提供直通安全服务,其中,所述直通安全服务包括区块链网络中的对等体的受信任的注册;
由所述节点将设备注册为所述区块链网络上的注册节点,其中,所述设备具有与其相关联的物理不可克隆功能;以及
其中,所述注册包括所述设备向所述节点发送物理不可克隆功能质询响应;
由所述节点基于所述注册在安全飞地中在所述设备上创建虚拟简档;
维护所述设备的交易相关表,其中,所述交易相关表包括与所述设备相关联的区块链要素的记录,其中,所述区块链要素包括信道、背书策略和委托权限证明;以及
由所述节点促进所述设备的交易提交和客户端通信。
20.一种区块链网络,包括:
多个相对更低能力对等体,其中,所述相对更低能力对等体中的每一个具有与其相关联的不可改变的设备标识;以及
至少一个相对更高能力对等体,其中,所述相对更高能力对等体代表所述多个相对更低能力对等体执行要求计算能力高于一个或多个预定义阈值的工作负载。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/026,467 US11917088B2 (en) | 2020-09-21 | 2020-09-21 | Integrating device identity into a permissioning framework of a blockchain |
US17/026,467 | 2020-09-21 | ||
PCT/EP2021/074365 WO2022058183A1 (en) | 2020-09-21 | 2021-09-03 | Integrating device identity into a permissioning framework of a blockchain |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116325833A true CN116325833A (zh) | 2023-06-23 |
Family
ID=77801729
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180064307.6A Pending CN116325833A (zh) | 2020-09-21 | 2021-09-03 | 将设备标识集成到区块链的许可框架中 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11917088B2 (zh) |
JP (1) | JP2023542681A (zh) |
CN (1) | CN116325833A (zh) |
WO (1) | WO2022058183A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10887090B2 (en) * | 2017-09-22 | 2021-01-05 | Nec Corporation | Scalable byzantine fault-tolerant protocol with partial tee support |
US11917088B2 (en) | 2020-09-21 | 2024-02-27 | International Business Machines Corporation | Integrating device identity into a permissioning framework of a blockchain |
CN115022053A (zh) * | 2022-06-08 | 2022-09-06 | 京东科技控股股份有限公司 | 访问区块链网络的方法、装置和系统 |
CN114866357B (zh) * | 2022-07-07 | 2022-09-13 | 中国电力科学研究院有限公司 | 一种基于跨链技术的电力数据共享方法及系统 |
CN115314375B (zh) * | 2022-07-22 | 2024-02-06 | 京东科技信息技术有限公司 | 区块链网络跨域组网方法、设备、存储介质及程序产品 |
Family Cites Families (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8200818B2 (en) * | 2001-07-06 | 2012-06-12 | Check Point Software Technologies, Inc. | System providing internet access management with router-based policy enforcement |
US20130147511A1 (en) * | 2011-12-07 | 2013-06-13 | Patrick Koeberl | Offline Device Authentication and Anti-Counterfeiting Using Physically Unclonable Functions |
US9038133B2 (en) * | 2012-12-07 | 2015-05-19 | International Business Machines Corporation | Self-authenticating of chip based on intrinsic features |
US8938792B2 (en) * | 2012-12-28 | 2015-01-20 | Intel Corporation | Device authentication using a physically unclonable functions based key generation system |
CN105229965B (zh) * | 2013-05-15 | 2018-10-09 | 三菱电机株式会社 | 设备真伪判定系统以及设备真伪判定方法 |
US10069635B2 (en) * | 2014-09-10 | 2018-09-04 | Carnegie Mellon University | Methods and systems for achieving system-level counterfeit protection in integrated chips |
CN107851111A (zh) | 2015-05-05 | 2018-03-27 | 识卡公司 | 使用区块链的身份管理服务 |
US11494761B2 (en) * | 2015-11-06 | 2022-11-08 | Cable Television Laboratories, Inc. | Systems and methods for digital asset security ecosystems |
US9688855B2 (en) | 2015-11-17 | 2017-06-27 | Sabic Global Technologies B.V. | Polycarbonate-polysiloxane copolymer compositions for mobile phone housing applications |
US20170302663A1 (en) | 2016-04-14 | 2017-10-19 | Cisco Technology, Inc. | BLOCK CHAIN BASED IoT DEVICE IDENTITY VERIFICATION AND ANOMALY DETECTION |
US10235517B2 (en) * | 2016-05-13 | 2019-03-19 | Regents Of The University Of Minnesota | Robust device authentication |
US10536437B2 (en) * | 2017-01-31 | 2020-01-14 | Hewlett Packard Enterprise Development Lp | Performing privacy-preserving multi-party analytics on vertically partitioned local data |
US10833858B2 (en) * | 2017-05-11 | 2020-11-10 | Microsoft Technology Licensing, Llc | Secure cryptlet tunnel |
CN110741400A (zh) * | 2017-06-16 | 2020-01-31 | 维萨国际服务协会 | 区块链网络交互控制器 |
US20190251199A1 (en) * | 2018-02-14 | 2019-08-15 | Ivan Klianev | Transactions Across Blockchain Networks |
US11429967B2 (en) * | 2018-03-13 | 2022-08-30 | Nec Corporation | Mechanism for efficient validation of finality proof in lightweight distributed ledger clients |
US20190306235A1 (en) * | 2018-03-27 | 2019-10-03 | Makecents Llc | Private Blockchain With Decentralized External Gateway |
US10705842B2 (en) * | 2018-04-02 | 2020-07-07 | Intel Corporation | Hardware accelerators and methods for high-performance authenticated encryption |
US10924363B2 (en) * | 2018-04-13 | 2021-02-16 | The Curators Of The University Of Missouri | Method and system for secure resource management utilizing blockchain and smart contracts |
US20220393881A1 (en) * | 2018-04-24 | 2022-12-08 | Devon Corporation | Autonomous exchange via entrusted ledger digital signature management and administration |
US11475419B2 (en) * | 2018-04-30 | 2022-10-18 | Robert Dale Beadles | Universal subscription and cryptocurrency payment management platforms and methods of use |
US11010465B2 (en) * | 2018-05-17 | 2021-05-18 | Arizona Board Of Regents On Behalf Of Northern Arizona University | Password management with addressable physical unclonable function generators |
US11489816B2 (en) * | 2018-07-31 | 2022-11-01 | Ezblock Ltd. | Blockchain joining for a limited processing capability device and device access security |
US11182379B2 (en) * | 2018-08-24 | 2021-11-23 | Oracle International Corporation | DAG based methods and systems of transaction processing in a distributed ledger |
US11271759B2 (en) * | 2018-09-05 | 2022-03-08 | Arizona Board Of Regents On Behalf Of Northern Arizona University | Secure digital signatures using physical unclonable function devices with reduced error rates |
US11477039B2 (en) * | 2018-10-11 | 2022-10-18 | Arizona Board Of Regents On Behalf Of Northern Arizona University | Response-based cryptography using physical unclonable functions |
US11303462B2 (en) * | 2018-11-19 | 2022-04-12 | Arizona Board Of Regents On Behalf Of Northern Arizona University | Unequally powered cryptography using physical unclonable functions |
US11405365B2 (en) * | 2019-03-13 | 2022-08-02 | Springcoin, Inc. | Method and apparatus for effecting a data-based activity |
US11764950B2 (en) * | 2019-05-22 | 2023-09-19 | Salesforce, Inc. | System or method to implement right to be forgotten on metadata driven blockchain using shared secrets and consensus on read |
US11862313B2 (en) * | 2019-06-10 | 2024-01-02 | International Business Machines Corporation | Decentralized prescription refills |
US11249947B2 (en) * | 2019-06-15 | 2022-02-15 | Facebook, Inc. | Distributed digital ledger transaction network for flexible, lazy deletion of data stored within an authenticated data structure |
US10798094B2 (en) * | 2019-07-24 | 2020-10-06 | Alibaba Group Holding Limited | Blockchain-based account management |
US11494763B2 (en) * | 2019-08-19 | 2022-11-08 | Anchor Labs, Inc. | Cryptoasset custodial system with custom logic |
US20210097528A1 (en) * | 2019-09-26 | 2021-04-01 | Rui Wang | Blockchain hot wallet based on secure enclave and multi-signature authorization |
US11245514B1 (en) * | 2019-10-15 | 2022-02-08 | ArcBlock, Inc | Blockchain delegation |
US11095431B2 (en) * | 2019-12-13 | 2021-08-17 | DLT Global, Inc. | Blockchain transaction manager |
US11271728B2 (en) * | 2019-12-20 | 2022-03-08 | Fujitsu Limited | Secure key management |
US11516028B2 (en) * | 2019-12-24 | 2022-11-29 | CERA Licensing Limited | Temperature sensing physical unclonable function (PUF) authentication system |
CA3180770A1 (en) * | 2020-06-02 | 2021-12-09 | James Plusquellic | System and methods for puf-based authentication |
US11917088B2 (en) | 2020-09-21 | 2024-02-27 | International Business Machines Corporation | Integrating device identity into a permissioning framework of a blockchain |
-
2020
- 2020-09-21 US US17/026,467 patent/US11917088B2/en active Active
-
2021
- 2021-09-03 JP JP2023517884A patent/JP2023542681A/ja active Pending
- 2021-09-03 WO PCT/EP2021/074365 patent/WO2022058183A1/en active Application Filing
- 2021-09-03 CN CN202180064307.6A patent/CN116325833A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220094560A1 (en) | 2022-03-24 |
JP2023542681A (ja) | 2023-10-11 |
US11917088B2 (en) | 2024-02-27 |
WO2022058183A1 (en) | 2022-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11917088B2 (en) | Integrating device identity into a permissioning framework of a blockchain | |
WO2022068318A1 (en) | Consensus service for blockchain networks | |
CN115769241A (zh) | 针对经许可的区块链的隐私保护架构 | |
US11693948B2 (en) | Verifiable labels for mandatory access control | |
US20210352077A1 (en) | Low trust privileged access management | |
US11431503B2 (en) | Self-sovereign data access via bot-chain | |
US11816069B2 (en) | Data deduplication in blockchain platforms | |
WO2022007548A1 (en) | Blockchain implementation to securely store information off-chain | |
US11888981B2 (en) | Privacy preserving auditable accounts | |
WO2022116761A1 (en) | Self auditing blockchain | |
US11943360B2 (en) | Generative cryptogram for blockchain data management | |
US11550796B2 (en) | Coexistence mediator for facilitating blockchain transactions | |
US11818206B2 (en) | Visibility of digital assets at channel level | |
US11804950B2 (en) | Parallel processing of blockchain procedures | |
US20220311595A1 (en) | Reducing transaction aborts in execute-order-validate blockchain models | |
US11640392B2 (en) | Blockchain endorsement agreement | |
US11782823B2 (en) | Automatically capturing weather data during engineering tests | |
US20220171763A1 (en) | Blockchain selective world state database | |
US20230267220A1 (en) | Privacy preserving asset token exchange | |
US20230267457A1 (en) | Privacy preserving asset transfer between networks | |
US20220353086A1 (en) | Trusted aggregation with data privacy based on zero-knowledge-proofs | |
US20220182236A1 (en) | Consensus algorithm for distributed ledger technology |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |