CN117203937A - 基于区块链的可当责分布式计算系统 - Google Patents
基于区块链的可当责分布式计算系统 Download PDFInfo
- Publication number
- CN117203937A CN117203937A CN202280028544.1A CN202280028544A CN117203937A CN 117203937 A CN117203937 A CN 117203937A CN 202280028544 A CN202280028544 A CN 202280028544A CN 117203937 A CN117203937 A CN 117203937A
- Authority
- CN
- China
- Prior art keywords
- blockchain network
- licensed
- networked computer
- smart contract
- licensed blockchain
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 93
- 238000001514 detection method Methods 0.000 claims abstract description 22
- 238000012550 audit Methods 0.000 claims description 53
- 230000008520 organization Effects 0.000 claims description 24
- 230000006399 behavior Effects 0.000 claims description 21
- 230000009471 action Effects 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 5
- 230000004075 alteration Effects 0.000 claims description 4
- 238000004458 analytical method Methods 0.000 claims description 3
- 230000003993 interaction Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 description 39
- 238000010586 diagram Methods 0.000 description 27
- 230000006870 function Effects 0.000 description 20
- 238000004422 calculation algorithm Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 9
- 238000007726 management method Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 5
- 230000002265 prevention Effects 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000000523 sample Substances 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 101000629635 Homo sapiens Signal recognition particle receptor subunit alpha Proteins 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 102000049521 human SRPRA Human genes 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
- G06F21/645—Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Computer And Data Communications (AREA)
- Storage Device Security (AREA)
- Debugging And Monitoring (AREA)
- Multi Processors (AREA)
Abstract
公开了一种用于在被实现为经许可区块链网络的分布式计算系统中进行故障检测和故障去除的方法和系统。该故障检测方法包括以下步骤:编译和执行公用于经许可区块链网络的所有节点的智能合约。智能合约被配置成执行包括以下项的一系列操作中的至少一个操作:(1)附加包括日志的交易,该日志指示经许可区块链网络的节点之间的消息交换,(2)在达成共识时检测节点的恶意行为,以及(3)在检测到恶意行为时撤销该节点的访问。此外,一旦检测到恶意行为(和对应的恶意节点),就通过执行分布式计算程序来在经许可区块链网络的联网计算机之间达成共识。
Description
技术领域
本公开总体上涉及分布式计算系统,并且更具体地,涉及用于检测和去除基于区块链的可当责(accountable)分布式计算系统中的故障的方法和系统。
背景技术
分布式计算系统是跨地理上截然不同的位置而分布的联网计算机组。分布式计算系统的组件可以包括多个节点,使得各个节点皆是单个联网计算机,并且这些节点通过消息交换来彼此通信,以便实现共同的目标,诸如执行计算(例如,ATM交易)。在一些场景中,为了使分布式计算系统执行任何关键计算,组件必须达成共识。这进而又依赖于分布式计算系统内的两个重要特性:组件之间的信任以及对组件故障的鲁棒性。组件需要信任其它组件没有进行恶意动作。在没有信任的情况下,分布式计算系统不可能达成共识或执行关键计算。在这样的情况下,最好也只不过,组件可能丢弃可疑消息或者可能遇到来自恶意输入的可恢复错误,而在最坏的情况下,组件因来自进行恶意动作的可信组件的恶意输入而失效。
类似地,分布式计算系统对于组件必须是鲁棒的,这是因为分布式计算系统包含比集中式系统更多数量的组件。分布式计算系统中的信任必要性是许多恶意行为者企图利用的弱点的来源。
一种用于确保分布式系统(诸如上面所讨论的分布式计算系统)容忍恶意参与者或组件故障并且在该恶意参与者或组件故障存在时确保该分布式系统的计算中的进程的已知解决方案对于本领域技术人员而言被称为拜占庭容错(Byzantine Fault Tolerance,BFT)。虽然BFT方法旨在使分布式系统对拜占廷故障更具弹性,但是增加分布式系统的鲁棒性的另一方法是去除导致拜占廷故障的组件。这被称为当责(accountability),并且是分布式系统使得能够实现对该分布式系统内的恶意参与者的检测、标识以及隔离的特性。当责提供了额外的优点,诸如将不可否认的责任指派给分布式系统的参与者,尤其是当参与者是恶意参与者之一时,并且进一步提高了这种系统内的透明度。当责还依赖于系统的可审核性(auditability),并且在本领域中已知的解决方案中,对于系统中的恶意参与者和确保当责的问题,涉及相当大的复杂性并且招致高计算成本来实现。
当责包括以下三个特性:
故障预防:通过增加恶意行为的成本来阻止恶意行为。
故障容许度:故障的检测和隔离以及防止其蔓延到系统的其它部分。
故障去除:从系统中去除行为不当的行为者,以限制它们对系统其余部分的影响。
为了实现当责,各个参与者的动作必须是可审核的。系统的可审核性需要安全、防篡改(tamper resistant)、防揭换(tamper evident)以及透明的审核日志(也被可互换地称为安全记录(logging)),并且还需要观察组件内的进程(process)的能力。虽然审核日志的严格要求被设计成增加审核日志中的信任,但是现有技术中的许多解决方案依赖于对这些审核日志的存储和访问的集中式方法。这是一个缺点,因为它将信任问题从审核日志本身转移到审核日志的管理员。用于确保安全记录的一些现有技术方法包括使用数字账本(ledger)来保护和存储诸如审核日志之类的审核数据。这样,审核数据对于成员是透明的,并且是由分布式计算系统本身的组件来保护的。
数字账本是被存储在计算机中的交易记载(record)。交易表示系统状态的变化。因此,数字账本表示诸如金融系统之类的系统的状态或者一般分布式系统的状态。数字账本可以在集中式系统中实现,该集中式系统保存所有交易的记载并且改变该记载,而不需要另一系统与它自己的记载一致并且不产生由集中式系统作出的变化的可审核踪迹。另一种方法是允许保存交易记载并实现确定多个系统之间的共识的方法的分散式或分布式方法。这是有用的,因为它对以自私的方式运行并以损害分布式系统的方式来改变账本的包括分布式系统的任何特定系统产生了抑制作用。这本身可以增加分布式计算系统中的用户信任,并且出于该原因可以是有用的。
数字账本技术的一个示例是区块链网络。区块链是由使用链表(linked list)结构或类似结构链接在一起的区块组成的仅附加(append-only)数据结构。区块是用于数字信息的容器,区块包括报头、元数据以及交易列表。报头和元数据可以包含关于软件版本、被用于压缩存储所需的数据量的密码散列、时间戳等的信息。交易是数字令牌的所有交易的列表,并且可潜在地散列以减少存储所需的数据量。区块列出了从一个用户到另一用户的所有交易。用户之间的交易是经由用户的对应数字地址之间的交易来实现的。
区块链数据结构便于包括区块链网络的节点的分布式系统充当单个计算机,从而使得能够实现分散式计算。有鉴于集中式系统内的计算很少被记录和审核,将分散式计算的结果以区块链交易的形式记载在区块链上,从而增加了计算中的信任。在区块链的背景下描述分散式计算的计算机程序被称为智能合约。
在区块链网络的背景下,可以将智能合约定义为可执行计算机程序,其定义了必须在执行智能合约时施加的一组规则、数据以及关系。智能合约是不可变的,即一旦将智能合约添加至它们被定义用于的区块链网络的分布式账本架构中,就不能操纵智能合约。此外,由区块链网络的节点对智能合约的调用(invocation)导致被记载在区块链网络上的交易。在一些实现中,一组相关智能合约被称为链码(chain code),其被用于在区块链网络上部署相关智能合约。
区块链网络的一个示例是比特币(Bitcoin)网络。当与集中式网络相比时,本领域中已知的区块链网络遭受与由各种节点执行的计算的审核相关的较高等待时间、较低吞吐量、以及交易的高计算成本的问题。
区块链网络的另一示例是经许可(permissioned)区块链网络(在下文中也被可互换地称为经许可区块链),其需要检查想要成为经许可区块链网络的一部分的各个节点的访问权限。经许可区块链网络通常包含在区块链网络之上运行的控制层。可以通过简单地撤销经许可区块链网络中的参与者的许可,而容易地将这些参与者从网络中去除。在经许可区块链网络中,智能合约必须由经许可区块链网络的所有成员批准。因此,智能合约充当经许可区块链网络内的可信网络服务,并且可以被用作确保经许可区块链网络中的节点的故障容许度和去除能力的工具。该节点可以包括联网计算机,其可以包括全功能计算系统的所有能力。这些能力尤其包括全操作通用操作系统。
现代通用操作系统是单内核(monolithic kernel),其中,在底层计算机硬件上提供被称为系统调用(syscall)的高级虚拟接口来作为应用编程接口(API)。单内核具有双重目的:使程序员无需担心底层硬件的低级细节,以及通过确保在内核之上运行的进程不干扰其它进程或内核本身来向计算系统提供安全性。在内核之上运行的进程形成用户空间,并且包括存储器的被分配用于运行应用和库的一部分,以及通过系统调用来提供对内核的访问。另一方面,诸如单内核之类的内核驻留在存储器的被称为内核空间的一部分中。除了提供系统调用之外,现代内核还以被称为内核仪器化(kernel instrumentation)的API的形式,来向用户提供并入性能剖析(profiling)和事件记录或者使得能够实现内核内的可观察性的机制。单内核的示例包括诸如和/>之类的主要操作系统。单内核在提供用于程序执行的安全且可信的环境方面的能力,以及通过系统调用对系统资源的受限或特许访问的能力尚未得到充分探索,尤其是在分布式计算系统的背景下。
到目前为止,在不需要一些节点以在网络中具有提升的特权的情况下,并且在不需要负责对来自分布式计算系统中的参与者或节点的审核数据进行记录和监测的可信节点(其再次使整个系统移向集中式框架)的情况下,尚没有方法在分布式计算系统中引入当责。而且,仅负责维持网络中的信任的具有提升的特权的节点仍然存在着当责问题。当责问题也是不可否认性(non-repudiation)之一。分布式计算系统中的各个节点需要是唯一可标识的,以便是当责的、可信的,并且对它们的动作具有不可否认的责任。
因此,需要一种这样的高效系统,即,该系统用于以最优且可行的方式来控制节点或系统的操作,以在分布式计算系统架构中提供增强的安全性、可审核性、当责、以及信任。
发明内容
一些实施方式的目的是,提供一种鲁棒且故障容许的分布式计算系统,其还确保交易以及单独参与者的当责、信任、可审核性。
为此,本公开的一些实施方式基于这样的考虑,即,由经许可区块链网络提供的审核数据、访问控制、以及分散式架构的安全记录、防篡改以及可验证性的优点。另外,本文所公开的各种实施方式利用智能合约在标识、隔离以及防止恶意参与者威胁总体分布式计算系统的完整性方面提供的优点,并且经许可区块链架构的使用使得能够撤销恶意参与者的特权(诸如读和写两者相关特权)以实现故障去除的目的。一些实施方式还通过系统调用的使用来利用内核级仪器化,以进一步唯一地标识恶意节点,并且提供总体系统的更好的透明性和可审核性。
一些实施方式提供了一种基于区块链的方法,该方法用于在不需要系统的一些节点拥有任何提升的网络特权的情况下,通过使得能够实现对分布式计算系统中的有故障系统的标识、故障检测、以及恶意参与者的去除,来将当责引入分布式计算系统。
各种实施方式提供可基于三个组件的系统和方法:(1)将智能合约用作可信网络服务,(2)使用参与者归类,以及(3)经由经许可区块链网络所提供的许可技术来对分布式计算系统内的参与者进行许可。
一些实施方式基于这样的实现,即,经许可区块链网络中的智能合约必须作为源代码在参与者之间共享,并因此在不需要具有提升的网络特权的节点的经许可区块链网络内是可信服务。由于这种信任,因此,可以将智能合约用作记载审核数据以供在所有参与者信任的经许可区块链网络上发布的机制。通过内核级仪器化的使用来获得各个参与者的审核数据,该内核级仪器化是由使得用户能够观察和记录内核内的进程和数据结构的API来提供的。这有助于故障预防,因为所有参与者信任的审核数据的记录和发布增加了恶意行为的成本。
一些实施方式基于这样的实现,即,在区块链系统中,各个交易必须由属于参与者的某一私钥来进行签名。除了使用经许可区块链框架的设计决策之外,这还可以被用于满足故障容许度特性,因为经许可区块链网络中的参与者必须将它们的身份记载在系统中;这使得能够对不当行为承担不可否认的责任。最后,在经许可区块链系统中故障去除是简单的,因为可以通过撤销违反的或恶意的节点参与区块链网络(诸如经许可区块链网络)的许可而容易地去除这些节点。
一些实施方式基于这样的理解,即,将经许可区块链网络用于审核节点的操作以及用作分布式系统内的节点的许可控制框架极大地增加了分布式系统的信任和鲁棒性两者,如果在区块链网络之上进行计算那么这些是不可能的。
一些实施方式基于这样的认识,即,与在区块链网络内的每一个节点上进行重复计算相比,发布分布式计算系统内的节点的活动的可验证记载在计算上更不密集。因此,本文所公开的系统和方法在计算成本和增强的效率方面提供了显著的节省,以便提供鲁棒的、当责的、安全的、以及可信任的分布式计算系统。
根据一些实施方式,提供了一种用于实现具有故障检测和去除能力的分布式计算系统的系统和方法。该分布式计算系统包括至少一个使能区块链的联网计算机,所述至少一个使能区块链的联网计算机通过经许可区块链网络来与一个或更多个不同联网计算机进行通信。该使能区块链的联网计算机包括通用系统组件,该通用系统组件包括至少一个处理器、存储器、存储在存储器中的操作系统、以及存储在存储器中的可由所述至少一个处理器执行以执行各种操作的一个或更多个指令。可以将存储器分区成内核空间和用户空间。存储器还可以存储指令,该指令在由所述至少一个处理器执行时,使联网计算机编译和执行智能合约。智能合约可以是公用于作为经许可区块链网络的部分的所有联网计算机的计算机程序。智能合约包括被用于定义一系列操作的一组规则,所述一系列操作包括以下中的至少一个或其组合:将交易附加到经许可区块链网络中,其中,该交易包括指示在访问经许可区块链网络的联网计算机之间的消息交换的日志;在与经许可区块链网络的其它参与者达成共识时检测联网计算机的恶意行为;以及在检测到恶意行为时撤销联网计算机对经许可区块链网络的访问。对恶意行为的检测是基于由智能合约使能的联网计算机的内核仪器化来完成的。此外,一旦智能合约已经被编译和执行,就执行分布式程序,以便与访问经许可区块链网络的其它联网计算机达成共识。
一些实施方式基于这样的认识,即,可以将作为经许可区块链网络的参与者的不同的联网计算机归类成两种类型的参与者中的至少一种:(1)观察者,以及(2)操作者。观察者是经许可区块链网络的参与者或节点,其可能需要运行至少一个区块链节点,以便复制包含来自特定(子)网络中的参与者的审核数据的区块链。观察者通过为经许可区块链网络提出一个或更多个交易来参与共识进程。其它类型的节点是操作者节点,其通过进行交易来主动参与共识进程。
一些实施方式基于这样的认识,即,将智能合约配置成基于对一个或更多个审核日志的分析来检测经许可区块链网络中的节点的恶意行为,所述一个或更多个审核日志是由联网计算机响应于智能合约的执行以及经许可区块链网络的对应交易而生成的。
一些实施方式基于这样的实现,即,当联网计算机试图向被连接在经许可区块链网络上的不同节点或联网计算机传送消息的不同值时,发生恶意行为。
一些实施方式基于这样的实现,即,可以将智能合约以源代码文件或可信二进制文件中的至少一者的形式来向经许可区块链网络的节点分发。
一些实施方式的目的是,将智能合约部署为在联网计算机上执行的内核仪器化活动的部分。通过使用智能合约对由不同类型的系统调用请求执行的审核的结果进行记录来执行内核仪器化,然后在经许可区块链网络上公布该记录。当日志指示通过检查与一种或多种类型的系统调用请求相关联的审核数据而标识的用户空间程序的恶意更改时,标识并隔离经许可区块链网络的恶意参与者。
此外,在一些实施方式中,通过撤销与恶意参与者相关联的所有许可,来从经许可区块链网络中去除恶意参与者。
附图说明
图1A例示了根据本公开的一些实施方式的、示出用于故障检测和去除的经许可区块链系统的架构的框图。
图1B例示了根据本公开的一些实施方式的、包括不同类型节点的经许可区块链系统的框图。
图1C例示了根据本公开的一些实施方式的、包括轻量级客户端节点的经许可区块链系统的框图。
图1D例示了根据本公开的一些实施方式的、包括智能合约的经许可区块链系统的框图。
图2A例示了根据本公开的一些实施方式的、示出用户空间与内核空间之间的分离的框图。
图2B例示了根据本公开的一些实施方式的、示出图2A所例示的用户空间和内核空间的组件的详细框图。
图2C例示了根据本公开的一些实施方式的、示出被用于审核内核空间数据的仪器化技术(instrumentation technology)的详细框图。
图3例示了根据本公开的一些实施方式的、经许可区块链系统的高级框图。
图4例示了根据本公开的一些实施方式的、组织区块链系统的高级框图。
图5例示了根据本公开的一些实施方式的、经许可区块链系统中的不同节点的详细框图。
图6例示了根据本公开的一些实施方式的、经许可区块链系统中的不同节点的详细框图。
图7例示了根据本公开的一些实施方式的、经许可区块链系统中的不同节点的流程图。
图8例示了根据本公开的一些实施方式的、用于检测和去除分布式计算系统中的故障的环境。
具体实施方式
在下面的描述中,出于解释的目的,阐述了许多具体细节以便提供对本公开的详尽理解。然而,本领域技术人员应当明白,本公开可以在不需要这些具体细节的情况下来具体实践。在其它情况下,设备和方法以框图形式示出,以避免使本公开不清楚。
如在本说明书和权利要求中所使用的术语“举例来说”、“例如”和“诸如”以及动词“包括”、“具有”、“包含”和它们的其它动词形式在与一个或更多个组件或其它项目的列表结合使用时,皆被解释为开放式的,意味着该列表不被认为排除其它附加的组件或项目。术语“基于”意指至少部分基于。而且,要理解,本文所采用的用语和术语是出于描述的目的,而不应被视为进行限制。在该说明书中利用的任何标题仅仅是为了方便,而没有法律或限制性作用。
图1A例示了根据本公开的一些实施方式的、示出用于故障检测和去除的经许可区块链系统100的架构的框图。系统100包括一个或更多个区块链网络,诸如区块链网络112和区块链网络120。系统100还包括多个节点,诸如节点114、节点116、节点118、以及节点122。节点114、节点118、以及节点122与区块链网络120相关联。节点116与区块链网络112相关联并且是区块链网络112的一部分。所述多个节点中的各个节点皆可以是联网计算机。此外,所述联网计算机中的每个联网计算机又可以是使能区块链的联网计算机。
如图1A所例示的,节点可以是一个以上网络的一部分。例如,节点114是区块链网络112以及区块链网络120的一部分。本领域普通技术人员可以理解,仅出于本文所描述的特定实施方式的目的,将网络112和120示出为区块链网络。术语“区块链”表示实现分布式计算网络的网络架构,其具有对分布式计算网络内的以及涉及分布式计算网络的操作和交易的分散式控制。因此,节点114、116、118、以及122可以是这种分布式计算网络(其中一种特定的类型是区块链网络)的、具有其所有使能(enabling)技术的节点。此外,在一些实施方式中,区块链网络是在区块链层顶部之上具有访问层的经许可区块链网络,该经许可区块链网络定义了对于作为经许可区块链网络的部分的不同节点可用的各种许可。
经许可区块链网络架构本身具有许多优点,诸如通过单独区块链主链(blockchain backbone)的使用来提供用于与经许可区块链网络上的节点相关联的审核日志的安全记录设施,以及提供基于信任的和安全的分布式计算架构。同时,经许可区块链架构提供故障容许度、故障预防、以及故障去除能力,这使得它成为用于实现分布式(分散式)计算系统的高度可当责的架构。
经许可区块链系统100的节点可以被称为系统的参与者,并且可以被划分成两个广泛的类别:观察者和操作者。另外,在经许可区块链系统100中还可以有排序(ordering)节点和轻量级客户端,如下面将在本文所提供的各种实施方式的描述中进行讨论的。
观察者是不必创建交易的节点,但是负责对系统的恶意参与者的检测、标识、以及去除。观察者还有助于在经许可区块链系统100中达成共识,并且能够复制经许可区块链系统100的区块链主链,通过该区块链主链,观察者对经许可区块链系统100的参与者进行审核。在图1A中,节点114是运行作为两个区块链子网络112和120的部分的单个节点的观察者节点。观察者通过检测经许可区块链系统100中的故障并且还通过标识经许可区块链系统100的恶意参与者,来增加经许可区块链系统100的故障容许度。
经许可区块链系统100中的其它类型的节点是操作者。操作者是构建包括在区块链系统(诸如经许可区块链系统100)中的交易的节点。操作者节点需要通过使用智能合约在经许可区块链系统100上记载该操作者节点的操作以用于公共审核,来证明它们的可信任性。操作者还通过向经许可区块链系统100报告该操作者的审核数据,来增加经许可区块链系统100的故障容许度。参照图1A,节点116、118、以及122是被连接至区块链(子)网络112和120的操作者节点。
在一些实施方式中,经许可区块链系统100可以包括其中彼此不完全信任的参与者可以信任并参与的分布式系统。其示例是由公司及其附属公司组成的组织内网络,其在图1B中进一步例示。
图1B例示了根据本公开的一些实施方式的、包括不同类型节点的经许可区块链系统126的框图。经许可区块链系统126包括属于由边界框138表示的组织(也被称为“组织138”)的多个参与者(或节点)。此外,边界框136表示由如下两个节点组成的父组织:观察者节点124以及向经许可区块链系统126提交审核数据的常规或操作者节点128。节点124和128能够彼此通信,因为它们都在父组织136内。组织138还包括由两个节点130和132组成的附属组织134,节点130和132的操作被审核并提交给经许可区块链系统126。图1B仅例示了用于图1A的经许可区块链系统100的一种类型的使能环境。另一使能示例(图中未示出)包括对经许可区块链系统100中的可以被所有参与者信任的参与者子集的实时和自动化审核。经许可区块链系统100中的各个参与者皆可以是前面描述的四种类型之一:如前面提及的观察者、操作者、排序的和轻量级客户。前面已经结合图1A描述了操作者和观察者。在图1C的以下描述中描述轻量级客户端。
图1C例示了根据本公开的一些实施方式的、包括轻量级客户端节点的经许可区块链系统140的框图。许可区块链系统140包括两个轻量级客户端节点,诸如轻量级客户端142和轻量级客户端144。轻量级客户端144还包括嵌入式装置146。
轻量级客户端142和144可以包括任何现代计算机,诸如嵌入式计算机、膝上型电脑、移动电话、智能手机、平板电脑、智能手表、可穿戴计算机、销售点(POS)终端、信息亭(kiosk)、路由装置、发电厂处的监测终端、电子表等。一些实施方式基于这样的实现,即,许多现代计算机是具有有限计算能力的嵌入式装置,诸如与嵌入式装置146相关联的轻量级客户端144,这使得它们不能存储它们作为其一部分的区块链的完整副本。然而,使用经许可区块链系统140的实施方式和架构,甚至这些具有低计算能力的轻量级系统也可以完全可信、安全以及高效地监测任何恶意行为。由于在本文所描述的各种实施方式中公开的经许可区块链系统100(或等效地,经许可区块链系统140)中实现的内核仪器化技术和智能合约的组合,使得这些成为了可能。
图1D例示了根据本公开的一些实施方式的、包括智能合约152的经许可区块链系统148的框图。经许可区块链系统148包括节点150,该节点可以是使能区块链的联网计算机,其可以与其它联网计算机(此处未示出)通信。节点150可以被配置成编译和执行智能合约152,作为节点150的审核手续的部分。智能合约152可以与进程154相关联。智能合约152可以被配置成基于对一个或更多个审核日志的分析来检测与节点150相关联的恶意行为,所述一个或更多个审核日志是由节点150响应于智能合约152的执行以及经许可区块链网络148的对应交易而生成的。
为此,智能合约152被配置成当节点150向访问经许可区块链网络148的不同的其它节点(或联网计算机)传送同一消息的不同值时,检测节点150的恶意行为。
各种实施方式使得能够通过向经许可区块链网络148的成员(诸如节点150)分发智能合约152的源代码或者与经编译的智能合约152相关联的可信二进制文件来实现智能合约152在经许可区块链网络148上的部署。当智能合约152的源代码被分发给经许可区块链网络148的所有节点时,所述节点中的各个节点然后可以本地编译智能合约152。这确保了智能合约充当可信的、透明的、防篡改的、鲁棒的工具,以用于确保经许可区块链网络148的故障容许度。这是因为,智能合约152本身是不可变的,所以与偏离经许可区块链网络148上允许的可接受规则、许可、或操作相关联的任何恶意行为发生在较低级(诸如在内核级),从而大大增加了其成本。
此外,可以使用与进程154相关联的智能合约152以通过定义一组规则来审核进程154,该组规则定义了与进程154相关联的数据的可接受数据类型、操作、依存性以及封装信息。因此,进程154的每次调用也可以调用智能合约152及其对应规则的执行。与规则的任何偏离可以通过在节点150的内核级执行仪器化来进行标识,并且被记载在经许可区块链网络148上。对该记载信息的审核检测关于节点150的部分的恶意行为的企图。因此,节点150被标识和隔离,并且此外,与节点150相关联的许可可以被撤销,以从经许可区块链网络148中完全去除恶意节点。
在一些实施方式中,智能合约152包括用于基于网络的策略实施的规则,其通过触发本地事件来定义节点的适当配置。基于智能合约152中指定的规则来将对触发的响应记载在区块链上。
为此,节点150可以是至少一个操作者节点或观察者节点(其中,操作者节点和观察的节点的功能在前面已经进行了讨论)。当节点150是观察者节点时,节点150可以被配置成复制观察者节点作为成员的所有许可(子)网络的区块链。节点150可以是一个或更多个经许可区块链(子)网络的一部分,如前面结合图1A所公开的。当节点150是一个以上经许可区块链(子)网络的部分时,这些经许可区块链(子)网络中的每一个皆与另一子网络具有至少一个公共观察者节点。
在一些实施方式中,节点150被配置为操作者节点,以通过提交该节点的内核仪器化数据(响应于其智能合约152的执行)来提供其操作的审核细节,该内核仪器化数据是通过经部署的智能合约152来上传至经许可区块链网络148的。
在一些实施方式中,当将节点150配置为操作者节点时,节点150还与被配置为允许人类交互的物理终端相关联,并且进一步,在该节点中智能合约152被配置成为组织的人类操作者提供许可。这将在图6及其关联的描述中详细讨论。
各种实施方式还提供了节点150被配置成与经许可区块链网络148中的其它节点交换消息,以协调作为经许可区块链网络148的部分的所有节点的动作。根据通常被称为共识算法(consensus algorithm)的分布式计算程序,依次进行这种协调,以在经许可区块链网络148中的所有节点之间达成关于经许可区块链网络148的当前状态的共识。可以由经许可区块链网络148用于达成共识的共识算法的一个示例是实用的拜占庭容错(PBFT)算法,在该算法中节点被配置成从经许可区块链网络148中的所有其它节点接收关于节点的交易的有效性的确认。然后基于从节点接收到的总确认数来达成共识。
本文所公开的一些实施方式基于这样的理解,即,观察者节点通过为经许可区块链网络148的所有节点提出交易来帮助达成共识。而且,按照智能合约(诸如智能合约152)中指定的一组公共规则,观察节点所提出的交易在经许可区块链网络148上经受审核并记载审核结果。
各种实施方式提供了将智能合约152存储在节点150上,作为节点的应用空间的部分,并且还部署为节点150的内核仪器化的部分。这将结合图2A至图2C进一步详细讨论。
图2A例示了根据本公开的一些实施方式的、示出和节点150相关联的内核空间202与用户空间200之间的分离的框图。
用户空间200包括节点150(其是具有存储器和处理器的计算组件)的存储器的一部分,该部分存储用户程序,诸如应用程序、应用数据、API、软件或代码库、所存储的过程(procedure)、算法、计算机指令、用户文件等。用户空间200中的用户程序通常是以已知的高级语言中任一者编写的,诸如C#、C++、Java、Python、Solidity、JavaScript等。用户空间200还包括定义用于执行一个或更多个功能的算法和逻辑指令的各种进程,诸如商业进程或网络接口进程。这些功能是专用的。用户空间200中的用户程序的类型之一是智能合约204(其等同于图1D中所示的智能合约152)。智能合约204定义了在智能合约204的执行时执行的可实施规则。智能合约204的执行又可以调用需要访问系统(操作系统)的资源的一个或更多个进程。系统资源被存储在与用户空间200分开的存储器的单独部分中,存储器的该单独部分被称为内核空间202。
内核空间202定义了存储器的一部分,在该部分中以操作系统及其相关程序的形式存储了节点150的核心(core)。内核空间202存储使得能够实现诸如硬件和文件系统之类的各种系统资源的对接的专用程序。内核空间202可以包括专用程序和数据,诸如设备驱动程序、存储器管理程序、I/O管理程序、进程管理程序等。通常,以诸如C之类的低级语言来编写内核空间程序。
内核空间202所包含的系统资源可以通过采用系统调用或syscall的形式向内核空间202发送的专用请求,来从用户空间200访问进程。各个资源访问需要单独的系统调用。而且,可以通过被称为内核级仪器化技术的专用技术的使用,来监测各个系统调用及其关联的系统资源。内核级仪器化技术使得能够实现代码的可观察性、性能度量的收集、以及跟踪安全相关事件等等。这结合图2A和图2B来进一步详细讨论。
图2B例示了示出图2A所例示的用户空间200和内核空间202的组件的详细框图。
如从图2B可以看出,用户空间200中的任何进程206只能通过一个或更多个系统调用来访问在内核空间202的范围下存储的系统资源210。
本文所描述的各种实施方式提供了基于在智能合约204中指定的规则对系统调用的审核,该智能合约是与经许可区块系统212(其等效于先前图1A至图1D中描述的经许可区块链系统)相关联的经部署的智能合约。对系统调用的审核是基于本领域已知的仪器化技术中的任一种来完成的。图2B和图2C描绘了在本文所描述的各种实施方式中出于示例性目的而考虑的一些已知的仪器化技术208。
图2C中详细示出的仪器化技术208包括:内核审核214、探测器(probe)216、跟踪点(trace point)218、以及Berkley封包过滤器220。出于示例性目的,图2C仅描绘了四种仪器化技术208。在不脱离本公开的范围的情况下,可以将任何数量的仪器化技术添加至仪器化技术208的列表中。
内核审核214包括审核子系统,其是用于系统审核和安全功能的基于预配置规则的框架。内核审核214子系统被配置为捕获宽范围的系统事件及其关联的元数据(包括但不限于,文件系统审核、系统调用审核、可信数据库访问)、尝试导入/导出功能以及其它预定义事件。该子系统包括:1)用于生成审核记载的内核组件,2)用于将审核记载记入本地文件或外部服务器的用户空间守护程序(daemon),以及3)用于检查和处理审核日志的一组用户空间工具。
探测器216是动态仪器化使能器,其中内核在运行时通过附接断点和处理程序(handler)函数来修改内核空间(kprobe)或用户空间(uprobe)中的汇编语言级代码。将探测器配置为记录节点150的操作系统的状态及其进程。
跟踪点218包括用于观察仪器化的系统,其中将调用可以在运行时期间指定的函数的异常分支(hook)插入到代码内的重要位置。当到达特定代码路径时,跟踪点218被激活,并且对应的内核API暴露一些预定义事件。
Berkley封包过滤器(BPF)220是用于系统级仪器化的一组技术。BPF的实现需要三个关键组件:1)内核内虚拟机,其自身的虚拟指令集被称为BPF字节码;2)内核运行时,其由解释器、BPF程序安全验证器、用于将BPF字节码转换成本机指令的即时(JIT)编译器组成;3)被称为BPF映射的定制键值数据结构,其用于内核空间202和用户空间200之间的数据共享。BPF有助于监测内核模块的加载、进程崩溃、页面错误、伪使用、SSH认证、密码初始化、外壳命令等。
本文所公开的各种仪器化技术208使得能够实现对一个或更多个系统调用的审核,使得由智能合约204自动记录对一种或多种类型的系统调用(syscall)请求的调用以便在经许可区块链网络212上发布。
因此,将智能合约204部署为节点150的内核仪器化(使用上述内核仪器化技术208中的任一种)的部分,其中,用户空间200中的程序的恶意更改可以通过检查包含与一种或多种类型的系统调用请求相关联的审核数据的经许可区块链网络212来检测。
基于对其提交的审核数据的检查,如果节点150被标识为恶意的,则可以撤销节点150对访问经许可区块链网络212的许可。因此,以上述方式使用经许可区块链网络212架构、智能合约204以及内核仪器化技术208使得能够实现故障检测、故障去除以及安全记录设施,这使得与节点150和经许可区块链网络212相关联的总体系统高度可当责。
图3例示了根据本公开的一些实施方式的、经许可区块链系统300的高级框图。本文所描述的各种实施方式提供了基于经许可区块链网络300的可当责分布式系统。这种系统的主要组件是经许可区块链网络300、智能合约302、以及底层参与者节点304。
底层参与者节点304是使能区块链的一个或更多个联网计算机。参与者节点304中的各个节点皆可以是一个或更多个区块链(子)网络的一部分。而且,参与者节点304中的各个节点皆可以是诸如观察者、操作者、排序者(orderer)、以及轻量级客户端之类的四种类型的节点之一。关键的是,将参与者节点304分类成操作者和观察者。
观察者对应于不具有需要审核的进程的一类参与者节点304,并因此它们不创建需要添加至经许可区块链网络300的交易。相反,观察者运行节点来复制区块链,以用于对它们复制的区块链网络的参与者执行审核。观察者节点执行功能,包括但不限于,通过审核增加经许可区块链网络300的冗余和安全性,从经许可区块链网络300检测和去除恶意参与者,以及根据智能合约302所提供的交易来运行排序服务以附加至区块链。观察者节点提供了诸如增加总体经许可区块链网络300的故障容许度以及还增加总体经许可区块链网络300的故障预防能力的优点,这是因为观察者节点还被配置为通过撤销恶意参与者对经许可区块链网络300的访问特权,来从经许可区块链网络300中去除这些恶意参与者。
经许可区块链网络300的节点的其它主要分类是操作者。操作者是具有需要审核的进程的节点。这可以通过基于智能合约302中指定的规则记载经许可区块链网络300上的操作者节点的操作来实现。而且,如图2C所描述的,使用内核仪器化技术208来审核操作者节点的操作。
经许可区块链网络300的参与者节点304可以包含至少一个观察者节点,以使经许可区块链网络300成为可当责(分布式)系统。
本文所公开的各种实施方式为经许可区块链网络300上的所有节点提供许可管理功能。许可管理功能包括至少一个进程相关许可、节点相关许可、以及人机接口相关许可或其组合。
进程相关许可包括:使用内核仪器化技术208来标识内核内的进程是否拥有访问系统资源的适当许可。这结合图2B进行了概述。这通过前面描述的内核仪器化技术208中的任一种来实现。
节点相关许可包括:检查节点是否被许可参与诸如经许可区块链网络300之类的分布式计算系统。这通过区块链网络框架的以下要求来实现:具有足够许可的节点被所有参与者批准,而缺乏足够许可的节点不允许参与。另外,节点相关许可被记载在经许可区块链网络300中的节点可用的多个网络配置文件中。
人机接口相关许可包括与通过物理接口终端与节点对接的人类操作者相关联的许可。这在其中与经许可区块链网络300相关联的计算装置或联网计算机是可信的,但是在可能不是都可信的多个人类操作者之间共享的场景中是需要的。因此,人机接口相关许可确保:被分派给与联网计算机交互的人类操作者的许可不依靠联网计算机的设置,并且可以由组织(联网计算机或节点是该组织一部分)实时改变。这可以通过轻量级目录访问协议(LDAP)的使用来实现。这将结合图6进一步详细描述。
经许可区块链网络300的架构可以使用多个不同的场景来实现,如将在以下附图及其关联的描述中讨论的。
图4例示了根据本公开的一些实施方式的、组织区块链系统400的高级框图。组织区块链系统400包括作为组织区块链系统400的部分的经许可区块链网络,该经许可区块链网络具有与组织区块链系统400相关联的多个节点或使能区块链的联网计算机。图4例示了四个这样的节点:父节点404及其关联的排序者服务404a、以及一个或更多个子节点:节点402、节点406和节点408。本领域普通技术人员可以理解,系统中所示的节点的具体数量仅出于示例性目的。在不脱离本公开的范围的情况下,任何数量的节点可以与组织区块链系统400相关联。
父节点404可以与父组织相关联,该父组织充当运行排序者服务404a的排序者节点,用于对与组织区块链系统400相关联的其它节点(诸如子节点402、406和408)的审核进行排序。节点404与组织区块链系统400的交互可以是只读的。而且,父节点404可以被配置成通过经由提出交易来参与与组织区块链系统400相关联的共识算法,来同步组织区块链系统400的完整副本。共识算法确保组织区块链系统400的所有节点就组织区块链系统400的当前状态取得一致。
而且,子节点可以与需要被监测的子组织(诸如父组织的附属公司)相关联。所述子节点中的各个子节点皆能够对组织区块链系统400进行读和写。节点402和节点406充当操作节点,它们可以被配置成得到它们的通过前面描述的智能合约和内核仪器化技术的组合而审核的进程,并且还被配置成通过生成包含审核数据的交易来主动参与共识算法。
此外,如图4所例示的,例如,当子节点408是不能够能运行完整的区块链使能节点的轻量级客户端装置时,子节点408可以通过子节点406与组织区块链系统400进行通信。
与区块链框架相关的各种节点和服务的功能可以通过API和代码库的使用来实现,这对于本领域普通技术人员是已知的。
图5例示了根据本公开的一些实施方式的、示出经许可区块链系统500中的不同节点的场景的另一框图。经许可区块链系统500可以与诸如节点502和节点504之类的一个或更多个节点相关联。节点502可以是运行需要审核的进程506的操作者节点。进程506的调用可以进一步导致对节点502上的链码508和节点504上的链码512的调用。如已经讨论的,链码是相关的智能合约的集合或组。然后,使用在链码508和链码512中定义的规则,节点502和504的交易可以在内核级通过使用任何已知的内核仪器化技术来进行监测,其中已经在前面的图2C中描述了一些内核仪器化技术。此外,链码508的调用可以导致对链码510的调用,并且链码512的调用可以导致对链码514的调用,其结果可以被记载在经许可区块链系统500上。此外,链码508和链码512的调用结果(以使用内核仪器化技术审核的结果的形式)可以被记载在经许可区块链系统500上。
以图5所例示的方式,在经许可区块链系统500上的相关链码的调用可以提供交叉链码调用功能,其可以进一步提供使用智能合约和链码使能的审核功能中的一些审核功能的自动化。因此,使用图5所讨论的示例性实施方式,可以将经许可区块链系统500用于以半自动化或全自动化方式来提供故障检测和可当责分布式计算系统。
图6描述了可当责和故障容许分布式计算系统的另一可能实施方式实现,该图例示了用于图3中简要公开的经许可区块链网络300的人类对接(human interfacing)的许可管理。
图6例示了根据本公开的一些实施方式的、用于人类对接许可管理的经许可区块链系统600中的不同节点的详细框图。
经许可区块链系统600可以由可能经授权或可能未经授权访问经许可区块链系统600的人类操作者604来访问。另一方面,节点602可以被许可访问经许可区块链系统600。为了认证人类操作者604以访问经许可区块链系统600,可以使用计算终端608(诸如这里出于示例性目的而示出的Raspberry Pi(RPi)使能终端),来运行诸如LDAP之类的凭证服务606。然后,将认证或审核的结果记载在经许可区块链系统600上。人类操作者的许可可以相应地恢复或撤销。
因此,经许可区块链系统600用作能够以较低的计算成本和高效的安全机制(诸如智能合约和内核仪器化)进行故障检测、故障预防、以及故障去除的可当责分布式系统。
图7例示了根据本公开的一些实施方式的、示出用于在可当责经许可区块链网络中进行故障检测和故障去除的不同步骤的方法700的流程图。
图7的方法700包括:在步骤702,编译和执行与经许可区块链网络相关联的智能合约。例如,参照图2B和图2C,经许可区块链网络212可以与节点150相关联,该节点可以接收与智能合约204相关联的可信二进制文件或源代码文件。如果智能合约204采用源代码文件的形式,则它可以被编译然后被执行。在一些实施方式中,智能合约204本身采用可执行文件的形式,并且不需要被编译。智能合约204的执行导致在智能合约204中指定的一组规则的实施。该组规则可以与用于执行以下项中的至少一项或其组合的一系列操作相关联:1)将数据附加到经许可区块链网络212中,其中交易包括指示在访问经许可区块链网络212的联网计算机或节点之间的消息交换的日志,(2)在达成共识时检测联网计算机(诸如节点150)的恶意行为,其中,该检测是基于联网计算机的内核仪器化来执行的,以及(3)在检测到恶意行为时撤销联网计算机对经许可区块链网络212的访问。
在步骤704,通过基于使用内核仪器化技术208中的任一内核仪器化技术对节点150的系统调用的审核,来生成联网计算机(诸如节点150)的审核数据,从而完成对恶意行为的检测。此外,通过用于审核数据日志的仅附加数据操作,将审核结果存储在经许可区块链网络212中。一旦以这种方式提交了审核数据日志,在步骤706,就可以检测关于节点150的部分的任何恶意行为,并且若需要的话,可以撤销节点150的许可。
图7所描述的方法700可以在任何分布式计算系统中实现,以确保总体分布式计算系统的当责、故障容许度、以及可靠性。
图8例示了根据本公开的一些实施方式的、用于检测和去除分布式计算系统中的故障的工作环境800。工作环境800对应于发电厂804,该发电厂可以充当运行排序服务的父节点,该排序服务用于对通过经许可区块链网络802与发电厂804连接的不同实体的审核进行排序。这些不同的实体可以包括消费者808、工业单元812、以及配电网816。实体808、812以及816中的各个实体皆可以通过运行完整节点或轻量级节点的计算系统(诸如采用区块链使能联网计算机的形式)连接至经许可区块链网络802。此外,各个实体被配置成从经许可区块链网络802接收它们的智能合约的单独副本:消费者808的智能合约810、工业单元812的智能合约814、以及配电网816的智能合约818。各个智能合约皆可以采用不可变的可信二进制文件或源代码文件之一的形式。此外,一些实施方式基于这样的认识,即,所有节点的智能合约的副本可以公用于所有节点。
此外,各个智能合约皆指定用于监测和审核节点808、812和816中的每一个的规则。例如,规则可以涉及电力单元的使用、电力消耗的计量和篡改计量单元的企图、用于工业消耗的电力单元的批准(sanctioning)、通过电网分配电力的单元数量的可允许上限(cap)、对政府和规章制度的遵从等。
当实施智能合约810、814和818中的各个智能合约时,可以使用关联的计算终端的内核级仪器化来审核各种类型的节点,并且将审核结果记载在经许可区块链网络802上。此外,不同的节点然后可以被配置成达成关于所述节点中的各个节点的真实性的共识,并且根据审核的结果和共识,所述节点中的各个节点皆可以被允许恢复它们的与经许可区块链网络802的连接,并且继续访问由发电厂804生成的电力,否则,如果它们的连接未能通过审核过程,那么它们的连接可以被临时禁用。
因此,本文所描述的各种实施方式提供了安全、防篡改、高效、可靠、以及有成本效益的可当责分布式计算系统。各种实施方式提供了通过数字管理来使物理(计算)可审核和可当责。此外,可以容易地使用轻量级客户端实现本文所描述的各种技术作为完整的嵌入式区块链节点的事实使得总体系统高效、可扩展、以及有成本效益。而且,在许多经许可区块链中,客户端是在充当可信轻量级区块链客户端的各种参与节点之间共享的可信二进制。
以上描述仅提供了示例性实施方式,而非旨在对本公开的范围、适用性、或配置进行限制。相反,示例性实施方式的以上描述将向本领域技术人员提供用于实现一个或更多个示例性实施方式的使能描述。在不脱离所附权利要求中阐述的所公开主题的精神和范围的情况下,设想可以对要素的功能和排布结构进行各种改变。
在以上描述中给出具体细节,以提供对实施方式的透彻理解。然而,本领域普通技术人员应当明白,可以在没有这些具体细节的情况下实践这些实施方式。例如,所公开主题中的系统、处理以及其它要素可以以框图形式示出为组件,以免不必要的细节模糊这些实施方式。在其它情况下,公知的处理、结构以及技术可以在没有不必要的细节的情况下被示出,以避免模糊这些实施方式。而且,各个附图中的相同标号和标记表示相同要素。
而且,各个实施方式可以被描述为处理,该处理被描绘为流程图、程序框图、数据流图、结构图或框图。尽管流程图可以将操作描述为顺序处理,但许多操作可以并行或同时执行。另外,操作的次序可以重新排列。处理可以在其操作完成时终止,但可以具有图中未讨论或未包括的附加步骤。而且,并非任何特别描述的处理中的所有操作都可能发生在所有实施方式中。处理可以对应于方法、函数、过程、子例程、子程序等。当处理对应一个函数时,该函数的终止可以对应于该函数返回至调用函数或主函数。
而且,所公开主题的实施方式可以至少部分地、人工地或者自动地实现。可以通过使用机器、硬件、软件、固件、中间件、微代码、硬件描述语言,或任何其组合来执行或至少辅助手动或自动实现。当以软件、固件、中间件或微代码实现时,执行必要任务的程序代码或代码段可以存储在机器可读介质中。处理器可以执行必要的任务。
可以将本文所概述的各种方法或过程编码为可在采用多种操作系统或平台中的任一者的一个或更多个处理器上执行的软件。另外,这种软件可以使用多种合适的编程语言和/或编程或脚本工具中的任一者来进行编写,并且还可以被编译为在框架或虚拟机上执行的可执行机器语言代码或中间代码。在各种实施方式中,通常可以根据需要组合或分布程序模块的功能。
可以将本公开的实施方式具体实施为已经提供了其示例的方法。作为该方法的一部分执行的动作可以按任何合适方式来排序。因此,即使在例示性实施方式中被示出为顺序动作,也可以构造按与所例示相比不同的次序来执行动作的实施方式,其可以包括同时执行一些动作。尽管本公开已经参照特定优选实施方式进行了描述,但是要明白的是,可以在本公开的精神和范围内进行各种其它改变和修改。因此,所附权利要求的方面覆盖落入本公开的真实精神和范围内的所有这种改变和修改。
Claims (20)
1.一种用于形成可当责分布式计算系统的使能区块链的联网计算机,所述可当责分布式计算系统具有访问经许可区块链网络的不同的联网计算机,所述使能区块链的联网计算机包括:至少一个处理器;以及存储器,所述存储器上存储有指令,所述指令在由所述至少一个处理器执行时,使所述联网计算机:
编译并且执行智能合约,其中,所述智能合约包括一组规则,所述一组规则将所述处理器配置成:1)将交易附加到所述经许可区块链,所述交易包括指示在访问所述经许可区块链网络的所述联网计算机之间的消息交换的日志,(2)在达成共识时检测所述联网计算机的恶意行为,其中,所述检测是基于所述联网计算机的内核仪器化来执行的,以及(3)在检测到所述恶意行为时撤销所述联网计算机对所述经许可区块链网络的访问,或其组合;以及
执行分布式计算程序,所述分布式计算程序被配置成与访问所述经许可区块链网络的所述联网计算机达成共识。
2.根据权利要求1所述的联网计算机,其中,所述联网计算机被配置成使用与所述经许可区块链网络的协议不相关的通信协议,来与访问所述经许可区块链网络的所述联网计算机交换消息。
3.根据权利要求1所述的联网计算机,其中,所述联网计算机被配置成使用依赖于所述经许可区块链网络的协议的通信协议,来与访问所述经许可区块链网络的所述联网计算机交换消息。
4.根据权利要求1所述的联网计算机,其中,所述智能合约被配置成基于对一个或更多个审核日志的分析来检测恶意行为,所述一个或更多个审核日志是由所述联网计算机响应于所述智能合约的执行以及所述经许可区块链网络的对应交易而生成的。
5.根据权利要求1所述的联网计算机,其中,所述智能合约被配置成当所述联网计算机向访问所述经许可区块链网络的不同联网计算机传送同一消息的不同值时,检测所述恶意行为。
6.根据权利要求1所述的联网计算机,其中,所述联网计算机被配置为所述经许可区块链网络内的观察者节点或操作者节点中的至少一者。
7.根据权利要求1所述的联网计算机,其中,所述智能合约在所述经许可区块链网络上的部署是通过向所述经许可区块链网络的成员分发所述智能合约的源代码或与经编译的智能合约相关联的可信二进制文件中的至少一者而发生的。
8.根据权利要求1所述的联网计算机,其中,所述智能合约被部署为所述联网计算机的所述内核仪器化的部分,使得由所述智能合约自动记录对一种或多种类型的系统调用syscall请求的调用以便在所述经许可区块链网络上发布。
9.根据权利要求8所述的联网计算机,其中,所述智能合约被部署为所述联网计算机的内核仪器化的部分,其中,通过检查包含与一种或多种类型的系统调用请求相关联的审核数据的所述经许可区块链网络来检测用户空间程序的恶意更改。
10.根据权利要求1所述的联网计算机,其中,所述联网计算机为观察者节点,所述观察者节点被配置成复制所述观察者节点作为成员的所有经许可(子)网络的所述区块链。
11.根据权利要求10所述的联网计算机,其中,所述联网计算机访问多个经许可区块链网络,以确保子网络与另一子网络具有至少一个公共观察者节点。
12.根据权利要求1所述的联网计算机,其中,所述联网计算机为操作者节点,所述操作者节点被配置成通过提交内核仪器化数据来提供该操作者节点的操作的审核细节,所述内核仪器化数据通过经部署的智能合约上传至所述经许可区块链网络。
13.根据权利要求12所述的联网计算机,其中,所述操作者节点被配置成以可信二进制的形式来运行所述智能合约,以将日志写入所述经许可区块链网络。
14.根据权利要求12所述的联网计算机,其中,所述操作者节点与被配置为允许人类交互的物理终端相关联,并且进一步地,其中,所述智能合约被配置成为组织提供许可服务。
15.一种用于在具有不同的联网计算机的分布式系统中进行故障检测的方法,所述不同的联网计算机访问经许可区块链网络并且通过彼此交换消息来协调它们的动作以达成共识,其中,所述不同的联网计算机包括至少一个使能区块链的联网计算机,所述至少一个使能区块链的联网计算机包括至少一个处理器,其中,所述至少一个处理器与所存储的实现所述方法的指令联接,其中,所述指令在由所述处理器执行时,执行所述方法的步骤,所述方法包括以下步骤:
编译和执行智能合约,所述智能合约对访问所述经许可区块链网络的所有所述联网计算机是公用的以用于故障检测,其中,所述智能合约被配置成,(1)将交易附加到所述经许可区块链网络,所述交易包括指示在访问所述经许可区块链网络的所述联网计算机之间的消息交换的日志,(2)在达成共识时检测至少一个联网计算机的恶意行为,以及(3)在检测到所述恶意行为时撤销所述至少一个联网计算机对所述经许可区块链网络的访问;以及
执行分布式计算程序,所述分布式计算程序被配置成与访问所述经许可区块链网络的所述联网计算机达成共识。
16.根据权利要求15所述的方法,其中,所述智能合约被配置成通过对所述经许可区块链网络的所述交易中的日志进行分析来检测恶意行为。
17.根据权利要求15所述的方法,其中,所述智能合约被配置成当所述至少一个联网计算机向访问所述经许可区块链网络的不同的联网计算机传送同一消息的不同值时,检测所述恶意行为。
18.根据权利要求15所述的方法,其中,所述智能合约被部署为所述至少一个联网计算机的内核仪器化的部分,使得由所述智能合约自动记录对一种或多种类型的系统调用syscall请求的调用,以便最终在所述经许可区块链网络上发布。
19.根据权利要求18所述的方法,其中,所述智能合约被部署为所述至少一个联网计算机的内核仪器化的部分,其中,用户空间程序的恶意更改是通过检查包含与一种或多种类型的系统调用请求相关联的审核数据的所述经许可区块链网络来检测的。
20.一种具体实施有能够由处理器执行的程序的非暂时性计算机可读存储介质,所述程序用于执行一种用于在具有不同的联网计算机的分布式系统中进行故障检测的方法,所述不同的联网计算机访问经许可区块链网络并且通过彼此交换消息来协调它们的动作以达成共识,其中,所述不同的联网计算机包括实现所述方法的至少一个使能区块链的联网计算机,所述方法包括以下操作:
编译和执行智能合约,所述智能合约对访问所述经许可区块链网络的所有所述联网计算机是公用的,以用于故障检测,其中,所述智能合约被配置成,(1)将交易附加到所述经许可区块链网络,所述交易包括指示在访问所述经许可区块链网络的所述联网计算机之间的消息交换的日志,(2)在达成共识时检测至少一个联网计算机的恶意行为,以及(3)在检测到所述恶意行为时撤销所述至少一个联网计算机对所述经许可区块链网络的访问;以及
执行分布式计算程序,所述分布式计算程序被配置成与访问所述经许可区块链网络的所述联网计算机达成共识。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/234,041 | 2021-04-19 | ||
US17/234,041 US11985143B2 (en) | 2021-04-19 | 2021-04-19 | Blockchain-based accountable distributed computing system |
PCT/JP2022/001874 WO2022224513A1 (en) | 2021-04-19 | 2022-01-13 | Blockchain-based accountable distributed computing system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117203937A true CN117203937A (zh) | 2023-12-08 |
Family
ID=80786894
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280028544.1A Pending CN117203937A (zh) | 2021-04-19 | 2022-01-13 | 基于区块链的可当责分布式计算系统 |
Country Status (7)
Country | Link |
---|---|
US (1) | US11985143B2 (zh) |
EP (1) | EP4147416B1 (zh) |
JP (1) | JP2024510049A (zh) |
KR (1) | KR20230156129A (zh) |
CN (1) | CN117203937A (zh) |
TW (1) | TW202242691A (zh) |
WO (1) | WO2022224513A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117033146B (zh) * | 2023-10-10 | 2023-12-08 | 北京安天网络安全技术有限公司 | 指定共识合约执行进程的识别方法、装置、设备及介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11475442B1 (en) * | 2018-02-12 | 2022-10-18 | Gemini Ip, Llc | System, method and program product for modifying a supply of stable value digital asset tokens |
US11263315B2 (en) * | 2018-12-03 | 2022-03-01 | Ebay Inc. | System level function based access control for smart contract execution on a blockchain |
US10956204B1 (en) * | 2019-10-14 | 2021-03-23 | International Business Machines Corporation | Free-riding node identification for blockchain |
CN111191212B (zh) * | 2019-12-31 | 2020-12-15 | 卓尔智联(武汉)研究院有限公司 | 基于区块链的数字凭证处理方法、装置、设备和存储介质 |
US11138159B1 (en) * | 2020-02-03 | 2021-10-05 | Architecture Technology Corporation | Database access gateway through distributed networks |
US11575499B2 (en) * | 2020-12-02 | 2023-02-07 | International Business Machines Corporation | Self auditing blockchain |
US11636214B2 (en) * | 2020-12-11 | 2023-04-25 | Hewlett Packard Enterprise Development Lp | Memory scan-based process monitoring |
-
2021
- 2021-04-19 US US17/234,041 patent/US11985143B2/en active Active
-
2022
- 2022-01-13 KR KR1020237035038A patent/KR20230156129A/ko active Search and Examination
- 2022-01-13 EP EP22705167.9A patent/EP4147416B1/en active Active
- 2022-01-13 WO PCT/JP2022/001874 patent/WO2022224513A1/en active Application Filing
- 2022-01-13 CN CN202280028544.1A patent/CN117203937A/zh active Pending
- 2022-01-13 JP JP2023579877A patent/JP2024510049A/ja active Pending
- 2022-04-14 TW TW111114208A patent/TW202242691A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
EP4147416B1 (en) | 2023-07-12 |
US11985143B2 (en) | 2024-05-14 |
EP4147416A1 (en) | 2023-03-15 |
KR20230156129A (ko) | 2023-11-13 |
TW202242691A (zh) | 2022-11-01 |
US20220337602A1 (en) | 2022-10-20 |
JP2024510049A (ja) | 2024-03-05 |
WO2022224513A1 (en) | 2022-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10984134B2 (en) | Blockchain system for leveraging member nodes to achieve consensus | |
Ujcich et al. | Cross-app poisoning in software-defined networking | |
US8695075B2 (en) | System and method for discovery enrichment in an intelligent workload management system | |
US11546366B2 (en) | Threat information sharing based on blockchain | |
US20110302397A1 (en) | Method and Apparatus for Improved Secure Computing and Communications | |
WO2021130607A1 (en) | Partially-ordered blockchain | |
CN111414413A (zh) | 区块链背书验证 | |
Liao et al. | Towards provenance-based anomaly detection in MapReduce | |
WO2022116761A1 (en) | Self auditing blockchain | |
Linger et al. | Life-cycle models for survivable systems | |
EP4147416B1 (en) | Blockchain-based accountable distributed computing system | |
Reantongcome et al. | Securing and trustworthy blockchain-based multi-tenant cloud computing | |
CN109697371A (zh) | 数据库管理方法、装置、介质及电子设备 | |
Ficco et al. | Security and resilience in intelligent data-centric systems and communication networks | |
CN112352240A (zh) | 用于证明或检查数据处理装置的安全性的数据处理装置、系统和方法 | |
Wang et al. | Practical verifiable computation–A MapReduce case study | |
Kundu et al. | Collaborative and accountable hardware governance using blockchain | |
Lombardi et al. | Security for cloud computing | |
CN117032565B (zh) | 一种基于区块链技术的文件安全管理系统 | |
Javed et al. | Blockchain-Based Logging to Defeat Malicious Insiders: The Case of Remote Health Monitoring Systems | |
Eguiluz et al. | Interactions among techniques addressing quality attributes | |
Dudziak-Gajowiak et al. | Solving problems relating to ICT security management systems including various characteristics of the environment and system | |
Ojesanmi | Security issues in mobile agent applications | |
US20220255990A1 (en) | Topological ordering of blockchain associated proposals | |
Ishgair et al. | SoK: A Defense-Oriented Evaluation of Software Supply Chain Security |
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 |