CN116671092A - 最小化故障对等方对区块链的影响 - Google Patents

最小化故障对等方对区块链的影响 Download PDF

Info

Publication number
CN116671092A
CN116671092A CN202180082029.7A CN202180082029A CN116671092A CN 116671092 A CN116671092 A CN 116671092A CN 202180082029 A CN202180082029 A CN 202180082029A CN 116671092 A CN116671092 A CN 116671092A
Authority
CN
China
Prior art keywords
endorsement
peers
blockchain
peer
reputation score
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
Application number
CN202180082029.7A
Other languages
English (en)
Inventor
张琦
P·诺沃特尼
余磊
N·高尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN116671092A publication Critical patent/CN116671092A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1053Group management mechanisms  with pre-configuration of logical or physical connections with a determined number of other peers
    • H04L67/1057Group management mechanisms  with pre-configuration of logical or physical connections with a determined number of other peers involving pre-assessment of levels of reputation of peers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/12Network monitoring probes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1046Joining mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1048Departure or maintenance mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/16Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using machine learning or artificial intelligence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic 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)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

一种计算机实现的系统和相关方法,用于对区块链中发生故障的对等方进行寻址,该方法包括从区区块链中的对等方接收背书结果,其中背书结果是针对区区块链中的一个或多个事务的。背书结果包括成功和失败背书。该方法还包括将成功背书和失败背书分发给两个或更多个背书收集器,确定哪些对等方是提供成功背书的成功背书对等方(SEP),哪些对等方是提供失败背书的失败背书对等方(FEP)。基于来自背书收集器的背书信息来针对每个对等方计算信誉得分。然后,将信誉得分发送到客户端和系统管理员中的至少一个。然后,使用该信誉得分来确定后续事务中的对等方选择。

Description

最小化故障对等方对区块链的影响
背景技术
本文公开了一种用于最小化区块链上的故障对等方的影响的系统和相关方法。区块链通过使多个对等方执行相同的事务并在对等方之间运行共识算法来保证事务处理的可靠性。尽管可以容忍一些故障对等方(例如,通过使用诸如拜占庭容错和崩溃容错的技术),但是这些不代表该问题的最优解决方案。
发明内容
根据本文所公开的一个方面,提供了一种计算机实现的方法,以对区块链中的发生故障的对等方进行寻址,该方法包括从区块链中的对等方接收背书结果,其中背书结果针对区块链中的一个或多个事务。背书结果包括成功背书和失败背书。该方法还包括向两个或更多个背书收集器分发成功背书和失败背书,确定哪些对等方是提供成功背书的成功背书对等方(SEP),哪些对等方是提供失败背书的失败背书对等方(FEP)。基于来自背书收集器的背书信息来为每个对等方计算信誉得分。然后,向客户端和系统管理员中的至少一个发送信誉得分。然后,使用该信誉得分来确定后续事务中的对等方选择。
根据本文公开的另一方面,提供了一种对区块链中的发生故障的对等方进行寻址的系统,该系统包括存储器和处理器,该处理器被配置为从区块链中的对等方接收背书结果,其中背书结果针对区块链中的一个或多个事务。背书结果包括成功背书和失败背书。该系统向两个或更多个背书收集器分发成功背书和失败背书,确定哪些对等方是提供成功背书的成功背书对等方(SEP),哪些对等方是提供失败背书的失败背书对等方(FEP)。然后,该系统基于来自背书收集器的背书信息来计算针对每个对等方的信誉得分,并向客户端和系统管理员中的至少一个发送信誉得分。信誉得分被用于确定后续事务中的对等方选择。
此外,实施例可以采取用于实现上述系统和方法的相关计算机程序产品的形式,其可以从提供程序代码的计算机可用或计算机可读介质访问,该程序代码由计算机或任何指令执行系统使用或与计算机或任何指令执行系统结合使用。为了本说明书的目的,计算机可用或计算机可读介质可以是任何装置,其可以包含用于存储、传送、传播或传输程序的机制,以供指令执行系统、装置或设备使用或与其结合使用。
附图说明
本文参考不同的主题描述了各种实施例。具体地,一些实施例可以参考方法来描述,而其他实施例可以参考装置和系统来描述。然而,本领域技术人员将从以上和以下描述中了解到,除非另外指出,除了属于一种类型的主题的特征的任何组合之外,与不同主题相关的特征之间的任何组合,特别是方法的特征与装置和系统的特征之间的任何组合,也被认为是在本文档内公开的。
从下文将描述的一个或多个实施例的示例中,以上定义的方面以及本文公开的其他方面是显而易见的,并且参考一个或多个实施例的示例进行解释,但是本发明不限于此。仅通过示例的方式并参考以下附图描述了各种实施例:
图1A是根据本文公开的一个或多个实施例的数据处理系统(DPS)的框图。
图1B是描绘根据本文公开的实施例的云计算环境的示意图。
图1C是示出根据本文公开的实施例的抽象模型层的示意图。
图1D是示出根据示例实施例的包括数据库的系统的网络图的框图。
图2A是示出根据示例实施例的示例区块链架构配置的框图。
图2B是示出根据各示例实施例的区块链事务流的流程图。
图3A是示出根据示例实施例的许可网络的框图。
图3B是示出根据示例实施例的另一许可网络的框图。
图3C是示出根据示例实施例的无许可网络的框图。
图4是示出基本区块链序列的框图。
图5A是示出根据示例实施例的被配置为执行本文中所描述的一个或多个操作的示例系统的框图。
图5B是示出根据示例实施例的被配置为执行本文中所描述的一个或多个操作的另一示例系统的框图。
图5C是示出根据示例实施例的配置为利用智能合同的另一示例系统的框图。
图5D是示出根据示例实施例的被配置为利用区块链的又一示例系统的框图。
图6A是图示了根据示例实施例的用于将新区块添加到分布式分类账的过程的框图。
图6B是示出根据示例实施例的新数据区块的内容的框图。
图6C是示出了根据示例实施例的用于数字内容的区块链的框图。
图6D是示出根据示例实施例的可以表示区块链中的块的结构的块的框图。
图7A是示出根据示例实施例的存储机器学习(人工智能)数据的示例区块链的框图。
图7B是示出根据示例实施例的示例量子安全区块链的框图。
图8是示出根据本公开的实施例的可用于实现本文描述的方法、工具和模块中的一个或多个以及任何相关功能的示例计算机系统的高级框图的框图。
图9是示出根据一些实施例的用于对区块链中的故障对等方进行寻址的排序服务的框图。
图10是示出根据一些实施例的用于对区块链中的故障对等方进行寻址的过程的流程图。
具体实施方式
以下缩写词可以在下文被使用:
API接口 应用接口
ARM 高级RISC机器
CD-ROM 光盘ROM
CMS 内容管理系统
CoD 按需容量
CPU 中央处理单元
CUoD 按需容量升级
DPS 数据处理系统
DVD机 数字通用盘
EVC 到期虚拟货币(具有到期日期,或服从其他虚拟货币使用规则的虚拟货币;具有到期日期的本地虚拟货币)
EVCU 到期虚拟货币(单位)
EPROM 可擦除可编程只读存储器
FPGA 现场可编程门阵列
HA 高可用性
IaaS 基础设施即服务
I/O 输入/输出
IPL 初始程序加载
ISP 互联网服务提供商
ISA 指令集架构
LAN 局域网
LPAR 逻辑分区
PaaS 平台即服务
PDA 个人数字助理
PLA 可编程逻辑阵列
RAM 随机存取存储器
RISC 精简指令集计算机
ROM 只读存储器
SaaS 软件即服务
SLA 服务水平协议
SRAM 静态随机存取存储器
VCUR 虚拟货币使用规则
WAN 广域网
总体数据处理系统
图1A是根据一个或多个实施例的示例DPS的框图。在该说明性示例中,DPS 10可以包括通信总线12,其可以提供处理器单元14、存储器16、持久性存储18、通信单元20、I/O单元22和显示器24之间的通信。
处理器单元14用于执行可加载到存储器16中的软件指令,处理器单元14可以是多个处理器、多核处理器或一些其他类型的处理器,这取决于特定的实现。如本文所用,关于项目的数字是指一个或多个项目。此外,处理器单元14可以使用多个异构处理器系统来实现,其中主处理器与辅助处理器一起存在于单个芯片上。作为另一个说明性示例,处理器单元14可以是包含相同类型的多个处理器的对称多处理器系统。
存储器16和持久性存储18是存储设备26的示例。存储设备可以是能够临时和/或持久地存储信息的任何硬件,该信息例如但不限于数据、功能形式的程序代码和/或其他合适的信息。在这些示例中,存储器16可以是例如随机存取存储器或任何其他合适的易失性或非易失性存储设备。取决于特定的实现,持久性存储18可以采取各种形式。
例如,持久性存储18可包括一个或多个组件或设备。例如,持久性存储18可以是硬盘驱动器、闪存、可重写光盘、可重写磁带或上述的一些组合。持久性存储18所使用的介质也可以是可移动的。例如,可移动硬盘驱动器可以用于持久性存储18。
这些示例中的通信单元20可提供与其他DPS或设备的通信。在这些示例中,通信单元20是网络接口卡。通信单元20可以通过使用物理和无线通信链路中的一种或两种来提供通信。
输入/输出单元22可允许与其他可连接到DPS 10的设备输入和输出数据,例如,输入/输出单元22可通过键盘、鼠标和/或一些其他适当的输入设备提供用于用户输入的连接。此外,输入/输出单元22可以将输出发送到打印机。显示器24可以提供向用户显示信息的机制。
用于操作系统、应用和/或程序的指令可以位于存储设备26中,其通过通信总线12与处理器单元14通信,在这些说明性示例中,指令在持久性存储装置18上是功能形式的,这些指令可以被加载到存储器16中以便由处理器单元14执行,不同实施例的过程可以由处理器单元14使用计算机实现的指令来执行,这些指令可以位于诸如存储器16的存储器中,这些指令被称为程序代码38(下面描述)、计算机可用程序代码、或者可以由处理器单元14中的处理器读取和执行的计算机可读程序代码。
DPS 10还可以包括网络29的接口,该接口可以包括硬件、驱动器、软件等,以允许通过有线和无线网络29进行通信,并且可以实现任意数量的通信协议,包括例如处于开放系统互连(OSI)七层模型的各个级别的协议。
图1A还示出了可以包括程序代码38的计算机程序产品30,程序代码38可以功能形式位于可选择性移除的计算机可读介质32上,并且可以被加载到或传送到DPS 10以便由处理器单元14执行,在这些示例中,程序代码38和计算机可读介质32可以形成计算机程序产品30。在一个示例中,计算机可读介质32可以是计算机可读存储介质34或计算机可读信号介质36,计算机可读存储介质34可以包括例如插入或放置到驱动器或作为持久性存储18的一部分的其他设备中的光盘或磁盘,以便传送到作为持久性存储18的一部分的存储设备,诸如硬盘驱动器、拇指驱动器或闪存,计算机可读存储介质34还可以采取连接到DPS 10的持久性存储的形式,诸如硬盘驱动器、拇指驱动器或闪存。
或者,程序代码38可以使用计算机可读信号介质36被传送到DPS 10,计算机可读信号介质36可以是例如包含程序代码38的传播数据信号,例如,计算机可读信号介质36可以是电磁信号、光信号和/或任何其他适当类型的信号。这些信号可以通过通信链路传输,例如无线通信链路、光纤电缆、同轴电缆、电线和/或任何其他合适类型的通信链路。换句话说,在说明性示例中,通信链路和/或连接可以是物理的或无线的。
在一些说明性实施例中,程序代码38可以从另一设备或DPS通过计算机可读信号介质36通过网络下载到持久性存储18,以便在DPS 10内使用,例如,存储在服务器DPS中的计算机可读存储介质中的程序代码可以通过网络从服务器下载到DPS 10,提供程序代码38的DPS可以是服务器计算机、客户端计算机或能够存储和传送程序代码38的一些其他设备。
为DPS 10示出的不同组件不意味着对可以实现不同实施例的方式提供架构限制。不同的说明性实施例可以在DPS中实现,包括除了DPS 10所示的组件之外的组件或替代其的组件。
总体云计算
应当理解,尽管本公开包括云计算的详细描述,但是本文所陈述的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其他类型的计算环境来实现。
云计算是一种服务递送模型,用于实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池的方便的按需网络访问,所述可配置计算资源可以以最小的管理努力或与服务的提供者的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特征如下
按需自助:云消费者可以单方面地自动地根据需要提供计算能力,诸如服务器时间和网络存储,而不需要与服务的提供者进行人工交互。
广域网接入:能力在网络上可用,并且通过促进由异构的薄或厚客户端平台(例如,移动电话、膝上型计算机和PDA)使用的标准机制来访问。
资源池化:供应商的计算资源被集中以使用多租户模型来服务多个消费者,其中不同的物理和虚拟资源根据需求被动态地分配和重新分配。存在位置无关的意义,因为消费者通常不控制或不知道所提供的资源的确切位置,但是能够在较高抽象级别(例如国家、州或数据中心)指定位置。
快速弹性:在一些情况下,可以快速且弹性地提供快速向外扩展的能力和快速向内扩展的能力。对于消费者,可用于提供的能力通常看起来不受限制,并且可以在任何时间以任何数量购买。
测量服务:云系统通过利用在适合于服务类型(例如,存储、处理、带宽和活动用户账户)的某一抽象级别的计量能力来自动地控制和优化资源使用。可以监视、控制和报告资源使用,从而为所利用服务的提供者和消费者两者提供透明性。
服务模型如下
软件即服务(SaaS):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。应用可通过诸如web浏览器(例如,基于web的电子邮件)等瘦客户端界面从各种客户端设备访问。消费者不管理或控制包括网络、服务器、操作系统、存储、或甚至个别应用能力的底层云基础结构,可能的例外是有限的用户专用应用配置设置。
平台即服务(PaaS):提供给消费者的能力是将消费者创建或获取的应用部署到云基础设施上,该消费者创建或获取的应用是使用由提供商支持的编程语言和工具创建的。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但具有对部署的应用和可能的应用托管环境配置的控制。
基础设施即服务(IaaS):提供给消费者的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其他基本计算资源,所述软件可以包括操作系统和应用。消费者不管理或控制底层云基础设施,但具有对操作系统、存储、部署的应用的控制,以及可能对选择的联网组件(例如,主机防火墙)的有限控制。
部署模型如下
私有云:云基础设施仅为组织操作。它可以由组织或第三方管理,并且可以存在于建筑物内或建筑物外。
社区云:云基础设施由若干组织共享,并且支持具有共享关注(例如,任务、安全要求、策略和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
公有云:云基础设施可用于一般公众或大型工业群体,并且由销售云服务的组织拥有。
混合云:云基础设施是两个或更多云(私有、共同体或公共)的组合,所述云保持唯一实体,但是通过使数据和应用能够移植的标准化或私有技术(例如,用于云之间的负载平衡的云突发)绑定在一起。
云计算环境是面向服务的,其焦点在于无状态、低耦合、模块性和语义互操作性。在云计算的核心是包括互连节点的网络的基础设施。
现在参考图1B,描绘了说明性云计算环境52。如图所示,云计算环境52包括云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点50,所述本地计算设备例如个人数字助理(PDA)或蜂窝电话54A、台式计算机54B、膝上型计算机54C和/或汽车计算机系统54N。节点50可以彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上文描述的私有云、社区云、公共云或混合云或其组合。这允许云计算环境52提供基础设施、平台和/或软件作为服务,云消费者不需要为其维护本地计算设备上的资源。应当理解,图1B中所示的计算设备54A-N的类型仅旨在说明,并且计算节点50和云计算环境52可以在任何类型的网络和/或网络可寻址连接上(例如,使用web浏览器)与任何类型的计算机化设备通信。
现在参考图1C,示出了由云计算环境52(图1B)提供的一组功能抽象层。应当预先理解,图1C中所示的组件、层和功能仅旨在说明,并且本发明的实施例不限于此。如所描绘的,提供了以下层和相应的功能:
硬件和软件层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。
计算环境52中的任何节点50以及计算设备54A-N可以是DPS10。
区块链基础细节
如在本文的附图中一般性描述和示出的,本组件可以以各种不同的构造布置和设计。因此,如附图中所表示的方法、装置、非暂态计算机可读介质和系统中的至少一个的实施例的以下详细描述不旨在限制如所要求保护的应用的范围,而仅仅是所选实施例的代表。
在一个或多个实施例中,可以以任何适当的方式组合或去除本说明书中描述的本特征、结构或特性。例如,在整个说明书中,短语“示例实施例”、“一些实施例”或其他类似语言的使用指的是结合实施例描述的特定特征、结构或特性可以被包括在至少一个实施例中的事实。因此,在整个说明书中出现的短语“示例实施例”、“在一些实施例中”、“在其他实施例中”或其他类似语言不一定全部指代同一组实施例,并且所描述的特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合或去除。此外,在图中,元件之间的任何连接可以允许单向和/或双向通信,即使所描绘的连接是单向或双向箭头。而且,附图中描绘的任何设备可以是不同的设备。例如,如果移动设备被示为发送信息,则有线设备也可以用于发送信息。
另外,虽然在实施例的描述中可能已经使用了术语“消息”,但是本申请可以应用于许多类型的网络和数据。此外,虽然在示例实施例中可以描述某些类型的连接、消息和信令,但是本申请不限于某些类型的连接、消息和信令。
示例实施例提供了方法、系统、组件、非暂态计算机可读介质、设备和/或网络,其提供了在区块链网络中的虚拟货币上实现到期机制或其他虚拟货币使用规则。
在一个实施例中,应用利用作为分布式存储系统的去中心化数据库(诸如区块链),其包括彼此通信的多个节点。去中心化数据库包括仅附加的不可改变的数据结构,类似于能够维护相互不信任的各方之间的记录的分布式分类账。不受信任方在这里被称为对等方或对等方节点。每个对等方都维护数据库记录的副本,并且在分布式对等方之间没有达成共识的情况下,没有单个对等方可以修改数据库记录。例如,对等方可以执行共识协议以验证区块链存储事务,将存储事务分组为区块,并在区块上构建散列链。为了一致性,该过程通过根据需要对存储事务进行排序来形成分类账。在各种实施例中,可使用经许可的和/或无许可的区块链。在公共或无许可的区块链中,任何人都可以在没有特定身份的情况下参与。公共区块链可涉及本机加密货币并基于诸如工作证明(PoW)等各种协议来使用共识。另一方面,经许可的区块链数据库提供了在共享共同目标但不完全信任彼此的一组实体之间的安全交互,诸如交换资金、商品、信息等的企业。
本申请可以利用操作任意的、可编程的逻辑的区块链,其被定制为去中心化存储方案并且被称为“智能合同”或“链码”。在一些情况下,可能存在被称为系统链码的用于管理功能和参数的专用链码。应用还可利用作为可信分布式应用的智能合同,该智能合同利用区块链数据库的防篡改特性和节点之间的底层协定,这被称为背书或背书策略。与该应用相关联的区块链事务在被提交给区块链之前可被“背书”,而未被背书的事务被忽略。背书策略允许链码以背书所必需的对等方节点集合的形式指定事务的背书者。当客户端将事务发送到背书策略中指定的对等方时,事务被执行以验证该事务。在验证之后,事务进入排序阶段,在该排序阶段中使用共识协议来产生被分组成区块的经背书的事务的有序序列。
本申请可以利用作为区块链系统的通信实体的节点。“节点”可以执行逻辑功能,其意义在于不同类型的多个节点可以在同一物理服务器上运行。节点被分组在信任域中,并且与以各种方式控制它们的逻辑实体相关联。节点可包括不同类型,诸如向背书者(例如,对等方)提交事务调用并向排序服务(例如,排序节点)广播事务提议的客户端或提交客户端节点。另一种类型的节点是对等方节点,其可接收客户端提交的事务、提交事务、并维护区块链事务的分类账的状态和副本。对等方也可以具有背书者的角色,尽管这不是必需的。排序服务节点或排序者是为所有节点运行通信服务的节点,并且当提交事务并修改区块链的世界状态时,其实现递送保证,诸如向系统中的每个对等方节点广播,这是初始区块链事务的另一名称,初始区块链事务通常包括控制和设置信息。
本申请可以利用分类账,该分类账是区块链的所有状态转换的按次序排列的、防篡改的记录。状态转换可以由参与方(例如,客户端节点、排序节点、背书者节点、对等方节点等)提交的链码调用(即,事务)产生。每个参与方(诸如对等方节点)可以维护分类账的副本。事务可以导致资产键-值对集合被提交给分类账作为一个或多个操作数,诸如创建、更新、删除等。分类账包括区块链(也称为链),其用于以区块存储不可变的按次序排列的记录。分类账还包括维护区块链的当前状态的状态数据库。
本申请可以利用作为事务日志的链,该事务日志被结构化为散列链接的区块,并且每个区块包含N个事务的序列,其中N等于或大于一。区块报头包括区块的事务的散列,以及先前区块的报头的散列。以这种方式,可以对分类账上的所有事务按次序排列并且将其加密地链接在一起。因此,在不破坏散列链接的情况下,不可能篡改分类账数据。最近添加的区块链区块的散列表示在其之前到来的链上的每个事务,使得可以确保所有对等方节点处于一致且可信的状态。该链可被存储在对等方节点文件系统(即,本地、附加存储、云等)上,从而高效地支持区块链工作负荷的仅附加性质。
不可变分类账的当前状态表示被包括在链事务日志中的所有键的最新值。由于当前状态表示通道已知的最新的键值,所以它有时被称为世界状态。链码调用执行针对分类账的当前状态数据的事务。为了使这些链码交互有效,可将键的最新值存储在状态数据库中。状态数据库可以简单地是到链的事务日志中的索引视图。因此,它可以在任何时候从链中重新生成。在对等方节点启动时和在接受事务之前,可以自动恢复(或如果需要,生成)状态数据库。
本文描述和描绘的本解决方案的一些益处包括用于在区块链网络中使用到期虚拟货币或服从区块链网络中的虚拟货币使用规则的虚拟货币的方法和系统。示例实施例通过扩展数据库的特征,诸如不可变性、数字签名以及是单个真值源,解决了时间和信任的问题。示例实施例提供了一种用于在基于区块链的网络中的区块链网络中进行隐私保护的基于属性的文档共享的解决方案。区块链网络可以是基于资产类型的同构的,并且是基于智能合同来管理资产的规则。
区块链与传统数据库的不同之处在于,区块链不是中央存储,而是去中心化的、不可变的和安全的存储,其中节点必须共享对存储中的记录的改变。区块链中固有的并且帮助实现区块链的一些属性包括但不限于不可改变的分类账、智能合同、安全性、隐私、去中心化、共识、背书、可访问性等,其在本文中被进一步描述。根据各个方面,由于对区块链固有且唯一的不可变的责任、安全性、隐私、允许的去中心化、智能合同的可用性、背书和可访问性,实现了用于区块链网络中的隐私保护的基于属性的文档共享的系统。具体地,区块链分类账数据是不可变的,并且提供了用于使虚拟货币到期或服从区块链网络中的虚拟货币使用规则的虚拟货币在区块链网络中的有效方法。此外,区块链中加密的使用提供了安全性并建立了信任。智能合同管理资产的状态以完成生命周期。示例性区块链是权限去中心化的。因此,每个终端用户可以具有其自己的分类账副本以供访问。多个组织(和对等方)可以在区块链网络上加入。关键组织可以用作背书对等方以验证智能合同执行结果、读取集合和写入集合。换言之,区块链固有特征提供了针对到期虚拟货币或服从区块链网络中的虚拟货币使用规则的虚拟货币的方法的有效实现。
示例实施例的益处之一在于,其通过实现针对在基于区块链的系统中的到期虚拟货币或服从虚拟货币使用规则的虚拟货币的方法来改进计算系统的功能。通过本文描述的区块链系统,计算系统可通过提供对诸如分布式分类账、对等方、加密技术、MSP、事件处理等能力的访问来执行区块链网络中的隐私保护的基于属性的文档共享的功能。此外,区块链使得能够创建商业网络并使得任何用户或组织能够加入以进行参与。这样,区块链不仅仅是数据库。区块链具有创建用户和场内/场外组织的商业网络以便以智能合同的形式合作和执行服务过程的能力。
示例实施例提供了优于传统数据库的多个益处。例如,通过区块链,实施例提供了对于区块链固有且唯一的不可改变的责任、安全性、隐私、允许的去中心化、智能合同的可用性、背书和可访问性。
同时,传统数据库不能用于实现示例实施例,因为它不将所有方带入商业网络,它不创建可信协作,并且不提供数字资产的高效存储。传统的数据库不提供防篡改存储,并且不提供对所存储的数字资产的保存。因此,所提出的针对到期虚拟货币或在区块链网络中服从虚拟货币使用规则的虚拟货币的方法不能在传统数据库中实现。
同时,如果传统的数据库被用于实现示例实施例,则示例实施例将遭受不必要的缺点,诸如搜索能力、缺乏安全性以及事务速度慢。另外,针对区块链网络中的到期虚拟货币实现共享的自动化方法将完全是不可能的。
因此,示例实施方案提供了服从使用规则的虚拟货币的技术/领域中的问题的特定解决方案。
示例实施例还改变了数据可如何被存储在区块链的区块结构内。例如,数字资产数据可以被安全地存储在数据区块的特定部分中(即,在报头、数据分段或元数据中)。通过将数字资产数据存储在区块链的数据区块内,数字资产数据可以通过区块的散列链接链被附加到不可变的区块链分类账。在一些实施例中,数据块可以通过使与数字资产相关联的个人数据不与资产一起存储在区块链的传统区块结构内而不同于传统数据区块。通过移除与数字资产相关联的个人数据,区块链可以基于不可变的责任和安全性来提供匿名的益处。
根据示例实施例,提供了一种针对在区块链网络中到期虚拟货币或服从虚拟货币使用规则的虚拟货币的系统和方法。区块链文档处理器可具有两个组件:
-私有脱链处理器,其管理与参与者相关的私有信息的安全处理;以及
-分类账处理器,其管理使用区块链网络的共识算法对与所述网络的所有参与者共享的公共信息的处理。
根据示例实施例,意图与其他组织共享文档的组织中的每一个组织使用连接到区块链网络的区块链文档处理器。使用文档处理器,组织可以在分类账上建立以下各项:
-文档模板的列表;
-将在分类账上以散列形式共享的每个文档模板的属性;
-来自用于匹配和共享文档的不同模板的关键属性的组合;以及
-合伙默克尔(Merkel)树:可以基于合伙组织的标识符(ID)来建立每个合伙默克尔树。
所有文档(文件、JSON)都存储在该脱链数据存储库上。仅属性散列和文档标识符(ID)作为区块链事务的一部分被提交。
根据一个示例实施例,文档标识符和文档类型可以被链接到经散列的属性以供共享。经散列的所有者组织ID可以包括复合密钥,使得:
-给定文档ID,文档处理器可获得所有经散列的属性以供共享;以及
-给定用于共享的经散列的属性,文档处理器可以获得所有文档ID及其经散列的所有者组织ID。
当文档被记录并被给予其经散列的属性以供共享时,文档处理器可获得所有文档及其经散列的所有者组织ID。处理器可以检查输入文档所有者组织ID和每个所有者组织ID是否是合伙默克尔树的一部分。如果ID属于合格组织关系内的文档子集的合伙默克尔树,则处理器可以获得逻辑匹配所需的模板。基于评估经散列的属性匹配,处理器可以获得输入文档需要链接到的文档列表(及其所有者)。然后,处理器可以创建链接的文档。处理器可以生成一次性密码,使得参与者可以链接到该文档并将其传递通过所有参与者。参与者然后可以利用一次性密码和经散列的组织ID来查询区块链以检索输入的文档密钥。使用文档密钥,参与者可从拥有方(即,区块链节点)检索共享文档,并将文档存储在接收者的离线存储器上。
图1D示出了根据示例实施例的针对在区块链网络中的到期虚拟货币或服从虚拟货币使用规则的虚拟货币的逻辑网络图。
参考图1D,示例网络100包括连接到表示文档所有者组织的其他区块链(BC)节点105的文档处理器节点102。文档处理器节点102可以连接到区块链106,其具有用于存储要在节点105之间共享(110)的数据的分类账108。虽然该示例仅详细描述了一个文档处理器节点102,但是多个这样的节点可以连接到区块链106。应当理解,文档处理器节点102可以包括附加组件,并且在不脱离本文公开的文档处理器节点102的范围的情况下,可以移除和/或修改本文描述的一些组件。文档处理器节点102可以是计算设备或服务器计算机等,并且可以包括处理器104,其可以是基于半导体的微处理器、中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)和/或另一硬件设备。尽管描绘了单个处理器104,但是应当理解,文档处理器节点102可以包括多个处理器、多个核等,而不脱离文档处理器节点102系统的范围。
文档处理器节点102还可以包括非暂态计算机可读介质112,其上可以存储可由处理器104执行的机器可读指令。机器可读指令的例子被示为114-120,并且在下面进一步讨论。非暂态计算机可读介质112的示例可以包括包含或存储可执行指令的电子、磁、光或其他物理存储设备。例如,非暂态计算机可读介质112可以是随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)、硬盘、光盘或其他类型的存储设备。在一些实施例中,处理器104可以执行第一机器可读指令114以实现以下描述的排序服务。
图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所展示的一个或多个接口和所提供的服务来处理和执行程序/应用代码220。代码220可以控制区块链资产。例如,代码220可以存储和传送数据,并且可以由节点204执行,以智能合同和具有条件或其他代码元素的关联链码的形式服从于其执行。作为非限制性示例,可以创建智能合同以执行提醒、更新和/或服从改变、更新等的其他通知。智能合同本身可以用于标识与分类账的授权和访问要求和使用相关联的规则。例如,文档属性信息226可由包括在区块链层216中的一个或多个处理实体(例如,虚拟机)处理。结果228可以包括多个链接的共享文档。物理基础设施214可以用于检索本文所述的任何数据或信息。
智能合同可以经由高级应用和编程语言来创建,并且然后被写入区块链中的区块。智能合同可以包括向区块链(例如,区块链对等方的分布式网络)注册、存储和/或复制的可执行代码。事务是智能合同代码的执行,其可以响应于与智能合同相关联的条件被满足而被执行。智能合同的执行可以触发对数字区块链分类账的状态的(一个或多个)可信修改。由智能合同执行引起的对区块链分类账的(一个或多个)修改可以通过一个或多个共识协议在整个区块链对等方的分布式网络中自动复制。
智能合同可以以键-值对的格式将数据写入区块链。此外,智能合同代码可以读取存储在区块链中的值,并在应用操作中使用它们。智能合同代码可以将各种逻辑操作的输出写入区块链中。该代码可用于在虚拟机或其他计算平台中创建临时数据结构。写入到区块链的数据可以是公共的和/或可以被加密并被维护为私有的。由智能合同使用/生成的临时数据由所供应的执行环境保持在存储器中,然后一旦标识了区块链所需的数据就被删除。
链码可以包括具有附加特征的智能合同的代码解释。如这里所述,链码可以是部署在计算网络上的程序代码,其中它在共识过程期间由链式验证器一起执行和验证。该链码接收散列并从区块链检索与通过使用先前存储的特征提取器创建的数据模板相关联的散列。如果散列标识符的散列与从所存储的标识符模板数据创建的散列匹配,则链码向所请求的服务发送授权密钥。链码可以向区块链写入与密码细节相关联的数据。
图2B示出了根据一示例实施例的区块链的节点之间的区块链事务流250的示例。参考图2B,事务流可包括由应用客户端节点260发送到背书对等方节点281的事务提议291。背书对等方281可以验证客户端签名并执行链码功能以发起事务。输出可以包括链码结果、在链码中读取的键/值版本集合(读取集合)以及在链码中写入的键/值集合(写入集合)。如果批准,则将提议响应292连同背书签名一起发送回客户端260。客户端260将背书组装成事务有效负载293,并将其广播到排序服务节点284。然后,排序服务节点284将经排序的事务作为区块在通道上递送给所有对等方281和283。在提交到区块链之前,每个对等方281-283可以验证该事务。例如,对等方可以检查背书策略以确保指定对等方的正确分配已经签名了结果并对照事务有效负载293来认证签名。
再次参考图2B,客户端节点260通过构建请求并将请求发送到作为背书者的对等方节点281来启动事务291。客户端260可以包括利用支持软件开发工具包(SDK)的应用,其利用可用的API来生成事务提议。该提议是请求调用链码功能,以便可以将数据读取和/或写入到分类账(即,写入针对资产的新键值对)。SDK可以用作填补将事务提议封装为适当的架构化格式(例如,远程过程调用(RPC)上的协议缓冲区),并采用客户端的密码凭证来产生事务提议的唯一签名。
作为响应,背书对等方节点281可以验证:(a)事务提议被很好地形成,(b)过去的事务尚未提交(重放攻击保护),(c)签名有效,以及(d)提交者(在该示例中为客户端260)被正确授权以在该通道上执行所提议的操作。背书对等方节点281可以将事务提议输入作为所调用的链码函数的自变量。然后,对照当前状态数据库执行该链码,以产生事务结果,包括响应值、读取集合和写入集合。然而,此时不对分类账进行更新。在292,该值集合与背书对等方节点281的签名一起作为提议响应292被传递回客户端260的SDK,该SDK解析应用要消耗的有效负载。
作为响应,客户端260的应用检查/验证背书的对等方签名,并比较该提议响应以确定该提议响应是否相同。如果该链码只查询分类账,则该应用将检查查询响应,并且通常不向排序节点服务284提交事务。如果客户端应用想要将该事务提交给排序节点服务284以更新分类账,则该应用确定在提交之前是否已经满足了指定的背书策略(即,该事务所必需的所有对等方节点是否背书了该事务)。这里,客户端可以仅包括事务的多方中的一方。在这种情况下,每个客户端可以具有它们自己的背书节点,并且每个背书节点将需要背书该事务。该架构使得即使应用选择不检查响应或以其他方式转发未背书的事务,背书策略仍将由对等方实施并在提交验证阶段得到支持。
在成功检查之后,在步骤293中,客户端260将背书聚集到事务中,并在事务消息内将事务提议和响应广播到排序节点284。事务可以包含读取/写入集合、背书对等方签名和通道ID。排序节点284不需要检查事务的整个内容以便执行其操作。相反,排序节点284可以简单地从网络中的所有通道接收事务,按通道按时间顺序对它们排序,并且按通道创建事务的区块。
事务的区块在通道上从排序节点284被递送到所有对等方节点281-283。区块内的事务294被验证,以确保满足任何背书策略,并且确保自从由事务执行生成读取集合以来,没有对读取集合变量的分类账状态的改变。区块中的事务被标记为有效或无效。此外,在步骤295,每个对等方节点281-283将区块附加到通道的链,并且针对每个有效事务,写入集合被提交到当前状态数据库。事件被发出以通知客户端应用该事务(调用)已被不可变地附加到链中,以及通知该事务是有效还是无效。
图3A示出了经许可的区块链网络300的示例,其特征在于分布式、去中心化对等方架构。在该示例中,区块链用户302可向经许可的区块链304发起事务。在该示例中,事务可以是部署、调用或查询,并且可以通过利用SDK的客户端侧应用、直接通过API等来发出。网络可以提供对诸如审计者的监管机构306的访问。区块链网络运营商308管理成员许可,诸如将监管机构306注册为“审计者”并且将区块链用户302注册为“客户端”。审计者可以被限制为仅查询分类账,而客户端可以被授权部署、调用和查询某些类型的链码。
区块链开发者310可以编写链码和客户端应用。区块链开发者310可通过接口直接将链码部署到网络。为了在链码中包括来自传统数据源312的凭证,开发者310可以使用带外连接来访问数据。在该示例中,区块链用户302通过对等方节点314连接到经许可的区块链304。在进行任何事务之前,对等方节点314从管理用户角色和许可的证书授权机构316检索用户的登记和事务证书。在一些情况下,区块链用户必须拥有这些数字证书以便在经许可的区块链304上进行事务。同时,试图利用链码的用户可能需要验证他们在传统数据源312上的凭证。为了确认用户的授权,链码可以通过传统处理平台318来使用到该数据的带外连接。
图3B示出了许可的区块链网络320的另一示例,其特征在于分布式、去中心化对等方系结构。在该示例中,区块链用户322可向许可的区块链324提交事务。在该示例中,事务可以是部署、调用或查询,并且可以通过利用SDK的客户端侧应用、直接通过API等来发出。网络可以提供对诸如审计者的监管机构326的访问。区块链网络运营商328管理成员许可,诸如将监管机构326登记为“审计者”并且将区块链用户322登记为“客户端”。审计者可以被限制为仅查询分类账,而客户端可以被授权部署、调用和查询某些类型的链码。
区块链开发者330编写链码和客户端应用。区块链开发者330可通过接口将链码直接部署到网络。为了在链码中包括来自传统数据源332的凭证,开发者330可使用带外连接来访问数据。在该示例中,区块链用户322通过对等方节点334连接到网络。在进行任何事务之前,对等方节点334从证书授权机构336检索用户的登记和事务证书。在一些情况下,区块链用户必须拥有这些数字证书以便在经许可的区块链324上进行事务。同时,试图使用链码的用户可能需要验证他们在传统数据源332上的证书。为了确认用户的授权,链码可以通过传统处理平台338来使用到该数据的带外连接。
在一些实施方式中,本文的区块链可以是无许可的区块链。与需要许可加入的经许可的区块链相反,任何人都可以加入无许可的区块链。例如,为了加入无许可的区块链,用户可以通过提交事务并因此向分类账添加条目来创建个人地址并开始与网络交互。另外,所有各方都可以选择在系统上运行节点并采用挖掘协议来帮助验证事务。
图3C示出了由包括多个节点354的无许可区块链352处理的事务的过程350。发送者356期望经由无许可区块链352向接收者358发送支付或一些其他形式的价值(例如,契约、医疗记录、合同、货物、服务、或能够被封装在数字记录中的任何其他资产)。在一个实施例中,发送者设备356和接收方设备358中的每一个可以具有提供用户界面控制和事务参数显示的数字钱包(与区块链352相关联)。作为响应,事务在整个区块链352中被广播到节点354。取决于区块链352的网络参数,节点基于由无许可区块链352的创建者建立的规则(其可以是预先限定的或动态分配的)来验证360事务。例如,这可以包括验证所涉及各方的身份等。可以立即验证事务,或者可以将其与其他事务一起放入队列中,并且节点354基于网络规则集合来确定事务是否有效。
在结构362中,有效事务被形成为区块并利用锁(散列)来密封。该过程可以由节点354中的挖掘节点来执行。挖掘节点可利用专用于挖掘和创建无许可区块链352的区块的附加软件。每个区块可以由使用网络商定的算法创建的散列(例如,256位的数字等)来标识。每个区块可以包括报头、指向链中先前区块的报头的散列的指针或参考、以及一组有效事务。对先前区块的散列的参考与安全独立区块链的创建相关联。
在区块可被添加到区块链之前,必须验证这些区块。对无许可区块链352的验证可包括作为从区块的报头导出的谜题的解的工作证明(PoW)。尽管在图3C的示例中未示出,但是用于验证区块的另一过程是权益证明。与工作证明不同,其中算法奖励解决数学问题的挖掘者,利用权益证明,根据其财富以确定性方式选择新区块的创建者,也被定义为“权益”。然后,由所选择/挑选的节点执行类似的证明。
通过挖掘364,节点试图通过对一个变量进行递增改变来求解该区块,直到该解满足网络范围目标。这创建了PoW,从而确保正确的应答。换句话说,潜在的解决方案必须证明在解决问题时计算资源被耗尽。在某些类型的无许可区块链中,挖掘者可因正确挖掘区块而被奖励价值(例如,币等)。
这里,除了区块的链接之外,PoW过程使得区块链的修改极其困难,因为攻击者必须修改所有后续区块以便接受一个区块的修改。此外,随着新区块被开采,修改区块的难度增加,并且后续区块的数目增加。通过分发366,成功验证的区块通过无许可区块链352分发,并且所有节点354将区块添加到多数链,其是无许可区块链352的可审计分类账。此外,由发送者356提交的事务中的值被存放或以其他方式转移到接收者设备358的数字钱包。
图4是示出了三个事务的基本区块链序列400的框图。第一区块包含第一报头410a和构成第一区块的第一组事务420a。区块报头包含先前区块的报头的散列412a和默克尔根414a。默克尔根414a是作为区块链网络中的区块的一部分的所有事务的所有散列的散列,其确保在对等方之间传递的数据区块是完整的、未损坏的和未改变的。第二区块包含第二报头410b和构成第二区块的第二组事务420b。该区块的报头包含先前区块的报头410a的散列412b和默克尔根414b。第三区块包含第三报头410c和构成第三区块的第三组事务420c。区块报头包含先前区块的报头410b的散列412c和默克尔根414c。区块的数目可以扩展到任何可行的长度,并且可以相对容易地检查/验证散列值。
图5A示出了根据示例实施例的包括被配置为执行各种操作的物理基础设施510的示例系统500。参考图5A,物理基础设施510包括模块512和模块514。模块514包括区块链520和智能合同530(其可驻留在区块链520上),其可执行包括在任何示例实施例中的任何操作步骤508(在模块512中)。步骤/操作508可以包括所描述或描绘的一个或多个实施例,并且可以表示从一个或多个智能合同530和/或区块链520写入或读取的输出或写入信息。物理基础设施510、模块512和模块514可以包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。此外,模块512和模块514可以是相同的模块。
图5B示出了被配置为执行根据示例实施例的各种操作的另一示例系统540。参考图5B,系统540包括模块512和模块514。模块514包括区块链520和智能合同530(其可驻留在区块链520上),其可执行包括在任何示例实施例中的任何操作步骤508(在模块512中)。步骤/操作508可以包括所描述或描绘的一个或多个实施例,并且可以表示从一个或多个智能合同530和/或区块链520写入或读取的输出或写入信息。物理模块512和模块514可以包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。此外,模块512和模块514可以是相同的模块。
图5C图示了根据示例实施例的被配置成利用订立合同方之间的智能合同配置和被配置成在区块链上实施智能合同条款的中间服务器的示例系统。参考图5C,配置550可以表示通信会话、资产转移会话、或者由智能合同530驱动的过程或程序,其明确地标识一个或多个用户设备552和/或556。智能合同执行的执行、操作和结果可以由服务器554管理。智能合同530的内容可能需要由作为智能合同事务各方的实体552和556中的一个或多个进行数字签名。智能合同执行的结果可作为区块链事务被写入区块链520。智能合同530驻留在区块链520上,其可以驻留在一个或多个计算机、服务器、处理器、存储器和/或无线通信设备上。
图5D示出了根据示例实施例的包括区块链的系统560。参考图5D的示例,应用编程接口(API)网关562提供用于访问区块链逻辑(例如,智能合同530或其他链码)和数据(例如,分布式分类账等)的公共接口。在该示例中,API网关562是用于通过将一个或多个实体552和556连接到区块链对等方(即,服务器554)来在区块链上执行事务(调用、查询等)的公共接口。这里,服务器554是区块链网络对等组件,其持有世界状态的副本和分布式分类账,分布式分类账允许客户端552和556查询关于世界状态的数据以及将事务提交到区块链网络中,其中,取决于智能合同530和背书策略,背书对等方将运行智能合同530。
上述实施例可以以硬件、由处理器执行的计算机程序、固件或上述组合来实现。计算机程序可以被包含在计算机可读介质上,例如存储介质。例如,计算机程序可以驻留在随机存取存储器(“RAM”)、闪存、只读存储器(“ROM”)、可擦除可编程只读存储器(“EPROM”)、电可擦除可编程只读存储器(“EEPROM”)、寄存器、硬盘、可移动磁盘、光盘只读存储器(“CD-ROM”)或本领域已知的任何其他形式的存储介质中。
示例存储介质可耦合到处理器,使得处理器可从存储介质读取信息并向存储介质写入信息。在替代方案中,存储媒体可与处理器成一体式。处理器和存储介质可以驻留在专用集成电路(“ASIC”)中。在替代方案中,处理器和存储媒体可作为离散组件而驻存。
图6A图示了根据示例实施例的新区块被添加到分布式分类账620的过程600,并且图6B图示了根据示例实施例的用于区块链的新数据区块结构630的内容。新数据区块630可以包含文档链接数据。
参照图6A,客户端(未示出)可向区块链节点611、612和/或613提交事务。客户端可以是从任何源接收的指令,以在区块链620上制定活动。作为示例,客户端可以是代表请求者(例如设备、人或实体)行动以提议针对区块链的事务的应用。多个区块链对等方(例如,区块链节点611、612和613)可维护区块链网络的状态和分布式分类账620的副本。在区块链网络中可以存在不同类型的区块链节点/对等方,包括为模拟并背书由客户端提出的事务的对等方背书,以及将验证背书、验证事务并提交事务的对等方委托给分布式分类账620。在该示例中,区块链节点611、612和613可执行背书者节点、提交者节点或两者的角色。
分布式分类账620包括在区块中存储不可改变的、按次序排列的记录的区块链以及维护区块链622的当前状态的状态数据库624(当前世界状态)。每个通道可以存在一个分布式分类账620,并且每个对等方为其成员的每个通道维护其自己的分布式分类账620的副本。区块链622是事务日志,其被构造为散列链接的区块,其中每个区块包含N个事务的序列。区块可以包括各种组件,例如图6B中所示。可以通过在当前区块的区块报头内添加先前区块的报头的散列来产生区块的链接(图6A中的箭头所示)。以此方式,区块链622上的所有事务被排序并被加密地链接在一起,从而防止篡改区块链数据而不破坏散列链接。此外,由于这些链接,区块链622中的最新区块表示在其之前到来的每个事务。区块链622可被存储在支持仅附加区块链工作负载的对等文件系统(本地或附接的存储)上。
区块链622和分布式分类账622的当前状态可以被存储在状态数据库624中。这里,当前状态数据表示区块链622的链事务日志中曾经包括的所有密钥的最新值。链码调用针对状态数据库624中的当前状态执行事务。为了使这些链码交互非常高效,所有密钥的最新值被存储在状态数据库624中。状态数据库624可包括区块链622的事务日志中的索引视图。因此,它可以在任何时候从链中重新生成。在接受事务之前,状态数据库624可以在对等方启动时自动恢复(或者如果需要的话生成)。
背书节点从客户端接收事务并基于模拟结果背书该事务。背书节点持有模拟事务提议的智能合同。当背书节点背书事务时,背书节点创建事务背书,事务背书是从背书节点到客户端应用的指示模拟事务的背书的经签名的响应。背书事务的方法取决于背书策略,该背书策略可以在链码内指定。背书政策的一个例子是“背书对等方中的大多数必须背书该事务”。不同的通道可以具有不同的背书策略。背书事务由客户端应用转发给排序服务610。
排序服务610接受背书的事务,将它们排序成区块,并将这些区块传递给提交对等方。例如,当达到事务的阈值、定时器超时或另一条件时,排序服务610可启动新区块。在图6A的示例中,区块链节点612是已经接收到用于存储在区块链620上的新数据区块630的提交对等方。区块链中的第一个区块可以被称为创世(genesis)区块,创世区块包括关于区块链、其成员、存储在其中的数据等的信息。
排序服务610可以由排序者集群组成。排序服务610不处理事务、智能合同或维护共享分类账。相反,排序服务610可以接受经背书的事务,并且指定将这些事务提交给分布式分类账620的顺序。区块链网络的架构可被设计成使得“排序”的特定实现(例如,Solo、Kafka、BFT等)变为可插件式组件。
事务被以一致的顺序写入分布式分类账620。建立事务的顺序以确保当将对状态数据库624的更新提交给网络时它们是有效的。与通过密码谜题的求解或挖掘进行排序的加密货币区块链系统(例如,虚拟货币等)不同,在该示例中,分布式分类账620的各方可以选择最适合该网络的排序机制。
当排序服务610初始化新数据区块630时,新数据区块630可被广播到提交对等方(例如,区块链节点611、612和613)。作为响应,每个提交对等方通过检查以确保读取集合和写入集合仍然匹配状态数据库624中的当前世界状态来确认新数据区块630内的事务。特别地,提交对等方可以确定在背书者模拟事务时存在的读取数据是否与状态数据库624中的当前世界状态相同。当提交对等方确认事务时,事务被写入分布式分类账620上的区块链622,并且利用来自读取-写入集合的写入数据更新状态数据库624。如果事务失败,即,如果提交对等方发现读取-写入集合不匹配状态数据库624中的当前世界状态,则排序成区块的事务将仍然包括在该区块中,但是它将被标记为无效,并且状态数据库624将不被更新。
参考图6B,存储在分布式分类账620的区块链622上的新数据区块630(也被称为数据区块)可以包括多个数据分段,诸如区块报头640、区块数据650和区块元数据660。应当理解,各种所示的区块及其内容,诸如新数据区块630及其内容。图6B中所示的仅仅是示例,并不意味着限制示例实施例的范围。新数据区块630可以将N个事务(例如,1、10、100、500、1000、2000、3000个等)的事务信息存储在区块数据650内。新数据区块630还可包括到区块报头640内的(例如,图6A中的区块链622上的)先前区块的链接。特别地,区块报头640可以包括先前区块报头的散列。区块报头640还可包括唯一的区块编号、新数据区块630的区块数据650的散列等。新数据区块630的区块编号可以是唯一的,并且以各种顺序分配,例如从零开始的递增/连续的顺序。
区块数据650可以存储记录在新数据区块630中的每个事务的事务信息。例如,事务数据可以包括事务类型、版本、时间戳、分布式分类账620的通道ID、事务ID、时期、有效负载可见性、链码路径(部署tx)、链码名称、链码版本、输入(链码和函数)、诸如公钥和证书的客户端(创建者)标识、客户端的签名、背书者的标识、背书者签名、提议散列、链码事件、响应状态、命名空间、读取集合(由事务读取的密钥和版本的列表等)、写入集合(密钥和值的列表等)、开始密钥、结束密钥、密钥的列表、默克尔树查询摘要等中的一个或多个。可以为N个事务中的每一个存储事务数据。
在一些实施例中,区块数据650还可以存储向区块链622中的散列链接的区块链添加附加信息的新数据662。附加信息包括本文描述或描绘的步骤、特征、过程和/或动作中的一个或多个。因此,新数据662可以被存储在分布式分类账620上的区块的不可变日志中。存储此新数据662的益处中的一些反映于本文所公开和描绘的各种实施例中。尽管在图6B中,新数据662被描绘在区块数据650中,但是也可以位于区块报头640或区块元数据660中。新数据662可包括被用于链接组织内的文档的组合密钥。
区块元数据660可以存储元数据的多个字段(例如,作为字节数组等)。元数据字段可以包括对区块创建的签名、对最后配置区块的参考、标识区块内的有效和无效事务的事务过滤器、对区块进行排序的排序服务的最后偏移量持久保存等等。签名、最后配置区块和排序者元数据可以由排序服务610添加。同时,区块的提交者(诸如区块链节点612)可基于背书策略、读取/写入集合的验证等来添加有效性/无效性信息。事务过滤器可以包括大小等于区块数据650中的事务数目的字节数组和标识事务是有效还是无效的验证码。
图6C示出了根据本文描述的实施例的用于数字内容的区块链670的实施例。数字内容可以包括一个或多个文件和相关联的信息。文件可以包括媒体、图像、视频、音频、文本、链接、图形、动画、网页、文档或其他形式的数字内容。区块链的不可变的、仅附加的方面用作保护数字内容的完整性、有效性和真实性的安全措施,使其适合用于法律程序,其中应用了容许性规则或考虑了证据或数字信息的呈现和使用是另外感兴趣的其他设置。在这种情况下,数字内容可以被称为数字证据。
区块链可以以各种方式形成。在一个实施例中,数字内容可以被包括在区块链本身中并且从区块链本身访问。例如,区块链的每个区块可以存储参考信息的散列值(例如,报头、值等)以及相关联的数字内容。然后,可以一起加密散列值和相关联的数字内容。因此,每个区块的数字内容可以通过解密区块链中的每个区块来访问,并且每个区块的散列值可以用作参考先前区块的基础。这可以如下说明:
在一个实施例中,数字内容可以不包括在区块链中。例如,区块链可以存储每个区块的内容的加密散列而没有任何数字内容。数字内容可以存储在与原始文件的散列值相关联的另一存储区域或存储器地址中。另一存储区域可以是用于存储区块链的相同存储设备,或者可以是不同的存储区域,或者甚至是单独的关系数据库。可以通过获得或查询感兴趣的区块的散列值,然后在存储区域中查找具有与实际数字内容相对应地存储的值,来参考或访问每个区块的数字内容。例如,可以由数据库看门人来执行该操作。这可以如下说明:
在图6C的示例实施例中,区块链670包括以有序序列密码链接的多个区块6781、6782、…678N,其中N≥1。用于链接区块6781、6782、…678N的加密可以是多个密钥或非密钥散列函数中的任何一个。在一个实施例中,区块6781、6782、…678N服从散列函数,该散列函数从基于区块中的信息的输入产生n位字母数字输出(其中n是256或另一数字)。这种散列函数的示例包括但不限于SHA型(SHA代表安全散列算法)算法、默克尔-达姆加德(Merkle-Damagard)算法、HAIFA算法、默克尔树算法、基于随机数的算法和非抗冲突PRF算法。在另一实施例中,区块6781、6782、…、678N可以通过不同于散列函数的函数来密码链接。为了说明的目的,以下描述是参考散列函数,例如SHA-2来进行的。
区块链中的区块6781、6782、…、678N中的每一个包括报头、文件的版本和值。作为区块链中的散列的结果,报头和值对于每个区块是不同的。在一个实施例中,该值可以被包括在报头中。如以下更详细地描述的,文件的版本可以是原始文件或原始文件的不同版本。
区块链的第一个区块6781被称为创世区块,并且包括报头6721、原始文件6741和初始值6761。用于创世区块并且实际上在所有后续区块中的散列方案可以变化。例如,第一个区块6781中的所有信息可以一起并且一次被散列,或者第一个区块6781中的信息的每一个或一部分可以被单独地散列,然后可以执行单独散列的部分的散列。
报头6721可包括一个或多个初始参数,其例如可包括版本号、时间戳、随机数、根信息、难度等级、共识协议、持续时间、媒体格式、源、描述性关键字和/或与原始文件6741和/或区块链相关联的其他信息。报头6721可自动生成(例如,通过区块链网络管理软件)或由区块链参与者手动生成。与其他区块6782到678N中的报头不同,创世区块的报头6721不参考先前区块,仅因为不存在先前区块。
创世区块的原始文件6741可以是例如在设备被包括在区块链中之前,经过或未经过处理的设备所捕获的数据。原始文件6741通过系统的接口从设备、媒体源或节点接收。原始文件6741与元数据相关联,该元数据例如可以由用户、设备和/或系统处理器手动或自动生成。元数据可以被包括在与原始文件6781相关联的第一区块6741中。
创世区块中的值6761是基于原始文件6741的一个或多个唯一属性生成的初始值。在一个实施例中,一个或多个唯一属性可以包括原始文件6741的散列值、原始文件6741的元数据、以及与文件相关联的其他信息。在一个实现中,初始值6761可以基于以下唯一属性:
1)SHA-2计算的原始文件的散列值
2)发起设备ID
3)原始文件的开始时间戳
4)原始文件的初始存储位置
5)用于软件的区块链网络成员ID
区块链中的其他区块6782至678N也具有报头、文件和值。然而,与第一个区块6721不同,报头6722至672N中的每一个其他区块包括紧接在前的区块的散列值。紧接在前的区块的散列值可以仅仅是先前区块的报头的散列,或者可以是整个先前区块的散列值。通过将先前区块的散列值包括在每个剩余区块中,可以在逐区块的基础上执行从第N个区块回到创世区块(以及相关联的原始文件)的跟踪,如箭头680所示,以建立可审计且不可变的监管链。
其他区块中的报头6722至672N中的每一个还可包括其他信息,例如版本号、时间戳、随机数、根信息、难度等级、共识协议和/或通常与相应文件和/或区块链相关联的其他参数或信息。
其他区块中的文件6742至674N可以等于原始文件,或者可以是创世区块中原始文件的修改版本,这取决于例如所执行的处理的类型。所执行的处理的类型可在区块与区块之间变化。处理可以涉及例如对在前区块中的文件的任何修改,诸如编辑信息或以其他方式改变文件的内容、从文件中取走信息、或向文件添加或附加信息。
附加地或备选地,处理可仅涉及从在前区块复制文件、改变文件的存储位置、从一个或多个在前区块分析文件、将文件从一个存储或存储器位置移动到另一个存储或存储器位置、或相对于区块链的文件和/或其相关联的元数据执行动作。涉及分析文件的处理可以包括例如附加、包括或者关联各种分析、统计或与文件相关联的其他信息。
其他区块中的其他区块6762至676N中的每一个中的值是唯一值,并且由于执行的处理而全部不同。例如,任何一个区块中的值对应于先前区块中的值的更新版本。更新反映在被分配了值的区块的散列中。因此,区块的值提供了在区块中执行了什么处理的指示,并且还允许跟踪通过区块链回到原始文件。该跟踪确认了文件在整个区块链中的监管链。
例如,考虑其中在先前区块中的文件的部分被编辑、遮挡或像素化以便保护文件中所示的人的身份的情况。在这种情况下,包括编校文件的区块将包括与编校文件相关联的元数据,例如,编校是如何执行的、谁执行了编校、编校发生的时间戳等。元数据可以被散列以形成该值。因为该区块的元数据不同于被散列以形成先前区区块中的值的信息,所以这些值彼此不同并且可以在解密时被恢复。
在一个实施例中,当以下中的任何一个或多个发生时,可以更新先前区块的值(例如,计算的新的散列值)以形成当前区块的值。在该示例实施例中,可以通过对下面提到的信息的全部或一部分进行散列来计算新的散列值。
a)如果文件已经以任何方式被处理(例如,如果文件被编校、复制、更改、访问、或采取了某一其他动作),新的SHA-2计算的散列值
b)文件的新存储位置
c)所标识的与文件相关联的新元数据
d)从一个区块链参与者到另一区块链参与者的对文件的访问或控制的转移
图6D示出了区块的实施例,其可以表示根据一个实施例的区块链690中的区块的结构。区块i包括报头672i、文件674i和值676i
报头672i包括先前区块i-1的散列值和附加参考信息,该附加参考信息例如可以是本文所讨论的任何类型的信息(例如,包括参考、特性、参数等的报头信息)。所有区块参考先前区块的散列,当然除了创世区块之外。先前区块的散列值可以仅仅是先前区块中的报头的散列,或者是先前区块中的全部或部分信息的散列,包括文件和元数据。
文件674i包括多个数据,例如顺序的数据1、数据2、…、数据N。数据被标记有描述与数据相关联的内容和/或特性的元数据1、元数据2、…、元数据N。例如,每个数据的元数据可以包括指示数据的时间戳、处理数据、指示数据中描绘的人或其他内容的关键词和/或可以有助于建立文件作为整体的有效性和内容的其他特征,并且特别是其使用数字证据的信息,例如,如结合下文讨论的实施例所描述的。除了元数据之外,每个数据可以用到先前数据的参考REF1、REF2、…、REFN-1来标记,以防止文件中的篡改、间隙以及通过文件的顺序参考。
一旦元数据被分配给数据(例如,通过智能合同),元数据在散列没有改变的情况下不能被更改,这可以容易地被标识以用于无效。因此,元数据创建了可以被访问以供区块链中的参与者使用的信息的数据日志。
值676i为基于先前讨论的任何类型的信息计算的散列值或其他值。例如,对于任何给定区块i,可以更新该区块的值以反映针对该区块执行的处理,例如,新的散列值、新的存储位置、关联文件的新的元数据、控制或访问的转移、标识符、或要添加的其他动作或信息。尽管每个区块中的值被示为与文件和报头的数据的元数据分开,但是在另一实施例中,该值可以部分或全部基于该元数据。
一旦形成了区块链670,在任何时间点,通过向区块链查询跨区块的值的事务历史,可以获得文件的不可改变的监管链。该查询或跟踪过程可以开始于解密最当前包括的区块(例如,最后(第N个)区块)的值,然后继续解密其他区块的值,直到到达创世区块并且恢复原始文件。解密也可涉及解密每个区块中的报头和文件以及相关联的元数据。
基于在每个区块中发生的加密类型来执行解密。这可以涉及私钥、公钥或公钥-私钥对的使用。例如,当使用非对称加密时,区块链参与者或网络中的处理器可使用预定算法生成公钥和私钥对。公钥和私钥通过某种数学关系彼此相关联。公钥可以被公开分发以用作从其他用户接收消息的地址,例如IP地址或家庭地址。私钥保持秘密并且用于对发送到其他区块链参与者的消息进行数字签名。签名被包括在消息中,以便接收者可以使用发送者的公钥来验证。这样,接收者可以确信只有发送者可以发送该消息。
生成密钥对可类似于在区块链上创建账户,但不必实际上在任何地方注册。而且,在区块链上执行的每个事务由发送者使用其私钥来数字地背书。该签名确保只有账户的所有者能够跟踪和处理(如果在由智能合同确定的许可范围内)区块链的文件。
图7A和7B示出了可结合和用于本文的区块链的使用情况的另外的示例。特别地,图7A示出了存储机器学习(人工智能)数据的区块链710的示例700。机器学习依赖于大量的历史数据(或训练数据)来构建用于对新数据进行准确预测的预测模型。机器学习软件(例如,神经网络等)通常可以筛选数百万条记录以找出非直观模式。
在图7A的示例中,主机平台720建立和部署用于资产730的预测监控的机器学习模型。这里,主机平台720可以是云平台、工业服务器、web服务器、个人计算机、用户设备等。资产730可以是任何类型的资产(例如,机器或设备等),诸如飞机、机车、涡轮机、医疗机械和设备、油气设备、船、舰、车辆等。作为另一个例子,资产730可以是非有形资产,例如股票、货币、数字币、保险等。
区块链710可以用于显著地改进机器学习模型的训练过程702和基于经训练的机器学习模型的预测过程704。例如,在702中,历史数据可以由资产730自身(或通过介质,未示出)存储在区块链710上,而不是要求数据科学家/工程师或其他用户来收集数据。这可显著减少主机平台720在执行预测模型训练时所需的收集时间。例如,使用智能合同,数据可以直接且可靠地从其原产地直接传递到区块链710。通过使用区块链710来确保所收集的数据的安全性和所有权,智能合同可以直接将数据从资产发送到使用该数据来构建机器学习模型的个体。这允许在资产730之间共享数据。
所收集的数据可基于共识机制被存储在区块链710中。共识机制拉取(许可节点)以确保正被记录的数据被验证和准确。记录的数据是时间标记的、密码签名的和不可变的。因此,它是可审计的、透明的和安全的。在某些情况下(即,供应链、保健、物流等),添加直接向区块链写入的IoT设备可以增加被记录的数据的频率和准确性。
此外,在所收集的数据上训练机器学习模型可以由主机平台720进行若干轮细化和测试。每轮可以基于附加数据或先前未被考虑以帮助扩展机器学习模型的知识的数据。在702中,不同的训练和测试步骤(以及与其相关联的数据)可由主机平台720存储在区块链710上。机器学习模型的每个细化(例如,变量、权重等的改变)可被存储在区块链710上。这提供了模型如何被训练以及什么数据被用于训练模型的可验证的证明。此外,当主机平台720已经实现最终训练的模型时,所得模型可被存储在区块链710上。
在已经训练了模型之后,可以将其部署到现场环境,在现场环境中,可以基于最终训练的机器学习模型的执行来进行预测/决策。例如,在704中,机器学习模型可以用于诸如飞机、风力涡轮机、保健机器等资产的基于条件的维护(CBM)。在该示例中,从资产730反馈的数据可以被输入机器学习模型,并且被用于进行事件预测,诸如故障事件、错误代码等。通过在主机平台720处执行机器学习模型所做出的确定可以被存储在区块链710上以提供可审计/可验证的证据。作为一个非限制性示例,机器学习模型可预测资产730的一部分的未来故障/失败,并且创建替换该部分的警报或通知。该决定背后的数据可由主机平台720存储在区块链710上。在一个实施例中,本文描述和/或描绘的特征和/或动作可以在区块链710上或相对于其发生。
区块链的新事务可被一起聚集到新的区块中并被添加到现有的散列值。然后,对其进行加密,以创建用于新区块的新散列。当对事务进行加密时,将其添加到下一个事务列表,等等。结果是每个都包含所有在前区块的散列值的一连串的区块。存储这些区块的计算机定期比较它们的散列值以确保它们都一致。任何不同意的计算机都丢弃引起问题的记录。这种方法对于确保区块链的防篡改是有益的,但它不是完美的。
博弈该系统的一种方式是不诚实的用户改变他们喜爱的事务列表,但是保持散列不变。这可以通过暴力来完成,换句话说,通过改变记录、加密结果、以及查看散列值是否相同来完成。如果不是,则反复地尝试直到找到匹配的散列。区块链的安全性基于这样的信念,即普通计算机仅能在完全不切实际的时间尺度上,诸如宇宙年龄上执行这种暴力攻击。相反,量子计算机快得多(快1000倍),因此造成大得多的威胁。
图7B示出了量子安全区块链752的示例750,其实现量子密钥分发(QKD)以防止量子计算攻击。在该示例中,区块链用户可使用QKD验证彼此的身份。这使用诸如光子的量子粒子发送信息,窃听者在不破坏量子粒子的情况下不能复制该量子粒子。这样,发送者和接收者通过区块链可以确信彼此的身份。
在图7B的示例中,存在四个用户754、756、758和760。每对用户可以在他们自己之间共享秘密密钥762(即,QKD)。由于在该示例中存在四个节点,因此存在六对节点,并且因此使用了六个不同的密钥762,包括QKDAB、QKDAC、QKDAD、QKDBC、QKDBD和QKDCD。每对可以通过使用诸如光子的量子粒子发送信息来创建QKD,窃听者在不破坏QKD的情况下不能复制QKD。这样,一对用户可以确信彼此的身份。
区块链752的操作基于两个过程(i)事务的创建,以及(ii)聚集新事务的区块的构造。可以类似于传统的区块链网络创建新的事务。每个事务可以包含关于发送者、接收者、创建时间、要转移的金额(或价值)、证明发送者具有用于操作的资金的参考事务的列表等的信息。然后,将该事务记录发送到所有其他节点,在所有其他节点中,该事务记录被输入未确认事务池。这里,两方(即,来自754-760中的一对用户)通过提供他们的共享秘密密钥762(QKD)来验证事务。该量子签名可以被附加到每个事务,使得极难篡改它。每个节点检查其关于区块链752的本地副本的条目,以验证每个事务具有足够的资金。然而,事务还没有被确认。
不是对区块执行传统的挖掘过程,而是可以使用广播协议以去中心化的方式创建区块。在预定的时间段(例如,几秒、几分钟、几小时等),网络可以将广播协议应用于任何未确认的事务,从而实现关于事务的正确版本的拜占庭协定(共识)。例如,每个节点可以拥有私有值(该特定节点的事务数据)。在第一轮次中,节点向彼此发送它们的私有值。在随后的轮次中,节点传送它们在先前轮次中从其他节点接收的信息。这里,诚实节点能够在新的区块内创建完整的事务集合。该新区块可以被添加到区块链752。在一个实施例中,本文描述和/或描绘的特征和/或动作可以在区块链752上或相对于区块链发生。
现在参考图8,示出了根据本公开的实施例的可以用于实现本文描述的方法、工具和模块中的一个或多个以及任何相关功能(例如,使用计算机的一个或多个处理器电路或计算机处理器)的示例计算机系统800的高级框图。在一些实施例中,该计算机系统可以是如上所述的DPS 10。在一些实施例中,计算机系统800的主要组件可以包括一个或多个CPU802、存储器子系统804、终端接口812、存储接口816、I/O(输入/输出)设备接口814和网络接口818,所有这些组件可以直接或间接地通信耦合,以便经由存储器总线803、I/O总线808和I/O总线接口单元810进行组件间通信。
计算机系统800可以包含一个或多个通用可编程中央处理单元(CPU)802A、802B、802C和802D,在此一般称为CPU 802。在一些实施例中,计算机系统800可以包含相对大的系统的典型的多个处理器;然而,在其他实施例中,计算机系统800可以替代地是单CPU系统。每个CPU 802可以执行存储在存储器子系统804中的指令,并且可以包括一级或多级板载高速缓存。
系统存储器804可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)822或高速缓冲存储器824。计算机系统800还可以包括其他可移动/不可移动、易失性/非易失性计算机系统存储介质。仅作为示例,存储系统826可被提供用于从诸如“硬盘驱动器”等不可移动、非易失性磁介质中读取和向其写入。尽管未示出,但可提供用于从可移动、非易失性磁盘(例如,“软盘”)中读取和向其写入的磁盘驱动器,或可提供用于从诸如CD-ROM、DVD-ROM等可移动、非易失性光盘中读取或向其写入的光盘驱动器或其他光学介质。另外,存储器804可以包括闪存,例如,闪存棒驱动器或闪存驱动器。存储器设备可以通过一个或多个数据介质接口连接到存储器总线803。存储器804可以包括至少一个程序产品,该程序产品具有一组(例如,至少一个)程序模块,这些程序模块被配置成用于执行不同实施例的功能。
一个或多个程序/实用程序828,每个程序/实用程序具有至少一组程序模块830,可以存储在存储器804中。程序/实用程序828可包括系统管理程序(也称为虚拟机监视器)、一个或多个操作系统、一个或多个应用、其他程序模块和程序数据。操作系统、一个或多个应用、其他程序模块和程序数据或其某种组合中的每一个可包括联网环境的实现。程序828和/或程序模块830一般执行各实施例的功能或方法。
尽管存储器总线803在图8中被示为在CPU802、存储器子系统804和I/O总线接口810之间提供直接通信路径的单个总线结构,但是在一些实施例中,存储器总线803可以包括多个不同的总线或通信路径,其可以以各种形式中的任何形式来布置,诸如分层的点对点链路、星形或网状配置、多层总线、并行和冗余路径、或任何其他适当类型的配置。此外,虽然I/O总线接口810和I/O总线808被示为单个相应的单元,但是在一些实施例中,计算机系统800可以包含多个I/O总线接口单元810、多个I/O总线808或两者。此外,虽然示出了将I/O总线808与通向各种I/O设备的各种通信路径分开的多个I/O接口单元,但是在其他实施例中,一些或所有I/O设备可以直接连接到一个或多个系统I/O总线。
在一些实施例中,计算机系统800可以是多用户大型计算机系统、单用户系统、或服务器计算机或具有很少或没有直接用户接口但从其他计算机系统(客户端)接收请求的类似设备。此外,在一些实施例中,计算机系统800可以被实现为台式计算机、便携式计算机、膝上型或笔记本计算机、平板计算机、袖珍计算机、电话、智能电话、网络交换机或路由器、或任何其他适当类型的电子设备。
图8描绘了示例计算机系统800的代表性主要组件。然而,在一些实施例中,各个部件可以具有比图8中所表示的更大或更小的复杂性,可以存在不同于图8中所示的部件或除了这些部件之外的部件,并且这些部件的数量、类型和配置可以改变。
如本文更详细地讨论的,可以设想,本文描述的方法的一些实施例的一些或所有操作可以以替代顺序执行或者可以根本不执行;此外,多个操作可以同时发生或作为更大过程的内部部分发生。
最小化区块链上故障对等方的影响
在传统区块链中,客户端:a)将成功背书结果提交给排序者;以及b)丢弃失败背书(在稍后的时间重新提交事务)。区块链通过使多个对等方执行相同的事务并且还通过在对等方之间运行共识算法来保证事务处理的可靠性。已经被成功背书的事务将被记录到区块链分类账中,否则,事务将被客户端丢弃并重新发送。
区块链的设计允许其运行,尽管存在一些故障对等方。如上所述,使用诸如拜占庭容错和崩溃容错之类的技术可以提供某种级别的功能,即使当所有对等方都没有正确地工作时。例如,Hyperdicater中的背书策略仅要求五个对等方中的三个来就成功事务的执行结果达成一致。成功背书的事务被记录到区块链分类账中,但是不成功背书的事务要求客户重新发送事务。
尽管区块链共识算法允许容忍一定数目的故障对等方,而不影响区块链的正确性,但是故障对等方的存在可能对区块链网络仍然是有害的。故障对等方变得无用,并且它们的执行成为资源(计算、存储、联网等)的浪费。故障对等方可能负面地影响事务的执行,因为事务可能由于这样的对等方而连续失败,并且事务的频繁重新提交大大降低了区块链的总吞吐量。因此,以及时的方式检测故障对等方并最小化这样的故障对等方对区块链平台的负面影响将是有利的。这里描述的各种实施例利用背书结果来引导客户以更智能的方式选择背书对等方,并帮助区块链自动消除不正常对等方,直到它们回到正常为止。
在传统设计中,客户只向排序者提交成功背书结果。客户简单地丢弃失败背书,并在稍后的某个时间重新提交该事务。在这里讨论的各种实施例中,可以利用失败背书来引导客户以更智能的方式选择背书对等方,并且还帮助区块链网络自动排除不正常对等方,直到它们恢复正常。因此,这些实施例中的一个或多个可以通过最小化故障对等方的负面影响来改进现有区块链平台的功能和效率。这可以例如通过处理故障对等方来实现。在对等中发生故障的组件不仅可以是分类账/存储组件,而且还可以是其他运行时软件和硬件。
图9示出了根据一些实施例的解决故障对等方的系统900。系统900可以包括以下。如图所示,排序服务930包括多个排序者932A、932B、932C和932D。参考数字932可用于共同地或代表性地指代这些(类似的方案也可用于在其后具有字母的其他参考数字)。客户端920向排序服务930提交成功和失败的背书结果。
每个排序者932A、932B、932C和932D可以具有与其相关联的各自的背书收集器(EC)934A、934B、934C和934D,其可以作为覆盖模块提供,该覆盖模块负责收集背书结果并分析哪些对等方950已经背书失败以及哪些对等方950已经成功。EC 934可以:a)从对等方950接收背书结果(成功和失败背书);以及b)确定哪些对等方950在事务模拟中失败(失败背书对等方(FEP)以及哪些对等方950成功(成功背书对等方(SEP)。一个客户端920可以经由例如排序服务930向多个EC 934发送背书,以实现更高的可靠性。
分析器940可以是去中心化分析器,其可以聚合来自不同EC 934的背书信息,并相应地计算每个对等950的信誉。可以插入不同的算法来完成这种计算。示出该信誉计算过程的一个简单示例是每个对等方950以某一初始值的信誉得分(其可被存储在对等方数据库942的信誉中)开始,该初始值可以是例如零;成功背书可以在第一方向上修订得分,例如,向信誉得分加一,而失败背书可以在相反的第二方向上修订得分,例如,将当前信誉得分分成两半。然而,本发明不限于此,并且系统900的用户可以插入不同的算法。在一些实施例中,新添加的对等方950可以具有应用于其的默认得分。默认得分不应低于阈值,使得新对等方950最初被忽略。新对等方950在其良好执行时将逐渐获得信誉,但在其以某一频率失败时将降至阈值以下。
在此计算之后,分析器940可将对等方的信誉发送到客户端920和系统管理员910两者。分析器940可以:a)聚集来自不同EC的信息(成功对等方和失败对等方)934;b)计算每个对等方的信誉950;以及c)向客户端920以及系统管理员910发送信息——在一些实施例中,客户端920和管理员910可以接收具有不同细节水平的信息。
这里考虑关于分析器940如何确定对等方950是否已经成功背书事务的两种情形。当背书策略被满足时,对等方950中的大多数创建相同的事务模拟结果,并且因此,这些对等方950成功背书了该事务——其他对等方950未能成功背书该事务。在第二种情况下,当背书策略失败时,一些对等方950仍然可能成功地模拟了该事务,但是难以准确地确定这些对等方950中的哪些。因此,分析器940可基于对等方950的背书结果将它们分组,并根据它们的大小对对等方组进行排序。
在运行一段时间之后,对等方950可能变得饥饿(由于其先前失败的背书)。没有客户端920向该对等方950发送任何事务,因此,没有人知道该对等方950当前是否正常工作。为了防止这种情况,探测客户端960被设计为通过向这些非活动对等方950发送探测事务以用于背书,来收集关于它们的信息。该探测客户端960还可集成到分析器940中。探测客户端960可以:a)探测非活动对等方950以防止它们饥饿;以及b)从分析器940收集关于哪些对等方950是非活动的信息——非活动对等方950是尚未被任何客户端920选择用于背书的对等方。根据探测的结果,可以增加非活动对等方950的信誉得分(或者采取一些其他动作,例如将非活动对等方950一次性地添加到可用背书对等方950的列表等),从而给予其参与事务背书的另一机会。
以下内容可用于确定对等方950是否已成功背书事务。当对等方950中的大多数创建相同的传输模拟结果(这些是成功的对等方950)时,背书策略已经得到满足。对等方950中的其余对等方是故障对等方。当背书策略失败时,一些对等方950仍可能成功地模拟该事务。此处的过程是基于对等方950的背书结果对其进行分组,并基于每个组中的对等方950的数目对所得组进行排序,如上所述。这里假设较大组中的对等方950具有较高的成功事务背书的机会/比率,反之亦然。因此,在这种情况下,根据一些预定阈值和数学公式,可以针对所有对等方减少信誉,但是可以针对较大组中的对等方950减少较少信誉,而针对较小组中的对等方950减少较多信誉。
使用上述技术可允许以及时的方式检测故障对等方950,并最小化区块链平台中故障对等方950的负面影响。通过利用详细的背书结果来逐渐构建对等方950的信誉,可以提供更健康和更有效的区块链平台,其有益于客户端920和系统管理员910两者。尽管以上描述为可应用于区块链技术,但是该模型通常可应用于使用基于容错的共识的其他崩溃容错(CFT)系统,并且信誉组件可应用于任何网络。
图10是示出根据一些实施例的最小化区块链上的不正常工作的对等方的影响的过程1000的流程图。在操作1005,排序服务930接收对等方950背书结果,并且在操作1010,使用这些结果被分发到背书收集器934。在操作1015,背书收集器934确定哪些对等方950成功背书该事务(成功背书对等方(SEP))以及哪些对等方950未能背书该事务(失败背书对等方(FEP))。
可以将确定传递到去中心化分析器940,在那里它们被聚集,并且在操作1020中由计算器942确定各个对等方的信誉。在操作1025,所计算的对等方信誉得分可被发送到系统管理员910和客户端920。在操作1030,当在后续事务中寻找背书对等方950、952时,可以使用各个对等方的信誉得分。
技术应用
因此,本文公开的一个或多个实施例提供了对计算机技术的改进。例如,对数字事务分类账、其相应节点和联网互连的改进以及对它们支持的数据和事务的附加灵活性允许区块链网络的更高效和有效的实现。
计算机可读介质
本发明可以是任何可能的技术细节集成水平的系统、方法和/或计算机可读介质。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),所述计算机可读程序指令用于使处理器执行本发明的各方面。
计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、诸如上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码装置,以及上述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂态信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络,例如互联网、局域网、广域网和/或无线网络,下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据,或者以一种或多种编程语言(包括面向对象的编程语言,例如Smalltalk、C++等)和过程编程语言(例如“C”编程语言或类似的编程语言)的任意组合编写的源代码或目标代码。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或者可以连接到外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,为了执行本发明的各方面,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化。
在此参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。
这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方案中,框中所注明的功能可不按图中所注明的次序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。

Claims (20)

1.一种对区块链中的故障对等方进行寻址的方法,所述方法包括:
接收来自所述区块链中的对等方的背书结果,其中:
所述背书结果针对所述区块链中的一个或多个事务;以及
所述背书结果包括成功背书和失败背书;
向两个或更多个背书收集器分发所述成功背书和所述失败背书;确定哪些对等方是提供成功背书的成功背书对等方(SEP),以及哪些对等方是提供失败背书的失败背书对等方(FEP);
基于来自所述背书收集器的背书信息来计算针对每个对等方的信誉得分;
向客户端和系统管理员发送所述信誉得分;以及
使用所述信誉得分来确定后续事务中的对等方选择。
2.根据权利要求1所述的方法,还包括:
选择未被用于所述背书结果的一个或多个对等方;以及
利用所选择的所述一个或多个对等方来代替所述FEP用于所述后续事务。
3.根据权利要求2所述的方法,其中所述利用以所述FEP具有低于预定阈值的信誉得分为条件。
4.根据权利要求1所述的方法,还包括:
将所述SEP分组为组;以及
通过增加针对较大组中的每个对等方的所述信誉得分来细化针对每个对等方的所述信誉得分。
5.根据权利要求1所述的方法,还包括:
将所述信誉得分设置为针对新对等方的初始值;
以来自所述新对等方的成功背书为条件,在第一方向上调整所述信誉得分;以及
以来自所述新对等方的失败背书为条件,在第二并且相反的方向上调整所述信誉得分。
6.根据权利要求5所述的方法,其中:
在第一方向上对所述信誉得分的所述调整是向所述信誉得分加一;并且
在第二并且相反方向上对所述信誉得分的所述调整是将所述信誉得分分成两半。
7.根据权利要求5所述的方法,其中对所述信誉得分的所述调整由用户插件组件提供。
8.根据权利要求1所述的方法,还包括:
基于所述对等方的背书结果来对所述对等方进行分组;
基于每个组中对等方的数量来对所述组进行排序;
其中:
针对较大组中对等方的信誉的减少小于针对较小组中对等方的信誉的减少。
9.根据权利要求1所述的方法,还包括:
由探测客户端确定对等方非活动;
由所述探测客户端探测所述非活动对等方;
由探测客户端收集关于所述非活动对等方的信息;以及
取决于所收集的所述信息,修改关于所述非活动对等方的信息,以向所述非活动对等方提供参与事务背书的机会。
10.一种用于对区块链中的故障对等方进行寻址的系统,所述系统包括:
存储器;以及
处理器,被配置为:
接收来自所述区块链中的对等方的背书结果,其中:
所述背书结果针对所述区块链中的一个或多个事务;以及
所述背书结果包括成功背书和失败背书;
向两个或更多个背书收集器分发所述成功背书和所述失败背书;
确定哪些对等方是提供成功背书的成功背书对等方(SEP),以及哪些对等方是提供失败背书的失败背书对等方(FEP);
基于来自所述背书收集器的背书信息来计算针对每个对等方的信誉得分;
向客户端和系统管理员发送所述信誉得分;以及
使用所述信誉得分来确定后续事务中的对等方选择。
11.根据权利要求10所述的系统,其中所述处理器还被配置为:
选择未被用于所述背书结果的一个或多个对等方;以及
利用所选择的所述一个或多个对等方来代替所述FEP用于所述后续事务。
12.根据权利要求11所述的系统,其中所述利用以所述FEP具有低于预定阈值的信誉得分为条件。
13.根据权利要求10所述的系统,其中所述处理器还被配置为:
将所述SEP分组为组;以及
通过增加针对较大组中的每个对等方的所述信誉得分来细化针对每个对等方的所述信誉得分。
14.根据权利要求10所述的系统,其中所述处理器还被配置为:
将所述信誉得分设置为针对新对等方的初始值;
以来自所述新对等方的成功背书为条件,在第一方向上调整所述信誉得分;以及
以来自所述新对等方的失败背书为条件,在第二并且相反的方向上调整所述信誉得分。
15.根据权利要求14所述的系统,其中:
在第一方向上对所述信誉得分的所述调整是向所述信誉得分加一;并且
在第二并且相反方向上对所述信誉得分的所述调整是将所述信誉得分分成两半。
16.根据权利要求14所述的系统,还包括用户插件组件,所述信誉得分的所述调整由所述用户插件组件提供。
17.根据权利要求10所述的系统,其中所述处理器还被配置为:
基于所述对等方的背书结果来对所述对等方进行分组;以及
基于每个组中对等方的数量来对所述组进行排序;
其中:
针对较大组中的对等方的信誉的减少小于针对较小组中的对等方的信誉的减少。
18.根据权利要求10所述的系统,还包括:
探测客户端,所述探测客户端被配置为:
确定对等方非活动;
探测所述非活动对等方;
基于所述探测来收集关于所述非活动对等方的信息;以及
取决于所收集的所述信息,修改关于所述非活动对等方的信息,以向所述非活动对等方提供参与事务背书的机会。
19.一种用于对区块链中的故障对等方进行寻址的计算机程序产品,所述计算机程序产品包括:
一个或多个计算机可读存储介质,以及被共同存储在所述一个或多个计算机可读存储介质上的程序指令,所述程序指令包括用于以下操作的程序指令:
接收来自所述区块链中的对等方的背书结果,其中:
所述背书结果针对所述区块链中的一个或多个事务;以及
所述背书结果包括成功背书和失败背书;
向两个或更多个背书收集器分发所述成功背书和所述失败背书;
确定哪些对等方是提供成功背书的成功背书对等方(SEP),以及哪些对等方是提供失败背书的失败背书对等方(FEP);
基于来自所述背书收集器的背书信息来计算针对每个对等方的信誉得分;
向客户端和系统管理员发送所述信誉得分;以及
使用所述信誉得分来确定后续事务中的对等方选择。
20.根据权利要求19所述的计算机程序产品,其中所述程序指令还将所述处理器配置为:
选择未被用于所述背书结果的一个或多个对等方;
利用所选择的所述一个或多个对等方代替所述FEP用于所述后续事务,其中所述利用以所述FEP具有低于预定阈值的信誉得分为条件;
将所述SEPs分组为组;
通过增加针对较大组中的每个对等方的所述信誉得分来细化针对每个对等方的所述信誉得分;
将所述信誉得分设置为针对新对等方的初始值;
以来自所述新对等方的成功背书为条件,在第一方向上调整所述信誉得分;
以来自所述新对等方的失败背书为条件,在第二并且相反的方向上调整所述信誉得分,其中:
在第一方向上对所述信誉得分的所述调整是向所述信誉得分加一;以及
在第二并且相反方向上的所述信誉得分的所述调整是将所述信誉得分分成两半;
所述程序指令还将所述处理器配置为:
基于所述对等方的背书结果来对所述对等方进行分组;以及
基于每个组中对等方的数量来对所述组进行排序;
其中:
针对较大组中的对等方的信誉的减少小于针对较小组中的对等方的信誉的减少。
CN202180082029.7A 2020-12-07 2021-10-19 最小化故障对等方对区块链的影响 Pending CN116671092A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/113,574 US11375009B1 (en) 2020-12-07 2020-12-07 Minimizing the impact of malfunctioning peers on blockchain
US17/113,574 2020-12-07
PCT/CN2021/124581 WO2022121508A1 (en) 2020-12-07 2021-10-19 Minimizing the impact of malfunctioning peers on blockchain

Publications (1)

Publication Number Publication Date
CN116671092A true CN116671092A (zh) 2023-08-29

Family

ID=81848335

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180082029.7A Pending CN116671092A (zh) 2020-12-07 2021-10-19 最小化故障对等方对区块链的影响

Country Status (6)

Country Link
US (1) US11375009B1 (zh)
JP (1) JP2023552784A (zh)
CN (1) CN116671092A (zh)
DE (1) DE112021006331T5 (zh)
GB (1) GB2617732A (zh)
WO (1) WO2022121508A1 (zh)

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7308496B2 (en) 2001-07-31 2007-12-11 Sun Microsystems, Inc. Representing trust in distributed peer-to-peer networks
US8255975B2 (en) * 2007-09-05 2012-08-28 Intel Corporation Method and apparatus for a community-based trust
EP3029971B1 (en) * 2014-12-03 2019-04-03 Hitachi Solutions, Ltd. Method and apparatus for managing verification processing of communication messages in a communication system including a plurality of nodes
US11593892B2 (en) * 2015-03-05 2023-02-28 Kenneth Page-Romer Method and apparatus for improving generation of computerized groupings
US10063572B2 (en) * 2016-03-28 2018-08-28 Accenture Global Solutions Limited Antivirus signature distribution with distributed ledger
JP6827327B2 (ja) * 2017-01-05 2021-02-10 株式会社日立製作所 分散コンピューティングシステム
US11271800B1 (en) * 2017-11-29 2022-03-08 Syed Muhammad Sajjad Rizvi Leaderless, parallel, and topology-aware protocol for achieving consensus with recovery from failure of all nodes in a group
US11494344B2 (en) * 2018-03-06 2022-11-08 International Business Machines Corporation Customized endorsement logic for blockchain
US11429967B2 (en) * 2018-03-13 2022-08-30 Nec Corporation Mechanism for efficient validation of finality proof in lightweight distributed ledger clients
US10348505B1 (en) 2018-05-24 2019-07-09 DeepTruth, LLC Systems and techniques for validation of media data
US20200027093A1 (en) * 2018-07-18 2020-01-23 ADACTA Investments Ltd. Computer network and device for leveraging reliability and trust/social proof
US10855475B1 (en) * 2018-09-06 2020-12-01 Facebook, Inc. Systems and methods for securing data to an immutable distributed ledger
US11100090B2 (en) 2018-11-06 2021-08-24 International Business Machines Corporation Offloaded chaincode execution for a database
US11379462B2 (en) * 2019-04-05 2022-07-05 Comcast Cable Communications, Llc Systems and methods for a reputation-based consensus protocol
US11949691B2 (en) 2019-05-24 2024-04-02 International Business Machines Corporation Malicious peer identification
KR102654689B1 (ko) * 2019-05-24 2024-04-03 삼성에스디에스 주식회사 트랜잭션 실패 확률을 고려한 트랜잭션 가속 처리 장치 및 그 방법
WO2019170174A2 (en) 2019-06-27 2019-09-12 Alibaba Group Holding Limited Implementing a blockchain-based workflow
US11501291B2 (en) * 2019-08-23 2022-11-15 Anchor Labs, Inc. Cryptoasset custodial system using encrypted and distributed client keys
CN111583039B (zh) 2020-05-09 2023-05-05 江苏大学 无管理者区块链交易的安全交互方法、激励方法及交易系统
US20210021619A1 (en) * 2020-09-26 2021-01-21 Ned M. Smith Trust-based orchestration of an edge node

Also Published As

Publication number Publication date
WO2022121508A1 (en) 2022-06-16
GB2617732A (en) 2023-10-18
JP2023552784A (ja) 2023-12-19
GB202310207D0 (en) 2023-08-16
US20220182443A1 (en) 2022-06-09
DE112021006331T5 (de) 2023-10-26
US11375009B1 (en) 2022-06-28

Similar Documents

Publication Publication Date Title
US11741083B2 (en) Cross-shard private atomic commit
US11694110B2 (en) Aggregated machine learning verification for database
CN115210741B (zh) 部分有序的区块链
CN114128214B (zh) 用于配置区块链的安全层
AU2021254870B2 (en) Faster view change for blockchain
CN112084257A (zh) 有效的数据库机器学习验证
CN112084255A (zh) 机器学习应用的有效验证
CN116249999A (zh) 用于区块链网络的共识服务
CN115211093A (zh) 数据对象的有效阈值存储
WO2022017413A1 (en) Sustainable tokens for supply chain with privacy preserving protocol
CN114450708A (zh) 基于现有链码的链码推荐
US11550796B2 (en) Coexistence mediator for facilitating blockchain transactions
CN115004625A (zh) 用于区块链分类账的索引结构
US11343313B1 (en) Fault tolerant periodic leader rotation for blockchain
CN115605868A (zh) 跨网身份提供
US11379474B2 (en) Computation of containment relationships
CN115427980A (zh) 上下文完整性保持
CN114981773A (zh) 无冲突版本控制
US20210117919A1 (en) Last-mile deliver coordination
US11640392B2 (en) Blockchain endorsement agreement
US11375009B1 (en) Minimizing the impact of malfunctioning peers on blockchain
CN111984378B (zh) 数据库异常事务提交预防
US11556517B2 (en) Blockchain maintenance
US11856109B2 (en) Entity certification management

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