CN112733159A - 用于区块链的自由搭乘节点识别 - Google Patents

用于区块链的自由搭乘节点识别 Download PDF

Info

Publication number
CN112733159A
CN112733159A CN202011083747.XA CN202011083747A CN112733159A CN 112733159 A CN112733159 A CN 112733159A CN 202011083747 A CN202011083747 A CN 202011083747A CN 112733159 A CN112733159 A CN 112733159A
Authority
CN
China
Prior art keywords
blockchain
peer
system calls
transaction
free
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
CN202011083747.XA
Other languages
English (en)
Inventor
D·K·贝尔
S·森
P·A·科德斯瓦兰
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 CN112733159A publication Critical patent/CN112733159A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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/06Management of faults, events, alarms or notifications
    • 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
    • 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/1097Protocols 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • 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/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Cardiology (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本公开的实施例涉及用于区块链的自由搭乘节点识别。一个示例实施例提供了一种系统,所述系统包括一个或多个网络接口,所述网络接口被配置为收集从区块链的多个对等方节点捕获的在预定时间段期间内发生的系统调用,以及处理器,处理器被配置为执行以下动作中的一个或多个:确定所接收的与在所述预定时间段期间内执行的区块链过程相对应的系统调用中的系统调用的子集;基于在所述预定时间段期间内相对于所述自由搭乘对等方节点的系统调用的所识别的系统调用的子集,从所述多个对等方节点中检测自由搭乘对等方节点;并且存储所述自由搭乘对等方节点的指示符。

Description

用于区块链的自由搭乘节点识别
技术领域
本申请总体上涉及一种用于经由区块链存储数据的系统,并且更具体地涉及一种可以识别区块链网络内的没有如预期那样做贡献的自由搭乘(free-riding)节点的系统。
背景技术
集中式数据库在一个位置处的单个数据库(例如,数据库服务器)中存储和维护数据。集中式数据库由于其单个位置而易于管理、维护和控制,尤其是出于安全的目的。然而,集中式数据库具有显著的缺点。例如,集中式数据库具有单个故障点。因此,除了通过手动操作之外,很难从备份存储器中检索意外丢失的数据。此外,集中式数据库可能高度依赖于网络连接性。此外,集中式数据库仅在数据库仅维护数据的一个副本时才提供对数据的有限访问。
最近,组织转向区块链作为优于传统数据库的改进的存储系统。区块链提供数据冗余、无单个中央权限、多个访问节点、不可变的账本等。区块链的另一好处是要求通过背书和共识公平地批准事务。因此,不信任方可以在区块链的管理中交互和共享。特别地,这些不信任方通常管理承担诸如区块链的存储、事务的背书等角色的节点。
在区块链网络中的背书对等方节点负责在将其存储在区块链上之前验证来自客户端的事务建议。背书对等方可以接收事务建议,验证客户端签名,并执行链码功能以发起事务。如果事务成功执行,则可将建议响应连同背书签名一起发送回客户端。当客户端接收到预定数量的背书签名(例如,从至少一半背书者节点等)时,事务被批准并且将被存储在区块链上。由于计算的必要性、要维护的安全性等,背书节点通常因其角色而得到补偿。然而,在背书节点中可能存在自由搭乘节点。自由搭乘节点不执行其作为背书者的所有必需职责。故障可以不被注意(伪装)。例如,自由搭乘背书节点可以简单地发送批准签名、使用另一节点的读写集等,而不必验证所执行的工作。
因此,需要一种能够识别区块链内的自由搭乘节点并且克服这些缺点和限制的解决方案。
发明内容
一个示例实施例提供了一种系统,所述系统包括一个或多个网络接口,所述网络接口被配置为收集从区块链的多个对等方节点捕获的在预定时间段期间内发生的系统调用,以及处理器,处理器被配置为执行以下动作中的一个或多个:确定所接收的与在所述预定时间段期间内执行的区块链过程相对应的系统调用中的系统调用的子集;基于在所述预定时间段期间内相对于所述自由搭乘对等方节点的系统调用的所识别的系统调用的子集,从所述多个对等方节点中检测自由搭乘对等方节点;并且存储所述自由搭乘对等方节点的指示符。
另一个示例实施例提供了一种方法,该方法包括以下一个或多个步骤:接收从区块链的多个对等方节点捕获的在预定时间段期间内发生的系统调用;确定所接收的与在所述预定时间段期间内执行的区块链过程相对应的系统调用中的系统调用的子集;基于在所述预定时间段期间内相对于所述自由搭乘对等方节点的系统调用的所识别的系统调用的子集,从所述多个对等方节点中检测自由搭乘对等方节点;并且存储所述自由搭乘对等方节点的指示符。
另一示例实施例提供了一种包括指令的计算机可读介质,所述指令在由处理器读取时使处理器执行以下一个或多个步骤:接收从区块链的多个对等方节点捕获的在预定时间段期间内发生的系统调用;确定所接收的与在所述预定时间段期间内执行的区块链过程相对应的系统调用中的系统调用的子集;基于在所述预定时间段期间内相对于所述自由搭乘对等方节点的系统调用的所识别的系统调用的子集,从所述多个对等方节点中检测自由搭乘对等方节点;并且存储所述自由搭乘对等方节点的指示符。
附图说明
图1是示出根据示例实施例的用于识别区块链网络内的自由搭乘节点的系统的示图。
图2A是示出根据示例实施例的示例区块链架构配置的示图。
图2B是示出根据示例实施例的节点之间的区块链事务流的示图。
图3A是示出根据示例实施例的许可网络的示图。
图3B是示出根据示例实施例的另一许可网络的示图。
图3C是示出根据示例实施例的无许可网络的示图。
图4A是示出根据示例实施例的其中运行有踪迹模块的对等方节点的架构的示图。
图4B是示出根据示例实施例的从多个节点的系统调用生成系统调用图(map)的过程的示图。
图4C是示出根据示例实施例的基于系统调用图检测自由搭乘节点的过程的示图。
图5是示出根据示例性实施例的识别区块链网络内的自由搭乘节点的方法的示图。
图6A是示出根据示例实施例的配置为执行本文描述的一个或多个操作的示例系统的示图。
图6B是示出根据示例实施例的配置为执行本文描述的一个或多个操作的另一示例系统的示图。
图6C是示出根据示例实施例的配置为利用智能合约的另一示例系统的示图。
图6D是示出根据示例实施例的配置为利用区块链的又一示例系统的示图。
图7A是示出根据示例实施例的将新块添加至分布式账本的过程的示图。
图7B是示出根据示例实施例的新数据块的数据内容的示图。
图7C是示出根据示例实施例的用于数字内容的区块链。
图7D是示出根据示例实施例的可以表示区块链中块的结构的块的示图。
图8A是示出根据示例实施例的存储机器学习(人工智能)数据的示例区块链的示图。
图8B是示出根据示例实施例的示例量子安全区块链的示图。
图9是示出支持一个或多个示例实施例的示例系统的示图。
具体实施方式
将容易地理解,如本文附图的一般性描述和示出的,即时组件可以以多种不同的配置来布置和设计。因此,如附图所示,对方法、设备、非暂时性计算机可读介质和系统中的至少一个的实施例的以下详细描述并非旨在限制所要求保护的本申请的范围,而仅仅是代表所选实施例。
在整个说明书中描述的即时特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合或去除。例如,在整个说明书中短语“示例实施例”、“一些实施例”或其他类似语言的使用是指以下事实:结合该实施例描述的特定特征、结构或特性可以包括在至少一个实施例中。因此,在整个说明书中短语“示例实施例”、“在一些实施例中”、“在其他实施例中”或其他类似语言的出现不一定全部指代同一组实施例,并且在一个或多个实施例中,所描述的特征、结构或特性可以以任何合适的方式组合或去除。此外,在图中,即使所示元件之间的连接是单向或双向箭头,也可以允许单向和/或双向通信。而且,附图中描绘的任何设备可以是不同的设备。例如,如果示出了移动设备正在发送信息,则有线设备也可以用于发送信息。
另外,尽管实施例的描述中可能已经使用了术语“消息”,但是本申请可以应用于多种类型的网络和数据。此外,尽管在示例性实施例中可以描绘某些类型的连接、消息和信令,但是本申请不限于某种类型的连接、消息和信令。
示例实施例提供了识别区块链网络内的自由搭乘节点的方法、系统、组件、非暂时性计算机可读介质、设备和/或网络。
在一个实施例中,系统部署和配置作为分布式存储系统的去中心化数据库(例如,区块链),分布式存储系统包括彼此通信的多个节点。去中心化数据库包括类似于分布式账本的只能追加的不可变数据结构,能够维护互不信任的各方之间的记录。不信任方在本文中称为对等方或对等方节点。每个对等方都维护数据库记录的副本,并且在分布式对等方之间未达成共识的情况下,没有任何一个对等方可以修改数据库记录。例如,对等方可以执行共识协议以验证区块链存储事务,将存储事务分组为块,并在这些块上构建哈希链。为了保持一致性,此过程通过对存储事务进行排序(order)来形成帐本。在各种实施例中,可以使用被许可和/或无许可区块链。在公共或无许可区块链中,任何人都可以在没有特定身份的情况下参与。公共区块链可以涉及本机加密货币,并可以基于各种协议(例如工作量证明(PoW))使用共识。另一方面,被许可区块链数据库在一组拥有共同目标但彼此之间并不完全信任的实体之间提供安全的交互,例如交换资金、商品、信息等的企业。
区块链可以运行任意的、可编程的逻辑,其被调整为分散的存储方案并且被称为“智能合约”或“链码”。在某些情况下,可能存在用于管理功能和参数的专用链码,称为系统链码。应用可以进一步利用可信任的分布式应用的智能合约,利用区块链数据库的防篡改属性和节点之间的基础协议,称为背书或背书策略。与应用相关联的区块链事务可以在提交给区块链之前被“背书”,而未被背书的事务则被忽略。背书策略允许链码以背书所必需的一组对等方节点的形式指定事务的背书者。当客户将事务发送给背书策略中指定的对等方时,将执行事务以验证事务。验证之后,事务进入排序阶段,其中使用共识协议来生成分组为区块的已背书事务的有序序列。
区块链可包括配置在其中的节点,这些节点是区块链系统的通信实体。在不同类型的多个节点可以在同一物理服务器上运行的意义上来说,“节点”可以执行逻辑功能。节点在信任域中分组,并与以各种方式控制它们的逻辑实体相关联。节点可以包括不同类型,例如客户端或提交客户端节点,向签约者(例如,对等方)提交事务调用,并且将事务提议广播到排序服务(例如,排序节点)。另一类节点是对等方节点,可以接收客户提交的事务,提交事务并维护状态和区块链事务账本的副本。尽管不是必需的,对等方也可以充当背书者的角色。排序服务节点或排序者是为所有节点运行通信服务的节点,并实现交付保证,例如在提交事务和修改区块链的世界状态时向系统中的每个对等方节点广播,这是通常包含控制和设置信息的初始区块链事务的另一个名称。
区块链可包括账本,该账本是区块链的所有状态转换的有序的、防篡改的记录。状态转换可以由参与方(例如,客户端节点、排序节点、背书者节点、对等方节点等)提交的链码调用(即,事务)引起。每个参与方(例如对等方节点)都可以维护账本的副本。事务可能导致一组资产键值对作为一个或多个操作数(例如创建、更新、删除等)被提交到账本。账本包括一个区块链(也称为链),用于将不可变、有序的记录存储在块中。账本还包括一个状态数据库,用于维护区块链的当前状态。
(区块链的)链是被构造为哈希链接的块的事务日志,并且每个块包含N个事务的序列,其中N等于或大于1。块头部包括块事务的哈希值,以及前一个块头部的哈希值。以这种方式,账本上的所有事务都可以被排序并密码地链接在一起。因此,在不破坏哈希链接的情况下不可能篡改帐本数据。最近添加的区块链块的哈希表示链上之前发生的每笔事务,从而可以确保所有对等方节点处于一致且可信任的状态。链可以存储在对等方节点文件系统(即本地、附加存储、云等)上,从而有效地支持区块链工作负载的仅附加性质。
不可变账本的当前状态表示链事务日志中包括的所有密钥的最新值。由于当前状态表示通道已知的最新键值,因此有时将其称为世界状态。链码调用针对账本的当前状态数据执行事务。为了使这些链码交互有效,可以将密钥的最新值存储在状态数据库中。状态数据库可能只是链中事务日志的索引视图,因此可以随时从链中重新生成。状态数据库可以在对等方节点启动时以及在接受事务之前自动恢复(或根据需要生成)状态数据库。
根据各种实施例,未对区块链网络做出适当贡献的自由搭乘对等方节点可通过踪迹系统调用来识别。在许可的区块链网络内,可能需要对等方节点安装并执行踪迹模块,该踪迹模块捕获在背书对等方节点上运行的链码与对等方节点的操作系统之间的系统调用。同时,可信任实体(例如,区块链管理员、预先批准的对等方节点、仲裁器节点、预先批准的服务等)可执行自由搭乘检测模块(例如,链码),该自由搭乘检测模块从背书对等方节点接收系统调用。这里,可信任实体可以与存储在背书对等方节点上的可信任模块通信,以确保该节点正在运行正确的踪迹模块。
自由搭乘检测模块可以接收系统调用并识别通常在背书节点之间执行的系统调用(例如,以多数或一些其他预定量)。自由搭乘检测模块可以将系统调用图到图,并从图中识别执行背书处理所必需的系统调用的集合。基于所需系统调用的集合,自由搭乘检测模块可以(根据其自身的系统调用)识别出不执行所需系统调用中的一个或多个的背书节点,并且将该节点标记为自由搭乘节点。此外,自由搭乘检测模块可以输出警告或警报,从而提供一种捕捉自由搭乘对等方节点的机制。
区块链是复制执行系统,其中参与者的不同子集(例如,对于给定链码的背书对等方节点)在整个区块链网络上执行相同的功能。通过从所有背书对等方节点动态地收集任务计算(诸如背书)的证据,并将它们彼此进行比较,系统可以预测任何不诚实的对等方节点的不良行为。示例实施例可以在用于许可的区块链的对等即服务(PAAS)系统中实现,其中参与者被货币激励以运行对等方,以使得非对等所有者能够向许可的区块链提交和保证事务。
示例实施例的一些益处包括改善了区块链网络内的安全性和防止欺诈,尤其是基于执行的任务共享收入的许可网络。示例实施例使得即使在节点可能彼此串通(例如,一个背书对等方将其读/写集合提供给另一个背书对等方等)的情况下,也能够基于所执行(证明)的实际工作来公平地分发费用。
图1示出了根据示例实施例的用于识别区块链网络内的自由搭乘节点的系统100。参考图1,系统100包括多个背书对等方111-114,其任务是背书来自客户端(未示出)的事务。这里,背书对等方111-114中的每一个可以包括在背书过程期间执行的公共链码。因此,背书对等方111-114中的每一个应当在背书过程期间执行相同的系统调用。此外,系统100还包括仲裁器节点120。仲裁器节点120可以是另一对等方节点、区块链管理员、区块链管理者等。在一些实施例中,仲裁器节点120还可以是背书者对等方节点之一,但不是必需的。
仲裁者节点120可访问存储背书者对等方111-114背书的事务的区块链账本122,以识别背书者对等方111-114。换言之,并非区块链网络内的所有对等方节点都需要或被要求背书事务。此外,每个链码功能可以包括不同的背书者节点组。此外,客户端可以动态地选择背书者节点的子集。因此,仲裁器节点120可以确定来自更大的节点池(可能的背书者)中的哪些背书者对等方与来自区块链账本122的事务相关联,区块链账本122存储背书信息(链码、背书策略、节点识别符等)。
根据各种实施例,可以在背书者节点111-114中的每一个上安装踪迹模块,该踪迹模块捕获在预定时间段期间执行的系统踪迹调用。踪迹模块可以独立地收集由各个背书者对等方111-114执行的各个系统调用,并将所收集的系统调用转发给仲裁器节点120上实现的不良行为检测链码。仲裁节点120可以使用不良行为检测链码来构建从背书者对等方111-114中的每一个收集的系统调用的子集的系统调用图。
例如,如参考图4B的示例进一步描述的,仲裁者节点120可以基于由背书者对等方111-114独立执行的系统调用来建立每个背书者对等方111-114的共享系统调用图,并且识别哪些调用在不同的背书者对等方111-114之间相交。当预定数量的背书者对等方111-114在该时间段内执行相同的系统调用时,可以根据背书处理的需要来确定该系统调用。换句话说,由于所有背书者对等方111-114都应当执行相同的链码,因此它们应当同样正在执行相同的系统调用。因此,可以合理地推断出,如果大多数(或一些其他数量)节点执行相同的系统调用,则其与背书过程相关联。
所建立的图可以仅包括被确定为背书过程的一部分的系统调用集合。如果所有背书者对等方节点的行为适当,则这些系统调用应当由它们执行。仲裁器120可以将各个背书者对等方111-114的各个频率图中的每一个与所建立的系统调用图进行比较,以识别行为不端(不执行所有必要的调用等)的任何背书者对等方,其中所建立的系统调用图包括背书过程所需的系统调用的集合。在该示例中,背书者对等方114被识别为自由搭乘对等方,因为它没有正在执行其他背书者对等方111-113正在执行的必要的调用。警告或警报可以被输出到仲裁器节点120的显示器,以及输出到其他节点,例如背书者节点111-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-210以智能合约和相关链码的形式由具有其执行条件或其他代码单元执行。作为非限制性示例,可以创建智能合约以执行提醒、更新和/或其他更改、更新等的通知。智能合约本身可以用于识别与授权和访问要求及账本使用相关的规则。例如,读取集226可由区块链层216中包括的一个或多个处理实体(例如,虚拟机)处理。写入集228可以包括经由一个或多个智能合约处理读取集226的结果。物理基础设施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,客户端260的SDK解析应用消费的有效载荷。
作为响应,客户端260的应用检查/验证背书的对等方签名,并比较提议响应以确定提议响应是否相同。如果链码仅查询帐本,则应用将检查查询响应并通常不将事务提交至排序节点服务284。如果客户端应用打算将事务提交至排序节点服务284以更新帐本,则应用在提交之前确定指定的背书策略是否已实现(即,事务所需的所有对等方节点是否都对事务进行背书)。在此,客户端可以仅包括事务的多方之一。这种情况下,每个客户端可能有自己的背书节点,并且每个背书节点都需要对事务背书。该体系结构使得即使应用选择不检查响应或以其他方式转发未背书的事务,背书策略仍将由对等方强制执行并在提交验证阶段得到维护。
在成功检查之后,在步骤293中,客户端260将背书组装成事务,并在事务消息内向排序节点284广播事务提议和响应。事务可以包含读/写集、背书对等方签名和信道ID。排序节点284不需要为了执行其操作而检查事务的全部内容,而是排序节点284可以简单地从网络中的所有信道接收事务,将信道按时间顺序对它们进行排序并创建每个信道的事务块。
事务的块从排序节点284传递到信道上的所有对等方节点281-283。验证块内的事务294以确保满足任何背书策略并确保自事务执行生成读取集以来,读取集变量的账本状态没有变化。块中的事务被标记为有效或无效。此外,在步骤295中,每个对等方节点281-283将块附加到信道的链上,并且对于每个有效事务,将写入集提交给当前状态数据库。发出一个事件以通知客户端应用事务(调用)已被不可变地附加到链上,并通知事务是通过验证还是无效。
图3A示出了被许可区块链网络300的示例,其特征在于分布式、去中心化的对等架构。在这个例子中,区块链用户302可以发起到被许可区块链304的事务。在这个例子中,事务可以是部署、调用或查询,并且可以通过利用SDK的客户端应用直接发布。网络可以提供对诸如审计方的监管方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),它是对从块头部中得出的难题(puzzle)的解决方案。尽管在图3C的示例中未示出,但是用于验证块的另一过程是权益证明(proof-of-stake)。与工作量证明不同的是,该算法通过权益证明来奖励解决数学问题的矿工,根据其财富(也称为“权益”)以确定性方式选择新区块的创建者。然后,由选择的节点执行类似的证明。
通过挖掘364,节点尝试通过对一个变量进行增量改变来解决该块,直到解决方案满足网络范围的目标为止。这将创建PoW,从而确保正确答案。换句话说,一个潜在的解决方案必须证明在解决问题上消耗了计算资源。在某些类型的无许可区块链中,矿工可能会因正确开采块而获得价值(例如硬币等)的奖励。
这里,PoW过程连同块的链,使得对区块链的修改极其困难,因为攻击者必须修改所有随后的块以便接受对一个块的修改。此外,随着新块的挖掘,修改区块的难度增加,后续块的数量也增加。通过分发366,通过无许可的区块链352分发成功验证的块,并且所有节点354将块添加到作为无许可的区块链352的审计账本的多数链。此外,由发送方356提交的事务中的值被存入或以其他方式转移到接收方设备358的数字钱包中。
图4A示出了根据示例实施例的其中运行有踪迹收集模块406的对等方节点400的体系结构。参考图4A,特权(受保护)轨迹收集模块406可由每个对等方实现和执行,以收集从链码402和403到操作系统的系统调用的轨迹,作为在一段时间期间正确执行的证据。这里,对等方节点400可以包括用于与区块链网络集成的对等方节点软件401,以及可以被调用以访问账本数据并执行对等方节点400的任何必要的业务逻辑的链码(例如,链码402、403等)。对等方节点软件401和链码402和403可以在对等方节点400的运行时404内执行。链码402和403可向其上执行链码402和403的操作系统的操作系统内核405请求服务(系统调用)。硬件层407可包括运行对等方节点软件401、链码402和403、操作系统405以及踪迹收集模块406所需的物理组件。
根据各种实施例,踪迹收集模块406可收集由链码402和403相对于操作系统405作出的系统调用。踪迹收集模块406可以是对等方节点400上的小模块,其具有保护运行时完整性的管理程序特权,从操作系统405捕获链码信息,并在分析期间在运行时从链码402和403收集系统调用踪迹。尽管在图4A中未示出,但是硬件407可以包括硬件407内的可信平台模块,以确保操作系统的正确版本以及踪迹收集模块406正在对等方节点400上运行。
踪迹收集模块406可以与在对等方节点上运行的子系统绑定。通过使用这种绑定,踪迹收集模块406可收集由链码402和403的业务逻辑作出的所有系统调用。收集的调用可包括由链码容器做出的任何系统调用。系统调用的一些非限制性示例包括接入、告警、绑定、中断(brk)、关闭、连接、创建、投票(epoll)、fdatasync、分叉、监听、轮询、读取等,以及获取命令、设置命令等。
每个对等方上的踪迹收集模块406可独立地收集调用踪迹,并且然后在一段时间(称为一轮)之后周期性地将踪迹的加密副本提交给仲裁器节点410上执行的不良行为检测链码412。在每一轮中,踪迹收集模块406可生成用于加密踪迹的随机轮密钥。收集所收集的系统调用并对其进行加密。此外,踪迹收集模块406可以将加密的系统调用连同随机轮密钥一起传输到不良行为检测链码412(以解密加密的踪迹)。可以执行该两步骤过程,使得不良行为对等方不能查看由其他对等方提交的踪迹,并且不能将它们作为它们自己提交,这防止了Sybil攻击。
不良行为检测链码412查看每个踪迹,并创建包含关于特定对等方执行每个唯一系统调用的次数(频率)的信息的图。图4B示出了创建系统调用图430的不良行为检测链码412的一个例子。这里,四个对等方A、B、C和D是公共背书过程的一部分,并且是用于实现这种背书过程的共享链码。这里,四个对等方中的每一个上的踪迹收集模块在包括背书过程的预定时间段期间发送与从对等方A、B、C和D收集的系统调用相对应的系统调用踪迹421、422、423和424。
根据各种实施例,不良行为检测链码412可分析踪迹421、422、423及424内的系统调用,并识别哪些系统调用由预定量的对等方节点共享。例如,不良行为检测链码412可以将大多数对等方节点执行的任何系统调用识别为通过链码执行背书过程所必需的所需系统调用。不良行为检测链码412可以建立系统调用图430,其仅包括与通过对等方A-D之间的共享链码实现的背书过程相关联的系统调用集合。一旦不良行为检测链码412已经创建了系统调用图430,不良行为检测链码就可以使用系统调用图430来识别任何不执行该系统调用集合的不良行为节点。
例如,作为前一步,仲裁器410(不良行为检测链码412)可以从区块链账本识别背书者节点(对等方A-D),并且仅从那些节点接收系统调用。对于每个单独的事务集合(由一些相同的对等方集合执行),不良行为检测链码412可以建立频率图(即,每个对等方对执行该特定事务集合的所有对等方执行了多少次每个系统调用)。不良行为检测链码412可以创建多数集合,该多数集合包含由在每个频率图中执行事务的对等方A-D中的至少多数(或其他预定数量)做出的调用。该多数集合可以被称为系统调用图430。
参考图4C,不良行为检测链码412可以执行过程450,以检测是否有任何对等方未能对背书过程做出完全贡献。例如,如果系统调用图430包括由对等方做出的调用集合的真子集,则对等方一定已经执行了事务,因此是诚实的,否则它是在说谎。在该示例中,对等方A、B和C各自包括系统调用图430内的系统调用。因此,这些对等方诚实地并且完全地做出贡献。然而,因为对等方D的系统调用424错过了来自系统调用图430的系统调用432,所以对等方D被确定为是不诚实地行事(自由搭乘)。作为响应,仲裁器410可以生成警告或警报,并且将警报发送到管理设备、客户端、对等方节点等的用户接口440。此外,不良行为对等方的通知可以存储在区块链、链外存储等中。
图5示出了根据示例实施例的识别区块链网络内的自由搭乘节点的方法500。参考图5,在510,该方法可包括接收从区块链的多个对等方节点捕获的在预定时间段内发生的系统调用。例如,系统调用可以由多个对等方节点基于通常在多个对等方节点上运行的链码踪迹来独立地捕获。系统调用可以由对等方节点上的相应踪迹模块独立地检测,并被转发到诸如仲裁器之类的聚合器系统。
在520,方法可包括确定所接收的系统调用中的系统调用的子集,其对应于在预定时间段期间执行的区块链过程。例如,确定可以包括确定在预定时间段内由超过预定数量(例如,大多数等)的对等方节点执行的系统调用的子集。在一些实施例中,所述确定可以包括生成图,该图识别在系统调用中多少对等方节点执行了每个系统调用,并且基于该图识别系统调用的子集。在一些实施例中,所述识别可以包括将由大多数对等方节点执行的系统调用识别为系统调用的子集。
在530中,该方法可以包括基于在预定时间段内相对于自由搭乘对等方节点的系统调用的所识别的系统调用的子集,从所述多个对等方节点中检测自由搭乘对等方节点,并且在540中,该方法可以包括存储自由搭乘对等方节点的指示符。这里,系统可以将自由搭乘节点的系统调用图与从所有节点生成的图进行比较,并且识别一个或多个缺失的调用。在一些实施例中,该方法还可以包括响应于检测到自由搭乘对等方节点,经由用户界面生成并显示警报。在一些实施例中,检测可以包括响应于检测到自由搭乘对等方节点执行来自所识别的系统调用的子集中的系统调用的失败,检测自由搭乘对等方节点的存在。在一些实施例中,检测自由搭乘对等方节点是经由不良行为的识别链码来执行的。
图6A示出了根据示例实施例的包括配置为执行各种操作的物理基础设施610的示例系统600。参照图6A,物理基础设施610包括模块612和模块614。模块614包括区块链620和智能合约630(可以驻留在区块链620上),可以执行包括在任何示例实施例中包括的任何操作步骤608(模块612中)。步骤/操作608可以包括描述的一个或多个实施例,并且可以表示从一个或多个智能合约630和/或区块链620写入或读取的输出或写入信息。物理基础设施610、模块612和模块614可以包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。此外,模块612和模块614可以是相同的模块。
图6B示出了根据示例实施例的配置为执行各种操作的另一示例系统640。参照图6B,系统640包括模块612和模块614。模块614包括区块链620和智能合约630(可以位于区块链620上),可以执行在示例实施例中包括的任何操作步骤608(模块612中)。步骤/操作608可以包括描述的一个或多个实施例,并且可以表示从一个或多个智能合约630和/或区块链620写入或读取的输出或写入信息。物理基础设施610、模块612和模块614可以包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。此外,模块612和模块614可以是相同的模块。
图6C示出了根据示例实施例的配置为利用缔约方之间的智能合约配置的示例系统以及配置为在区块链上强制执行智能合约条款的中介服务器。参照图6C,配置650可以表示由智能合约630驱动的通信会话、资产转移会话或过程,智能合约630明确地识别一个或多个用户设备652和/或656。智能合约执行的结果可以由服务器654管理。智能合约630的内容可能需要由作为智能合约事务当事方的实体652和656中的一个或多个的数字签名。智能合约执行的结果可以作为区块链事务被写入区块链620。智能合约630驻留在区块链620上,区块链620可以驻留在一个或多个计算机、服务器、处理器、存储器和/或无线通信设备上。
图6D示出了根据示例实施例的包括区块链的系统660。参照图6D的示例,应用编程接口(API)网关662提供用于访问区块链逻辑(例如,智能合约630或其他链码)和数据(例如,分布式账本等)的公共接口。在该示例中,API网关662是用于通过将一个或多个实体652和656连接到区块链对等方(即服务器654)来在区块链上执行事务(调用、查询等)的公共接口。在此,服务器654是区块链网络对等组件,持有世界状态的副本和分布式帐本,允许客户端652和656查询有关世界状态的数据并将事务提交到区块链网络中,其中具体取决于智能合约630和背书策略,背书对等方将运行智能合约630。
以上实施例可以以硬件、处理器执行的计算机程序、固件或上述的组合来实现。计算机程序可以体现在诸如存储介质的计算机可读介质上,例如,计算机程序可以驻留在随机存取存储器(“RAM”)、闪存、只读存储器(“ROM”)、可擦可编程只读存储器(“EPROM”)、电可擦可编程只读存储器(“EEPROM”)、寄存器、硬盘、可移动磁盘、光盘只读存储器(“CD-ROM”)或本领域已知的任何其他形式的存储介质。
示例性存储介质可以被耦合到处理器,使得处理器可以从该存储介质读取信息,并且可以向该存储介质写入信息。或者,存储介质可以与处理器集成在一起。处理器和存储介质可以驻留在专用集成电路(“ASIC”)中。在替代方案中,处理器和存储介质可作为分立组件驻留。
图7A示出了根据示例实施例的用于将新块添加至分布式账本720的过程700,并且图7B示出了根据示例实施例的用于区块链的新数据块结构730的内容。参照图7A,客户端(未示出)可以向区块链节点711、712和/或713提交事务。客户端可以是从任何来源接收的用于在区块链720上制定活动的指令。作为示例,客户端可以是代表请求者(例如设备、个人或实体)为区块链提出事务的应用。多个区块链对等方(例如,区块链节点711、712和713)可以维持区块链网络的状态和分布式账本720的副本。在区块链网络中可以存在不同类型的区块链节点/对等方,包括对客户端提出的事务进行模拟并背书的背书对等方和验证背书、验证事务并将事务提交到分布式账本720的提交对等方。在此示例中,区块链节点711、712和713可以充当背书者节点,提交者节点或两者兼有的角色。
分布式帐本720包括以块为单位存储不可变的、顺序记录的区块链以及保持区块链722当前状态的状态数据库724(当前世界状态)。每个信道可以存在一个分布式帐本720,并且每个对等方为其所属的每个信道维护各自的分布式账本720的副本。区块链722是事务日志,被构造为哈希链接的块,其中每个块包含N个事务的序列。块可包括图7B所示的各种组件。块的链接(图7A中的箭头所示)可以通过在当前块的块头部中添加先前块头部的哈希值来生成。以这种方式,对区块链722上的所有事务进行排序并将其密码链接在一起,以防止在不破坏哈希链接的情况下篡改区块链数据。此外由于链接,区块链722中的最新块代表在其之前的每个事务。区块链722可以存储在对等文件系统(本地或附加存储)上,对等文件系统支持仅追加的区块链工作负载。
区块链722的当前状态和分布式账本722可以存储在状态数据库724中。这里,当前状态数据表示区块链722的链事务日志中曾经包括的所有密钥的最新值。链码调用针对状态数据库724中的当前状态执行事务。为了使这些链码交互非常高效,所有密钥的最新值都存储在状态数据库724中。状态数据库724可以将索引视图包含到区块链722的事务日志中,因此可以随时从链中重新生成。状态数据库724可以在接受事务之前在对等方启动时自动恢复(或在需要时生成)。
背书节点从客户端接收事务,并基于模拟结果对事务背书。背书节点持有模拟事务提议的智能合约。当背书节点对事务背书时,背书节点创建作为从背书节点到客户端应用的签名响应的事务背书,指示模拟事务的背书。对事务背书的方法取决于可以在链码中指定的背书策略。背书策略的一个示例是“大多数背书对等方必须对事务背书”。不同的信道可能有不同的背书策略。客户端应用将背书的事务转发到排序服务710。
排序服务710接受已背书的事务,将其排序为一个块,并将这些块传递给提交对等方。例如,当已经达到事务的阈值、计时器超时或其他条件时,排序服务710可以发起新的块。在图7A的示例中,区块链节点712是已经接收到新数据新数据块730以用于存储在区块链720上的提交对等方。区块链中的第一块可以被称为起源块,包括关于区块链、其成员、存储在其中的数据等的信息。
排序服务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(也称为数据块)可以包括多个数据段,例如块头部740、块数据750和块元数据760。应该理解,图7B中所示的描绘的各种块及其内容,例如新数据块730及其内容仅是示例,并不意味着限制示例实施例的范围。新数据块730可以在块数据750内存储N个事务(例如,1、10、100、500、1000、2000、3000等)的事务信息。新数据块730还可以包括:链接到块头部740内的先前块(例如,在图7A中的区块链722上)。特别地,块头部740可包括先前块头部的哈希。块头部740还可以包括唯一的块号,新数据块730的块数据750的哈希等等。新数据块730的块号可以是唯一的,并且可以以各种顺序分配,例如从零开始的增量/顺序。
块数据750可以存储记录在新数据块730内的每个事务的事务信息。例如,事务数据可以包括以下一种或多种:事务的类型、版本、时间戳、分布式帐本720的信道ID、事务ID、时期、有效载荷可见性、链码路径(部署TX)、链码名称、链码版本、输入(链码和功能)、客户端(创建者)等识别公钥和证书、客户签名、背书者的身份、背书者签名、提议哈希、链码事件、响应状态、名称空间、读取集(事务记录读取的密钥和版本等)、写入设置(键和值的列表等)、开始键、结束键、键列表、默克尔树查询摘要等。可以针对N个事务中的每一个存储事务数据。
块元数据760可以存储元数据的多个字段(例如,作为字节阵列等)。元数据字段可以包括在块创建时的签名、对最后一个配置块的引用、识别块内有效事务和无效事务的事务过滤器、对块进行排序的排序服务的最后偏移持续时间等。签名、最后的配置块和排序者元数据可以由排序服务710添加。同时,块的提交者(例如区块链节点712)可以基于背书策略,读取/写入集的验证等来添加有效性/无效性信息。事务过滤器可以包括大小等于块数据750中事务数量的字节阵列和识别事务是否有效/无效的验证码。
图7C示出了根据本文描述实施例的用于数字内容的区块链770的实施例。数字内容可以包括一个或多个文件和相关信息。文件可以包括媒体、图像、视频、音频、文本、链接、图形、动画、网页、文档或其他形式的数字内容。区块链不可变、仅追加的方面可作为保护数字内容的完整性、有效性和真实性的保障,使其适用于适用可受理性规则的法律程序中,或在考虑证据的情况下或在其他方面希望展示和使用数字信息的其他场合。在这种情况下,数字内容可以被称为数字证据。
区块链可以以各种方式形成。在一个实施例中,数字内容可以被包括在区块链中并且可以从其本身访问。例如,区块链的每个块可以沿着相关联的数字内容存储参考信息的哈希值(例如,头部、值等)。然后可以将哈希值和关联的数字内容一起加密。因此,可以通过解密区块链中的每个块来访问每个块的数字内容,并且每个块的哈希值可以用作参考先前块的基础。可以说明如下:
Figure BDA0002719620940000241
在一个实施例中,数字内容可以不包括在区块链中。例如,区块链可以存储每个块的内容的加密哈希而无需任何数字内容。数字内容可以与原始文件的哈希值相关联地存储在另一存储区域或存储器地址中。其他存储区域可以是用于存储区块链的相同存储设备,也可以是不同的存储区域,甚至是单独的关系数据库。可以通过获得或查询感兴趣的块的哈希值,然后在与实际数字内容相对应地存储的存储区域中查找具有值的值来引用或访问每个块的数字内容。例如,可以执行数据库网守(gatekeeper)。可以说明如下:
Figure BDA0002719620940000242
在图7C的示例实施例中,区块链770包括多个以有序序列密码链接的块7781、7782、...、778N,其中N≥1。用于链接块7781、7782、...、778N的加密可以是许多键控或非键控哈希函数中的任何一个。在一个实施例中,对块7781、7782、...、778N用哈希函数进行处理,哈希函数基于块中的信息从输入产生n位字母数字输出(其中n是256或另一个数字)。此类哈希函数的示例包括但不限于SHA型(SHA代表安全哈希算法)算法、Merkle-Damgard算法、HAIFA算法、Merkle-tree算法、基于随机数的算法和非防碰撞PRF算法。在另一个实施例中,可以通过与哈希函数不同的函数来密码地链接块7781、7782、…、778N。为了说明的目的,参考诸如SHA-2的哈希函数进行以下描述。
区块链中的每个块7781、7782、...、778N包括头部、文件版本和值。由于区块链中的哈希运算,每个块的头部和值都不同。在一个实施例中,该值可以被包括在头部中。如下面更详细描述的,文件的版本可以是原始文件或原始文件的不同版本。
区块链中的第一个块7781被称为起源块并包括头部7721、原始文件7741和初始值7761。用于起源块以及实际上在所有后续块中的哈希方案可以变化。例如,可以将第一块7781中的所有信息一次哈希在一起,或者可以分别对第一块7781中的每个信息或一部分信息进行哈希处理,然后可以对分别哈希的部分进行哈希处理。
头部7721可以包括一个或多个初始参数,例如,可以包括版本号、时间戳、随机数、根信息、难度级别、共识协议、持续时间、媒体格式、源、描述性关键字和/或与原始文件7741和/或区块链相关的其他信息。头部7721可以自动地(例如,通过区块链网络管理软件)生成,或者可以由区块链参与者手动生成。与区块链中其他区块7782至778N中的头部不同,起源区块中的头部7721并不引用先前的区块,仅仅是因为没有先前的区块。
起源块中的原始文件7741可以是例如由设备捕获的数据,在将设备包括在区块链中之前对其进行处理或不进行处理。通过系统的接口从设备、媒体源或节点接收原始文件7741。原始文件7741与元数据相关联,例如,元数据可以由用户、设备和/或系统处理器手动或自动生成。元数据可以与原始文件7741相关联地包括在第一块7781中。
起源块中的值7761是基于原始文件7741的一个或多个唯一属性生成的初始值。在一个实施例中,一个或多个唯一属性可包括原始文件7741的哈希值、原始文件7741的元数据以及与该文件相关联的其他信息在一种实施方式中,初始值7761可以基于以下唯一属性:
1)SHA-2计算原始文件的哈希值
2)始发设备ID
3)原始文件的开始时间戳
4)原始文件的初始存储位置
5)用于当前控制原始文件和相关元数据的软件的区块链网络成员ID
区块链中的其他块7782至778N也具有头部、文件和值。然而,与第一块7721不同,其他块中的头部7722至772N中的每一个均包括紧接在前的块的哈希值。前一个块的哈希值可以只是前一个块的头部的哈希,也可以是整个前一个块的哈希值。通过在剩余的每个块中包括前一个块的哈希值,可以逐个块地从第N个块返回到起源块(以及关联的原始文件),如箭头所示780,建立可审计且不可改变的监管链。
其他块中的头部7722至772N中的每个还可以包括其他信息,例如版本号、时间戳、随机数、根信息、难度级别、共识协议和/或其他参数或与对应文件相关联的信息和/或一般的区块链。
其他块中的文件7742至774N可以等于原始文件,或者可以是起源块中原始文件的修改版本,例如,取决于执行的处理类型。所执行的处理类型可能因块而异。处理可以包括例如在先前的块中对文件的任何修改,诸如编辑信息或以其他方式改变文件的内容、从文件中取走信息或向文件添加或附加信息。
附加地或可替代地,处理可以包括仅从先前的块复制文件、改变文件的存储位置、从一个或多个先前的块分析文件、将文件从一个存储或存储器位置移动到另一位置或相对于区块链文件和/或其关联的元数据执行操作。涉及分析文件的处理可以包括例如附加,包括或以其他方式关联与文件相关联的各种分析、统计或其他信息。
其他块中的每个其他块7762至776N中的值是唯一值,并且由于执行的处理而全都不同。例如,任何一个块中的值都对应于前一个块中值的更新版本。更新反映在为其分配了值的块的哈希中。因此,块的值提供了对在块中执行了哪些处理的指示,并且还允许通过区块链追溯回到原始文件。这种踪迹确认了整个区块链中文件的托管链。
例如,考虑对前一个块中的文件的部分进行编辑、屏蔽或像素化以保护文件中显示的人的身份的情况。在这种情况下,包括已编辑文件的块将包括与已编辑文件相关联的元数据,例如,如何执行编辑、执行编辑的人员、进行编辑的时间戳等。可对元数据进行哈希处理以形成值。由于该块的元数据与经过哈希处理以形成前一个块中的值的信息不同,因此这些值互不相同,并且在解密时可以恢复。
在一个实施例中,当以下任何一个或多个发生时,可以更新前一个块的值(例如,计算新的哈希值)以形成当前块的值。在该示例实施例中,可以通过对以下所述的全部或部分信息进行哈希处理来计算新的哈希值。
a)新SHA-2计算的哈希值,如果以任何方式处理文件(例如,如果文件已被编辑、复制、更改、访问或已采取其他措施)
b)文件的新存储位置
c)确定与文件相关联的新元数据
d)将文件的访问或控制权从一个区块链参与者转移到另一个区块链参与者
图7D示出了根据一个实施例的可以表示区块链790中块的结构的块的实施例。块Blocki包括头部772i、文件774i和值776i
头部772i包括先前块Blockii-1的哈希值和附加参考信息,附加信息例如可以是本文讨论的信息的任何类型(例如,头部信息包括参考、特征、参数等)。当然,除起源块外,所有块均引用前一个块的哈希。前一个块的哈希值可以仅仅是前一个块头部的哈希,也可以是前一个块中所有或部分信息的哈希,包括文件和元数据。
文件774i依次包括多个数据,例如数据1、数据2、…、数据N。数据用元数据元数据1、元数据2、…、元数据N标记,这些元数据描述了与数据关联的内容和/或特征。例如,每个数据的元数据可以包括指示数据时间戳、处理数据、指示人物或数据中描述的人或其他内容的关键字,和/或可能有助于确定整个文件的有效性和内容,尤其是使用数字证据的其他特征,例如,如以下讨论的实施例所描述的。除元数据外,每个数据都可以使用参考REF1、REF2、…、REFN标记到先前的数据以防止篡改、文件中的空白以及通过文件的顺序参考。
一旦将元数据分配给数据(例如,通过智能合约),就不能在不改变哈希的情况下改变元数据,可以容易地将其识别为无效。因此,元数据创建信息的数据日志,供区块链中的参与者访问以供使用。
值776i是哈希值或基于先前讨论的任何类型的信息计算出的其他值。例如,对于任何给定的块Blocki,可以对该块的值进行更新以反映对该块执行的处理,例如,新的哈希值、新的存储位置、关联文件的新元数据、控制权或访问权的转移、识别符或其他要添加的操作或信息。尽管示出了每个块中的值与用于文件和头部的数据的元数据分离,但是在另一实施例中,该值可以部分或全部基于该元数据。
一旦形成区块链770,在任何时间点,可以通过向区块链查询跨块的值的事务历史来获得文件的不可变的托管链。查询或踪迹过程可以从解密当前包括的块的值(例如,最后(第N个)块)开始,然后继续解密其他块的值,直到达到起源块并恢复原始文件为止。解密还可以包括在每个块解密头部和文件以及相关联的元数据。
基于在每个块中发生的加密的类型来执行解密。这可能涉及私钥、公钥或公钥-私钥对的使用。例如,当使用非对称加密时,网络中的区块链参与者或处理器可以使用预定算法来生成公钥和私钥对。公钥和私钥通过某种数学关系相互关联。可以公开分配公钥,以用作从其他用户接收消息的地址,例如,IP地址或家庭地址。私钥是保密的,用于对发送给其他区块链参与者的消息进行数字签名。签名包含在消息中,以便收件人可以使用发件人的公钥进行验证。这样,收件人可以确定只有发件人可以发送此消息。
生成密钥对可以类似于在区块链上创建账户,但是不必实际在任何地方进行注册。此外,发送者使用私钥对在区块链上执行的每个事务进行数字签名。签名可确保只有帐户所有者才能踪迹和处理(如果在智能合约确定的许可范围内)区块链文件。
图8A和8B示出了可以在此处合并和使用的区块链用例的其他示例。特别地,图8A示出了存储机器学习(人工智能)数据的区块链810的示例800。机器学习依靠大量的历史数据(或训练数据)来建立预测模型以对新数据进行准确的预测。机器学习软件(例如神经网络等)通常可以筛选数百万条记录以挖掘非直观模式。
在图8A的示例中,主机平台820构建并部署用于资产830的预测监视的机器学习模型。这里,主机平台820可以是云平台、工业服务器、Web服务器、个人计算机、用户设备等。资产830可以是任何类型的资产(例如,机器或设备等),例如飞机、机车、涡轮机、医疗机械和设备、石油和天然气设备、船、轮船、车辆等。作为另一示例,资产830可以是非有形资产,例如股票、货币、数字硬币、保险等。
区块链810可以用于显着改善机器学习模型的训练过程802和基于训练的机器学习模型的预测过程804。例如,在802中,不是由数据科学家/工程师或其他用户来收集数据,而是可以由资产830本身(或通过中介,未示出)将历史数据存储在区块链810上。这可以显着减少当执行预测模型训练时主机平台820需要的收集时间。例如,使用智能合约,可以直接且可靠地将数据直接从其来源地点直接传输到区块链810。通过使用区块链810以确保所收集数据的安全性和所有权,智能合约可以直接从智能合约发送数据。使用这些数据来构建机器学习模型的个人资产。这允许在资产830之间共享数据。
可以基于共识机制将收集的数据存储在区块链810中。共识机制引入(允许的节点)以确保所记录的数据得到验证并准确。记录的数据带有时间戳、加密签名并且是不可变的。因此,它是可审计、透明和安全的。在某些情况下(例如供应链、医疗保健、物流等),添加直接写入区块链的IoT设备可以提高记录数据的频率和准确性。
此外,通过主机平台820对收集的数据进行机器学习模型的训练可以进行几轮改进和测试。每轮都可以基于附加数据或先前未被认为有助于扩展机器学习模型知识的数据。在802中,主机平台820可以将不同的训练和测试步骤(以及与其相关联的数据)存储在区块链810上。机器学习模型的每个细化(例如,变量、权重等的改变)可以存储在区块链810上。这提供了关于如何训练模型以及使用哪些数据训练模型的可验证证据。此外,当主机平台820已经获得最终训练的模型时,所得模型可以存储在区块链810上。
在训练了模型之后,可以将其部署到实际环境中,可以基于最终训练后的机器学习模型的执行来做出预测/决策。例如,在804中,机器学习模型可以用于诸如飞机、风力涡轮机、医疗保健机器等的资产的基于状况的维护(CBM)。在该示例中,可以将从资产830反馈的数据输入机器学习模型,并用于进行事件预测,例如故障事件、错误代码等。通过在主机平台820执行机器学习模型而做出的确定可以存储在区块链810上以提供可审计/可验证的证据。作为一个非限制性示例,机器学习模型可以预测资产830的一部分的未来故障/错误,并创建警报或通知以替换该部分。该决定背后的数据可以由主机平台820存储在区块链810上。在一个实施例中,本文描述和/或描绘的特征和/或动作可以在区块链810上或相对于区块链810发生。
可以将用于区块链的新事务一起收集到一个新块中,并添加到现有的哈希值中。然后将其加密以为新块创建一个新的哈希。加密后添加到下一个事务列表中,依此类推。结果是一个块链,每个块都包含所有先前块的哈希值。存储这些块的计算机会定期比较其哈希值以确保它们都一致。任何不同意的计算机都将丢弃导致问题的记录。这种方法对于确保区块链的防篡改很有用,但并不是完美的。
游戏该系统的一种方法是让不诚实的用户以他们的喜好更改事务列表,但是要保持哈希值不变。这可以通过蛮力来完成,换句话说,可以通过更改记录、加密结果以及查看哈希值是否相同来实现。如果没有,则一次又一次尝试,直到找到匹配的哈希值为止。区块链的安全性是基于这样的信念,即普通计算机只能在完全不切实际的时间范围内(例如宇宙的年龄)执行这种暴力攻击。相比之下,量子计算机要快得多(快几千倍),因此构成更大的威胁。
图8B示出了量子安全区块链852的示例850,实现量子密钥分配(QKD)以保护免受量子计算攻击。在此示例中,区块链用户可以使用QKD来验证彼此的身份。它使用诸如光子之类的量子粒子发送信息,如果不破坏它们,窃听者就无法复制它们。这样,通过区块链的发送者和接收者可以确保彼此的身份。
在图8B的示例中,存在854、856、858和860四个用户。成对的用户中的每一个可以在他们之间共享秘密密钥862(即QKD)。由于在此示例中存在四个节点,因此存在六对节点,因此使用了六个不同的私钥862,包括QKDAB,QKDAC,QKDAD,QKDBC,QKDBD和QKDCD。每对都可以通过使用量子粒子(例如光子)发送信息来创建QKD,如果不破坏它们,窃听者就无法复制它们。这样,一对用户就可以确定彼此的身份。
区块链852的操作基于两个过程(i)创建事务,和(ii)构建聚合新事务的区块。可以创建类似于传统区块链网络的新事务。每个事务可以包含有关发送者、接收者、创建时间、要转移的金额(或价值)、证明发送者有足够的操作资金的参考事务列表等信息。然后将此事务记录发送到所有其他节点,并将其输入未确认事务池中。在此,两方(即,854-860中的一对用户)通过提供他们的共享密钥862(QKD)来认证事务。该量子签名可以附加到每笔事务中,因此很难进行篡改。每个节点相对于区块链852的本地副本检查其条目,以验证每个事务具有足够的资金。但是,事务尚未确认。
不是在块上执行传统的挖掘过程,而是可以使用广播协议以分散的方式创建块。在预定的时间段(例如,秒、分钟、小时等),网络可以将广播协议应用于任何未确认的事务,从而实现关于事务的正确版本的拜占庭协议(共识)。例如,每个节点可能拥有私有值(该特定节点的事务数据)。在第一轮中,节点之间相互传递私有值。在随后的回合中,节点将它们在上一回合中从其他节点接收到的信息进行通信。在这里,诚实节点能够在新区块内创建完整的事务集。新块可以被添加到区块链852。在一个实施例中,本文描述和/或描绘的特征和/或动作可以在区块链852上或相对于区块链852发生。
图9示出了支持本文描述和/或描绘的一个或多个示例实施例的示例系统900。系统900包括计算机系统/服务器902,可与许多其他通用或专用计算系统环境或配置一起操作。可能适用于计算机系统/服务器902的众所周知的计算系统、环境和/或配置的示例包括但不限于个人计算机系统、服务器计算机系统、瘦客户端、胖客户端、手持或便携式设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机系统、大型计算机系统以及包括上述任何系统或设备的分布式云计算环境,等等。
可在由计算机系统执行的计算机系统可执行指令(例如程序模块)的一般上下文中描述计算机系统/服务器902。通常,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。可以在分布式云计算环境中实践计算机系统/服务器902,在分布式云计算环境中,任务由通过通信网络链接的远程处理设备执行。在分布式云计算环境中,程序模块可以位于包括内存存储设备的本地和远程计算机系统存储介质中。
如图9所示,以通用计算设备的形式示出了云计算节点900中的计算机系统/服务器902。计算机系统/服务器902的组件可以包括但不限于一个或多个处理器或处理单元904、系统存储器906以及将包括系统存储器906的各种系统组件耦合到处理器904的总线。
总线表示几种类型的总线结构中的任何一种或多种,包括使用各种总线体系结构中的任何一种的存储器总线或存储器控制器、外围总线、加速图形端口以及处理器或本地总线。作为示例而非限制,此类体系结构包括行业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)本地总线和外围组件互连(PCI)总线。
计算机系统/服务器902通常包括各种计算机系统可读介质。这样的介质可以是计算机系统/服务器902可访问的任何可用介质,并且包括易失性和非易失性介质、可移动和不可移动介质。在一个实施例中,系统存储器906实现其他附图的流程图。系统存储器906可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)910和/或高速缓冲存储器912。计算机系统/服务器902可以进一步包括其他可移动/不可移动、易失性/非易失性计算机系统存储介质。仅作为示例,可以提供存储系统914以用于读取和写入不可移动的非易失性磁性介质(未示出并且通常称为“硬盘驱动器”)。尽管未示出,但是用于读取和写入可移动非易失性磁盘(例如“软盘”)的磁盘驱动器以及用于读取或写入可移动非易失性光盘的光盘驱动器可以提供CD-ROM、DVD-ROM或其他光学介质之类的磁盘。在这种情况下,每一个都可以通过一个或多个数据媒体接口连接到总线。如将在下面进一步描绘和描述的,存储器906可以包括具有一组(例如,至少一个)程序模块的至少一个程序产品,该程序模块被配置为执行本申请的各种实施例的功能。
具有一组(至少一个)程序模块918的程序/实用程序916以及操作系统、一个或多个应用程序、其他程序模块和程序数据可以通过示例而非限制的方式存储在存储器906中。操作系统、一个或多个应用程序、其他程序模块以及程序数据或它们的某种组合中的每一个可以包括联网环境的实现。程序模块918通常执行本文所述的本申请的各种实施例的功能和/或方法。
如本领域技术人员将理解的,本申请的各方面可以体现为系统、方法或计算机程序产品。因此,本申请的各方面可以采取以下形式:完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或结合了通常可以全部提及的软件和硬件方面的实施例。本文中称为“电路”、“模块”或“系统”。此外,本申请的各方面可以采取体现在其上体现有计算机可读程序代码的一个或多个计算机可读介质中体现的计算机程序产品的形式。
计算机系统/服务器902还可以与一个或多个外部设备920通信,诸如键盘、指示设备、显示器922等、使用户能够与计算机系统/服务器902交互的一个或多个设备和/或使计算机系统/服务器902与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)。这样的通信可以经由I/O接口924发生。然而,计算机系统/服务器902仍然可以通过网络适配器926与一个或多个网络通信,诸如局域网(LAN)、通用广域网(WAN)和/或公共网络(例如,Internet)。如图所示,网络适配器926通过总线与计算机系统/服务器902的其他组件进行通信。应当理解,尽管未示出,但是其他硬件和/或软件组件可以与计算机系统/服务器902结合使用。示例包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动器、阵列、RAID系统、磁带驱动器和数据档案存储系统等。
尽管在附图中示出了系统、方法和非暂时性计算机可读介质中的至少一个的示例性实施例,并且在前面的详细描述中进行了描述,但是应当理解,本申请不限于公开的实施例,而是能够进行如所附权利要求所阐述和定义的许多重新布置、修改和替换。例如,各个附图的系统的能力可以由本文描述的模块或组件中的一个或多个或以分布式架构来执行,并且可以包括发射机、接收机或两者。例如,由各个模块执行的全部或部分功能可以由这些模块中的一个或多个来执行。此外,本文描述的功能可以在模块或模块或组件内部或外部的各种时间并且与各种事件相关地执行。而且,可以经由以下各项中的至少一项在各个模块之间和/或通过多种协议发送各种模块之间发送的信息:数据网络、互联网、语音网络、互联网协议网络、无线设备、有线设备。而且,可以直接和/或经由一个或多个其他模块来发送或接收由任何模块发送或接收的消息。
本领域的技术人员将意识到,“系统”可以体现为个人计算机、服务器、控制台、个人数字助理(PDA)、手机、平板计算设备、智能手机或任何其他形式合适的计算设备或设备组合。将上述功能呈现为由“系统”执行并不旨在以任何方式限制本申请的范围,而是旨在提供许多实施例的一个示例。实际上,本文公开的方法、系统和装置可以以与计算技术一致的局部和分布式形式来实现。
应该注意的是,在本说明书中描述的一些系统特征已经作为模块呈现以便更具体地强调它们的实现独立性。例如,模块可以被实现为硬件电路,包括定制的超大规模集成电路(VLSI)电路或门阵列,诸如逻辑芯片、晶体管或其他分立组件的现成半导体。模块也可以在诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备、图形处理单元等的可编程硬件设备中实现。
模块也可以至少部分地以软件实现以由各种类型的处理器执行。所识别的可执行代码单元可以例如包括计算机指令的一个或多个物理或逻辑块,计算机指令可以例如被组织为对象、过程或功能。然而,所识别的模块的可执行文件不需要在物理上位于一起,而是可以包括存储在不同位置的不同指令,当这些指令在逻辑上结合在一起时,包括模块并实现模块的所述目的。此外,模块可以存储在计算机可读介质上,该计算机可读介质可以是例如硬盘驱动器、闪存设备、随机存取存储器(RAM)、磁带或用于存储数据的任何其他此类介质。
实际上,可执行代码的模块可以是单个或多个指令,并且甚至可以分布在多个不同的代码段上、不同的程序之间以及多个存储设备上。类似地,操作数据可以在这里在模块内被识别和示出,并且可以以任何合适的形式体现并且可以在任何合适的类型的数据结构内组织。操作数据可以作为单个数据集收集,或者可以分布在包括不同存储设备的不同位置上并且可以至少部分地仅作为系统或网络上的电子信号存在。
将容易地理解,如本文的附图中总体上描述和示出的,本申请的组件可以以多种不同的配置来布置和设计。因此,实施例的详细描述不旨在限制所要求保护的本申请的范围,而仅代表本申请的所选实施例。
本领域普通技术人员将容易地理解,可以以不同顺序的步骤和/或以与所公开的配置不同的配置的硬件元件来实践以上内容。因此,尽管已经基于这些优选实施例描述了本申请,但是对于本领域技术人员显而易见的是,某些修改、变型和替代构造将是显而易见的。
尽管已经描述了本申请的优选实施例,但是应当理解,所描述的实施例仅是示例性的,并且当考虑全部等价物和修改(例如,协议、硬件设备、软件平台等)的范围时,本申请的范围仅由所附权利要求书限定。

Claims (12)

1.一种方法,包括:
接收从区块链的多个对等方节点捕获的在预定时间段期间内发生的系统调用;
确定所接收的与在所述预定时间段期间内执行的区块链过程相对应的系统调用中的系统调用的子集;
基于在所述预定时间段期间内相对于所述自由搭乘对等方节点的系统调用的所识别的系统调用的子集,从所述多个对等方节点中检测自由搭乘对等方节点;并且
存储所述自由搭乘对等方节点的指示符。
2.如权利要求1所述的方法,其中所述系统调用是由所述多个对等方节点基于通常在所述多个对等方节点上运行的链码的踪迹来独立地捕获的。
3.如权利要求1所述的方法,其中所述确定包括确定在所述预定时间段内由多于预定数量的对等方节点执行的系统调用的子集。
4.如权利要求1所述的方法,其中所述确定包括生成图,所述图识别多少对等方节点执行了系统调用中每个系统调用,以及基于所述图来识别所述系统调用的所述子集。
5.如权利要求4所述的方法,其中所述识别包括将由大多数对等方节点执行的系统调用识别为所述系统调用的子集。
6.如权利要求1所述的方法,进一步包括响应于检测到所述自由搭乘对等方节点而经由用户界面生成并显示警报。
7.如权利要求1所述的方法,其中所述检测包括:响应于检测到所述自由搭乘对等方节点执行所识别的系统调用子集中的系统调用的失败,检测所述自由搭乘对等方节点的存在。
8.如权利要求1所述的方法,其中所述检测所述自由搭乘对等方节点是经由不良行为识别链码来执行的。
9.一种计算机系统,所述计算机系统包括:
网络接口,所述网络接口被配置为收集从区块链的多个对等方节点捕获的在预定时间段期间内发生的系统调用,以及
处理器,所述处理器被配置为:确定所接收的与在所述预定时间段期间内执行的区块链过程相对应的系统调用中的系统调用的子集;基于在所述预定时间段期间内相对于所述自由搭乘对等方节点的系统调用的所识别的系统调用的子集,从所述多个对等方节点中检测自由搭乘对等方节点;并且存储所述自由搭乘对等方节点的指示符。
10.一种计算机系统,所述计算机系统包括:
一个或多个处理器;
一个或多个计算机可读存储器;以及
存储在一个或多个计算机可读存储介质上以供一个或多个计算机处理器中的至少一个执行的程序指令,所述程序指令可由计算机的处理器执行以执行权利要求1-8之一所述的方法。
11.一种计算机程序产品,所述计算机程序产品包括:
一个或多个计算机可读存储介质;以及
存储在所述一个或多个计算机可读存储介质上的程序指令,所述程序指令可由计算机的处理器执行以执行权利要求1-8之一所述的方法。
12.一种计算机系统,所述计算机系统包括用于执行权利要求1-8之一所述的方法的各个步骤的模块。
CN202011083747.XA 2019-10-14 2020-10-12 用于区块链的自由搭乘节点识别 Pending CN112733159A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/601,563 2019-10-14
US16/601,563 US10956204B1 (en) 2019-10-14 2019-10-14 Free-riding node identification for blockchain

Publications (1)

Publication Number Publication Date
CN112733159A true CN112733159A (zh) 2021-04-30

Family

ID=74882756

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011083747.XA Pending CN112733159A (zh) 2019-10-14 2020-10-12 用于区块链的自由搭乘节点识别

Country Status (2)

Country Link
US (1) US10956204B1 (zh)
CN (1) CN112733159A (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210040569A (ko) * 2019-10-04 2021-04-14 삼성에스디에스 주식회사 블록체인 기반 데이터 관리 시스템 및 그 방법
CN114116883A (zh) * 2020-08-28 2022-03-01 京东方科技集团股份有限公司 数据管理方法、数据管理装置、区块链网络和系统
US11985143B2 (en) * 2021-04-19 2024-05-14 Mitsubishi Electric Research Laboratories, Inc. Blockchain-based accountable distributed computing system
CN113986431B (zh) * 2021-10-27 2024-02-02 武汉戴维南科技有限公司 一种机器人自动生产线可视化调试方法及系统

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7805518B1 (en) 2003-11-14 2010-09-28 The Board Of Trustees Of The Leland Stanford Junior University Method and system for reputation management in peer-to-peer networks
US20070094494A1 (en) 2005-10-26 2007-04-26 Honeywell International Inc. Defending against sybil attacks in sensor networks
US7523304B2 (en) 2005-11-22 2009-04-21 Ntt Docomo, Inc. Generation of set coverings with free riders, and generation of ordered sets of meeting points, in systems which include, but are not limited to, systems for broadcast encryption and systems for certificate revocation
US8763113B2 (en) 2005-11-28 2014-06-24 Threatmetrix Pty Ltd Method and system for processing a stream of information from a computer network using node based reputation characteristics
US20100235625A1 (en) 2009-03-13 2010-09-16 Ravi Kant Pandey Techniques and architectures for preventing sybil attacks
US8301880B2 (en) 2009-11-09 2012-10-30 Cisco Technology, Inc. Certificate enrollment with purchase to limit sybil attacks in peer-to-peer network
US9756652B2 (en) 2013-03-14 2017-09-05 Telefonaktiebolaget L M Ericsson Preventing free-riding data traffic when scheduling uplink data
US10448418B2 (en) 2015-08-18 2019-10-15 Telefonaktiebolaget Lm Ericsson (Publ) Decreasing free-riding data traffic in uplink scheduling
US10257206B2 (en) 2016-12-21 2019-04-09 International Business Machines Corporation Monitoring actions performed by a network of peer devices using a blockchain
CN107579951B (zh) * 2017-07-14 2020-06-19 创新先进技术有限公司 一种业务数据处理方法、业务处理方法及设备
US10601665B2 (en) * 2017-07-26 2020-03-24 International Business Machines Corporation Using blockchain smart contracts to manage dynamic data usage requirements
EP3662636B1 (en) 2017-08-05 2022-07-20 Proclus Technologies Limited Method and system for securing blockchain with proof-of-transactions
WO2019055290A1 (en) 2017-09-12 2019-03-21 Northwestern University BLOCK CHAIN DISTRIBUTION NETWORK
US20190108232A1 (en) 2017-10-10 2019-04-11 SyTRes LLC Systems and Methods for Reputation Verification
US11310234B2 (en) 2017-11-16 2022-04-19 International Business Machines Corporation Securing permissioned blockchain network from pseudospoofing network attacks
US10691648B2 (en) * 2018-07-03 2020-06-23 International Business Machines Corporation Controlling volatility via blockchain
WO2020056166A1 (en) * 2018-09-14 2020-03-19 Fungible, Inc. Timer management for network devices

Also Published As

Publication number Publication date
US10956204B1 (en) 2021-03-23
US20210109776A1 (en) 2021-04-15

Similar Documents

Publication Publication Date Title
CN111951003A (zh) 用于管理对用户数据的同意的认知系统
US11775556B2 (en) Faster view change for blockchain
CN115349244A (zh) 用于密码标签的存储和通信环境
US11362826B2 (en) Endorsement process for non-deterministic application
AU2021210206B2 (en) Index structure for blockchain ledger
CN112241919A (zh) 具有数据流控制的多域区块链网络
US10956204B1 (en) Free-riding node identification for blockchain
CN115211093A (zh) 数据对象的有效阈值存储
CN112084255A (zh) 机器学习应用的有效验证
US11664973B2 (en) Trust-varied relationship between blockchain networks
US11580098B2 (en) Multi-client transaction validation
US20220329436A1 (en) Token-based identity validation via blockchain
CN114450708A (zh) 基于现有链码的链码推荐
CN111881109A (zh) 数据库可合并分类账
CN112052474A (zh) 蓝光拷贝服务
KR20230005353A (ko) 탈중앙화된 데이터베이스에서 허가된 이벤팅
US20210314155A1 (en) Trusted ledger stamping
US11271742B2 (en) Decentralized secure data sharing
US20210234695A1 (en) Decentralized secure data sharing
US20210150597A1 (en) Automated invoicing
CN116361823A (zh) 用于隐私保护的区块链的选择性审计处理
US11314729B2 (en) Multi-candidate data structure for transaction validation
US11088833B1 (en) Decentralized secure data sharing
CN112019586A (zh) 用于区块链的近似哈希验证
AU2021254870B2 (en) Faster view change for blockchain

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