CN111414413A - 区块链背书验证 - Google Patents
区块链背书验证 Download PDFInfo
- Publication number
- CN111414413A CN111414413A CN202010010200.0A CN202010010200A CN111414413A CN 111414413 A CN111414413 A CN 111414413A CN 202010010200 A CN202010010200 A CN 202010010200A CN 111414413 A CN111414413 A CN 111414413A
- Authority
- CN
- China
- Prior art keywords
- blockchain
- transaction
- node
- endorsement
- nodes
- 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.)
- Granted
Links
Images
Classifications
-
- 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/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/06—Management of faults, events, alarms or notifications
- H04L41/069—Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
-
- 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/08—Configuration management of networks or network elements
- H04L41/0893—Assignment of logical groups to network elements
-
- 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/08—Configuration management of networks or network elements
- H04L41/0894—Policy-based network configuration management
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- 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/3297—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 time stamps, e.g. generation of time stamps
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Power Engineering (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
示例操作可以包括以下中的一个或多个:接收输入,该输入包括背书策略、区块链网络的结构以及针对要容忍的故障程度的要求;将所接收的输入变换为中间数据,该中间数据包括代表区块链网络的节点的故障状态的变量的标识符,以及背书策略和针对要容忍的故障程度的要求对节点的故障状态的约束:否定中间数据中约束的子集;基于所有可能的故障状态,确定遵循背书策略和针对故障程度的要求的区块链是否具有区块链固有特性;以及经由显示屏显示确定结果。
Description
技术领域
本申请一般涉及区块链开发,并且更具体地,涉及用于验证可定制背书策略的实现是否满足区块链特性的***。
背景技术
集中式数据库在一个位置存储和维护数据。该位置通常是中央计算***,诸如服务器或大型计算机。通常可以从多个不同点访问存储在集中式数据库中的信息。例如,多个用户或客户端工作站可以基于客户端/服务器配置在集中式数据库上同时工作。由于集中式数据库的单一位置,因此集中式数据库易于管理、维护和控制,特别是出于安全目的。在集中式数据库中,由于所有数据的单个存储位置也意味着给定的数据集仅具有一个主记录,因此使数据完整性最大化,并使数据冗余最小化。这有助于维护数据尽可能准确和一致,并增强数据可靠性。
然而,集中式数据库存在重大缺陷。例如,集中式数据库具有单个故障点。特别地,如果没有容错设置并且发生硬件故障,则数据库中的所有数据都会丢失,并且所有用户的工作都会中断。此外,集中式数据库高度取决于网络连接。因此,因特网连接越慢,每个数据库访问所需的时间就越长。另一个缺点是,当集中式数据库经历高流量时,可能会出现瓶颈制约。此外,由于仅维护数据的一个活动/生产副本,因此集中式数据库提供了对数据的有限访问。因此,多个用户可能无法在不产生诸如覆盖必要数据的问题的情况下同时访问同一条数据。此外,由于中央数据库几乎没有数据冗余,因此如果一组数据意外丢失,则可能很难恢复,除非通过手动操作从备份磁盘存储中恢复。
在全球供应链、金融服务、医疗保健、政府和许多其它行业中,创新者正在探索使用区块链来打破传统存储并将其转变为分散存储方案的方法。许多行业领导者已经通过使用区块链存储实现了显著的业务收益,包括更高的透明度、增强的安全性、改进的可追溯性、提高的交易效率和速度以及降低的成本。
在可以将数据(例如,交易)存储在区块链上之前,必须由区块链网络内的节点的共识(consensus)来批准。Hyperledger Fabric是一种支持特定于应用的、可定制的共识协议(称为背书策略)的区块链基础设施,该协议可以支持多种区块链应用。然而,由于允许的定制,因此难以确保实现背书策略的区块链网络满足诸如拜占庭容错的区块链要求。因此,需要用于验证可定制的背书策略和实现它们的网络的机制。
发明内容
一个示例实施例可以提供***,该***包括以下中的一个或多个:存储装置,其被配置为存储输入,该输入包括背书策略、区块链网络的结构和针对区块链的要求;以及处理器,其被配置为以下中的一个或多个:将输入变换为中间数据,该中间数据包括区块链网络的节点的故障状态、背书策略对节点的约束、以及区块链要求对节点的否定约束,基于变换的中间数据确定背书策略是否满足区块链要求的要求,并经由显示屏显示确定的结果。
另一示例实施例可以提供方法,该方法包括以下中的一个或多个:接收输入,该输入包括背书策略、区块链网络的结构以及针对区块链的要求,将接收的输入变换为中间数据,该中间数据包括区块链网络的节点的故障状态、背书策略对节点的约束、以及区块链要求对节点的否定约束,基于中间数据确定背书策略是否满足区块链要求,并经由显示屏显示确定的结果。
另一示例实施例可以提供包括指令的非暂态计算机可读介质,当指令被处理器读取时使处理器执行以下中的一个或多个:接收输入,该输入包括背书策略、区块链网络的结构,以及针对区块链的要求,将接收的输入变换为中间数据,该中间数据包括区块链网络的节点的故障状态、背书策略对节点的约束、以及区块链要求对节点的否定约束,基于中间数据确定背书策略是否满足区块链要求,并经由显示屏显示确定的结果。
附图说明
图1是示出根据示例实施例的计算***验证背书策略的过程的图。
图2A是示出根据示例实施例的用于资产共享场景的对等节点区块链架构配置的图。
图2B是示出根据示例实施例的对等节点区块链配置的图。
图3是示出根据示例实施例的许可的区块链网络的图。
图4A是示出根据示例实施例的用于验证区块链背书策略的过程的图。
图4B是示出根据示例实施例的区块链背书策略的验证的输入和输出的图。
图4C是示出根据示例实施例的正确背书策略的图。
图4D是示出根据示例实施例的失败的背书策略的图。
图5是示出根据示例实施例的用于验证区块链背书策略的方法的图。
图6A是示出根据示例实施例的被配置为根据在此描述的一个或多个操作对区块链执行各种操作的物理基础设施的图。
图6B是示出根据示例实施例的在签约方和中介服务器之间的智能合约配置的图,其中中介服务器被配置为针对区块链实施智能合约条款。
图6C是示出根据示例实施例的在签约方和中介服务器之间的智能合约配置的图,其中中介服务器被配置为针对区块链实施智能合约条款。
图6D是示出根据示例实施例的另一示例基于区块链的智能合约***的图。
图7A是示出根据示例实施例的将新区块添加到区块链账本的过程的图。
图7B是示出根据示例实施例的用于区块链的数据区块结构的内容的图。
图8是示出被配置为支持一个或多个示例实施例的示例计算机***的图。
具体实施方式
容易理解的是,如在此一般描述和附图中示出的本发明组件可以以各种不同的配置来布置和设计。因此,如附图中所示的方法、装置、非暂时性计算机可读介质和***中的至少一个的实施例的以下详细描述并非旨在限制所要求保护的本申请的范围,而是仅代表所选的实施例。
在本说明书的全文中描述的本发明特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合。例如,在整篇说明书中,短语“示例实施例”、“一些实施例”或其他类似语言的使用是指结合实施例描述的特定特征、结构或特性可以被包括在至少一个实施例中的事实。因此,在整篇说明书出现的短语“示例实施例”、“在一些实施例中”、“在其他实施例中”或其他类似语言不一定都是指相同的一组实施例,并且所描述的特征、结构或者特性可以以任何合适的方式组合在一个或多个实施例中。
另外,虽然术语“消息”可能已经在实施例的描述中使用,但是该应用可以应用于许多类型的网络数据,例如分组、帧、数据报等。术语“消息”还包括分组、帧、数据报及其任何等同物。此外,虽然在示例性实施例中可以描绘某些类型的消息和信令,但是它们不限于某种类型的消息,并且该应用不限于某种类型的信令。
示例实施例提供了能够验证区块链的可定制共识规则(也称为背书策略)的方法、***、非暂态计算机可读介质、设备和/或网络。开发者在制定背书策略时可以使用在此描述的实施例。
在这些示例中,背书策略限定在区块链网络中的哪些参与者(节点)必须在可将交易存储在区块链上之前背书交易。同时,共识分为三个阶段,包括背书、排序和验证。共识是其中网络中的节点提供对交易的有保证的排序并验证需要提交到账本的那些交易区块的过程。根据背书和共识策略,共识必须确保所提议的区块中所有交易的正确性,顺序和正确性以及因此执行结果的协议(暗示对全局状态的协议),以及接口链接并取决于智能合约层来验证区块中有序交易集的正确性。
共识必须满足两个特性以保证节点之间的协议:安全性和活性(liveness)。安全性意味着确保每个节点的相同的输入顺序,以及在每个节点上产生相同的输出。当节点接收到相同的交易系列时,每个节点上都会发生相同的状态改变。算法必须表现为与单节点***相同,该单节点***每次自动一次执行一个交易。活性意味着,假定通信不失败,每个非故障节点最终将接收每个提交的交易。示例实施例提供了一种验证机制,该验证机制可以确定背书策略是否将满足区块链共识协议的安全性和活性。
分散式数据库是分布式存储***,该分布式存储***包括彼此通信的多个节点。区块链是分散式数据库的示例,其包括类似于分布式账本的仅附加(append-only)的不可篡改数据结构,该结构能够维护在互不信任的各方之间的记录。不受信任的各方在此可以被称为对等体(peer)或节点。每个对等体都维护数据库记录的副本,并且在分布式对等体之间未达成共识的情况下,任何单个对等体都无法修改数据库记录。例如,对等体可以执行共识协议来验证区块链存储交易,将存储交易分组为区块,并在这些区块上构建哈希链(hash chain)。为了保持一致性,如必要,该过程通过对存储交易进行排序来形成账本。在公共或未许可的区块链中,任何人都可以在没有特定身份的情况下参与。公共区块链通常涉及本机加密货币,并基于工作量证明(PoW)使用共识。另一方面,许可的区块链数据库提供了一种***,该***可以确保共享共同目标但彼此之间并不完全信任对方的一组实体(诸如,交换资金、商品、信息等的企业)之间的交互作用。
区块链操作适合于分散存储机制的任意可编程逻辑,并被称为“智能合约”或“链码”。在一些情况下,可能存在用于管理功能和参数的专用链码,称为***链码。智能合约是受信任的分布式应用,该应用利用了区块链数据库的防篡改特性以及节点之间的基础协议(称为背书策略)。通常,区块链交易一般在提交给区块链之前必须“背书”,而未背书的交易将被忽略。典型的背书策略允许链码以背书所需的一组对等节点的形式指定交易的背书者。当客户将交易发送给背书策略中指定的对等体时,将执行交易以验证交易。验证之后,交易进入排序阶段,在该阶段中,使用共识协议来产生分组为区块的背书交易的有序序列。
这里示出了背书策略的示例。在一个示例中,T(2,p1,p2,p3)。在以上示例中,表示为“T(…)”的函数称为阈值函数。阈值函数的第一自变量是阈值,其定义了共识的标准。其余自变量由对等节点列表组成。检查列表中对等节点的背书。如果包含与值相同的执行结果的背书数量超过阈值,则阈值函数将返回背书。总体而言,该背书策略意味着当对等体(p1、p2和p3)列表中存在两个或更多个背书并且这些背书相同时,就形成了共识。阈值函数如同投票一样工作;阈值参数对应于法定人数,并且对等节点列表包括一组投票者。通过组合多个阈值函数,可以进一步使背书策略更加复杂。例如,T(2,T(1,p1,p2),T(1,p3,p4))。在该情况下,当存在来自一组对等节点p1和p2的一个或多个背书,以及来自另一组对等节点p3和p4的一个或多个背书,以及来自阈值函数T(1,p1,p2)和T(1,p3,p4)的两个背书并且二者背书都相同时,达成共识。
节点是区块链***的通信实体。在不同类型的多个节点可在同一物理服务器上运行的意义上,“节点”可执行逻辑功能。节点在信任域中被分组,并以各种方式与控制它们的逻辑实体相关联。节点可以包括不同的类型,例如客户端或提交客户端节点,其向背书者(例如对等体)提交交易调用,并将交易建议向排序服务(例如,排序节点)广播。另一种类型的节点是对等节点,其可接收客户端提交的交易、提交交易并维持区块链交易的账本的状态和副本。对等体也可以具有背书者的角色,尽管这不是必需的。排序服务节点或排序者是针对所有节点运行通信服务的节点,并实现投递保证,例如,当提交交易和修改区块链的世界状态时向***中的每个对等节点广播。
账本是区块链的所有状态转换的有序、防篡改记录。状态转换可由于参与方(例如客户端节点、排序节点、背书者节点、对等节点等)提交的链码调用(即,交易)而产生。交易可导致一组资产键值对被提交给账本作为一个或多个操作数,例如创建、更新、删除等。账本包括用于以区块的形式存储不可篡改的有序记录的区块链(也称为链)。账本还包括维持区块链的当前状态的状态数据库。每个通道通常有一个账本。每个对等节点针对其作为成员的每个通道维持账本的副本。
链是被构造为散列链接的区块的交易日志,每个区块包含N个交易的序列,其中,N等于或大于1。区块头包括区块的交易的散列以及前一个区块的头的散列。通过这种方式,在账本上的所有交易都可被排序并以加密方式链接在一起。因此,不可能在不破坏散列链接的情况下篡改账本数据。最近添加的区块链区块的散列表示在它之前的链上的每个交易,可以确保所有对等节点处于一致且可信的状态。链可以存储在对等节点文件***(即,本地、附加存储、云等)上,有效地支持区块链工作负载的仅附加性质。
不可篡改账本的当前状态表示在链交易日志中包括的所有密钥的最新值。因为当前状态表示通道已知的最新键值,所以它有时被称为世界状态。链码调用针对账本的当前状态数据来执行交易。为了使这些链码交互有效,密钥的最新值可被存储在状态数据库中。状态数据库可以仅仅是链的交易日志的索引视图,因此,可以随时从链中重新生成。在对等节点启动后以及在接受交易之前,状态数据库可以自动恢复(或在需要时生成)。
最近开发的区块链平台具有定制共识协议(规则)的能力,以便反映参与者的变化。Hyperledger Fabric是支持此类定制的私有区块链平台的示例。在该类型的基础设施中,共识协议的一部分在特定于应用的规则中被定义,使得可能灵活地权衡其它节点对交易结果的投票。在一些公共区块链平台(诸如Ripple协议、Stellar共识协议等)中也可以观察到类似的机制。在这些区块链平台中,可以将区块链网络中的节点配置为定义与该节点达成协议的一组节点。
然而,在可定制共识协议中存在副作用。特别地,应用开发人员需要确保在实现时,定制的共识协议满足在每个应用的区块链网络中必须成立的特性。在不可信的网络中使用的共识协议的重要要求是防止参与者篡改账本。这可以被视为拜占庭将军(ByzantineGenerals)问题。因此,此类协议需要拜占庭容错能力。这就是为什么通常将工作量证明(PoW)或实际的拜占庭容错(PBFT)用作共识协议的原因。然而,在Hyperledger Fabric应用的开发中,该平台支持广泛的自定义,在存在拜占庭故障节点的情况下,这可能会导致其服务缺乏安全性或活性。因此,应用开发人员需要在应用的设计阶段中验证自定义共识规则。其可使用模型检查工具或制作内部仿真程序进行验证。然而,由于每个应用可能具有各种故障模式和网络结构,因此***建模和模拟器的开发已成为区块链应用开发的负担。
示例实施例通过验证共识规则(称为背书策略)满足区块链通常期望的一些要求特性(例如,容错等)来克服这些缺点,诸如安全性(即使存在一定程度的故障节点也不会将错误的值记录到账本的特性)和活性(即使存在一定程度的故障节点但参与节点之间最终也会达成协议的特性)。可以容忍的故障节点的数量及其分布由区块链的用户(例如,区块链的参与者)指定。这些也是对基于区块链的应用***的要求的一部分。
在此描述和描绘的即时解决方案的一些益处包括保证共识协议及其背书策略不会由于缺乏安全性或活性而在以后的时间出现故障。此外,实施例还可以在构建应用时帮助开发人员,因为当背书策略不满足安全性或活性时,***可以提供提示,从而改进了软件开发的速度。
区块链与传统数据库的不同之处在于,区块链不是中央存储,而是分散、不可篡改和安全的存储,其中节点必须共享对存储中记录的改变。区块链固有的并且有助于实现区块链的一些特性包括但不限于不可篡改账本、智能合约、安全性、隐私、分散的、共识、背书、可访问性等,在此将进一步进行描述。
根据各个方面,通过在此描述的机制改进了固有的区块链特性,诸如共识和背书。智能合约由可***程序代码(例如,链码)处理,并且这些程序的结果(输出)称为背书。由于区块链是分散式/分布式***,因此一项交易(或合约)由多个参与者节点处理,并且其中的一些可能返回错误值(即值故障)的背书,而其中的一些可能不响应于交易(即崩溃故障)。因此,必须就节点之间的背书达成共识。即使存在一些预先定义范围的故障节点,共识协议也必须提供I)安全性和II)活性。一些区块链平台(包括Hyperledger Fabric)支持共识规则的自定义,这称为背书策略。符合要求的背书策略必须由基于区块链的应用***的开发人员指定。
在示例实施例中,针对给定的背书策略检查区块链***中所有参与者节点的故障状态,并检查是否满足给定的要求。为了详尽有效地探索故障状态的组合,使用了形式化方法。在这些示例中,将参与者节点、区块链网络结构、背书策略和特性建模为数学约束,并且通过SMT(可满足性模理论)求解器针对约束减小状态空间。可以在将背书策略部署到区块链网络之前,即在设计阶段期间或部署开始时执行背书策略的该验证。
图1示出了根据示例实施例的计算***120验证背书策略的过程。参考图1,输入110被提供给计算***120。这里,输入是可以包括背书策略112、区块链网络结构114(组织和节点)以及区块链特性116的模型。例如,输入模型110可以以诸如XML、JSON、YAML等的人类可读文本格式编写。输入模型的语法可与区块链平台(例如Hyperledger Fabric)的配置文件中使用的语法相似。
计算***120可以将输入模型110变换(转换)为变量声明集,该变量声明描述了故障状态空间和数学约束,该数学约束对要探索的故障状态空间进行约束。可以用SMT Lib2.0脚本格式描述该集,就像程序代码一样。为了执行变换,输入模型110可以由可扩展样式表语言变换(XSLT)处理器与XSL样式表一起处理。XSLT是使用基于模板的规则将XML数据变换为其它格式的通用机制,而XSL样式表定义该规则。
在示例实施例中,XSL样式表可以定义如何将节点列表变换为状态变量声明集,该状态变量声明描述节点的故障类型(例如,正常(正确)状态、崩溃故障状态以及值故障状态)。这些状态可以用多种方式表示,诸如一对布尔变量,它们对应于背书是否存在以及背书的值是否正确。XSL样式表可以定义如何将背书策略和容错要求变换为针对变量的一组数学约束。此外,XSL样式表可以包括如何将活性和安全性特性变换为针对变量的一组约束否定。XSLT处理器可以以SMT Lib 2.0格式输出文本文件,该文件可以由SMT求解器处理。
计算***120的处理结果是输出130,该输出130可以提供验证结果132,该验证结果132可以包括背书策略的状态(例如,通过/失败)以及当背书策略未满足活性或安全性时节点状态的反例。从该反例中,用户可以了解节点故障如何使需求不可满足,并且可能暗示了***设计的改进。
根据各种实施例,变换的目的是使用SMT求解器来验证背书策略。SMT求解器解决了称为可满足性问题的问题。也就是说,其确定在约束中使用的变量的任何一组值是否可以同时满足给定的一组数学约束。计算***120可以将模型变换成可满足性的问题,该问题可以由SMT求解器检查。如果问题可被满足,则输入模型的验证为“失败”。这是因为变换的约束包括对所需特性的否定(即SMT求解器可以找到节点的一组故障状态,在该节点中满足背书策略,但同时不满足所需特性)。另一方面,如果问题不可被满足,则背书策略被验证是成功的策略。该过程使用否定约束,该否定约束导致不可满足的结果是肯定/成功的结果。
图2A示出了根据示例实施例的区块链体系结构配置200。参考图2A,区块链体系结构200可包括某些区块链单元,例如一组区块链节点202。区块链节点202可包括一个或多个节点204-210(作为示例,仅示出这四个节点)。这些节点参与多个活动,例如区块链交易添加和验证过程(共识)。区块链节点204-210中的一个或多个可基于背书策略对交易背书,并且可向体系结构200中的所有区块链节点提供排序服务。区块链节点可发起区块链认证,并且寻求向在区块链层216中存储的区块链不可篡改账本进行写入,该账本的副本也可存储在基础物理基础设施214上。区块链配置可包括一个或多个应用224,这些应用被链接到应用编程接口(API)222以访问和执行所存储的程序/应用代码220(例如,链码、智能合约等),并可根据参与者所寻求的定制配置来创建,并且可维持自己的状态,控制自己的资产,以及接收外部信息。这可被部署为交易,并通过附加到分布式账本上来安装在所有区块链节点204-210上。
区块链基础或平台212可以包括区块链数据、服务(例如加密信任服务、虚拟执行环境等)以及基础物理计算机基础设施的各种层,该基础物理计算机基础设施可用于接收和存储新交易并向正在寻求访问数据条目的审计者提供访问。区块链层216可以曝露接口,该接口提供对处理程序代码和参与物理基础设施214所必需的虚拟执行环境的访问。加密信任服务218可用于验证诸如资产交换交易的交易并保持信息私密。
图2A的区块链体系结构配置可以经由由区块链平台212所曝露的一个或多个接口以及由区块链平台212提供的服务来处理和执行程序/应用代码220。代码220可以控制区块链资产。例如,代码220可以存储和传输数据,并且可以由节点204-210以智能合约和与其执行的条件或其他代码元素相关联的链码的形式执行。作为非限制性的示例,可以创建智能合约以执行提醒、更新和/或受到改变、更新等的其他通知。智能合约本身可以用于识别与授权和访问要求以及账本的使用相关联的规则。在该示例中,读取集226可以由包括在区块链层216中的一个或多个处理实体(例如,虚拟机)进行处理。写入集228可以包括对键值的改变。物理基础设施214可以用于取得在此描述的任何数据或信息。
在链码内,智能合约可以经由高级应用和编程语言创建,然后被写入区块链中的区块中。智能合约可包括向区块链(例如,区块链对等体的分布式网络)注册、存储和/或复制的可执行代码。交易是智能合约代码的执行,智能合约代码可响应于与智能合约相关联的条件被满足而执行。智能合约的执行可以触发对数字区块链账本的状态的可信修改。由智能合约执行引起的对区块链账本的修改可以通过一个或多个共识协议在区块链对等体的整个分布式网络中自动复制。
智能合约可以将数据以键值对的格式写入区块链。此外,智能合约代码可以读取在区块链中存储的值,并在应用操作中使用它们。智能合约代码可以将各种逻辑运算的输出写入区块链中。代码可用于在虚拟机或其他计算平台中创建临时数据结构。被写入区块链中的数据可以是公共的和/或可以被加密并维持为私有。由智能合约使用/生成的临时数据由所提供的执行环境保存在内存中,然后在识别出区块链所需的数据后被删除。根据各种实施例,读取集226可以包括多方过程的当前处理步骤。同时,写入集228可以包括处理步骤的执行结果,该处理步骤可以包括步骤的标识,在处理步骤期间执行的发送和接收事件等。
链码可包括具有附加特征的智能合约的代码解释。如本文所述,链码可以是部署在计算网络上的程序代码,其中,它在共识过程期间由链验证器一起执行和验证。链码可以基于区块链的多个状态图和多个链外***来生成。
图2B示出了根据示例实施例的在区块链的节点之间的交易流程250的示例。参考图2B,交易流程可包括由应用客户端节点260发送给背书对等节点281的交易提案291。背书对等体281可验证客户端签名,并执行链码功能以发起交易。输出可包括链码结果、在链码(读取集合)中读取的一组键/值版本、以及被写入链码(写入集合)的一组键/值。如果交易提案被批准,则提案响应292连同背书签名一起被发送回客户端260。客户端260将背书组装到交易有效载荷293中,并将其广播到排序服务节点284。然后,排序服务节点284将排序的交易作为区块递送到通道上的所有对等体281-283。在提交到区块链之前,每个对等体281-283可验证该交易。例如,对等体可检查背书策略以确保指定对等体的正确分配已经对结果进行了签名并且针对交易有效载荷293认证了签名。
客户端节点260通过构造并向作为背书者的对等节点281发送请求来发起交易291。交易提案291可以包括存储关于软件模型的子组件的执行结果的信息的请求。可能存在多于一个的背书者,但为方便起见,这里示出一个背书者(即对等节点281)。客户端260可以包括利用受支持的软件开发工具包(SDK)的应用(例如,Web应用等),诸如NODE、JAVA、PYTHON等,其利用可用的API来生成交易提案。该交易提案291是调用链码功能的请求,以便可以将数据读取和/或写入账本(即,为资产写入新的键值对)。SDK可以用作垫片(shim)以将交易提案打包成适当的体系结构格式(例如通过远程过程调用(RPC)的协议缓冲区)并且获取客户端的加密凭证以产生用于交易提案的唯一签名。
作为响应,背书对等节点281可以验证(a)交易提案是否格式良好、(b)过去尚未提交交易(重放-攻击保护)、(c)签名是有效的、以及(d)提交者(在该示例中为客户端260)被适当授权以在该通道上执行所提议的操作。背书对等节点281可以将交易提案输入作为被调用的链码功能的参数。然后针对当前状态数据库执行链码以产生包括响应值、读取集和写入集的交易结果。根据各种实施例,交易结果可以包括执行多方过程的当前步骤的结果。然而,此时没有对账本进行更新。在292中,将该组值与背书对等节点281签名一起作为提案响应292传递回给客户端260的SDK,该客户端260解析供应用使用的有效载荷。
作为响应,客户端260的应用检查/验证背书对等体签名并比较提案响应以确定提案响应是否相同。如果链码仅查询账本,则应用将检查查询响应并且通常不将该交易提交给排序节点服务284。如果客户端应用打算将该交易提交给排序节点服务284以更新账本,则应用确定在提交之前是否已满足指定的背书策略(即,交易所需的所有对等节点是否都背书该交易)。这里,客户可以仅包括交易的多方中的一方。在这种情况下,每个客户端可以拥有自己的背书节点,并且每个背书节点都需要背书该交易。该体系结构使得即使应用选择不检查响应或以其他方式转发未经背书的交易,该背书策略仍将由对等体强制执行并在提交验证阶段维持。
在成功检查之后,在步骤293中,客户端260将背书组装到交易中,并将交易消息内的交易提案和响应广播到排序节点284。交易可以包含读取/写入集,背书对等体签名和通道ID,以及在此描述的时间戳信息和多方处理信息,诸如当前执行步骤的标识,在该步骤期间执行的发送和接收事件等。排序节点284不需要检查交易的整个内容以便执行其操作,而是排序节点284可以简单地从网络中的所有通道接收交易,按时间顺序按通道排序,并创建每通道的交易区块。
交易区块从排序节点284传递到通道上的所有对等节点281-283。验证区块内的交易294以确保满足任何背书策略并确保读取集变量的账本状态没有变化,因为读取集是由交易执行生成的。区块中的交易被标记为有效或无效。此外,在步骤295中,每个对等节点281-283将该区块附加到通道的链,并且对于每个有效交易,将写入集提交给当前状态数据库。发出事件,通知客户端应用交易(调用)已不可篡改地附加到链,以及通知交易是否已经过验证或被无效。
图3示出了许可的区块链网络300的示例,其具有分布式、分散的对等体系结构、以及管理用户角色和许可的证书机构(certificate authority)318。在该示例中,区块链用户302可以向许可的区块链网络310提交交易。在该示例中,交易可以是部署、调用或查询,并且可以通过利用SDK的客户端应用直接通过REST API等发布。可信赖的商业网络可以提供对监管***314的访问,例如审计者(例如美国股票市场中的证券交易委员会)。同时,节点308的区块链网络运营商***管理成员许可,例如将监管***310登记为“审计者”,并将区块链用户302登记为“客户”。审计者可以仅限于查询账本,而客户端可以被授权部署、调用和查询特定类型的链码。
区块链开发者***316编写链码和客户端侧应用。区块链开发者***316可以通过REST接口将链码直接部署到网络。为了在链码中包括来自传统数据源330的凭证,开发者***316可以使用带外连接来访问数据。在该示例中,区块链用户302通过对等节点312连接到网络。在继续任何交易之前,对等节点312从证书机构318检索用户的登记和交易证书。在一些情况下,区块链用户必须拥有这些数字证书以便在许可的区块链网络310上进行交易。
图4A示出了根据各种实施例的验证过程400的概述。参考图4A的示例,过程400接收输入401,该输入401包括描述背书策略、区块链网络结构、对容错的要求等的模型。在402中,可以基于样式表403将输入模型变换为基于SMT库的脚本404。在405中,可以由SMT求解器验证SMT库脚本404。在405中的验证期间,SMT求解器可以基于在406中的可重用脚本详尽地探索验证所需的状态,并检查给定区块链***保持的安全性和活性。407中的输出可以是验证的结果。另外,当在406验证失败时,可以在407输出计数器示例。
图4B示出了输入410的屏幕截图和输出420的屏幕截图。输入可以是模型(例如,以XML格式等),该模型包括关于背书策略、网络结构以及容错要求的信息。在该示例中,输入窗口410可以接收文件,或者它可以接收包含背书策略、网络和要求的模型的代码。作为示例,提供以下代码,但是,实施例不限于此:
在该示例代码中,使用XML定义背书策略、网络节点结构和容错要求。在按下验证按钮(或用于触发SMT求解器的执行的一些其它机制)后,***然后将基于验证生成输出420。例如,输出420可以包括提供不同容错要求的通过/失败信息的验证状态422,以及当至少一个要求失败时的反例424。反例可以提供关于如何改变网络结构、背书策略等的建议,以满足容错要求。
CFT是容错的最基本水平,而BFT需要处理更宽范围的故障。准确地说,拜占庭故障包括任何类型的故障,但是由于背书策略被设计用于处理对值故障和崩溃故障的容忍度,所以本发明的重点是值故障。其它类型的故障(诸如与时间和标识相关的故障)由区块链平台的公共部分处理,伴有一些限制。
例如,假设B={真;假}是布尔值的集合,并且N是自然数的集合。然后,可以如下定义从策略验证者观察到的节点的状态。
这里s.e和s.v是s的分量,其中指示交易执行的结果是否存在,并且是交易执行结果的值。例如,s=(真;真)对应于正常状态,(假;假)对应于崩溃状态,而(真;假)对应于节点的值故障状态。单个布尔变量可以用于表示交易执行的结果的值,然而执行结果也可以是任何值。这是因为背书策略的阈值函数仅考虑值是否一致。在该情况下,接受错误值的最坏情况对应于所有错误值都相同的情况。
***可以将网络故障和节点故障二者都包括在上述形式中。例如,状态(假;假)也可以表示网络故障,其中节点由于网络断开而无法返回交易执行结果的值。这里,***可能不考虑节点的状态转换,因为可以假设共识协议的动态部分(包括排序)由区块链基础设施处理,并且因此无法由应用开发人员自定义。因此,可以将每个交易独立对待,并将对交易的执行结果的共识视为单步骤过程。
通常要求区块链网络具有容错。容错是所有正确的节点都可以达成共识的要求,即使网络中存在至多故障节点也是如此。存在几种类型的容错约束,包括全局容错、组织级容错和包括故障的容错。全局容错对网络中可能出现故障的节点数提供了约束。组织级容错对组织中可能出现故障的节点的数量提供了限制。此外,在组织在区块链网络中彼此不信任的情况下,必须容忍串通的(colluded)故障。在该情况下,仅使所有组织都满足组织级容错是不够的,因为同一组织中的一些节点可能会彼此串通。因此,可以放宽对组织级故障的约束,以允许一些组织具有比允许的组织级故障更多的故障。
到本节为止,我们已经确定了对容错的几种类型的要求。接下来,需要通过给定的背书策略和容错要求来验证区块链网络的安全性和活性。安全性是即使存在我们要容忍的故障节点无论何时满足背书策略所有正确的节点均同意正确的执行结果的特性。活性是即使存在要容忍的故障节点最终也能满足给定的背书策略的特性。
然而,在诸如某些串通情况的所有情况下都要求活性是不切实际的。这是因为在安全性和活性之间要进行权衡,并且如果存在太多的故障节点,则很难定义同时满足活性和安全性二者的背书策略。例如,阈值参数越高,满足安全性特性越容易,但是满足活性特性就越困难,因为我们只能容忍一定数量的节点出现故障。在许多区块链应用中,安全性特性比活性特性更重要。在此类情况下,将使用全局容错、组织容错和串通故障的容错中的任何一种来验证安全性,但是可以仅使用全局容错和/或组织容错来进行活性验证。
可以通过将安全性和活性的声明(assertion)输入到可满足性问题求解器中并检查其可满足性来验证容错要求。由于安全性特性和活性特性二者都包含状态的总和以及整数之间的比较,因此可以使用支持线性整数算法的SMT求解器来检查可满足性。
本部分描述了输入模型的XML模式的概述。为了减少建模成本,模型中仅出现应用之间的可变元素。可变元素可以包括网络标签,其中定义了b区块链网络结构。该结构可以包括组织的层次结构以及组织内的节点。每个节点或组织具有唯一的ID。这表明节点和组织的数量是固定的,并由输入模型确定。
另一个可变元素是背书策略标签。背书策略的语法可以直接映射到XML。可以指定一种背书策略,其是复合函数。阈值函数中出现的阈值参数的值必须在输入模型中给出。尽管语法可以形成树形结构,但是允许其在背书策略中多次指定节点,以便符合当前Hyperledger Fabric的语法。
另一个可变元素是要求标签。在此,可以指定一种容错类型,诸如全局容错、组织容错、串通故障的容错等。允许的节点数量也被指定为参数,并且必须在输入模型中将值分配给这些参数。上面列出的代码示出了输入模型的示例。
接下来,描述将输入XML模型转换为SMT脚本的变换规则(XSLT中的样式表)的概述。在该示例中,节点ID被转换为背书类型的变量声明。该类型是两个布尔变量的元组,其表示节点的故障状态。例如,<peer id=“org_a.p1”/>(节点的定义)被转换为以下SMT Lib2.0脚本:(declare-const org_a.p1背书)。另外,将对容错的要求扩展为一种形式。这些公式被嵌入到assert指令的自变量中,并被视为对要探索的节点的故障状态的约束。在该转换中,在输出SMT脚本中需要将一组布尔变量中的真值相加的表达式。通过将求和扩展到预定义的多项加法函数的调用来完成该操作。另外,将输入模型中的背书策略的描述扩展为阈值函数的组合。
图4C示出了满足要求的背书策略的概念示例430,并且图4D示出了不满足要求的背书策略的概念示例440A和确实满足要求的反例440B。在这些示例中,空心圆指示节点,圆角矩形指示组织,带有小于或等于符号或大于或等于符号的上面的矩形指示阈值函数,并且连接阈值函数和节点的线是阈值函数的自变量。此外,下面的箭头线是可以容忍的故障节点数量的指示符。
在图4C中的设计430的示例中,安全性和活性特性通过背书策略得到满足。在此,节点数量为三个,背书的阈值要求为两个或更多,并且容忍的故障节点数量为一个或更少。然而,在图4C的设计440A中,背书策略不满足安全性和活性特性。这里,节点数量为六个,组织数量为三个,背书的阈值要求为四个或更多,并且每个组织的容忍的故障节点数为1个或更少。在该示例中,对串通故障的容忍的安全性失败。因此,该***提出了一种修改的设计440B,该设计440B提供了满足对串通故障的容忍安全性的设计。
图5示出了根据示例实施例的方法500。例如,方法500可以由可以是计算***的区块链对等节点执行。作为另一示例,方法500可以由诸如服务器、用户设备、设备的组合等的链外***执行。在一些实施例中,方法500可以由任何***的组合来执行。
参考图5,在510中,该方法可以包括接收输入,该输入包括背书策略、区块链网络的结构以及针对区块链的特性。特性可包括针对故障容忍的要求,诸如安全性、活性等。背书策略可以包括关于在将交易存储到区块链之前必须对交易进行背书的节点、节点数量、节点的特定组合、节点的权重等的共识规则。网络结构可以包括***内节点等的描述。背书策略、网络结构和要求中的每一个都可以描述为关键字和参数的组合,其可以分别实现为XML标签和属性。
在520中,该方法可以包括将接收的输入变换成中间数据,该中间数据包括区块链网络的节点的故障状态、背书策略对节点的约束、以及区块链特性对节点的否定约束。例如,变换可以包括将区块链网络中的一组节点变换成描述相应节点的故障状态的状态变量。此外,变换可以包括将背书策略变换为对状态变量的约束的集合,以及将诸如活性和安全性的区块链的特性变换为对状态变量的约束的否定。
在530中,该方法可以包括基于中间数据确定背书策略是否满足区块链要求。例如,可以经由对中间数据执行可满足性模理论(SMT)求解器来执行确定。在540中,该方法可以包括经由显示屏显示确定的结果。例如,输出可以包括输出关于背书策略的通过/失败消息。在一些实施例中,输出可以包括输出指示节点故障如何不满足区块链的要求的一个或多个反例。
在一些实施例中,该方法可以将背书策略变换为(i)指示共识存在的约束,和(ii)指示达成共识的值是否正确的约束。例如,该方法可以在(i)计算***确定区块链***是否具有活性特性时否定约束,以及在(ii)计算***确定区块链***是否具有安全性特性时否定约束。在一些实施例中,该方法可以经由对给定变量和约束执行可满足性模理论(SMT)求解器来确定背书策略是否满足区块链的要求。例如,该方法可以将背书策略和针对要容忍的故障程度的要求变换为约束,该约束包括对具有状态变量的子集中的特定值的状态变量的数量的线性算术。
图6A示出了根据示例实施例的被配置为根据示例性操作方法中的一个或多个对区块链执行各种操作的示例物理基础设施。参考图6A,示例配置600A包括具有区块链620和智能合约630的物理基础设施610,其可以执行任何示例实施例中包括的任何操作步骤612。步骤612可以表示从驻留在计算机***配置的物理基础设施610上的一个或多个智能合约630和/或区块链620写入或读取的输出或写入信息。可以从执行的智能合约630和/或区块链620输出数据。物理基础设施610可以包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。
图6B示出了根据示例实施例的签约方和中介服务器之间的示例智能合约配置,该中介服务器被配置为在区块链上实施执行智能合约条款。参考图6B,配置650B可以表示由智能合约630驱动的通信会话、资产转移会话或多方过程或进程,智能合约630明确地标识一个或多个用户设备652和/或656。智能合约执行的执行、操作和结果可以由服务器654管理。智能合约630的内容可能需要由智能合约交易的参与方中的一个或多个实体652和656进行数字签名。智能合约执行的结果可以作为区块链交易写入区块链。
图6C示出了根据示例实施例的在签约方和中介服务器之间的示例智能合约配置,该中介服务器被配置为在区块链上实施智能合约条款。参考图6C,配置650可以表示由智能合约630驱动的修改的数据文件认证会话、通信会话、资产转移会话或过程或进程,智能合约630明确地识别一个或多个用户设备652和/或656。智能合约执行的执行、操作和结果可以由服务器654管理。智能合约630的内容可能需要由智能合约交易的参与者中的实体652和656中的一个或多个来进行数字签名。智能合约执行的结果可以作为区块链交易被写入区块链620。智能合约630位于区块链620上,该区块链620可以位于一个或多个计算机、服务器、处理器、存储器和/或无线通信设备上。
图6D示出了根据示例实施例的用于访问区块链的逻辑和数据的公共接口。参考图6D的示例,应用编程接口(API)网关662提供用于访问区块链逻辑(例如,智能合约630或其它链码)和数据(例如,分布式账本等)的公共接口。在该示例中,API网关662是通过将一个或多个实体652和656连接到区块链对等体(即服务器654)来执行区块链上的交易(调用、查询等)的通用接口。服务器654是区块链网络对等组件,该组件在分布式账本内保持世界状态的副本(可包括键值存储),从而允许客户端652和656查询有关世界状态的数据以及将交易提交到区块链网络中,在该区块链网络中,取决于智能合约630和背书策略,背书对等体将运行智能合约630。
图7A示出了根据示例实施例的将新区块730添加至分布式账本720的过程700,并且图7B示出了根据示例实施例的用于区块链的区块结构730的内容。参考图7A,客户端(未示出)可以向区块链节点711、712和/或713提交交易。客户端可以是从任何来源接收的指令,以在区块链上进行活动。例如,客户端可以是代表请求者(诸如设备、个人或实体)为区块链提出交易的应用(基于SDK)。多个区块链对等体(例如,区块链节点711、712和713)可以保持区块链网络的状态和分布式账本720的副本。
区块链网络中可以存在不同类型的区块链节点/对等体,区块链网络包括背书对等体,该背书对等体模拟并背书由客户端和提交对等体提出的交易,其验证背书、认证交易并将交易提交给分布式账本720。在该示例中,区块链节点711、712和713可以执行背书者节点、提交者节点或两者的角色。如在此所述,交易可以包括在多个不受信任的组织之间执行的多方过程的发送事件、接收事件、存储事件等。
分布式账本720包括将不可篡改的顺序记录存储在区块中的区块链722,以及保持区块链722的当前状态(键值)的状态数据库724(当前世界状态)。每个通道可能存在一个分布式账本720,并且每个对等体针对其作为成员的每个通道的分布式账本720维护其自己的副本。区块链722是交易日志,被构造为哈希链接的区块,其中每个区块包含N个交易的序列。区块(例如,区块730)可以包括诸如图7B中所示的各种组件。可以通过在当前区块的区块头内添加先前区块头的哈希来生成区块的链接(图7A中的箭头所示)。以该方式,对区块链722上的所有交易进行排序,并将其密码链接在一起,以防止在不破坏哈希链接的情况下篡改区块链数据。此外,由于该链接,区块链722中的最新区块表示在其之前进行的每个交易。区块链722可以存储在对等文件***(本地或附加存储)上,该对等文件***支持仅附加的区块链工作负载。
区块链722的当前状态和分布式账本720可以存储在状态数据库724中。这里,当前状态数据表示区块链722的链交易日志中曾经包括的所有密钥的最新值。链码调用针对状态数据库724中的当前状态执行交易。为了使这些链码交互非常有效,可以将所有密钥的最新值存储在状态数据库724中。状态数据库724可以包括区块链722的交易日志的索引视图,并且因此可以随时从链中重新生成。在对等体启动后以及在接受交易之前,状态数据库724可以自动恢复(或根据需要生成)。
背书节点从客户端接收交易,并基于模拟结果对该交易背书。背书节点保持模拟交易提案的智能合约。为了进行认证,背书节点可以尝试使用执行哈希的节点的公共密钥来解密哈希的修改的数据文件。背书交易所需的节点取决于可以在链码内指定的背书策略。背书策略的示例是“大多数背书对等体必须对交易背书”。不同的通道可能具有不同的背书策略。客户端应用将背书的交易转发到排序服务710。
排序服务710接受已背书的交易,将其排序为区块,并将这些区块交付给提交对等体。例如,当已经达到交易的阈值、定时器超时或另一条件时,排序服务710可以发起新的区块。在图7A的示例中,区块链节点712是提交对等体,其已经接收到新数据区块730以用于存储在区块链722上。
排序服务710可以由排序者集群组成。排序服务710不处理交易、智能合约或维护共享账本。而是,排序服务710可以接受背书的交易,并指定将那些交易提交到分布式账本720的顺序。区块链网络的架构可以被设计为使得“排序”(例如,Solo、Kafka、BFT等)的特定实现变成可***的组件。
以一致的顺序将交易写入分布式账本720。建立交易的顺序以确保在其提交到网络后状态数据库724的更新是有效的。与通过解决密码难题或挖掘进行排序的加密货币区块链***(例如,比特币等)不同,在该示例中,分布式账本720的各方可以选择最适合该网络的排序机制,诸如按时间顺序排序。
当排序服务710初始化新区块730时,可以将新区块730广播给提交对等体(例如,区块链节点711、712和713)。作为响应,每个提交对等体通过检查以确保读取集和写入集仍与状态数据库724中的当前世界状态相匹配,来验证新区块730内的交易。具体地,提交对等体可以确定背书者模拟交易时存在的读取数据是否与状态数据库724中的当前世界状态相同。当提交对等体验证交易时,将交易写入分布式账本720上的区块链722,并采用来自读写集的写入数据更新状态数据库724。如果交易失败,也就是说,如果提交对等体发现读取-写入集与状态数据库724中的当前世界状态不匹配,则排序到区块中的交易仍将包括在该区块中,但是它将标记为无效的,并且状态数据库724将不被更新。
参考图7B,存储在分布式账本720的区块链722上的区块730(也称为数据区块)可以包括多个数据段,诸如区块头732、区块数据734和区块元数据736。应当理解,各种所描绘的区块及其内容,诸如图7B中所示的区块730及其内容仅仅是出于示例的目的,并不意味着限制示例实施例的范围。在一些情况下,区块头732和区块元数据736二者可以小于存储交易数据的区块数据734,但这不是必需的。区块730可以在区块数据734内存储N个交易(例如100、500、1000、2000、3000等)的交易信息。
区块730还可以包括到区块头732内的先前区块的链接(例如,在图7A中的区块链722上)。特别地,区块头732可以包括先前区块头的哈希。区块头732还可以包括唯一区块号、当前区块730的区块数据734的哈希等。区块730的区块号可以是唯一的,并且以从零开始的增量/顺序来分配。区块链中的第一个区块可以称为创始区块,其包括有关区块链、其成员、存储在其中的数据等的信息。
区块数据734可以存储每个交易的交易信息,交易被记录在区块730内。例如,存储在区块数据734内的交易数据可以包括以下中的一种或多种:交易的类型、版本、时间戳(例如,最终计算出的时间戳等)、分布式账本720的通道ID、交易ID、历元、有效载荷可见性、链码路径(部署tx)、链码名称、链码版本、输入(链码和功能)、客户端(创建者)标识,诸如公钥和证书、客户端的签名、背书者的身份、背书者签名、提议哈希、链码事件、响应状态、名称空间、读取集(密钥列表以及交易读取的版本等)、写入集(值和密钥的列表等)、开始密钥、结束密钥、密钥列表、默克尔树查询摘要等。交易数据可以针对N个交易中的每一个交易而存储。
区块元数据736可以存储元数据的多个字段(例如,作为字节阵列等)。元数据字段可以包括在区块创建时的签名、对最后一个配置区块的引用、标识区块内有效交易和无效交易的交易过滤器、对区块进行排序的排序服务的最后偏移持续时间等。签名、最后配置区块和排序者元数据可以由排序服务710添加。同时,区块的提交节点(诸如区块链节点712)可以基于背书策略、读取/写入集的验证等来添加有效性/无效性信息。交易过滤器可以包括大小等于区块数据734中的交易数量的字节阵列和标识交易是否有效的验证码。
以上实施例可以以硬件、以由处理器执行的计算机程序、以固件或以上的组合来实现。计算机程序可以体现在计算机可读介质(例如存储介质)上。例如,计算机程序可以驻留在随机存取存储器(“RAM”)、闪存、只读存储器(“ROM”)、可擦除可编程只读存储器(“EPROM”)、电可擦除可编程只读存储器(“EEPROM”)、寄存器、硬盘、可移动磁盘、光盘只读存储器(“CD-ROM”)或本领域已知的任何其他形式的存储介质中。
示例性存储介质可以耦接到处理器,使得处理器可以从存储介质读取信息和向存储介质写入信息。在替代方案中,存储介质可以是处理器的组成部分。处理器和存储介质可以驻留在专用集成电路(“ASIC”)中。在替代方案中,处理器和存储介质可以作为分立组件驻留。例如,图8示出了示例计算机***体系结构800,其可以表示或集成在任何上述组件等中。
图8不旨在对本文描述的申请的实施例的使用范围或功能提出任何限制。无论如何,计算节点800能够实现和/或执行上文阐述的任何功能。例如,计算节点800可以执行关于图5示出和描述的方法。
在计算节点800中,存在计算机***/服务器802,其可与许多其他通用或专用计算***环境或配置一起操作。可适于与计算机***/服务器802一起使用的众所周知的计算***、环境和/或配置的示例包括但不限于个人计算机***、服务器计算机***、瘦客户机、胖客户机、手持或膝上型设备、多处理器***、基于微处理器的***、机顶盒、可编程消费电子产品、网络PC、小型计算机***、大型计算机***、以及包括任何上述***或设备的分布式云计算环境等。
计算机***/服务器802可以在由计算机***执行的计算机***可执行指令(例如程序模块)的一般上下文中描述。通常,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、目标程序、组件、逻辑,数据结构等。计算机***/服务器802可以在分布式云计算环境中实践,其中,任务由通过通信网络链接的远程处理设备执行。在分布式云计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机***存储介质二者中。
如图8所示,云计算节点800中的计算机***/服务器802以通用计算设备的形式表现。计算机***/服务器802的组件可以包括但不限于:一个或者多个处理器或者处理单元804,***存储器806,连接不同***组件(包括***存储器806和处理单元804)的总线。
总线表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,***总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及***组件互连(PCI)总线。
计算机***/服务器802典型地包括多种计算机***可读介质。这些介质可以是任何能够被计算机***/服务器802访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。***存储器806可以包括易失性存储器形式的计算机***可读介质,例如随机存取存储器(RAM)810和/或高速缓存存储器812。计算机***/服务器802可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机***存储介质。仅作为举例,存储***814可以用于读写不可移动的、非易失性磁介质(图中未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线相连。存储器806可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块818的程序/实用工具816,可以存储在例如存储器806中,这样的程序模块818包括——但不限于——操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
如本领域技术人员将理解的,本申请的方面可以体现为***、方法或计算机程序产品。因此,本申请的各方面可以采用完全硬件实施例、完全软件实施例(包括固件、常驻软件、微代码等)或者组合软件和硬件方面的实施例的形式,这些实施例通常可以在本文被称为“电路”、“模块”或“***”。此外,本申请的各方面可以采取体现在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质具有体现在其上的计算机可读程序代码。
计算机***/服务器802也可以与一个或多个外部设备820(例如键盘、指向设备、显示器822等)通信,还可与一个或者多个使得用户能与该计算机***/服务器802交互的设备通信,和/或与使得该计算机***/服务器802能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口824进行。并且,计算机***/服务器802还可以通过网络适配器826与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器826通过总线与计算机***/服务器802的其它模块通信。应当明白,尽管图中未示出,可以结合计算机***/服务器802使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
尽管在附图中示出了***、方法和非暂态计算机可读介质中的至少一个的示例性实施例,并且在前面的详细描述中进行了描述,但是应该理解,本申请不限于所公开的实施例,而是能够进行如下所述的由权利要求所阐述和限定的许多重新排列、修改和替换。例如,各种图的***的能力可以由本文描述的模块或组件中的一个或多个或以分布式体系结构来执行,并且可以包括发射机、接收机或两者的对。例如,由各个模块执行的全部或部分功能可以由这些模块中的一个或多个执行。此外,本文描述的功能可以在不同时间并且与模块或组件内部或外部的各种事件相关地执行。而且,可以经由以下中的至少一个在模块之间发送在各个模块之间发送的信息:数据网络、因特网、语音网络、因特网协议网络、无线设备、有线设备和/或多个协议。而且,可以直接和/或经由一个或多个其他模块发送或接收由任何模块发送或接收的消息。
本领域技术人员将理解,“***”可以体现为个人计算机、服务器、控制台、个人数字助理(PDA)、蜂窝电话、平板计算设备、智能手机或任何其他合适的计算设备或设备的组合。将上述功能呈现为由“***”执行并不旨在以任何方式限制本申请的范围,而是旨在提供许多实施例的一个示例。实际上,本文公开的方法、***和装置可以以与计算技术一致的本地化和分布式形式实现。
应当注意,本说明书中描述的一些***特征已经作为模块呈现,以便更具体地强调它们的实现独立性。例如,模块可以被实现为硬件电路,该硬件电路包括:定制的超大规模集成(VLSI)电路或门阵列,诸如逻辑芯片的现成半导体、晶体管或其他分立元件。模块还可以在可编程硬件设备中实现,例如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备、图形处理单元等。
模块还可以至少部分地以软件实现,以用于由各种类型的处理器执行。所识别的可执行代码单元可以例如包括计算机指令的一个或多个物理或逻辑块,其可以例如被组织为对象、过程或功能。然而,所识别的模块的可执行文件不需要物理地位于一起,而是可以包括存储在不同位置的不同指令,当该位置逻辑上连接在一起时,该位置包括模块并实现针对模块的所述目的。此外,模块可以存储在计算机可读介质上,该计算机可读介质可以是例如硬盘驱动器、闪存设备、随机存取存储器(RAM)、磁带或用于存储数据的任何其他此类介质。
实际上,可执行代码的模块可以是单个指令或许多指令,甚至可以分布在几个不同的代码段上、不同的程序中以及几个存储器设备上。类似地,操作数据可以在本文中在模块内被识别和示出,并且可以以任何合适的形式体现并且被组织在任何合适类型的数据结构内。操作数据可以作为单个数据集收集,或者可以分布在包括不同存储设备的不同位置上,并且可以至少部分地仅作为***或网络上的电子信号存在。
容易理解的是,如在本文附图中一般描述和示出的,本申请的组件可以以各种不同的配置来布置和设计。因此,实施例的详细描述不旨在限制所要求保护的本申请的范围,而仅仅代表本申请的所选实施例。
本领域普通技术人员将容易理解,上述内容可以以不同顺序的步骤来实践,和/或使用与所公开的配置不同的配置中的硬件元件来实践。因此,尽管已经基于这些优选实施例描述了本申请,但是对于本领域技术人员来说显而易见的是,某些修改、变化和替代构造将是显而易见的。
虽然已经描述了本申请的优选实施例,但是应该理解,所描述的实施例仅是说明性的,并且当考虑具有全范围的等同物和对其的修改(例如,协议、硬件设备、软件平台等)时,本申请的范围仅由所附权利要求限定。
Claims (11)
1.一种方法,包括:
接收输入,所述输入包括背书策略、区块链网络的结构、以及针对要容忍的故障程度的要求;
将所接收的输入变换为中间数据,所述中间数据包括代表所述区块链网络的节点的故障状态的变量的标识符,以及所述背书策略和针对要容忍的故障程度的所述要求对所述节点的所述故障状态的约束;
否定所述中间数据中所述约束的子集;
基于所有可能的故障状态,确定遵循所述背书策略和针对所述故障程度的所述要求的区块链是否具有区块链固有特性;以及
经由显示屏显示所述确定的结果。
2.根据权利要求1所述的方法,其中,所述区块链固有特性包括拜占庭容错特性,所述拜占庭容错特性包括活性要求和安全性要求中的一个或多个。
3.根据权利要求1所述的方法,其中,所述变换包括:将所述区块链网络中的一组节点变换为描述相应节点的故障状态的状态变量。
4.根据权利要求3所述的方法,其中,所述变换包括:将所述背书策略变换为对所述状态变量的一组约束。
5.根据权利要求4所述的方法,其中,所述变换包括:将所述背书策略变换为:(i)指示共识存在的约束;以及(ii)指示达成所述共识的值是否正确的约束。
6.根据权利要求3所述的方法,其中,所述变换包括:将针对要容忍的所述故障程度的所述要求变换为对所述状态变量的约束。
7.根据权利要求1所述的方法,其中,所述确定经由对所述中间数据执行约束满足问题(CSP)求解器来执行。
8.根据权利要求1所述的方法,其中,所述输出包括:输出关于所述背书策略的通过/失败消息。
9.根据权利要求8所述的方法,其中,所述输出进一步包括:输出指示节点故障如何不满足所述区块链的所述要求的反例。
10.一种计算***,包括:
存储装置,其被配置为存储输入,所述输入包括背书策略、区块链网络的结构、以及针对要容忍的故障程度的要求;以及
处理器,其被配置为实现权利要求1-9中的一项的步骤。
11.一种非暂态计算机可读介质,包括指令,所述指令在由处理器读取时使所述处理器执行包括权利要求1-9中的一项的步骤的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/241843 | 2019-01-07 | ||
US16/241,843 US11283673B2 (en) | 2019-01-07 | 2019-01-07 | Blockchain endorsement verification |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111414413A true CN111414413A (zh) | 2020-07-14 |
CN111414413B CN111414413B (zh) | 2023-09-29 |
Family
ID=71404544
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010010200.0A Active CN111414413B (zh) | 2019-01-07 | 2020-01-06 | 区块链背书验证 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11283673B2 (zh) |
CN (1) | CN111414413B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112767155A (zh) * | 2021-01-19 | 2021-05-07 | 华南师范大学 | 智能合约安全交易序列生成方法、装置、介质和设备 |
CN114547704A (zh) * | 2022-04-28 | 2022-05-27 | 恒生电子股份有限公司 | 基于分布式账本的数据处理方法以及装置 |
CN115001719A (zh) * | 2022-08-04 | 2022-09-02 | 树根格致科技(湖南)有限公司 | 隐私数据处理***、方法、装置、计算机设备及存储介质 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110245522B (zh) * | 2019-01-16 | 2022-07-12 | 腾讯科技(深圳)有限公司 | 区块链资金结算***中的数据处理方法、终端和介质 |
JP7025365B2 (ja) * | 2019-03-25 | 2022-02-24 | 株式会社日立製作所 | データ連携管理方法、データ連携管理システム、およびノード |
US11108624B2 (en) | 2019-04-18 | 2021-08-31 | Red Hat, Inc. | Determining blockchain ledger indicates notification availability for an application |
US20220109577A1 (en) * | 2020-10-05 | 2022-04-07 | Thales DIS CPL USA, Inc | Method for verifying the state of a distributed ledger and distributed ledger |
CN112564972B (zh) * | 2020-12-09 | 2022-04-05 | 华东师范大学 | 基于Event-B方法的区块链PBFT共识算法的形式化建模和安全性验证方法 |
CN112738253B (zh) * | 2020-12-30 | 2023-04-25 | 北京百度网讯科技有限公司 | 基于区块链的数据处理方法、装置、设备及存储介质 |
EP4057158A1 (en) * | 2021-03-09 | 2022-09-14 | Siemens Aktiengesellschaft | Exchanging data with a decentralized distributed database |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108256864A (zh) * | 2018-02-13 | 2018-07-06 | 中链科技有限公司 | 一种区块链之间的跨链联盟的建立及通信方法、*** |
CN108376368A (zh) * | 2018-03-07 | 2018-08-07 | 物数(上海)信息科技有限公司 | 背书策略确定方法、装置、电子设备、存储介质 |
CN108667614A (zh) * | 2018-04-19 | 2018-10-16 | 上海分布信息科技有限公司 | 一种拜占庭容错方法及其实现*** |
CN109118214A (zh) * | 2017-06-26 | 2019-01-01 | 华为技术有限公司 | 运行智能合约的方法和装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9849364B2 (en) * | 2016-02-02 | 2017-12-26 | Bao Tran | Smart device |
WO2017147696A1 (en) | 2016-02-29 | 2017-09-08 | Troy Jacob Ronda | Systems and methods for distributed identity verification |
US11327475B2 (en) * | 2016-05-09 | 2022-05-10 | Strong Force Iot Portfolio 2016, Llc | Methods and systems for intelligent collection and analysis of vehicle data |
JP6827327B2 (ja) * | 2017-01-05 | 2021-02-10 | 株式会社日立製作所 | 分散コンピューティングシステム |
US10484346B2 (en) * | 2017-02-07 | 2019-11-19 | Microsoft Technology Licensing, Llc | Establishment of consortium blockchain network |
US10984134B2 (en) * | 2017-07-14 | 2021-04-20 | Microsoft Technology Licensing, Llc | Blockchain system for leveraging member nodes to achieve consensus |
US9967238B1 (en) | 2017-11-09 | 2018-05-08 | Broadridge Financial Solutions, Inc. | Database-centered computer network systems and computer-implemented methods for cryptographically-secured distributed data management |
WO2019113308A1 (en) * | 2017-12-05 | 2019-06-13 | Franchitti Jean Claude | Active adaptation of networked compute devices using vetted reusable software components |
US10673626B2 (en) * | 2018-03-30 | 2020-06-02 | Spyrus, Inc. | Threshold secret share authentication proof and secure blockchain voting with hardware security modules |
US20190303942A1 (en) * | 2018-04-02 | 2019-10-03 | American Express Travel Related Services Company, Inc. | Fraud management using a distributed database |
US10542046B2 (en) * | 2018-06-07 | 2020-01-21 | Unifyvault LLC | Systems and methods for blockchain security data intelligence |
US10917233B2 (en) * | 2018-10-16 | 2021-02-09 | International Business Machines Corporation | Selective exchange of transaction data |
US11663197B2 (en) * | 2018-10-31 | 2023-05-30 | International Business Machines Corporation | Convolutional and ephemeral datachains with conditional period |
US11362805B2 (en) * | 2018-11-01 | 2022-06-14 | International Business Machines Corporation | Database encryption layer |
-
2019
- 2019-01-07 US US16/241,843 patent/US11283673B2/en active Active
-
2020
- 2020-01-06 CN CN202010010200.0A patent/CN111414413B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109118214A (zh) * | 2017-06-26 | 2019-01-01 | 华为技术有限公司 | 运行智能合约的方法和装置 |
WO2019001139A1 (zh) * | 2017-06-26 | 2019-01-03 | 华为技术有限公司 | 运行智能合约的方法和装置 |
CN108256864A (zh) * | 2018-02-13 | 2018-07-06 | 中链科技有限公司 | 一种区块链之间的跨链联盟的建立及通信方法、*** |
CN108376368A (zh) * | 2018-03-07 | 2018-08-07 | 物数(上海)信息科技有限公司 | 背书策略确定方法、装置、电子设备、存储介质 |
CN108667614A (zh) * | 2018-04-19 | 2018-10-16 | 上海分布信息科技有限公司 | 一种拜占庭容错方法及其实现*** |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112767155A (zh) * | 2021-01-19 | 2021-05-07 | 华南师范大学 | 智能合约安全交易序列生成方法、装置、介质和设备 |
CN112767155B (zh) * | 2021-01-19 | 2024-02-13 | 华南师范大学 | 智能合约安全交易序列生成方法、装置、介质和设备 |
CN114547704A (zh) * | 2022-04-28 | 2022-05-27 | 恒生电子股份有限公司 | 基于分布式账本的数据处理方法以及装置 |
CN115001719A (zh) * | 2022-08-04 | 2022-09-02 | 树根格致科技(湖南)有限公司 | 隐私数据处理***、方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US11283673B2 (en) | 2022-03-22 |
CN111414413B (zh) | 2023-09-29 |
US20200220770A1 (en) | 2020-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111414413B (zh) | 区块链背书验证 | |
US11108544B2 (en) | On-chain governance of blockchain | |
US11095433B2 (en) | On-chain governance of blockchain | |
US11895223B2 (en) | Cross-chain validation | |
US11165826B2 (en) | On-chain governance of blockchain | |
US10756884B2 (en) | On-chain governance of blockchain | |
US11539527B2 (en) | Peer node recovery via approximate hash verification | |
US10671308B2 (en) | Private and fault-tolerant storage of segmented data | |
US10992456B2 (en) | Certifying authenticity of data modifications | |
US11924323B2 (en) | On-chain governance of blockchain | |
EP3864816B1 (en) | Blockchain notification board storing blockchain resources | |
US11308073B2 (en) | Database node functional testing | |
US11849047B2 (en) | Certifying authenticity of data modifications | |
US10922097B2 (en) | Collaborative model execution | |
US20200394321A1 (en) | Document redaction and reconciliation | |
CN111488393B (zh) | 虚拟区块链 | |
US11387979B2 (en) | Partially-ordered blockchain | |
US11489672B2 (en) | Verification of conditions of a blockchain transaction | |
US20200382279A1 (en) | Approximate hash verification of unused blockchain output | |
US20220278848A1 (en) | Certifying authenticity of data modifications | |
CN110674128A (zh) | 区块链的链上治理 | |
CN111698198B (zh) | 秘密生成和份额分发 | |
CN112036876A (zh) | 基于元数据的背书 | |
US11375009B1 (en) | Minimizing the impact of malfunctioning peers on blockchain | |
US11556517B2 (en) | Blockchain maintenance |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |