CN116583833A - 自审计区块链 - Google Patents

自审计区块链 Download PDF

Info

Publication number
CN116583833A
CN116583833A CN202180077642.XA CN202180077642A CN116583833A CN 116583833 A CN116583833 A CN 116583833A CN 202180077642 A CN202180077642 A CN 202180077642A CN 116583833 A CN116583833 A CN 116583833A
Authority
CN
China
Prior art keywords
imprint
stamp
message
blockchain
peer node
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
CN202180077642.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 CN116583833A publication Critical patent/CN116583833A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/002Countermeasures against attacks on cryptographic mechanisms
    • 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
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Abstract

处理器可以收集与自审计区块链的对等节点相关联的进程信息。处理器可以根据进程信息产生印记。处理器可将来自对等节点的印记与印记共识进行比较以检测错误。错误可指示对等节点已受损害。

Description

自审计区块链
背景技术
本公开一般涉及区块链存储领域,并且更具体地涉及识别该区块链内的对等节点是否已受攻击影响。
区块链网络通常建立在信任原理上。为了维护信任,由区块链网络维护的数据必须是准确的。照此,在确保维持信任的同时,识别由与区块链网络相关联的恶意活动引起的潜在错误是最重要的。
发明内容
本公开的实施例包括用于自审计区块链网络的方法、系统和计算机程序产品。处理器可以从自审计区块链中的对等节点收集进程信息。处理器可从对等节点的进程信息生成印记。处理器可以将对等节点的印记与共识(consensus)印记进行比较以检测一个或多个错误。一个或多个错误可指示对等节点已受损害。
以上概述并不旨在描述本公开的每个所示实施例或每个实现方式。
附图说明
包括在本公开中的附图被结合到说明书中并且形成说明书的一部分。它们示出了本公开的实施方式,并且与描述一起用于解释本公开的原理。附图仅说明某些实施例,而并不限制本公开。
图1A示出了根据本公开的实施方式的示例性区块链架构。
图1B示出了根据本公开的实施方式的区块链事务流程。
图2A描绘了根据本公开的实施方式的示例性自审计区块链网络。
图2B示出了根据本公开的实施方式的描绘印记生成的实施例的框图。
图2C示出了根据本公开的实施方式的描述黑客定位的实施例的框图。
图3示出了根据本公开的实施方式的用于配置自审计区块链的示例方法的流程图。
图4A示出了根据本公开的实施方式的云计算环境。
图4B示出了根据本公开的实施方式的抽象模型层。
图5示出了根据本公开的实施方式的可用于实现本文所描述的方法、工具和模块和任何相关功能中的一个或多个的示例性计算机系统的高级框图。
虽然在本文中描述的实施例适用于不同修改和替代形式,但是其细节已经通过示例在附图中示出并且将被详细描述。然而,应当理解,所描述的特定实施例不应被视为限制性的。相反,其意图是覆盖落入本公开的范围内的所有修改、等同物和替换。
具体实施方式
本公开的各方面一般涉及区块链网络安全,尤其涉及在维持对等信任的同时将区块链网络内的对等节点配置成执行自审计功能。专用区块链网络可以共享高度敏感的信息。通常,需要以任何成本保护该敏感信息,但是由于一些区块链网络(例如,基于对等的区块链网络)的性质,该敏感信息可能暴露于具有恶意意图的攻击者(例如,黑客)。由于区块链的性质,安全监控通常在对等节点的控制之外。随着区块链越来越广为人知,黑客在寻找破坏现有应用程序的方法方面变得越来越有弹性,而不是使用传统的黑客方法(例如,将病毒注入区块链服务器)。这种黑客行为非常难以检测,并且可以长时间保持未检测到。
本文描述的实施例解决了与识别对等节点是否已经危害应用(例如,黑客攻击)以及那些黑客攻击起源于何处相关联的区块链问题。虽然已经做出了识别区块链的对等节点内的黑客行为的尝试,但是这样的尝试经常要求访问由区块链维护的共享敏感信息并且降低在区块链网络中的信任。
将容易理解的是,如在本文的附图中大体描述和图示的,本发明的组件可以以各种不同的配置布置和设计。因此,如附图中表示的方法、装置、非易失性计算机可读介质和系统中的至少一个的实施方式的以下详细描述并不旨在限制所要求保护的应用的范围,而是仅仅表示所选择的实施方式。
在一个或多个实施例中,如贯穿本说明书所描述的即时特征、结构、或特性可以以任何适合的方式被组合或移除。例如,贯穿本说明书的短语“示例实施例”、“一些实施例”或其他类似语言的使用是指结合该实施例所描述的特定特征、结构或特性可以被包括在至少一个实施例中的事实。因此,贯穿本说明书出现的短语“示例实施例”、“在一些实施例中”、“在其他实施例中”或其他类似语言不一定都指同一组实施例,并且所描述的特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合或去除。此外,在图中,元件之间的任何连接可以允许单向和/或双向通信,即使所描绘的连接是单向或双向箭头。而且,在附图中描绘的任何装置可以是不同的装置。例如,如果移动设备被示为发送信息,则有线设备也可被用于发送该信息。
此外,尽管在实施方式的描述中可以使用术语“消息”,但是应用可以应用于许多类型的网络和数据。此外,尽管在示例性实施例中可以描述特定类型的连接、消息和信令,但是本申请不限于特定类型的连接、消息和信令。
本文详述了一种方法、系统和计算机程序产品,其利用自审计区块链来识别对等节点是否已被黑客攻击,以及在维持区块链网络中的信任的同时在应用(例如,进程信息)中黑客攻击或错误发生的位置。在区块链网络中继续信任是可能的,因为敏感和秘密信息能够保持机密并且没有一方(例如,组织或对等节点)负责确定另一对等节点是否已经受到黑客攻击的影响。
在一些实施例中,该方法、系统和/或计算机程序产品利用作为分布式存储系统的分散式数据库(诸如区块链),该分布式存储系统包括彼此通信的多个节点。分散式数据库包括类似于能够在互不信任方之间维护记录的分布式分类账的仅附加不可变数据结构。不可信方在本文中称为对等体或对等节点。每个对等体维护数据库记录的副本,并且在分布式对等体之间没有达成共识的情况下,没有单个对等体可以修改数据库记录。例如,对等体可执行共识协议以验证区块链存储事务,将存储事务分组成块,并在块上建立散列链。为了一致性,该进程根据需要通过排序存储事务形成分类账。
在不同实施例中,可以使用被许可和/或无许可的区块链。在公共或无权限的区块链中,任何人可在没有特定身份(例如,保留匿名性)的情况下参与。公共区块链可以涉及本地密码并且使用基于不同协议(诸如工作证明)的共识。另一方面,经许可的区块链数据库提供共享共同目标但不完全相互信任的一组实体之间的安全交互,诸如交换资金、商品、(私人)信息等的企业。
进一步,在一些实施例中,方法、系统和/或计算机程序产品可以利用操作任意的、可编程逻辑的区块链,该区块链针对分散式存储方案定制并且被称为“智能合同”或“链码”。在一些情况下,可存在被称为系统链码的管理功能和参数的专用链码。该方法、系统和/或计算机程序产品可以进一步利用智能合同,该智能合同是可信的分布式应用,其利用区块链数据库的防篡改属性和节点之间的基础协议,该协议被称为背书或背书策略。与本申请相关联的区块链事务在被提交至区块链之前可以被“背书”,而未被背书的事务被忽略。
背书策略允许链接代码以对于背书必需的对等节点集合的形式指定用于事务的背书者。当客户端将事务发送到背书策略中指定的对等体时,由对等体执行该事务,该对等体产生推测性事务结果。如果满足背书策略的足够的对等体产生相同的执行结果,则事务被视为被背书。在背书之后,事务进入排序阶段,其中使用共识协议来产生被分组成块的背书事务的有序序列。传统上使用的共识协议包括先进先出(FIFO)以及引导者和跟随者协议(例如,崩溃容错协议)。
在一些实施例中,该方法、系统和/或计算机程序产品可以利用作为区块链系统的通信实体的节点。在不同类型的多个节点可在同一物理服务器上运行的意义上,“节点”可执行逻辑功能。节点被分组在信任域中并且与以不同方式控制它们的逻辑实体相关联。节点可以包括不同类型,诸如客户端或提交-客户端节点,其向背书者(例如,对等体)提交事务调用,并且向排序服务(例如,排序者节点)广播事务建议。
另一类型的节点是对等节点,其可接收有序的客户端提交的事务(例如,从有序服务),提交事务并维持区块链事务的分类账的状态和副本。对等体也可以具有背书者的作用,尽管它不是必需的。排序服务节点或排序者是运行排序服务的节点,其接收来自客户端的背书过的事务流并且发出排序的事务流。排序服务节点为所有对等节点运行通信服务,并在提交/确认事务和修改区块链的世界状态时,实现递送保证,例如向系统中的每个对等节点广播,这是初始区块链事务的另一名称,其通常包括控制和设置信息。
在一些实施例中,所述方法、系统和/或计算机程序产品可以利用分类账,所述分类账是区块链的所有状态转换的排序、防篡改记录。状态转换可以由参与方(例如,客户端节点、排序节点、背书者节点、对等节点等)提交的链码调用(例如,事务)引起。每个参与方(诸如对等节点)可维护分类账的副本。事务可以导致一组资产关键字-值对作为一个或多个操作数被提交到分类账,诸如创建、更新、删除等。分类账包括用于在块中存储不可变的排序记录的区块链(也称为链)。分类账还包括维护区块链的当前状态的状态数据库。
在一些实施例中,在本文中描述的方法、系统和/或计算机程序产品可以利用链,该链是被结构化为散列链接的块的事务日志,并且每个块包含N个事务的序列,其中N等于或大于1。块报头包括块的事务的散列以及先前块的报头的散列。以这种方式,分类账上的所有事务可被按顺序排列和加密地链接在一起。因而,不可能篡改分类账数据而不破坏散列链接。最近添加的区块链块的散列表示在链之前已经出现的每个事务,从而使得可以确保所有对等节点都处于共识且可信的状态。该链可以存储在对等节点文件系统(例如,本地、附加存储、云等)上,从而有效地支持区块链工作负载的仅附加性质。
不可变分类账的当前状态表示包括在链事务日志中的所有键的最新值。因为当前状态表示信道已知的最新键值,所以有时将其称为世界状态。链码调用执行针对分类账的当前状态数据的事务。为了使这些链码交互有效,密钥的最新值可以存储在状态数据库中。状态数据库可以简单地是到链的事务日志中的索引视图,因此可以在任何时间从链中重新生成它。在对等节点启动时并且在接受事务之前,可以自动恢复(或者如果需要的话生成)状态数据库。
区块链与传统数据库的不同之处在于,区块链不是中央存储,而是分散的、不可变的和安全的存储,其中节点可以共享对存储中的记录的改变。区块链中固有的并且有助于实现区块链的一些属性包括但不限于本文进一步描述的不可变分类账、智能合同、安全、隐私、分散、共识、背书、可访问性等。根据各个方面,由于区块链固有且独特的不可变责任、安全、隐私、许可的分散化、智能合同的可用性、背书以及可访问性,本文所述的系统得以实现。
特别地,区块链分类账数据是不可变的,并且其提供了用于识别区块链网络中的差异的有效方法。此外,区块链中加密的使用提供安全性和建立信任。智能合同管理资产的状态以完成生命周期。示例区块链是许可分散的。因此,每个终端用户可以有它自己的分类账副本访问。区块链网络上可能有多个组织(和对等体)加入。密钥组织可以充当背书对等体,以验证智能合同执行结果、读取-设置和写入-设置。换言之,区块链固有特征提供在区块链网络中处理私有事务的高效实现。
示例实施例的益处之一是,其通过实现用于在区块链网络中处理私有事务的方法来改进计算系统的功能。通过本文所述的区块链系统,计算系统(或计算系统中的处理器)可通过提供对能力(诸如分布式分类账、对等体、加密技术、MSP、事件处理等)的访问来执行从利用区块链网络的一个或多个客户端应用接收的自审计区块链网络的功能。此外,区块链使得能够创建商业网络并且使任何用户或组织参与进来。这样,该嵌段链不仅仅是数据库。该区块链具有创建用户网络和加入/离开(on-board/off-board)组织的能力,以便以智能合同(其可与一个或多个资产相关联)的形式协作和执行服务进程。
示例实施例提供优于传统数据库的许多益处。例如,通过区块链,实施例提供了区块链固有的和唯一的不可变的责任性、安全性、隐私性、许可的分散化、智能合同的可用性、背书以及可访问性。
传统数据库不能用于实现示例实施例,因为它不将所有方带到网络上,它不创建可信协作,并且不提供对数字资产的有效存储。传统数据库不提供防篡改存储,并且不提供对所存储的数字资产的保存。因此,本文所描述的利用区块链网络的所提议的实施例不能在传统数据库中实现。
如果使用传统数据库来实现示例实施例,则示例实施例将遭受不必要的缺点,诸如搜索能力、缺乏安全性和事务速度慢。因而,示例实施例提供对于区块链网络的审计(例如,自审计)的领域/领域中的问题的特定解决方案。
现在转向图1A,示出了根据本公开的实施例的区块链架构100。在一些实施例中,区块链架构100可以包括某些区块链元件,例如,一组区块链节点102。区块链节点102可以包括一个或多个区块链节点,例如对等体104-110(这四个节点仅通过示例描绘)。这些节点参与多个活动,诸如区块链事务添加和确认进程(共识)。对等体104-110中的一个或多个可以基于背书策略来背书和/或推荐事务,并且可以为区块链架构100中的所有区块链节点102提供排序服务。区块链节点可发起区块链认证并试图写入存储在区块链层116中的区块链不可变分类账,其副本也可存储在支持物理基础设施114上。区块链配置可包括一个或多个应用124,这些应用链接到应用编程接口(API)122以访问和执行所存储的程序/应用代码120(例如,链代码、智能合同等),这些程序/应用代码可根据参与者寻求的定制配置来创建并且可维持其自己的状态、控制其自己的资产和接收外部信息。这可以被部署为事务并且经由附加到分布式分类账而被安装在所有区块链节点104-110上。
区块链基础或平台112可以包括不同层的区块链数据、服务(例如,加密信任服务、虚拟执行环境等)和支持物理计算机基础设施,所述基础设施可以用于接收和存储新事务并提供对试图访问数据条目的审计者的访问。区块链层116可以暴露接口,该接口提供对处理程序代码和参与物理基础设施114所必需的虚拟执行环境的访问。加密信任服务118可用于验证事务(诸如资产交换事务)并保持信息私有。
图1A的区块链架构100可以经由由区块链平台112暴露的一个或多个接口和提供的服务来处理和执行程序/应用代码120。代码120可以控制区块链资产。例如,代码120可以存储和传送数据,并且可以由对等体104-110以智能合同和相关联的链码的形式来执行,其中条件或其他代码元素受其执行约束。作为非限制性示例,可以创建智能合同以执行资源的转移、资源的生成等。智能合同本身可用于识别与分类账的授权和访问要求和使用相关联的规则。例如,组事务信息126可由包括在区块链层116中的一个或多个处理实体(例如,虚拟机)处理。结果128可包括多个链接的共享文档(例如,每个链接的共享文档记录关于组事务信息126的智能合同的发布,等等)。物理基础设施114可用于检索本文所述的任何数据或信息。
智能合同可以经由高级应用和编程语言创建,并且然后被写到区块链中的块。智能合同可以包括利用区块链(例如,区块链对等体的分布式网络)注册、存储和/或复制的可执行代码。事务是智能合同代码的执行,其可以响应于满足与智能合同相关联的条件而执行。智能合同的执行可以触发对数字区块链分类账的状态的可信修改。由智能合同执行引起的对区块链分类账的修改可以通过一个或多个共识协议遍及区块链对等体的分布式网络被自动复制。
智能合同可以以键-值对的格式向区块链写入数据。此外,智能合同代码可以读取存储在区块链中的值,并在应用操作中使用它们。智能合同代码可以将不同逻辑操作的输出写入到区块链中。代码可以用于在虚拟机或其他计算平台中创建临时数据结构。写入区块链的数据可以是公共的和/或可以被加密并维持为私有的。由智能合同使用/生成的临时数据由供应的执行环境保存在存储器中,然后一旦识别了区块链需要的数据就删除。
链码可以包括具有附加特征的智能合同的代码解释。如本文所描述的,链码可以是部署在计算网络上的程序代码,其中链码在共识进程期间由链确认器一起执行和验证。链码接收散列并且从区块链中检索与通过使用先前存储的特征提取器创建的数据模板相关联的散列。如果散列标识符的散列和从所存储的标识符模板数据创建的散列匹配,则链码向所请求的服务发送授权密钥。链码可以将与加密细节相关联的数据写入到区块链(例如,因此确认事务组、识别事务组中的一个或多个事务之间的冲突等)。
图1B示出了根据示例性实施方式的在区块链的节点之间的传统区块链事务流150的示例。参考图1B,事务流可以包括由应用客户端节点160发送至一个或多个背书的对等节点181的事务建议191(例如,在一些实施例中,事务建议191可以是事务验证请求和/或冲突验证请求)。背书的对等体181可以验证客户端签名并且执行链码功能以发起事务。输出可以包括链码结果、在链码中读取的键/值版本的集合(读取集合)、以及在链码中写入的键/值的集合(写入集合)。如果被批准,则建议响应192连同背书签名一起被发送回客户端160。客户端160将背书组装成事务有效载荷193并将其广播至排序服务节点184。排序服务节点184然后将排序事务作为块递送到信道上的所有对等体181-183。在提交到区块链之前,每个对等体181-183可以验证事务。例如,对等体可检查背书策略以确保指定对等体的正确分配已对结果签名并对事务有效载荷193验证签名。
再次参考图1B,客户端节点160通过构建请求并将请求发送至作为背书者的对等节点181来发起事务191。客户端160可以包括利用所支持的软件开发工具包(SDK)的应用,所述SDK利用可用的API来生成事务建议191。提议是调用链码函数以使得数据可以被读取和/或写入到分类账(例如,为资产写入新的键值对)的请求。SDK可以将事务建议191的包缩减成适当的架构化格式(例如,远程进程调用(RPC)上的协议缓冲器),并采用客户端的加密证书来产生事务建议191的唯一签名。
作为响应,背书的对等节点181可验证(a)事务建议191形成良好,(b)事务在过去尚未被提交(重放攻击保护),(c)签名有效,以及(d)提交者(在该示例中,客户端160)被适当地授权以在该信道上执行所建议的操作。背书的对等节点181可以将事务建议191输入作为对所调用的链码函数的自变量。然后,对照当前状态数据库执行链码以产生包括响应值、读-集和写-集的事务结果。然而,此时没有对分类账进行更新。在一些实施例中,该值集合连同背书的对等节点181的签名作为建议响应192被传递回客户端160的SDK,SDK解析应用消费的有效载荷。
作为响应,客户端160的应用检查/验证背书的对等体的签名,并且比较建议响应以确定建议响应是否相同。如果链码仅查询分类账,则应用将检查查询响应并且通常将不向排序节点服务184提交事务。如果客户端应用程序意图将事务提交给排序节点服务184以更新分类账,则应用程序确定在提交之前指定的背书策略是否已被满足(例如,事务验证请求是否已被接受)。这里,客户端可仅包括事务的多方中的一个。在这种情况下,每个客户端可具有其自身的背书节点,并且每个背书节点将需要背书事务。该架构使得即使应用选择不检查响应或以其他方式转发未背书事务,背书策略仍将由对等体强制执行并在提交验证阶段得到保持。
在成功检查之后,在步骤193中,客户端160将背书组装成事务并且将事务建议191和事务消息内的响应广播至排序节点184。事务可包含读/写集合、背书对等体的签名和信道ID。排序节点184不需要检查事务的全部内容以便执行其操作,相反,排序节点184可以简单地从网络中的所有通道接收事务,按通道对它们进行排序,并且每通道创建事务块。
事务的块被从排序节点184递送到信道上的所有对等节点181-183。块内的事务194被验证以确保任何背书策略被满足并确保对于读集合变量的分类账状态没有改变,因为读集合是由事务执行生成的。块中的事务被印记为有效或无效。此外,在步骤195中,每个对等节点181-183将块附加到通道的链,并且对于每个有效事务,写入集被提交到当前状态数据库。发出事件以通知客户端应用事务(调用)已经被不可变性地附加到链,以及通知事务被验证还是被无效。经验证的事务及其相关联的值更新区块链分类账,而无效的事务被提交,但无效的事务值不更新区块链分类账。
转向图2A,示出了根据本公开的实施例的用于审计和识别对等节点202中的潜在恶意活动(例如,蠕虫和病毒)的示例自审计区块链网络200。恶意活动(在下文中一般称为错误和/或黑客)可以采取不同恶意软件形式,包括但不限于病毒、蠕虫、流氓软件或其任何组合。虽然本文所公开的实施例通常将自审计区块链网络200称为经许可的区块链联盟(例如,超分类账结构区块链网络),但自审计区块链网络200可被配置成在具有对等节点或提供类似角色功能的节点的任何类型的区块链联盟(例如,未经许可的区块链)内工作。自审计区块链网络200允许区块链联盟内的不同对等体确定恶意软件/错误(例如,黑客和/或恶意/恶意活动)是否正在影响一个或多个对等节点而不危害区块链联盟内的信任。本文所讨论的实施例允许与定位相关联的实时恶意活动检测和方法,其中恶意活动已经影响区块链联盟的完整性。
在实施例中,自审计区块链网络200可以包括对等节点202和印记策略203。对等节点202可被配置成包括印记收集模块204、审计模块206和黑客定位模块208。虽然在一些实施例中(例如,如图2A所示)审计模块206,黑客定位模块208与印记收集模块204分开配置,但是在其他实施例中,审计模块206和黑客定位模块208是印记收集模块204的子组件。本文将关于每个模块(例如,印记收集模块204、审计模块206和黑客定位模块208)讨论不同实施例。一般而言,每个参与的对等节点(例如,对等节点202)包括:i)印记收集模块204,其被配置成生成特定于容纳特定模块的对等节点的印记(例如,印记220),并且收集由其他参与的对等节点生成的印记;ii)审计模块206,其被配置成识别所收集的印记之间的共识并且将每个印记与共识印记进行比较;iii)黑客定位模块208,其被配置成从审计模块206接收与共识印记不匹配的印记,并且识别黑客发生在对等节点的进程信息中何处。
虽然本文所公开的实施例通常涉及单个对等节点(例如,对等节点202),但自审计区块链网络200可包括任何数量的类似配置的对等节点。这些实施例一般描绘在对等节点级的自审计区块链网络200,并且不应被解释为仅具有一个对等节点的区块链联盟。在实施例中,可以将自审计区块链网络200和本文所公开的实施例应用于区块链联盟内的每个对等节点(例如,对等节点202)。在这些实施例中,每个对等节点被类似地配置(例如,如参考对等节点202所公开的)以便对整个区块链执行共识和有效的自审计。如本文所提及的,自审计区块链网络200可被配置在经许可的区块链联盟内。许可的区块链可以被配置为具有多个组织,每个组织可以在其各自的数据中心具有一个或多个对等节点。
在一些实施例中,自审计区块链网络200可以包括印记策略203。在具有印记策略203的实施例中,印记策略203可以包括包括自审计区块链网络200的每个对等节点202在执行自审计功能(例如,诸如印记生成)时必须遵守和实现的标准和条件。虽然在本文中将更详细地讨论印记策略203,但是印记策略203提供每个对等节点202必须遵循的条件以确保自审计功能的结果在区块链网络中的所有对等节点202之间是可重复且共识地应用的。例如,印记策略203可以提供必须遵循的条件和规则,以便每个对等节点202生成印记(例如,参考图2B所讨论的,什么数据/信息构成进程信息212),识别如何确定共识印记,以及当在对等节点202的印记中识别一个或多个错误(例如,黑客攻击)时对等节点202和/或自审计区块链网络200如何作出反应。
在实施例中,对等节点202可包括印记收集模块204。印记收集模块204可以位于对等节点202的操作系统内核内。在这些实施例中,在印记收集模块204在对等节点202的操作系统内核内实现的情况下,接着印记收集模块204受到保护并且防止被可能受到恶意软件/错误(例如,黑客攻击)影响的对等节点202的操作系统的应用程序或其他较不关键的组件访问。在实施例中,印记收集模块204可从对等节点202收集进程信息。
虽然在这些实施例的一些中,进程信息可以被存储在操作系统内核地址空间内的一个或多个进程地址空间中,但是在其他实施例中,进程信息可以被存储在对等节点202的操作系统内核外部的一个或多个进程地址空间中。在进程信息存储在操作系统内核外部的一个或多个进程地址空间中的实施例中,印记收集模块可配置成从相关进程地址空间收集进程信息。对等节点202还可采用任何类型的计算机安全技术(诸如地址空间布局随机化(ASLR))来减少或消除存储器损坏漏洞。使用这样的计算机安全技术确保攻击者不能在自审计区块链网络200执行审计功能时掩盖或隐藏其恶意活动。
攻击者指的是那些在自审计区块链网络200上持续使用黑客和恶意软件的行动者。虽然攻击者可与区块链联盟外部的各方相关联,但是这样的行动者或活动有时可由自审计区块链网络200内的恶意对等节点引起。攻击者常常旨在通过将其恶意活动保持为秘密来破坏区块链的各个方面。通常,恶意行为秘密发生的时间越长,攻击者越可能成功实现其期望的目标。在实施例中,ASLR或其他类似计算机安全技术可随机布置与进程信息212相关联的地址空间(例如,包含可执行代码、堆栈、HEAP和/或库),且使攻击者更难预测特定地址空间。例如,如果攻击者(诸如一组对等节点202中的恶意对等节点202)可预测与对等节点202相关联的进程信息212的地址空间,则攻击者(例如,恶意对等节点202)可识别什么进程信息212表示非黑客进程(例如,不受错误/黑客或恶意活动影响的进程信息)并产生模仿不指示黑客已经发生的印记(例如,220)的伪造印记。照此,通过使地址空间更难预测自审计,区块链网络200可以执行自审计功能,并且确保每个参与的对等节点202信任与自审计相关联的结果。在实施例中,可以通过挂钩到与对等节点202相关联的运行时加载器中使得印记收集模块204知道ASLR ASLR定位。
在实施例中,对等节点202可使用所收集的进程信息,印记收集模块204来生成印记(例如,如图2B所示的印记220),该印记代表由印记收集模块204收集的不同进程信息(例如,如图2B所示的进程信息212)。印记可以表示在对等节点202的寿命期间收集的进程信息,或者可替代地,可以表示在特定时段期间收集的进程信息。在实施例中,印记策略203可以规定进程信息被每个对等节点202收集得有多频繁。例如,印记策略203可以提供以下条件:在特定持续时间之后或对等节点202已经累积特定数量的进程信息条目之后收集进程信息(例如,在10或100个不同的进程信息条目之后生成印记)。虽然可以以各种方式生成印记,但是参照图2B讨论了印记生成的一些示例性实施方式。
图2B提供描述根据本公开的实施例的印记收集模块204可如何产生印记(例如,印记220)的示例性实施例。如图2B所示,印记收集模块204可从进程地址空间210收集进程信息212。进程地址空间210可以表示从内部对等节点202的操作系统内核、外部对等节点202的操作系统内核、或其任何组合收集的地址空间和进程信息(例如,进程信息212)。虽然进程信息212一般可以指由于对等节点202执行例程区块链功能而生成的信息和数据,并且可以包括任何类型的数据/信息(例如,如由印记策略203所调节的)。虽然进程信息212可以包括任何类型的数据/信息,但是该数据/信息常常是在黑客行为(例如,错误)已经发生的情况下将受影响的类型。在实施例中,印记220可以使用任何类型的进程信息212来生成,如本文所设想的,或者从少于所有可用类型的进程信息212来生成。例如,虽然在一些实施例中,进程信息212可以包括进程信息的类型,诸如保存到对等节点202的操作系统(例如,HEAP)内的其他存储器存储区域的代码、库、事务元数据和数据,但是在其他实施例中,印记收集模块204可以仅使用一种类型的进程信息212(诸如特定类型的代码(例如,可执行代码段))来生成印记220。在一些实施例中,代码可指代和包括可执行代码段(例如,代码0、代码1、代码2)和数据代码段两者,或者在其他实施例中,所收集的进程信息212可包括可执行代码段或数据代码段中的任一者。在实施例中,印记策略203可以提供对等节点202,其具有关于什么数据/信息应当被认为是进程信息212以及在生成印记时什么数据/信息应当被忽视的条件。在没有这种一致性的情况下,自审计区块链网络200内的每个对等节点202将依赖于它自己的独立于其他对等体的进程信息212的定义,并且将可能将不同的数据/信息合并到印记220中。继续该示例,如果每个对等节点使用不同的数据/信息生成印记,则每个对等节点可能将产生不同的印记。如果由对等节点202生成的每个印记是不同的,则在所生成的印记中不能识别共识,并且不能执行自审计功能。
在实施例中,印记收集模块204可使用一个或多个散列迭代来生成印记220。虽然本领域技术人员已知,但散列通常指将散列函数应用于字符串(例如,进程信息212)并且将字符串转换成表示原始字符串的更短或固定长度值。使用图2B中所示的示例,如果进程地址空间210中的代码0和代码1包含完全相同的字符串,并且代码0和代码1两者均由相同的散列函数进行散列,则每个所产生的散列进程信息214将是相同的。然而,在该同一实例中,如果代码0和代码1彼此相差一个或多个字符,则两个所得散列进程信息214将不同。印记收集模块204可以被配置为使用任何可用的散列函数或散列函数的组合。
在图2B中,印记收集模块204可以被配置为通过逐块地对进程信息214进行散列来生成梅克尔(Merkle)树216和梅克尔根218。虽然由印记收集模块204产生的所得印记220的复杂性可在一定范围内,但印记220应代表所有收集的进程信息212。照此,在一些实施例中,印记220可以简单地是梅克尔根218。在其他实施例中,印记220可以包括每个散列页面的列表,该列表包括按特定顺序排序的生成的梅克尔树216或生成的梅克尔树216的子集。如图2B所示的印记220描述了以特定顺序排列的印记。例如,如图2B所示,印记220可以包括以特定顺序排列的组件的组合。印记220可以以梅克尔根218开始,然后是各个代的散列页面块。
在一些实施例中,每个印记220可以以一条或多条元数据结束。该元数据可以包括与印记生成和/或进程信息212相关联的数据/信息。在这些实施例中,该元数据可以包括关于如何生成初始印记的信息。例如,该元数据可以包括产生印记220时的时间戳、区分同一对等节点所产生的不同印记的计数器、与进程信息212的不同页面如何布置相关联的信息、以及在产生印记220之前对等节点202最初收集了多少条不同的进程信息212。在一些实施例中,此元数据可以被审计模块206和黑客定位模块208用来识别和定位黑客/错误发生的位置。在实施例中,印记策略203可以为每个对等节点202提供与什么散列函数应当被用于生成印记220、什么散列的组件应当被用于印记220(例如,梅克尔根218和/或梅克尔树216)、如果存在多于一个散列的组件、每个组件应当如何被排序、或其任何组合相关联的条件。
在实施例中,印记收集模块204和审计模块206可被配置来一起工作以执行审计功能。
在实施例中,印记收集模块204可以通过使用不同加密模式来确保所生成的印记220对于攻击者是安全的。例如,印记收集模块204可使用随机对称密钥来加密印记220。通过加密印记220,印记收集模块204可以减少或防止攻击者观察健康对等节点(例如,未被黑客攻击的对等节点)的印记,并允许攻击者通过产生作为健康对等节点的印记的再现的印记来掩盖其激活。在实施例中,印记收集模块204可被配置成生成第一消息。在这些实施例中,印记收集模块204可配置第一消息以包括加密的印记和签名,该签名识别在区块链网络内的所有对等节点中,哪个对等节点202产生印记(例如,印记220)。一旦产生,印记收集模块204就可将第一消息提交到区块链。
如本文所讨论的,虽然在本文中经常从对等节点级(例如,对等节点202)查看各实施例,但区块链网络(例如,自审计区块链网络200)中的每个对等节点执行类似的动作。照此,每个对等节点向区块链提交第一消息,该第一消息至少包括表示它们各自的进程信息(例如,进程信息212)的加密印记和可用于识别的对等节点特有的签名。通过使每个对等节点202将它们各自的第一消息提交到区块链,允许自审计区块链网络200维护可抵御攻击者的印记日志,以便日后使用。
在来自自审计区块链网络200内的每个对等节点的每个第一消息被提交到该区块链之后,每个对等节点202的印记收集模块204产生第二消息。在实施例中,第二消息可包括特定对等节点的签名和用于加密第一消息中的印记(例如,印记220)的加密密钥(例如,随机对称密钥)。在实施例中,每个对等节点202随后将此第二消息提交给区块链。首先将第一消息提交到区块链的这种配置确保存在印记的记录,所述印记的记录不能被更改并且仅能够在提交每个对等节点的第二消息之后被解密。这样的配置确保对等节点和/或攻击者不能改变它们的原始印记,以从自审计区块链网络200掩盖其黑客/错误或恶意活动。
在各实施例中,尽管每个对等节点202被配置成具有审计模块206,但经常仅需要访问一个对等节点来执行审计功能。在实施例中,审计模块206可以被配置为从与自审计区块链网络200中的每个对等节点(例如,对等节点202)相关联的第一消息收集加密的印记。在一些实施例中,审计模块206可以被配置为验证每个印记由可信对等节点生成。在这些实施例中,审计模块206可验证对等体识别签名。虽然在一些实施例中,如果审计模块206未验证,则重新提交验证请求,但是在其他实施例中,审计模块206可以被配置为向自审计区块链网络200的其余部分发出警告,该警告指示对等节点已经在未经许可的情况下参与区块链网络。一旦自审计区块链网络200中的每个对等节点已被验证,审计模块206就可被配置成从用于加密每个印记的每个单独对等节点的印记收集模块204收集每个随机对称密钥,或者可从第二消息收集每个随机对称密钥。在实施例中,当审计模块206已使用所收集的密钥解密每个印记(例如,从第一消息的集合)时,审计模块206可分析每个对等节点202的所生成的印记。在这些实施例中,审计模块206可以分析每个印记和相关联的元数据,以在印记的集合内识别是否存在共识印记。当一批印记具有完全相同的印记时,可以识别共识印记。在实施例中,印记策略203还可以包括有资格作为共识印记的内容。例如,印记策略203可以将共识印记识别为从不同对等体生成的相同印记的简单多数或超多数。在实施例中,如果审计模块206确定一个或多个印记不匹配共识印记,则那些印记被提交给黑客定位模块208。
转向图2C,根据本公开的实施例描绘了黑客定位模块208的示例。在实施例中,黑客定位模块208可被配置为将共识印记222与所识别的不匹配印记226进行比较。在这些实施例中,黑客定位模块208可以扩展共识印记222和不匹配印记226两者,并且重新配置与每个印记相关联的相应梅克尔树(例如,共识梅克尔树224和不匹配的梅克尔树228)。在实施例中,黑客定位模块208可以比较共识梅克尔树224和不匹配的梅克尔树228,并且识别哪些散列(例如,梅克尔树的叶/分支)是不同的。如果不匹配的梅克尔树228中的散列与共识梅克尔树224中的散列相同,则不存在黑客/错误已经发生的指示。然而,如果不匹配的梅克尔树228的散列不同于共识梅克尔树224的对应的散列,则这指示在该特定对等节点上执行什么进程方面存在差异。在实施例中,当黑客/错误已经被识别和本地化时,可以生成识别黑客/错误以及黑客发生在何处的报告。虽然在一些实施例中,该报告可仅被发送至已经被识别为具有黑客行为的对等节点,但是在其他实施例中,该报告可被发送至自审计区块链网络中的一个或多个其他对等节点(例如,识别单个对等节点的进程信息内的许多黑客行为/错误的那些报告)。
现在参见图3,示出了根据本公开的实施方式的用于自审计区块链网络的示例性方法300的流程图。在一些实施例中,方法300可由区块链网络(例如,区块链网络200)内的一个或多个对等节点来执行。
在一些实施例中,方法300开始于操作302,其中处理器从区块链网络中的对等节点收集进程信息。方法300前进到操作304,在操作304,处理器从对等节点的进程信息生成印记。方法300前进到操作306,在操作306,处理器将对等节点的印记与共识印记进行比较以检测一个或多个黑客/错误。方法300前进到操作308,在操作308,处理器识别对等节点是否已经被黑客攻击。
在一些实施例中,如所描绘的,在操作308之后,方法300可以结束。
在下面讨论的一些实施例中,为了简洁起见,未描绘方法300的一个或多个操作,操作/步骤进一步由处理器执行。因而,在一些实施例中,处理器可以使用印记来识别在进程信息中受损对等体的错误发生在哪里。在一些实施例中,从进程信息生成印记可以包括处理器对来自对等节点的进程信息进行散列以生成梅克尔树。处理器可以生成梅克尔树。处理器可以配置梅克尔树以形成对等节点的印记。
在一些实施例中,处理器可以对印记进行加密,以形成加密的印记。处理器可生成第一消息。第一消息可包括加密的印记和签名。签名可识别与印记相关联的对等节点。处理器可将第一消息提交至区块链。
在一些实施例中,处理器可生成第二消息。第二消息可以包括用于对加密的印记进行解密以重新形成印记的一个或多个密钥。处理器可将第二消息提交至区块链。
在一些实施例中,处理器可验证与第一消息相关联的对等节点的签名。处理器可从第二消息收集一个或多个密钥。处理器可以利用来自第二消息的一个或多个密钥对第一消息的加密印记进行解密。
在一些实施例中,比较印记与印记共识以检测错误可以包括确定印记共识的进程。确定印记共识可包括识别具有相同印记的一组对等节点。
在一些实施例中,处理器可分析印记共识。处理器可以识别与印记相关联的、与印记共识不相同匹配的进程信息。处理器可生成报告。报告可以包括错误位于进程信息内的何处。
应当理解,虽然本公开包括关于云计算的详细描述,但是本文所引用的教导的实现不限于云计算环境。相反,本公开的实施例能够结合现在已知的或以后开发的任何其他类型的计算环境来实现。
云计算是服务交付的模型,用于使得能够方便地、按需地网络访问可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池,所述可配置计算资源可以以最小的管理努力或与所述服务的提供者的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特性如下:
按需自助服务:云消费者可以单方面地根据需要自动地提供计算能力,诸如服务器时间和网络存储,而不需要与服务的提供者的人类交互。
广泛的网络接入:能力可通过网络获得并且通过标准机制接入,该标准机制促进异构瘦客户机平台或厚客户机平台(例如,移动电话、膝上型计算机和PDA)的使用。
资源池:提供者的计算资源被池化以使用多租户模型来服务于多个消费者,其中不同的物理和虚拟资源根据需要动态地指派和重新指派。存在部分独立性的感觉,因为消费者通常不具有对所提供的资源的确切部分的控制或知识,但可能能够在较高抽象级别(例如,国家、州或数据中心)指定部分。
快速弹性:能够快速和弹性地提供能力,在一些情况下自动地快速缩小和快速释放以快速放大。对于消费者而言,可用于供应的能力通常显得不受限制并且可以在任何时间以任何数量购买。
测量的服务:云系统通过在适合于服务类型(例如,存储、处理、带宽和活动用户账户)的某个抽象级别处利用计量能力来自动控制和优化资源使用。可以监视、控制和报告资源使用,为所利用的服务的提供者和消费者提供透明度。
服务模型如下:
软件即服务(SaaS):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。可通过诸如web浏览器(例如,基于web的电子邮件)之类的瘦客户端接口从不同客户端设备访问应用。消费者不管理或控制包括网络、服务器、操作系统、存储或甚至单独的应用能力的底层云基础设施,可能的例外是有限的用户特定应用配置设置。
平台即服务(PaaS):提供给消费者的能力是将消费者创建的或获取的使用由提供商支持的编程语言和工具创建的应用部署到云基础设施上。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但是对所部署的应用和可能的应用托管环境配置具有控制。
基础设施即服务(IaaS):提供给消费者的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其他基本计算资源,所述软件可以包括操作系统和应用。消费者不管理或控制底层云基础设施,而是具有对操作系统、存储、所部署的应用的控制以及对所选联网组件(例如,主机防火墙)的可能受限的控制。
部署模型如下:
私有云:云基础架构仅为组织运作。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
社区云:云基础架构被若干组织共享并支持共享了关注(例如,任务、安全要求、策略、和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
公共云:使云基础架构对公众或大型行业组可用,并且由出售云服务的组织拥有。
混合云:云基础架构是两个或更多个云(私有、社区或公共)的组合,这些云保持唯一实体但通过使数据和应用能够移植的标准化或专有技术(例如,云突发以用于云之间的负载平衡)绑定在一起。
云计算环境是面向服务的,集中于无状态、低耦合、模块化和语义互操作性。云计算的核心是包括互连节点网络的基础设施。
图4A示出了云计算环境410。如图所示,云计算环境410包括由云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点400,本地计算设备诸如例如个人数字助理(PDA)或蜂窝电话400A、台式计算机400B、膝上型计算机400C和/或汽车计算机系统400N。节点400可彼此通信。它们可以物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上所述的私有云、社区云、公共云或混合云、或其组合。
这允许云计算环境410提供基础架构、平台和/或软件作为云消费者不需要为其维护本地计算设备上的资源的服务。应当理解,图4A中示出的计算设备400A-N的类型仅旨在是说明性的,并且计算节点400和云计算环境410可以通过任何类型的网络和/或网络可寻址连接(例如,使用网络浏览器)与任何类型的计算机化设备通信。
图4B示出了由云计算环境410(图4A)提供的一组功能抽象层。应提前理解,图4B中所示的组件、层和功能仅旨在是说明性的,并且本公开的实施方式不限于此。如下所述,提供以下层和对应功能。
硬件和软件层415包括硬件和软件组件。硬件组件的示例包括:大型机402;基于RISC(精简指令集计算机)架构的服务器404;服务器406;刀片服务器408;存储设备411;以及网络和网络组件412。在一些实施例中,软件组件包括网络应用服务器软件414和数据库软件416。
虚拟化层420提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器422;虚拟存储器424;虚拟网络426,包括虚拟专用网络;虚拟应用和操作系统428;以及虚拟客户端430。
在一个示例中,管理层440可以提供以下描述的功能。资源供应442提供用于在云计算环境内执行任务的计算资源和其他资源的动态采购。计量和定价444在云计算环境内利用资源时提供成本跟踪,并为这些资源的消费开账单或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户446为消费者和系统管理员提供对云计算环境的访问。服务水平管理448提供云计算资源分配和管理,使得满足所需的服务水平。服务水平协议(SLA)规划和履行450提供根据SLA预期未来需求的云计算资源的预安排和采购。
工作负载层460提供可以利用云计算环境的功能的示例。可以从该层提供的工作负荷和功能的示例包括:地图和导航462;软件开发和生命周期管理464;虚拟课堂教育交付466;数据分析处理468;事务处理470;以及自审计472。
图5示出了根据本公开的实施方式的可用于实现本文所描述的方法、工具和模块中的一个或多个和任何相关功能(例如,使用计算机的一个或多个处理器电路或计算机处理器)的示例性计算机系统501的高级框图。在一些实施例中,计算机系统501的主要部件可以包括一个或多个CPU502、存储器子系统504、终端接口512、存储接口516、I/O(输入/输出)设备接口514、和网络接口518,所有这些可以直接或间接地通信地耦合,以用于经由存储器总线503、I/O总线508、和I/O总线接口单元510的部件间通信。
计算机系统501可以包含一个或多个通用可编程中央处理单元(CPU)502A、502B、502C和502D,这里统称为CPU502。在一些实施例中,计算机系统501可以包含相对大型系统的典型的多个处理器;然而,在其他实施例中,计算机系统501可以替代地是单个CPU系统。每个CPU502可执行存储在存储器子系统504中的指令,并且可包括一个或多个板载高速缓存。
系统存储器504可包括易失性存储器形式的计算机系统可读介质,诸如随机存取存储器(RAM)522或高速缓存存储器524。计算机系统501可以进一步包括其他可移动/不可移动、易失性/非易失性计算机系统存储介质。仅通过示例的方式,存储系统526可被设置为从不可移动、非易失性磁介质(诸如“硬盘驱动器”)读取和写入不可移动、非易失性磁介质。尽管未示出,可以提供用于从可移动非易失性磁盘(例如,“软盘”)读取或向其写入的磁盘驱动器,或用于从可移动非易失性光盘(如CD-ROM、DVD-ROM或其他光学介质)读取或向其写入的光盘驱动器。此外,存储器504可包括闪存,例如闪存棒驱动器或闪存驱动器。存储器设备可通过一个或多个数据介质接口连接到存储器总线503。存储器504可包括具有一组(例如,至少一个)程序模块的至少一个程序产品,这些程序模块被配置为执行不同实施例的功能。
各自具有至少一组程序模块530的一个或多个程序/实用程序528可被存储在存储器504中。程序/实用程序528可以包括管理程序(也称为虚拟机监视器)、一个或多个操作系统、一个或多个应用程序、其他程序模块和程序数据。操作系统、一个或多个应用程序、其他程序模块和程序数据中的每一个或它们的一些组合可以包括网络环境的实现方式。程序528和/或程序模块530一般执行不同实施例的功能或方法。
尽管存储器总线503在图5中示出为提供CPU502、存储器子系统504和I/O总线接口510之间的直接通信路径的单个总线结构,但是在一些实施例中,存储器总线503可以包括多个不同的总线或通信路径,其可以以各种形式中的任一种布置,诸如分级、星形或网络配置中的点对点链路、多个分级总线、并行和冗余路径、或任何其他适当类型的配置。此外,尽管I/O总线接口510和I/O总线508被示出为单个相应的单元,但是在一些实施例中,计算机系统501可以包含多个I/O总线接口单元510、多个I/O总线508、或两者。进一步,虽然示出了将I/O总线508与运行到不同I/O设备的不同通信路径分开的多个I/O接口单元,但是在其他实施例中,一些或全部I/O设备可以直接连接到一个或多个系统I/O总线。
在一些实施例中,计算机系统501可以是多用户大型计算机系统、单用户系统、或者服务器计算机或具有很少或没有直接用户界面但从其他计算机系统(客户端)接收请求的类似设备。进一步,在一些实施例中,计算机系统501可以被实现为台式计算机、便携式计算机、膝上型或笔记本计算机、平板计算机、袖珍计算机、电话、智能电话、网络交换机或路由器、或任何其他适当类型的电子设备。
要注意的是,图5旨在描述示例性计算机系统501的代表性主要部件。然而,在一些实施例中,单个组件可以具有比图5中所表示的更大或更小的复杂度,可以存在不同于图5中所示出的那些组件或者除图5中所示出的那些组件之外的组件,并且此类组件的数量、类型和配置可以变化。
如在本文中更详细地讨论的,预期在本文中描述的方法的一些实施例的一些或全部操作可以按替代顺序执行或可以根本不执行;此外,多个操作可同时发生或作为较大进程的内部部分发生。
本公开可以是任何可能的技术细节集成度的系统、方法和/或计算机程序产品。所述计算机程序产品可包含上面具有用于致使处理器执行本发明的方面的计算机可读程序指令的计算机可读存储介质(或多个介质)。
计算机可读存储介质可为可保留和存储供指令执行装置使用的指令的有形装置。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下各项:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式紧凑盘只读存储器(CD-ROM)、数字通用盘(DVD)、记忆棒、软盘、诸如穿孔卡之类的机械编码设备或具有记录在其上的指令的槽中的凸出结构、以及上述各项的任何合适的组合。如本文所使用的计算机可读存储媒体不应被解释为暂时性信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输媒体传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线发射的电信号。
本文中所描述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域网和/或无线网络)从计算机可读存储介质下载到相应的计算/处理设备,或者下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本公开的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据、或以一种或多种程序设计语言的任何组合编写的源代码或目标代码,这些程序设计语言包括面向对象的程序设计语言(诸如Smalltalk、C++等)和过程程序设计语言(诸如“C”程序设计语言或类似程序设计语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接至用户计算机,或者可连接至外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本公开的各方面。
本文参考根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图图示和/或框图来描述本公开的各方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可被提供给计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的或多个框中指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置、和/或其他设备以特定方式工作,从而,其中存储有指令的计算机可读存储介质包括包含实现流程图和/或框图中的或多个方框中规定的功能/动作的方面的指令的制造品。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的处理,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图中的或多个方框中规定的功能/动作。
附图中的流程图和框图示出了根据本公开的不同实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些备选实现中,框中标注的功能可以不按照图中标注的顺序发生。例如,连续示出的两个方框实际上可以作为一个步骤完成,同时、基本上同时、以部分或完全时间上重叠的方式执行,或者方框有时可以以相反的顺序执行,这取决于所涉及的功能。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的系统来实现。
已经出于说明的目的呈现了本公开的不同实施例的描述,但并不旨在是详尽的或限于所公开的实施例。在不脱离所描述的实施例的范围的情况下,许多修改和变化对于本领域普通技术人员来说是显而易见的。这里使用的术语被选择来最好地解释实施例的原理、实际应用或对在市场中找到的技术的技术改进,或者使得本领域普通技术人员能够理解这里公开的实施例。
虽然已经根据具体实施例描述了本公开,但预期其变更和修改将对本领域技术人员变得清楚。因此,以下权利要求旨在被解释为覆盖落入本公开的真实范围内的所有这样的改变和修改。

Claims (20)

1.一种用于自审计区块链的方法,所述方法包括:
由处理器收集与对等节点相关联的进程信息;
从所述进程信息生成印记;以及
将来自所述对等节点的所述印记与印记共识进行比较以检测错误,其中所述错误指示所述对等节点已受损。
2.根据权利要求1所述的方法,进一步包括:
使用所述印记来识别在所述进程信息中发生所述受损的对等体的所述错误的位置。
3.根据权利要求1所述的方法,其中,从所述进程信息生成所述印记进一步包括:
对来自所述对等节点的所述进程信息进行散列以生成梅克尔树;
生成所述梅克尔树;以及
配置所述梅克尔树以形成所述对等节点的所述印记。
4.根据权利要求1所述的方法,进一步包括:
对所述印记进行加密以形成加密的印记;
生成第一消息,其中所述第一消息包括所述加密的印记和签名,其中所述签名识别与所述印记相关联的所述对等节点;以及
将所述第一消息提交至所述区块链。
5.根据权利要求4所述的方法,进一步包括:
生成第二消息,其中所述第二消息包括用于解密所述加密的印记以重新格式化所述印记的一个或多个密钥;以及
将所述第二消息提交至所述区块链。
6.根据权利要求5所述的方法,进一步包括:
验证与所述第一消息相关联的所述对等节点的所述签名;
从所述第二消息收集所述一个或多个密钥;以及
用来自所述第二消息的所述一个或多个密钥解密所述第一消息的所述加密的印记。
7.根据权利要求1所述的方法,其中,将所述印记与所述印记共识进行比较以检测所述错误进一步包括:
确定所述印记共识,其中确定所述印记共识包括识别具有相同印记的一组对等节点。
8.根据权利要求7所述的方法,进一步包括:
分析所述印记共识;
识别与所述印记相关联的、与所述印记共识不完全匹配的所述进程信息;以及
生成报告,其中所述报告包括所述错误位于所述进程信息内的位置。
9.一种用于自审计区块链的系统,所述系统包括:
存储器;以及
与所述存储器通信的处理器,所述处理器被配置为执行以下操作,包括:
收集与对等节点相关联的进程信息;
从所述进程信息生成印记;以及
将来自所述对等节点的所述印记与印记共识进行比较以检测错误,其中所述错误指示所述对等节点已受损。
10.根据权利要求9所述的系统,所述处理器进一步被配置为执行以下操作,包括:
使用所述印记来识别在所述进程信息中发生所述受损的对等体的所述错误的位置。
11.根据权利要求9所述的系统,其中,从所述进程信息生成所述印记进一步包括:
对来自所述对等节点的所述进程信息进行散列以生成梅克尔树;
生成所述梅克尔树;以及
配置所述梅克尔树以形成所述对等节点的所述印记。
12.根据权利要求9所述的系统,所述处理器进一步被配置为执行以下操作,包括:
对所述印记进行加密以形成加密的印记;
生成第一消息,其中所述第一消息包括所述加密的印记和签名,其中所述签名识别与所述印记相关联的所述对等节点;以及
将所述第一消息提交至所述区块链。
13.根据权利要求12所述的系统,所述处理器进一步被配置为执行以下操作,包括:
生成第二消息,其中所述第二消息包括用于解密所述加密的印记以重新格式化所述印记的一个或多个密钥;以及
将所述第二消息提交至所述区块链。
14.根据权利要求13所述的系统,所述处理器进一步被配置为执行以下操作,包括:
验证与所述第一消息相关联的所述对等节点的所述签名;
从所述第二消息收集所述一个或多个密钥;以及
用来自所述第二消息的所述一个或多个密钥解密所述第一消息的所述加密的印记。
15.根据权利要求9所述的系统,其中,将所述印记与所述印记共识进行比较以检测所述错误进一步包括:
确定所述印记共识,其中确定所述印记共识包括识别具有相同印记的一组对等节点。
16.根据权利要求15所述的系统,所述处理器进一步被配置为执行以下操作,包括:
分析所述印记共识;
识别与所述印记相关联的、与所述印记共识不完全匹配的所述进程信息;以及
生成报告,其中所述报告包括所述错误位于所述进程信息内的位置。
17.一种用于自审计区块链的计算机程序产品,所述计算机程序产品包括具有体现在其中的程序指令的计算机可读存储介质,所述程序指令可由处理器执行以使所述处理器执行功能,所述功能包括:
收集与对等节点相关联的进程信息;
从所述进程信息生成印记;以及
将来自所述对等节点的所述印记与印记共识进行比较以检测错误,其中所述错误指示所述对等节点已受损。
18.根据权利要求17所述的计算机程序产品,所述功能进一步包括:
使用所述印记来识别在所述进程信息中发生所述受损的对等体的所述错误的位置。
19.根据权利要求17所述的计算机程序产品,所述功能进一步包括:
对所述印记进行加密以形成加密的印记;
生成第一消息,其中所述第一消息包括所述加密的印记和签名,其中所述签名识别与所述印记相关联的所述对等节点;以及
将所述第一消息提交至所述区块链。
20.根据权利要求19所述的计算机程序产品,所述函数进一步包括:
生成第二消息,其中所述第二消息包括用于解密所述加密的印记以重新格式化所述印记的一个或多个密钥;以及
将所述第二消息提交至所述区块链。
CN202180077642.XA 2020-12-02 2021-11-02 自审计区块链 Pending CN116583833A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/109,465 2020-12-02
US17/109,465 US11575499B2 (en) 2020-12-02 2020-12-02 Self auditing blockchain
PCT/CN2021/128076 WO2022116761A1 (en) 2020-12-02 2021-11-02 Self auditing blockchain

Publications (1)

Publication Number Publication Date
CN116583833A true CN116583833A (zh) 2023-08-11

Family

ID=81751844

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180077642.XA Pending CN116583833A (zh) 2020-12-02 2021-11-02 自审计区块链

Country Status (6)

Country Link
US (1) US11575499B2 (zh)
JP (1) JP2023551124A (zh)
CN (1) CN116583833A (zh)
DE (1) DE112021005862T5 (zh)
GB (1) GB2616790A (zh)
WO (1) WO2022116761A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11575499B2 (en) 2020-12-02 2023-02-07 International Business Machines Corporation Self auditing blockchain
US20220337602A1 (en) * 2021-04-19 2022-10-20 Mitsubishi Electric Research Laboratories, Inc. Blockchain-Based Accountable Distributed Computing System

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10120756B2 (en) * 2011-08-17 2018-11-06 International Business Machines Corporation Audit object generation in a dispersed storage network
US20160283920A1 (en) 2015-03-28 2016-09-29 Justin Fisher Authentication and verification of digital data utilizing blockchain technology
GB2559640A (en) * 2017-01-27 2018-08-15 Zensar Tech Limited A system and method for evaluating the feasibility of introducing a new node in a blockchain infrastructure
US10764259B2 (en) 2017-02-07 2020-09-01 Microsoft Technology Licensing, Llc Transaction processing for consortium blockchain network
US10581621B2 (en) 2017-05-18 2020-03-03 International Business Machines Corporation Enhanced chaincode analytics provenance in a blockchain
US11502828B2 (en) 2017-11-15 2022-11-15 International Business Machines Corporation Authenticating chaincode to chaincode invocations of a blockchain
CA3088610A1 (en) * 2018-01-17 2019-07-25 Geeq Corporation Blockchain methods, nodes, systems and products
US11251937B2 (en) * 2018-01-21 2022-02-15 CipherTrace, Inc. Distributed security mechanism for blockchains and distributed ledgers
EP3522088B1 (en) 2018-02-05 2022-03-16 Nokia Technologies Oy Securing blockchain access through a gateway
US20190303541A1 (en) * 2018-04-02 2019-10-03 Ca, Inc. Auditing smart contracts configured to manage and document software audits
US10986097B2 (en) * 2018-04-30 2021-04-20 Bank Of America Corporation System for using a distributed ledger to manage user entitlements to computing resources
CN109359084A (zh) 2018-08-27 2019-02-19 深圳壹账通智能科技有限公司 区块链信息处理中异常诊断方法、装置、设备及存储介质
WO2020062131A1 (zh) 2018-09-29 2020-04-02 北京连云决科技有限公司 一种基于区块链技术的容器云管理系统
US20200119904A1 (en) * 2018-10-15 2020-04-16 Ca, Inc. Tamper-proof privileged user access system logs
CN111277553B (zh) 2018-12-05 2022-05-24 阿里巴巴集团控股有限公司 一种基于区块链网络的可信节点确定方法和装置
CN109634810A (zh) 2018-12-10 2019-04-16 广东亿迅科技有限公司 基于Fabric的区块链业务平台和运行方法
US11329825B2 (en) * 2018-12-17 2022-05-10 Insights Network System and method for authenticating user identity
CN109684880A (zh) 2019-01-07 2019-04-26 江西金格科技股份有限公司 一种基于区块链的网页数据保护方法
CN110135178A (zh) 2019-04-11 2019-08-16 贝克链区块链技术有限公司 区块链验证中的零延迟账本访问技术
US11580240B2 (en) * 2020-03-24 2023-02-14 Kyndryl, Inc. Protecting sensitive data
CN111464393B (zh) 2020-03-31 2023-08-18 腾讯科技(深圳)有限公司 一种区块链运行状态的监测方法、装置及存储介质
US20210314139A1 (en) * 2020-04-01 2021-10-07 International Business Machines Corporation Noisy transaction for protection of data
US11620272B2 (en) * 2020-10-14 2023-04-04 Intertrust Technologies Corporation Trusted ledger management systems and methods
US11575499B2 (en) 2020-12-02 2023-02-07 International Business Machines Corporation Self auditing blockchain

Also Published As

Publication number Publication date
JP2023551124A (ja) 2023-12-07
GB2616790A (en) 2023-09-20
DE112021005862T5 (de) 2023-08-24
US20220173885A1 (en) 2022-06-02
GB202309844D0 (en) 2023-08-16
WO2022116761A1 (en) 2022-06-09
US11575499B2 (en) 2023-02-07

Similar Documents

Publication Publication Date Title
CN111800268B (zh) 用于区块链背书的零知识证明
US11741083B2 (en) Cross-shard private atomic commit
CN111144881A (zh) 对资产转移数据的选择性访问
CN115769241A (zh) 针对经许可的区块链的隐私保护架构
US11917088B2 (en) Integrating device identity into a permissioning framework of a blockchain
JP2023542317A (ja) ブロックチェーン・ネットワークのための合意サービス
US20220004647A1 (en) Blockchain implementation to securely store information off-chain
JP2023524659A (ja) 低信頼の特権アクセス管理
US11621858B2 (en) Anonymity mechanisms in permissioned blockchain networks
WO2022116761A1 (en) Self auditing blockchain
CN115705571A (zh) 保护可审计的帐户的隐私
JP2024509666A (ja) ブロックチェーンデータセグリゲーション
US20220407707A1 (en) Generative cryptogram for blockchain data managment
CN111698198B (zh) 秘密生成和份额分发
CN111797426B (zh) 一种用于去信任通知服务的方法和系统
CN116263834A (zh) 许可区块链的多发布者匿名证书
WO2022121673A1 (en) Decentralized broadcast encryption and key generation facility
CN115943606A (zh) 可编辑区块链
CN114579585A (zh) 区块链选择性世界状态数据库
US11743327B2 (en) Topological ordering of blockchain associated proposals
US11968307B2 (en) Private ledger partitions in blockchain networks
US11375009B1 (en) Minimizing the impact of malfunctioning peers on blockchain
US20230081416A1 (en) Anonymous private shared partitions in blockchain networks
US20220286299A1 (en) Decentralized, dynamic media key block for broadcast encryption
JOHANSSON et al. Using Blockchain Techniques to Create an Opinion-Based Whitelisting Procedure

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