KR20230156129A - 블록체인 기반의 책임 있는 분산 컴퓨팅 시스템 - Google Patents

블록체인 기반의 책임 있는 분산 컴퓨팅 시스템 Download PDF

Info

Publication number
KR20230156129A
KR20230156129A KR1020237035038A KR20237035038A KR20230156129A KR 20230156129 A KR20230156129 A KR 20230156129A KR 1020237035038 A KR1020237035038 A KR 1020237035038A KR 20237035038 A KR20237035038 A KR 20237035038A KR 20230156129 A KR20230156129 A KR 20230156129A
Authority
KR
South Korea
Prior art keywords
blockchain network
permissioned blockchain
networked computer
networked
smart contract
Prior art date
Application number
KR1020237035038A
Other languages
English (en)
Inventor
츠춘 마이클 치우
우로스 칼라빅
아브라함 골드스미스
Original Assignee
미쓰비시덴키 가부시키가이샤
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 미쓰비시덴키 가부시키가이샤 filed Critical 미쓰비시덴키 가부시키가이샤
Publication of KR20230156129A publication Critical patent/KR20230156129A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • 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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • 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
    • G06F21/645Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • 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/3236Cryptographic 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/3239Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer 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 거래) 수행과 같은 공통 목표를 달성하기 위해 메시지의 교환을 통해 서로 통신한다. 일부 시나리오에서는, 분산 컴퓨팅 시스템에 의해 중요한 계산이 수행되기 위해서는, 구성 요소 사이에서 합의에 도달해야 한다. 이는 결국 분산 컴퓨팅 시스템 내의 두 가지 중요한 속성, 즉 구성 요소 사이의 신뢰와 구성 요소의 장애에 대한 견고성에 의존한다. 구성 요소는 다른 구성 요소가 악의적으로 동작하고 있지 않다는 것을 신뢰해야 한다. 신뢰가 없으면, 분산 컴퓨팅 시스템이 합의에 도달하거나 중요한 계산을 수행하는 것이 불가능하다. 이러한 경우, 구성 요소는 기껏해야 의심스러운 메시지를 폐기하거나 악의적인 입력으로 인한 복구 가능한 오류를 접할 수 있으며, 최악의 경우, 구성 요소는 악의적으로 동작하고 있는 신뢰할 수 있는 구성 요소로부터의 악의적인 입력으로 인해 실패한다.
마찬가지로, 분산 컴퓨팅 시스템은 중앙 집중식 시스템보다 훨씬 더 많은 수의 구성 요소를 포함하므로 구성 요소에 대해 견고해야 한다. 분산 컴퓨팅 시스템에 있어서의 신뢰의 필요성은 많은 악의적인 행위자가 악용하려는 취약점의 원인이다.
(위에서 설명한 분산 컴퓨팅 시스템과 같은) 분산 시스템이 악의적인 참가자 또는 구성 요소의 장애에 내성이 있고, 그들의 존재 하에서 계산이 진행되도록 보장하기 위한 알려진 해결책 중 하나는 당업자에게 BFT(Byzantine Fault Tolerance)로 알려져 있다. BFT 접근 방식은 분산 시스템의 비잔티움 장애에 대한 복원력을 높이는 것이 목표이지만, 분산 시스템의 견고성을 높이는 또 다른 접근 방식은 비잔티움 장애를 유발하는 구성 요소를 제거하는 것이다. 이는 책임성(accountability)이라고 알려져 있으며 분산 시스템 내에서 악의적인 참가자를 감지, 식별, 및 격리할 수 있는 분산 시스템의 속성이다. 책임성은 특히 참가자가 악의적인 참가자 중 하나인 경우 분산 시스템(들)의 참가자에게 부인할 수 없는 책임을 할당하고 이러한 시스템 내에서 투명성을 더욱 높이는 것과 같은 추가 이점을 제공한다. 책임성은 시스템의 감사가능성에 더 의존하며, 시스템에 있어서의 악의적인 참가자의 문제와 책임성을 보장하는 기술 분야에서 알려진 해결책에서는 상당한 복잡성을 수반하며 구현을 위해 높은 계산 비용을 발생시킨다.
책임성은 다음 세 가지 속성으로 구성된다.
장애 예방: 비용을 증가시킴으로써 악의적인 행위를 억제
장애 내성: 장애의 감지 및 격리와 시스템의 다른 부분으로의 확산의 방지
장애 제거: 시스템에서 잘못된 행위자를 제거하여 나머지 시스템에 미치는 영향을 제한
책임성을 달성하려면, 각 참가자의 활동을 감사할 수 있어야 한다. 시스템의 감사가능성에는 안전하고, 변조 내성이 있고, 변조를 분명하게 알 수 있고, 투명한 감사 로그(안전한 로깅이라고도 한다)와 구성 요소 내의 프로세스를 관찰할 수 있는 기능이 필요하다. 감사 로그에 대한 엄격한 요구 사항은 감사 로그에 대한 신뢰를 높이기 위해 설계되었지만, 선행 기술에 있어서의 많은 해결책은 이러한 감사 로그에 대한 저장 및 액세스에 대한 중앙 집중식 접근 방식에 의존한다. 이는 신뢰의 문제를 감사 로그 자체에서 감사 로그의 관리자에게 넘겨준다는 단점이 있다. 안전한 로깅을 보장하기 위한 일부 선행 기술의 접근 방식에는 디지털 원장(digital ledger)을 사용하여 감사 로그와 같은 감사 데이터를 보호하고 저장하는 것이 포함된다. 이러한 방식으로, 감사 데이터는 구성원에게 투명하게 공개되며 분산 컴퓨팅 시스템 자체의 구성 요소에 의해 보호된다.
디지털 원장은 컴퓨터에 저장된 트랜잭션의 기록이다. 트랜잭션은 시스템 상태의 변화를 나타낸다. 따라서, 디지털 원장은 금융 시스템과 같은 시스템의 상태나 일반적인 분산 시스템의 상태를 나타낸다. 디지털 원장은 모든 트랜잭션의 기록을 유지함과 아울러 다른 시스템이 자체 기록에 동의하도록 요구하지 않고 중앙 집중식 시스템에 의해 행하여진 변경의 감사 가능한 흔적을 생성하지 않으면서 이 기록을 변경하는 중앙 집중식 시스템에서 구현될 수 있다. 또 다른 방법은 트랜잭션의 기록을 유지하도록 허용하고 여러 시스템 사이의 합의를 결정하는 방법을 구현하는 탈중앙화(decentralized) 또는 분산형(distributed) 방법이다. 이는 분산 시스템을 구성하는 특정 시스템이 이기적인 방식으로 동작하고 분산 시스템을 손상시키는 방식으로 원장을 변경하는 것을 방해하기 때문에 유용하다. 이는 그 자체로 분산 컴퓨팅 시스템에 대한 사용자 신뢰를 높일 수 있으므로 유용할 수 있다.
디지털 원장 기술의 한 가지 예는 블록체인 네트워크이다. 블록체인은 연결된 목록 구조 또는 유사한 구조를 사용하여 서로 연결된 블록으로 구성된 추가 전용(append-only) 데이터 구조이다. 블록은 헤더, 메타데이터, 트랜잭션 목록으로 구성된 디지털 정보의 컨테이너이다. 헤더와 메타데이터에는 소프트웨어 버전, 저장에 필요한 데이터의 양을 압축하는 데 사용되는 암호화 해시, 타임스탬프 등에 대한 정보가 포함될 수 있다. 트랜잭션은 디지털 토큰의 모든 트랜잭션의 목록이며 저장에 필요한 데이터의 양을 줄이기 위해 잠재적으로 해시될 수 있다. 블록은 한 사용자로부터 다른 사용자로의 모든 트랜잭션을 나열한다. 사용자 사이의 트랜잭션은 사용자의 해당 디지털 어드레스 사이의 트랜잭션을 통해 구현된다.
블록체인 데이터 구조는 블록체인 네트워크를 구성하는 노드의 분산 시스템이 단일 컴퓨터처럼 동작하도록 하여 탈중앙화 계산을 가능하게 한다. 중앙 집중식 시스템 내의 계산은 거의 로깅되고 감사되지 않는 반면, 탈중앙화 계산의 결과는 블록체인 트랜잭션의 형태로 블록체인에 기록되므로 계산에 대한 신뢰가 높아진다. 블록체인의 맥락에서 탈중앙화 계산을 설명하는 컴퓨터 프로그램은 스마트 계약이라고 알려져 있다.
블록체인 네트워크의 맥락에서 스마트 계약은 스마트 계약의 실행에 적용되어야 하는 일련의 규칙, 데이터, 및 관계를 정의하는 실행 가능한 컴퓨터 프로그램으로 정의될 수 있다. 스마트 계약은 정의된 블록체인 네트워크의 분산 원장 아키텍처에 추가되면 조작될 수 없다는 점에서 불변이다. 또한, 블록체인 네트워크의 노드에 의해 스마트 계약이 기동(invocation)되면 트랜잭션이 블록체인 네트워크에 기록된다. 일부 구현에서는, 관련 스마트 계약의 그룹을 체인 코드라고 하며, 이는 블록체인 네트워크에서 관련 스마트 계약을 배포하는 데 사용된다.
블록체인 네트워크의 한 가지 예는 비트코인 네트워크이다. 기술 분야에 알려진 블록체인 네트워크는, 중앙 집중식 네트워크와 비교하면, 다양한 노드에 의해 수행되는 계산의 감사와 관련하여 더 높은 대기 시간, 더 낮은 처리량, 및 높은 트랜잭션의 계산 비용이라는 문제를 겪고 있다.
블록체인 네트워크의 또 다른 예는 허가형 블록체인 네트워크(이하, 허가형 블록체인이라고도 한다)이며, 이는 허가형 블록체인 네트워크의 일부가 되고자 하는 각 노드의 액세스 권한을 확인해야 한다. 허가형 블록체인 네트워크에는 일반적으로 블록체인 네트워크의 위에서 실행되는 제어 계층이 포함된다. 허가형 블록체인 네트워크의 참가자는 단순히 그들의 권한을 취소함으로써 네트워크로부터 쉽게 제거될 수 있다. 허가형 블록체인 네트워크에서, 스마트 계약은 허가형 블록체인 네트워크의 모든 구성원에 의해 승인되어야 한다. 따라서, 스마트 계약은 허가형 블록체인 네트워크 내에서 신뢰할 수 있는 네트워크 서비스 역할을 하며 허가형 블록체인 네트워크의 노드에 대한 장애 내성 및 제거 기능을 보장하는 도구로 사용될 수 있다. 노드는 완전한 기능을 갖춘 컴퓨팅 시스템의 모든 기능을 포함할 수 있는 네트워크화한 컴퓨터를 포함할 수 있다. 이러한 기능에는 무엇보다도 완벽하게 동작하는 범용 운영 체제가 포함된다.
최신 범용 운영 체제는 시스템 호출(syscall)로 알려진 높은 레벨의 가상 인터페이스가 기본 컴퓨터 하드웨어를 통해 API(응용 프로그래밍 인터페이스)로서 제공되는 모놀리식 커널이다. 모놀리식 커널은 프로그래머가 기본 하드웨어의 낮은 레벨의 세부 사항에 대해 걱정할 필요가 없도록 하고 커널의 위에서 실행되는 프로세스가 다른 프로세스나 커널 자체를 방해하지 않도록 보장하여 컴퓨팅 시스템에 보안을 제공한다는 두 가지 목적을 가지고 있다. 커널의 위에서 실행되는 프로세스는 사용자 공간을 형성하고 애플리케이션 및 라이브러리 실행을 위해 할당되는 메모리의 일부를 구성하며, 커널에 대한 액세스는 syscall을 통해 제공된다. 반면에, 모놀리식 커널과 같은 커널은 커널 공간이라고 알려진 메모리의 일부에 상주한다. syscall을 제공하는 것 외에도, 최신 커널은 사용자에게 프로파일링 및 이벤트 로깅을 통합하거나 커널 계측이라고 알려진 API의 형식으로 커널 내에서 관찰 가능성을 활성화하는 메커니즘을 제공한다. 모놀리식 커널의 예에는 Linux® 및 OpenBSD®와 같은 주요 운영 체제가 포함된다. 프로그램 실행을 위한 안전하고 신뢰할 수 있는 환경을 제공하고, syscall을 통해 시스템 리소스에 대한 제한적이거나 특권적인 액세스를 제공하는 모놀리식 커널의 기능은 특히 분산 컴퓨팅 시스템의 맥락에서 완전히 탐구되지 않았다.
지금까지, 일부 노드가 네트워크에서 높은 권한을 갖도록 요구하지 않고, 그리고 분산 컴퓨팅 시스템의 참가자나 노드로부터 감사 데이터를 로깅하고 모니터링하는 신뢰할 수 있는 노드(이는 전체 시스템을 중앙 집중식 프레임워크로 다시 끌어들인다) 없이, 분산 컴퓨팅 시스템에 책임성을 도입할 수 있는 방법은 없었다. 또한, 높은 권한을 가진 노드가 네트워크의 신뢰를 유지하는 역할만 담당한다는 책임성의 문제가 여전히 남아 있다. 책임성의 문제는 부인 방지(non-repudiation)의 문제이기도 하다. 분산 컴퓨팅 시스템의 각 노드는 책임이 있고 신뢰할 수 있으며 자신의 행위에 대해 부인할 수 없는 책임을 갖기 위해 고유하게 식별 가능해야 한다.
따라서, 분산 컴퓨팅 시스템 아키텍처에 향상된 보안, 감사가능성, 책임성, 및 신뢰를 제공하기 위해, 노드 또는 시스템의 동작을 최적의 실행 가능한 방식으로 제어하기 위한 효율적인 시스템이 필요하다.
일부 실시예의 목적은 개별 참가자뿐만 아니라 트랜잭션의 책임성, 신뢰, 감사가능성도 보장하는 견고하고 장애 내성이 있는 분산 컴퓨팅 시스템을 제공하는 것이다.
이를 위해, 본 개시의 일부 실시예는 안전한 로깅, 감사 데이터의 변조 내성 및 검증 가능성, 접근 제어, 및 허가형 블록체인 네트워크에 의해 제공되는 탈중앙화 아키텍처의 이점을 고려한 것에 기초한다. 추가적으로, 본 명세서에 개시된 다양한 실시예는 악의적인 참가자가 전체 분산 컴퓨팅 시스템의 무결성을 위협하는 것을 식별, 격리 및 방지하는 데 있어 스마트 계약에 의해 제공되는 이점을 활용하고, 허가형 블록체인 아키텍처를 사용하면 악의적인 참가자의 (읽기 및 쓰기 관련 권한과 같은) 권한을 취소하여 장애 제거의 목적을 달성할 수 있다. 일부 실시예는 또한 syscall의 사용을 통해 커널 레벨 계측을 활용하여 악의적인 노드를 더욱 고유하게 식별하고 전체 시스템의 더 나은 투명성과 감사가능성을 제공한다.
일부 실시예는 시스템의 일부 노드가 높은 네트워크 권한을 소유할 것을 요구하지 않으면서 분산 컴퓨팅 시스템에서 장애가 있는 시스템의 식별, 장애 감지, 및 악의적인 참가자의 제거를 가능하게 함으로써 분산 컴퓨팅 시스템에 책임성을 도입하기 위한 블록체인 기반의 방법을 제공한다.
다양한 실시예는 (1) 신뢰할 수 있는 네트워크 서비스로서의 스마트 계약의 사용, (2) 참가자 분류의 사용, (3) 허가형 블록체인 네트워크에 의해 제공되는 허가 기술을 통한 분산 컴퓨팅 시스템 내의 참가자의 허가의 세 가지 구성 요소에 기초하는 시스템 및 방법을 제공한다.
일부 실시예는 허가형 블록체인 네트워크의 스마트 계약이 참가자 사이에서 소스 코드로서 공유되어야 하며, 따라서 높은 네트워크 권한을 가진 노드가 필요하지 않은 허가형 블록체인 네트워크 내의 신뢰할 수 있는 서비스라는 인식에 기초한다. 이러한 신뢰로 인해, 스마트 계약은 모든 참가자가 신뢰하는 허가형 블록체인 네트워크에 공개하기 위한 감사 데이터를 기록하는 메커니즘으로서 사용될 수 있다. 각 참가자에 대한 감사 데이터는 사용자가 커널 내의 프로세스와 데이터 구조를 관찰하고 로깅할 수 있도록 하는 API에 의해 제공되는 커널 레벨 계측을 사용하여 입수된다. 모든 참가자가 신뢰하는 감사 데이터를 로깅하고 공개하면 악의적인 행위에 대한 비용이 증가하므로 이는 장애 예방에 기여한다.
일부 실시예는 블록체인 시스템에서 각 트랜잭션이 참가자에게 속한 일부 개인 키에 의해 서명되어야 한다는 인식에 기초한다. 이는 허가형 블록체인 프레임워크를 사용하기 위한 설계 결정 외에도 허가형 블록체인 네트워크의 참가자가 시스템에 기록된 신원을 가지고 있어야 하므로 장애 내성 속성을 충족하는 데 사용될 수 있다. 이를 통해 잘못된 행위에 대해 부인할 수 없는 책임을 할당할 수 있다. 마지막으로, 문제를 일으키거나 악의적인 노드는 (허가형 블록체인 네트워크와 같은) 블록체인 네트워크에 참가할 권한을 취소함으로써 쉽게 제거될 수 있으므로 허가형 블록체인 시스템에서는 장애 제거가 간단하다.
일부 실시예는 노드의 동작을 감사하기 위해 그리고 분산 시스템 내의 노드에 대한 권한 제어 프레임워크로서 허가형 블록체인 네트워크를 사용하면 블록체인 네트워크의 위에서 계산이 수행되는 경우에는 불가능할 분산 시스템의 신뢰도와 견고성이 크게 향상된다는 이해에 기초한다.
일부 실시예는 분산 컴퓨팅 시스템 내에서 노드의 활동에 대한 검증 가능한 기록을 공개하는 것이 블록체인 네트워크 내의 모든 노드에서 계산을 반복하는 것보다 계산 집약적이지 않다는 인식에 기초한다. 따라서, 본 명세서에 개시된 시스템 및 방법은 견고하고, 책임 있고, 안전하고, 신뢰할 수 있는 분산 컴퓨팅 시스템을 제공하기 위한 계산 비용 및 향상된 효율성 측면에서 상당한 절감 효과를 제공한다.
일부 실시예에 따르면, 장애 감지 및 제거 기능을 갖춘 분산 컴퓨팅 시스템을 구현하기 위한 시스템 및 방법이 제공된다. 분산 컴퓨팅 시스템은 허가형 블록체인 네트워크를 통해 하나 이상의 서로 다른 네트워크화한 컴퓨터와 통신하는 적어도 하나의 블록체인 기반의 네트워크화한 컴퓨터로 구성된다. 블록체인 기반의 네트워크화한 컴퓨터는 적어도 하나의 프로세서, 메모리, 메모리에 저장된 운영 체제, 및 적어도 하나의 프로세서에 의해 실행되어 다양한 동작을 수행할 수 있는 메모리에 저장된 하나 이상의 명령을 포함하는 일반 시스템 구성 요소를 포함한다. 메모리는 커널 공간과 사용자 공간으로 구분될 수 있다. 메모리는 적어도 하나의 프로세서에 의해 실행될 때 네트워크화한 컴퓨터가 스마트 계약을 컴파일하고 실행하게 하는 명령을 추가로 저장할 수 있다. 스마트 계약은 허가형 블록체인 네트워크의 일부인 모든 네트워크화한 컴퓨터에 공통되는 컴퓨터 프로그램일 수 있다. 스마트 계약은 허가형 블록체인 네트워크에 트랜잭션을 추가하는 것 - 트랜잭션에는 허가형 블록체인 네트워크에 액세스할 수 있는 네트워크화한 컴퓨터 사이의 메시지의 교환을 나타내는 로그가 포함됨 - 과, 허가형 블록체인 네트워크의 다른 참가자와의 합의에 도달하는 과정에서 네트워크화한 컴퓨터의 악의적인 행위를 감지하는 것과, 악의적인 행위가 감지되면 네트워크화한 컴퓨터의 허가형 블록체인 네트워크에 대한 액세스를 취소하는 것 중 적어도 하나 또는 이들의 조합을 포함하는 일련의 동작을 정의하는 데 사용되는 일련의 규칙으로 구성된다. 악의적인 행위의 감지는 스마트 계약에 의해 활성화된 네트워크화한 컴퓨터의 커널 계측에 기초하여 수행된다. 또한, 스마트 계약이 컴파일되고 실행되면, 허가형 블록체인 네트워크에 액세스할 수 있는 다른 네트워크화한 컴퓨터와의 합의에 도달하기 위해 분산 프로그램이 실행된다.
일부 실시예는 허가형 블록체인 네트워크의 참가자인 서로 다른 네트워크화한 컴퓨터가 두 가지 유형의 참가자, 즉 (1) 관찰자(observer) 및 (2) 운영자(operator) 중 적어도 하나로 분류될 수 있다는 인식에 기초한다. 관찰자는 특정 (서브)네트워크의 참가자의 감사 데이터가 포함된 블록체인을 복제하기 위해 적어도 하나의 블록체인 노드를 실행해야 할 수 있는 허가형 블록체인 네트워크의 참가자 또는 노드이다. 관찰자는 허가형 블록체인 네트워크에 대해 하나 이상의 트랜잭션을 제안함으로써 합의 고정에 참가한다. 다른 유형의 노드는 트랜잭션을 수행함으로써 합의 과정에 적극적으로 참가하는 운영자 노드이다.
일부 실시예는 스마트 계약의 실행 및 허가형 블록체인 네트워크의 해당 트랜잭션에 응답하여 네트워크화한 컴퓨터에 의해 생성된 하나 이상의 감사 로그의 분석에 기초하여 스마트 계약이 허가형 블록체인 네트워크에서 노드의 악의적인 행위를 감지하도록 구성되었다는 인식에 기초한다.
일부 실시예는 네트워크화한 컴퓨터가 허가형 블록체인 네트워크에서 연결된 서로 다른 노드 또는 네트워크화한 컴퓨터에 메시지의 서로 다른 값을 전달하려고 시도할 때 악의적인 행위가 발생한다는 인식에 기초한다.
일부 실시예는 스마트 계약이 소스 코드 파일 또는 신뢰할 수 있는 바이너리 파일 중 적어도 하나의 형태로 허가형 블록체인 네트워크의 노드에 배포될 수 있다는 인식에 기초한다.
네트워크화한 컴퓨터에서 수행되는 커널 계측 활동의 일부로서 스마트 계약을 배포하는 것이 일부 실시예의 목적이다. 커널 계측은 스마트 계약을 사용하여 다양한 유형의 syscall 요청에 의해 수행된 감사의 결과를 로깅함으로써 수행되고, 그 후, 허가형 블록체인 네트워크에 공개된다. 하나 또는 여러 유형의 syscall 요청과 관련된 감사 데이터를 검사함으로써 식별되는 사용자 공간 프로그램의 악의적인 변경이 로그에 표시되면, 허가형 블록체인 네트워크의 악의적인 참가자가 식별되고 격리된다.
또한, 일부 실시예에서, 악의적인 참가자와 관련된 모든 권한을 취소함으로써 허가형 블록체인 네트워크로부터 악의적인 참가자가 제거된다.
도 1a는 본 개시의 일부 실시예에 따른, 장애 감지 및 제거를 위한 허가형 블록체인 시스템의 아키텍처를 보여주는 블록도를 도시한다.
도 1b는 본 개시의 일부 실시예에 따른, 다양한 유형의 노드를 포함하는 허가형 블록체인 시스템의 블록도를 도시한다.
도 1c는 본 개시의 일부 실시예에 따른, 경량 클라이언트 노드를 포함하는 허가형 블록체인 시스템의 블록도를 도시한다.
도 1d는 본 개시의 일부 실시예에 따른, 스마트 계약을 포함하는 허가형 블록체인 시스템의 블록도를 도시한다.
도 2a는 본 개시의 일부 실시예에 따른, 사용자 공간과 커널 공간 사이의 분리를 보여주는 블록도를 도시한다.
도 2b는 본 개시의 일부 실시예에 따른, 도 2a에 도시된 사용자 공간과 커널 공간의 구성 요소를 보여주는 상세한 블록도를 도시한다.
도 2c는 본 개시의 일부 실시예에 따른, 커널 공간 데이터를 감사하는 데 사용되는 계측 기술을 보여주는 상세한 블록도를 도시한다.
도 3은 본 개시의 일부 실시예에 따른, 허가형 블록체인 시스템의 상위 레벨 블록도를 도시한다.
도 4는 본 개시의 일부 실시예에 따른, 조직적 블록체인 시스템의 상위 레벨 블록도를 도시한다.
도 5는 본 개시의 일부 실시예에 따른, 허가형 블록체인 시스템의 다양한 노드의 상세한 블록도를 도시한다.
도 6은 본 개시의 일부 실시예에 따른, 허가형 블록체인 시스템의 다양한 노드의 상세한 블록도를 도시한다.
도 7은 본 개시의 일부 실시예에 따른, 허가형 블록체인 시스템의 다양한 노드의 흐름도를 도시한다.
도 8은 본 개시의 일부 실시예에 따른, 분산 컴퓨팅 시스템에서 장애를 감지하고 제거하기 위한 환경을 도시한다.
다음의 설명에서는, 설명의 목적으로, 본 개시의 철저한 이해를 제공하기 위해 다수의 특정한 세부 사항이 제시된다. 그러나, 본 개시가 이러한 특정한 세부 사항 없이도 실시될 수 있다는 것은 당업자에게 명백할 것이다. 다른 경우에, 본 개시를 모호하게 하는 것을 피하기 위해 장치 및 방법을 블록도 형식으로 보여준다.
본 명세서 및 청구범위에 사용된 용어 "예컨대", "예를 들어", 및 "~와 같은", 동사 "구비하는", "갖는", "포함하는", 및 이들의 다른 동사 형태는, 하나 이상의 구성 요소 또는 기타 항목의 목록과 함께 사용될 때, 각각 오픈 엔드(open ended)로서 해석되고, 이는 해당 목록이 다른 추가 구성 요소 또는 항목을 제외하는 것으로 간주되지 않음을 의미한다. "~에 기초하여"라는 용어는 적어도 부분적으로 기초한다는 것을 의미한다. 또한, 본 명세서에 사용된 어법 및 용어는 설명의 목적을 위한 것이며 제한하는 것으로 간주되어서는 안 된다는 것을 이해해야 한다. 이 설명에 활용된 모든 제목은 편의를 위한 것일 뿐이고 법적 또는 제한적 효과는 없다.
도 1a는 본 개시의 일부 실시예에 따른, 장애 감지 및 제거를 위한 허가형 블록체인 시스템(100)의 아키텍처를 보여주는 블록도를 도시한다. 시스템(100)은 블록체인 네트워크(112) 및 블록체인 네트워크(120)와 같은 하나 이상의 블록체인 네트워크를 포함한다. 시스템(100)은 노드(114), 노드(116), 노드(118), 및 노드(122)와 같은 복수의 노드를 더 포함한다. 노드(114), 노드(118), 및 노드(122)는 블록체인 네트워크(120)와 연관되어 있다. 노드(116)는 블록체인 네트워크(112)와 연관되어 있고 그 일부이다. 복수의 노드의 각각은 네트워크화한 컴퓨터일 수 있다. 또한, 네트워크화한 컴퓨터의 각각은 결과적으로 블록체인 기반의 네트워크화한 컴퓨터일 수 있다.
도 1a에 도시된 것처럼, 노드는 둘 이상의 네트워크의 일부일 수 있다. 예컨대, 노드(114)는 블록체인 네트워크(112)뿐만 아니라 블록체인 네트워크(120)의 일부이다. 당업자는 네트워크(112, 120)가 본 명세서에 설명된 특정한 실시예의 목적을 위해서만 블록체인 네트워크로서 나타내어진다는 것을 이해할 수 있다. 블록체인이라는 용어는 분산 컴퓨팅 네트워크를 구현하는 네트워크 아키텍처를 나타내며, 분산 컴퓨팅 네트워크 내에서 분산 컴퓨팅 네트워크와 관련된 동작 및 트랜잭션을 탈중앙화하여 제어한다. 따라서, 노드(114, 116, 118, 122)는 이러한 분산 컴퓨팅 네트워크의 노드일 수 있으며, 그 중 하나의 특정한 유형은 모든 활성화 기술을 갖춘 블록체인 네트워크이다. 또한, 일부 실시예에서, 블록체인 네트워크는 허가형 블록체인 네트워크이며, 블록체인 계층의 위에 액세스 계층을 갖고, 이는 허가형 블록체인 네트워크의 일부인 다양한 노드에 사용 가능한 다양한 허가를 정의한다.
허가형 블록체인 네트워크 아키텍처 자체에는 별도의 블록체인 백본을 사용하여 허가형 블록체인 네트워크의 노드와 관련된 감사 로그에 대한 안전한 로깅 기능을 제공하는 것, 신뢰 기반의 안전한 분산 컴퓨팅 아키텍처를 제공하는 것과 같은 많은 장점이 있다. 동시에, 허가형 블록체인 아키텍처는 장애 내성, 장애 방지, 및 장애 제거 기능을 제공하므로, 분산(탈중앙화) 컴퓨팅 시스템을 구현하는 데 있어 책임이 높은 아키텍처가 된다.
허가형 블록체인 시스템(100)의 노드는 시스템의 참가자라고 할 수 있으며, 관찰자와 운영자라는 두 가지 넓은 범주로 나누어질 수 있다. 추가적으로, 허가형 블록체인 시스템(100)에는 주문 노드와 경량 클라이언트가 있을 수 있으며, 이에 대해서는 본 명세서에 제공된 다양한 실시예에 대한 설명에서 나중에 논할 것이다.
관찰자는 반드시 트랜잭션을 생성하지는 않지만 시스템의 악의적인 참가자를 감지, 식별, 및 제거하는 역할을 담당하는 노드이다. 관찰자는 또한 허가형 블록체인 시스템(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)로 구성된 상위(parent) 조직을 나타낸다. 노드(124, 128)는 둘 다 상위 조직(136) 내에 있기 때문에 서로 통신할 수 있다. 조직(138)은 또한 동작이 감사되고 허가형 블록체인 시스템(126)에 커밋되는 두 개의 노드(130, 132)로 구성된 보조 조직(134)을 포함한다. 도 1b는 도 1a의 허가형 블록체인 시스템(100)에 대한 한 가지 유형의 활성화 환경만을 도시한다. 또 다른 활성화 예(도면에는 나타내지 않는다)에는 모든 참가자가 신뢰할 수 있는 허가형 블록체인 시스템(100)의 참가자의 하위 집합에 대한 실시간의 자동 감사가 포함된다. 허가형 블록체인 시스템(100)의 각 참가자는 앞에서 설명한 관찰자, 운영자, 주문지, 및 경량 클라이언트의 네 가지 유형 중 하나일 수 있다. 운영자와 관찰자는 앞서 도 1a와 관련하여 이미 설명하였다. 경량 클라이언트는 도 1c의 이하의 설명에 설명되어 있다.
도 1c는 본 개시의 일부 실시예에 따른, 경량 클라이언트 노드를 포함하는 허가형 블록체인 시스템(140)의 블록도를 도시한다. 허가형 블록체인 시스템(140)은 경량 클라이언트(142) 및 경량 클라이언트(144)와 같은 두 개의 경량 클라이언트 노드를 포함한다. 경량 클라이언트(144)는 임베디드 장치(146)를 더 포함한다.
경량 클라이언트(142, 144)는 내장형 컴퓨터, 랩탑, 휴대폰, 스마트폰, 태블릿, 스마트 워치, 웨어러블 컴퓨터, POS(Point of Sale) 단말기, 키오스크, 라우팅 장치, 발전소의 모니터링 단말기, 전자 계량기 등과 같은 임의의 최신 컴퓨터를 포함할 수 있다. 일부 실시예는 많은 최신 컴퓨터가 임베디드 장치(146)와 연관된 경량 클라이언트(144)와 같이 계산 능력이 제한된 임베디드 장치라는 인식에 기초하며, 이로 인해 해당 컴퓨터는 자신이 속한 블록체인의 전체 복사본을 저장할 수 없게 된다. 그러나, 허가형 블록체인 시스템(140)의 실시예와 아키텍처를 사용하면, 계산 능력이 낮은 이러한 경량 시스템이라도 완전히 신뢰될 수 있고 안전할 수 있으며 악의적인 행위에 대해 효율적으로 모니터링될 수 있다. 이는 본 명세서에 설명된 다양한 실시예에 개시된 허가형 블록체인 시스템(100)(또는 동등하게 허가형 블록체인 시스템(140))에서 구현된 스마트 계약과 커널 계측 기술의 조합으로 인해 가능할 수 있다.
도 1d는 본 개시의 일부 실시예에 따른, 스마트 계약(152)을 포함하는 허가형 블록체인 시스템(148)의 블록도를 도시한다. 허가형 블록체인 시스템(148)은 다른 네트워크화한 컴퓨터(본 명세서에는 나타내지 않는다)와 통신할 수 있는 블록체인 기반의 네트워크화한 컴퓨터일 수 있는 노드(150)를 포함한다. 노드(150)는 노드(150)에 대한 감사 절차의 일부로서 스마트 계약(152)을 컴파일하고 실행하도록 구성될 수 있다. 스마트 계약(152)은 프로세스(154)와 연관될 수 있다. 스마트 계약(152)은 스마트 계약(152)의 실행 및 허가형 블록체인 네트워크(148)의 해당 트랜잭션에 응답하여 노드(150)에 의해 생성된 하나 이상의 감사 로그의 분석에 기초하여 노드(150)와 연관된 악의적인 행위를 감지하도록 구성될 수 있다.
이를 위해, 스마트 계약(152)은 노드(150)가 허가형 블록체인 네트워크(148)에 액세스할 수 있는 다양한 다른 노드(또는 네트워크화한 컴퓨터)에 동일한 메시지의 다른 값을 전달할 때에 노드(150)의 악의적인 행위를 감지하도록 구성된다.
다양한 실시예는 허가형 블록체인 네트워크(148)의 (노드(150)와 같은) 구성원에게 스마트 계약(152)의 소스 코드 또는 컴파일된 스마트 계약(152)과 연관된 신뢰할 수 있는 바이너리 파일을 배포함으로써 허가형 블록체인 네트워크(148)에서 의 스마트 계약(152)의 배포를 가능하게 한다. 스마트 계약(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)에 의해 허가형 블록체인 네트워크(148)에 업로드된 커널 계측 데이터를 (스마트 계약(152)의 실행에 응답하여) 제출함으로써 동작에 대한 감사 세부 사항을 제공하는 운영자 노드로서 구성된다.
일부 실시예에서, 노드(150)가 운영자 노드로서 구성되면, 노드(150)는 인간 상호작용을 허용하도록 구성된 물리적 단말과 추가로 연관되고, 또한 스마트 계약(152)은 조직의 인간 운영자에게 허가를 제공하도록 구성된다. 이에 대해서는 도 6 및 관련 설명에서 자세히 설명될 것이다.
다양한 실시예에서는 노드(150)가 허가형 블록체인 네트워크(148)의 일부인 모든 노드의 행동을 조정하기 위해 허가형 블록체인 네트워크(148)의 다른 노드와 메시지를 교환하도록 구성되는 것을 추가로 제공한다. 이러한 조정은 결국 일반적으로 합의 알고리즘으로 알려진 분산 컴퓨팅 프로그램에 따라 허가형 블록체인 네트워크(148)의 현재 상태에 관하여 허가형 블록체인 네트워크(148)의 모든 노드 사이에서 합의에 도달하기 위해 수행된다. 합의에 도달하기 위해 허가형 블록체인 네트워크(148)에 의해 사용될 수 있는 합의 알고리즘의 한가지 예는 PBFT(Practical Byzantine Fault Tolerant) 알고리즘이며, 여기서 노드는 노드의 트랜잭션의 유효성에 관하여 허가형 블록체인 네트워크(148)의 다른 모든 노드로부터 확인을 수신하도록 구성된다. 그 후, 노드에 의해 수신된 총 확인의 수에 기초하여 합의에 도달한다.
본 명세서에 개시된 일부 실시예는 관찰자 노드가 허가형 블록체인 네트워크(148)의 모든 노드에 대한 트랜잭션을 제안함으로써 합의에 도달하는 데 도움이 된다는 이해에 기초한다. 또한, 관찰자 노드에 의해 제안된 트랜잭션은 스마트 계약(152)과 같은 스마트 계약에 명시된 일련의 공통 규칙에 따라 허가형 블록체인 네트워크(148)에서 감사 및 감사의 결과의 기록을 거치게 된다.
다양한 실시예에서는 스마트 계약(152)이 노드의 애플리케이션 공간의 일부로서 노드(150)에 저장되고 추가로 노드(150)의 커널 계측의 일부로서 배포되는 것을 제공한다. 이는 도 2a 내지 도 2c와 함께 더 자세히 논의될 것이다.
도 2a는 본 개시의 일부 실시예에 따른, 노드(150)와 연관된 사용자 공간(200)과 커널 공간(202) 사이의 분리를 보여주는 블록도를 도시한다.
사용자 공간(200)은 애플리케이션 프로그램, 애플리케이션 데이터, API, 소프트웨어 또는 코드 라이브러리, 저장된 프로시저, 알고리즘, 컴퓨터 명령어, 사용자 파일 등과 같은 사용자 프로그램을 저장하는 노드(150)(메모리 및 프로세서를 갖는 컴퓨팅 구성 요소)의 메모리 부분을 포함한다. 사용자 공간(200)의 사용자 프로그램은 일반적으로 C#, C++, Java, Python, Solidity, JavaScript 등과 같은 알려진 고급 언어 중 하나로 작성된다. 사용자 공간(200)은 또한 하나 이상의 기능을 수행하기 위한 알고리즘 및 논리 명령을 정의하는 비즈니스 프로세스 또는 네트워크 인터페이스 프로세스와 같은 다양한 프로세스를 포함한다. 기능은 애플리케이션별로 다르다. 사용자 공간(200)의 사용자 프로그램의 유형 중 하나는 스마트 계약(204)(도 1d에 나타낸 스마트 계약(152)과 동일하다)이다. 스마트 계약(204)은 스마트 계약(204)의 실행 때에 실행되는 시행 가능한 규칙을 정의한다. 스마트 계약(204)의 실행은 결국 시스템(운영 체제)의 리소스에 대한 액세스를 요구하는 하나 이상의 프로세스를 기동할 수 있다. 시스템 리소스는 커널 공간(202)으로 알려진 사용자 공간(200)과 별도의 메모리 부분에 저장된다.
커널 공간(202)은 운영 체제 및 관련 프로그램의 형태로 노드(150)의 코어가 저장되는 메모리의 일부를 정의한다. 커널 공간(202)은 하드웨어 및 파일 시스템과 같은 다양한 시스템 리소스의 인터페이스를 가능하게 하는 특수 프로그램을 저장한다. 커널 공간(202)은 장치 드라이버, 메모리 관리 프로그램, I/O 관리 프로그램, 프로세스 관리 프로그램 등과 같은 특수 프로그램 및 데이터를 포함할 수 있다. 일반적으로, 커널 공간 프로그램은 C와 같은 저급 언어로 작성된다.
커널 공간(202)에 포함된 시스템 리소스는 시스템 호출 또는 syscall의 형태로 커널 공간(202)에 전송된 특수 요청을 통해 사용자 공간(200) 프로세스로부터 액세스될 수 있다. 각 리소스 액세스에는 별도의 syscall이 필요하다. 또한, 각 syscall 및 관련 시스템 리소스는 커널 레벨 계측 기술로 알려진 특수 기술을 사용하여 모니터링될 수 있다. 커널 레벨 계측 기술을 사용하면 특히 코드의 관찰, 성능 지표의 수집, 보안 관련 이벤트의 추적이 가능하다. 이는 도 2a 및 도 2b와 관련하여 더 자세히 논의된다.
도 2b는 도 2a에 도시된 사용자 공간(200) 및 커널 공간(202)의 구성 요소를 보여주는 상세한 블록도를 도시한다.
도 2b에서 볼 수 있듯이, 사용자 공간(200)의 모든 프로세스(206)는 하나 이상의 syscall을 통해 커널 공간(202)의 영역에 저장된 시스템 리소스(210)에만 액세스할 수 있다.
본 명세서에 설명된 다양한 실시예는 허가형 블록 시스템(212)(앞서 도 1a 내지 도 1d에서 설명한 허가형 블록체인 시스템과 동일하다)과 연관된 배포된 스마트 계약인 스마트 계약(204)에 명시된 규칙에 기초하여 syscall을 감사하는 것을 제공한다. syscall의 감사는 해당 분야에 알려진 계측 기술 중 하나에 기초하여 수행된다. 도 2b 및 도 2c는 본 명세서에 설명된 다양한 실시예에서 예시적인 목적으로 고려된 일부 알려진 계측 기술(208)을 도시한다.
도 2c에 자세히 나타낸 계측 기술(208)은 커널 감사(214), 프로브(216), 추적 포인트(218), 및 버클리 패킷 필터(220)를 포함한다. 예시적인 목적으로 도 2c에는 4개의 계측 기술(208)만이 도시되어 있다. 본 개시의 범위를 벗어나지 않으면서 임의의 개수의 계측 기술이 계측 기술(208)의 목록에 추가될 수 있다.
커널 감사(214)는 시스템 감사 및 보안 기능을 위한 미리 구성된 규칙 기반의 프레임워크인 감사 서브시스템으로 구성된다. 커널 감사(214) 서브시스템은 파일 시스템 감사, syscall 감사, 신뢰할 수 있는 데이터베이스 액세스를 포함하되 이에 국한되지 않는 광범위한 시스템 이벤트 및 관련 메타데이터를 캡처하도록 구성된다. 함수 및 기타 사전 정의된 이벤트 가져오기/내보내기를 시도한다. 서브시스템은 1) 감사 기록을 생성하기 위한 커널 구성 요소, 2) 감사 기록을 로컬 파일이나 외부 서버에 로깅하기 위한 사용자 공간 데몬, 3) 감사 로그를 검사하고 처리하기 위한 사용자 공간 도구의 세트로 구성된다.
프로브(216)는 커널이 중단점(breakpoint) 및 핸들러 기능을 연결함으로써 런타임에 커널 공간(kprobes) 또는 사용자 공간(uprobes)에서 어셈블리 언어 레벨 코드를 수정하는 동적 계측 이네이블러(enabler)이다. 노드(150)의 운영 체제의 상태와 그 프로세스를 로깅하기 위해 프로브가 구성된다.
추적 포인트(218)는 런타임 중에 지정될 수 있는 함수를 호출하는 후크가 코드 내의 중요한 위치에 삽입되는 관찰 계측을 위한 시스템을 포함한다. 특정 코드 경로에 도달하면 추적 포인트(218)가 활성화되고, 해당 커널 API는 일부 사전 정의된 이벤트를 노출한다.
버클리 패킷 필터(BPF)(220)는 시스템 레벨 계측을 위한 기술의 세트이다. BPF를 구현하려면 1) BPF 바이트코드로 알려진 자체 가상 명령어 세트를 갖는 커널 내 가상 머신, 2) 인터프리터, BPF 프로그램의 안전을 위한 검증자, BPF 바이트코드를 기본 명령어로 변환하기 위한 JIT(Just In Time) 컴파일러로 구성된 커널 런타임, 3) 커널 공간(202)과 사용자 공간(200) 사이의 데이터 공유를 위한 BPF 맵으로 알려진 맞춤형 키-값 데이터 구조의 세 가지 주요 구성 요소가 필요하다. BPF는 커널 모듈의 로딩, 프로세스 충돌, 페이지 틀림(page fault) 오류, 의사 사용(pseudo usage), SSH 인증, 암호화 초기화, 셸 명령 등을 모니터링하는 데 도움이 된다.
본 명세서에 개시된 다양한 계측 기술(208)은 하나 이상의 syscall에 대한 감사를 가능하게 하여 하나 또는 복수의 유형의 시스템 호출(syscall) 요청의 기동이 허가형 블록체인 네트워크(212)에 공개하기 위해 스마트 계약(204)에 의해 자동으로 로깅되도록 한다.
따라서, 스마트 계약(204)은 노드(150)의 (위에 설명된 커널 계측 기술(208) 중 하나를 사용하는) 커널 계측의 일부로서 배포되며, 여기서 사용자 공간(200)의 프로그램에 대한 악의적인 변경은 하나 또는 복수의 유형의 시스템 호출 요청과 관련된 감사 데이터를 포함하는 허가형 블록체인 네트워크(212)를 검사함으로써 감지될 수 있다.
노드(150)가 제출된 감사 데이터의 검사에 기초하여 악의적인 것으로 식별되면, 허가형 블록체인 네트워크(212)에 액세스하기 위한 노드(150)의 허가가 취소될 수 있다. 따라서, 위에서 설명한 방식으로 허가형 블록체인 네트워크(212) 아키텍처, 스마트 계약(204), 및 커널 계측 기술(208)을 사용하면 장애 감지, 장애 제거, 및 안전한 로깅 기능이 가능하게 되고, 이것에 의해 노드(150) 및 허가형 블록체인 네트워크(212)와 관련된 전체 시스템에 높은 책임이 부과된다.
도 3은 본 개시의 일부 실시예에 따른, 허가형 블록체인 시스템(300)의 상위 레벨 블록도를 도시한다. 본 명세서에 설명된 다양한 실시예는 허가형 블록체인 네트워크(300)에 기초하는 책임 있는 분산 시스템을 제공한다. 이러한 시스템의 주요 구성 요소는 허가형 블록체인 네트워크(300), 스마트 계약(302), 및 기본 참가자 노드(304)이다.
기본 참가자 노드(304)는 블록체인에 기반하는 하나 이상의 네트워크화한 컴퓨터이다. 참가자 노드(304)의 각 노드는 하나 이상의 블록체인 (서브)네트워크의 일부일 수 있다. 또한, 참가자 노드(304)의 각 노드는 관찰자, 운영자, 주문자, 및 경량 클라이언트와 같은 네 가지 유형의 노드 중 하나일 수 있다. 결정적으로, 참가자 노드(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(Lightweight Directory Access Protocol)를 사용하여 구현될 수 있다. 이에 대해서는 도 6을 참조하여 더 자세히 설명될 것이다.
허가형 블록체인 네트워크(300)의 아키텍처는, 이하의 도면 및 관련 설명에서 논의되는 바와 같이, 다양한 시나리오를 사용하여 구현될 수 있다.
도 4는 본 개시의 일부 실시예에 따른, 조직적 블록체인 시스템(400)의 상위 레벨 블록도를 도시한다. 조직적 블록체인 시스템(400)은 조직적 블록체인 시스템(400)의 일부로서 허가형 블록체인 네트워크를 포함하며, 조직적 블록체인 시스템(400)과 연관된 복수의 노드 또는 블록체인 기반의 네트워크화한 컴퓨터를 갖는다. 도 4는 이러한 4개의 노드, 즉 상위 노드(404) 및 이와 연관된 주문자 서비스(404a)와, 하나 이상의 하위 노드인 노드(402), 노드(406), 노드(408)를 도시한다. 당업자는 시스템에 나타낸 특정한 수의 노드가 단지 예시적인 목적임을 이해할 수 있다. 본 개시의 범위를 벗어나지 않고 임의의 수의 노드가 조직적 블록체인 시스템(400)과 연관될 수 있다.
상위 노드(404)는 조직적 블록체인 시스템(400)과 연관된 (하위 노드(402, 406, 408)와 같은) 다른 노드의 주문 감사를 위해 주문자 서비스(404a)를 실행하는 주문자 노드의 역할을 하는 상위 조직과 연관될 수 있다. 노드(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)에 정의된 규칙을 이용하여, 앞서 도 2c에서 그 일부가 설명된 임의의 알려진 커널 계측 기술을 사용하여 커널 레벨에서 노드(502, 504)의 트랜잭션이 모니터링될 수 있다. 또한, 체인 코드(508)의 기동은 체인 코드(510)의 기동으로 이어질 수 있고, 체인 코드(512)의 기동은 체인 코드(514)의 기동으로 이어질 수 있으며, 그 결과는 허가형 블록체인 시스템(500)에 기록될 수 있다. 또한, 체인 코드(508)와 체인 코드(512)의 기동의 결과(커널 계측 기술을 이용한 감사의 결과의 형태이다)가 허가형 블록체인 시스템(500)에 기록될 수 있다.
도 5에 도시된 방식으로 허가형 블록체인 시스템(500)에서 관련 체인 코드를 기동하면 크로스 체인 코드 기동 기능을 제공할 수 있으며, 이는 스마트 계약 및 체인 코드를 사용하여 활성화된 일부 감사 기능의 자동화를 추가로 제공할 수 있다. 따라서, 도 5에서 논의된 예시적인 실시예를 사용하여, 허가형 블록체인 시스템(500)은 반자동 또는 완전 자동화 방식으로 장애 감지 및 책임 있는 분산 컴퓨팅 시스템을 제공하는 데 사용될 수 있다.
책임 있고 장애 내성이 있는 분산 컴퓨팅 시스템의 또 다른 가능한 실시예 구현은 도 3에 간략하게 개시된 허가형 블록체인 네트워크(300)의 휴먼 인터페이스를 위한 허가 관리를 도시하는 도 6에 설명되어 있다.
도 6은 본 개시의 일부 실시예에 따른, 휴먼 인터페이스 허가 관리를 위한 허가형 블록체인 시스템(600)의 다양한 노드의 상세한 블록도를 도시한다.
허가형 블록체인 시스템(600)은 허가형 블록체인 시스템(600)에 액세스하도록 승인될 수 있거나 승인되지 않을 수 있는 인간 운영자(604)에 의해 액세스될 수 있다. 한편, 노드(602)는 허가형 블록체인 시스템(600)에 액세스하도록 허가될 수 있다. 허가형 블록체인 시스템(600)에 액세스하기 위해 인간 운영자(604)를 인증하기 위해, 여기에 나타낸 예시적인 목적을 위한 Raspberry Pi(RPi) 기반 단말과 같은 컴퓨팅 단말(608)을 사용하여 LDAP와 같은 크리덴셜 서비스(606)를 실행할 수 있다. 인증 또는 감사의 결과는 허가형 블록체인 시스템(600)에 기록된다. 이에 따라 인간 운영자의 허가가 재개되거나 취소될 수 있다.
따라서, 허가형 블록체인 시스템(600)은 낮은 컴퓨팅 비용과 스마트 계약 및 커널 계측과 같은 매우 효율적인 보안 메커니즘으로 장애 감지, 예방, 및 제거가 가능한 책임 있는 분산 시스템의 역할을 한다.
도 7은 본 개시의 일부 실시예에 따른, 책임 있는 허가형 블록체인 네트워크에서의 장애 감지 및 제거를 위한 다양한 단계를 보여주는 방법(700)의 흐름도를 도시한다.
도 7의 방법(700)은 스텝 702에서 허가형 블록체인 네트워크와 연관된 스마트 계약을 컴파일하고 실행하는 것을 포함한다. 예컨대, 도 2b 및 도 2c를 참조하면, 허가형 블록체인 네트워크(212)는 신뢰할 수 있는 바이너리 파일 또는 스마트 계약(204)과 연관된 소스 코드 파일을 수신할 수 있는 노드(150)와 연관될 수 있다. 스마트 계약(204)이 소스 코드 파일의 형태인 경우, 컴파일된 후 실행될 수 있다. 일부 실시예에서, 스마트 계약(204)은 실행 파일 그 자체의 형태이며, 컴파일될 필요가 없다. 스마트 계약(204)의 실행으로 인해 스마트 계약(204)에 명시된 일련의 규칙이 시행된다. 규칙의 세트는, (1) 허가형 블록체인 네트워크(212)에 액세스할 수 있는 네트워크화한 컴퓨터 또는 노드 사이의 메시지의 교환을 나타내는 로그를 포함하는 트랜잭션과 함께 데이터를 허가형 블록체인 네트워크(212)에 추가하는 것, (2) 합의에 도달함에 있어서 노드(150)와 같은 네트워크화한 컴퓨터의 악의적인 행위를 감지(여기서 감지는 네트워크화한 컴퓨터의 커널 계측에 기초하여 수행된다)하는 것, (3) 악의적인 행위가 감지되면 네트워크화한 컴퓨터의 허가형 블록체인 네트워크(212)에 대한 액세스를 취소하는 것, 또는 이들의 조합 중 적어도 하나를 수행하기 위한 일련의 동작과 연관될 수 있다.
악의적인 행위의 감지는 커널 계측 기술(208) 중 하나를 사용하는 노드(150)의 syscall의 감사에 기초하여 노드(150)와 같은 네트워크화한 컴퓨터에 대한 감사 데이터를 생성함으로써 스텝 704에서 수행된다. 또한, 감사의 결과는 감사 데이터 로그에 대한 추가 전용 데이터 작업을 통해 허가형 블록체인 네트워크(212)에 저장된다. 감사 데이터 로그가 이러한 방식으로 제출되면, 스텝 706에서, 노드(150)의 부분에서의 임의의 악의적인 행위가 감지될 수 있으며, 필요한 경우, 노드(150)의 허가가 취소될 수 있다.
도 7에 설명된 방법(700)은 전체적인 분산 컴퓨팅 시스템의 책임성, 장애 내성, 및 신뢰성을 보장하기 위해 임의의 분산 컴퓨팅 시스템에서 구현될 수 있다.
도 8은 본 개시의 일부 실시예에 따른, 분산 컴퓨팅 시스템에서 장애를 감지하고 제거하기 위한 작업 환경(800)을 도시한다. 작업 환경(800)은 허가형 블록체인 네트워크(802)를 통해 발전소(804)와 연결된 다양한 개체의 감사를 주문하기 위한 주문 서비스를 실행하는 상위 노드의 역할을 할 수 있는 발전소(804)에 해당한다. 이러한 다양한 개체는 소비자(808), 산업 단위(812), 및 전기 배전 그리드(816)를 포함할 수 있다. 각각의 개체(808, 812, 816)는 블록체인 기반의 네트워크화한 컴퓨터의 형태와 같은 전체 또는 경량 노드를 실행하는 컴퓨팅 시스템을 통해 허가형 블록체인 네트워크(802)에 연결될 수 있다. 또한, 각 개체는 허가형 블록체인 네트워크(802)로부터 소비자(808)에 대한 스마트 계약(810), 산업 단위(812)에 대한 스마트 계약(814), 전기 배전 그리드(816)에 대한 스마트 계약(818)과 같은 스마트 계약의 개별 사본을 수신하도록 구성된다. 각 스마트 계약은 불변의 신뢰할 수 있는 바이너리 파일 또는 소스 코드 파일 중 하나의 형태일 수 있다. 또한, 일부 실시예는 모든 노드의 스마트 계약의 사본이 모든 노드에 공통일 수 있다는 인식에 기초한다.
또한, 각 스마트 계약은 각 노드(808, 812, 816)를 모니터링하고 감사하기 위한 규칙을 명시한다. 예컨대, 규칙은 전력 장치의 사용, 전력 소비의 계량 및 계량 유닛에 대한 조작 시도, 산업용 전력 소비에 대한 전력 장치의 승인, 그리드를 통한 전력의 분배의 단위의 수에 대한 허용 한도, 정부 및 규제 체계의 준수 등과 관련될 수 있다.
각 스마트 계약(810, 814, 818)이 시행되면, 각 유형의 노드는 관련 컴퓨팅 단말의 커널 레벨 계측을 사용하여 감사될 수 있으며, 감사의 결과는 허가형 블록체인 네트워크(802)에 기록된다. 또한, 서로 다른 노드들은 각 노드의 진본성(authenticity)에 대한 합의에 도달하도록 구성될 수 있으며, 감사 및 합의의 결과에 따라, 각 노드는 허가형 블록체인 네트워크(802)와의 연결을 재개하고 발전소(804)에 의해 생성된 전력에 계속 액세스하도록 허용될 수 있으며, 감사 절차에 실패하면, 연결이 일시적으로 비활성화될 수 있다.
따라서, 본 명세서에 설명된 다양한 실시예는 안전하고, 변조 방지되며, 효율적이고, 신뢰할 수 있고, 비용 효율적인 책임 있는 분산 컴퓨팅 시스템을 제공한다. 다양한 실시예는 디지털 관리를 통해 물리적(컴퓨팅)을 감사 가능하고 책임 있게 만드는 것을 제공한다. 또한, 경량 클라이언트는 완전한 임베디드 블록체인 노드와 마찬가지로 본 명세서에 설명된 다양한 기술을 구현하기 위해 간단히 사용될 수 있다는 사실은 전체 시스템을 매우 효율적이고 확장 가능하며 비용 효율적으로 만든다. 또한, 많은 허가형 블록체인에서, 클라이언트는 신뢰할 수 있는 경량 블록체인 클라이언트의 역할을 하는 다양한 참가 노드 사이에 공유되는 신뢰할 수 있는 바이너리이다.
위의 설명은 예시적인 실시예만을 제공하며, 본 개시의 범위, 적용 가능성, 또는 구성을 제한하려는 의도가 아니다. 오히려, 예시적인 실시예에 대한 위의 설명은 당업자에게 하나 이상의 예시적인 실시예를 구현하기 위한 가능한 설명을 제공할 것이다. 첨부된 청구범위에 개시된 주제의 정신과 범위를 벗어나지 않고서 요소들의 기능과 배열에 이루어질 수 있는 다양한 변화가 고려된다.
실시예의 철저한 이해를 제공하기 위해 특정한 세부 사항이 위의 설명에 제공된다. 그러나, 당업자는 실시예가 이러한 특정한 세부 사항 없이도 실시될 수 있다는 것을 이해할 수 있다. 예컨대, 개시된 주제의 시스템, 프로세스, 및 기타 요소는 불필요한 세부 사항으로 실시예를 모호하게 하지 않기 위해 블록도 형식의 구성 요소로서 나타내어질 수 있다. 다른 경우에, 잘 알려진 프로세스, 구조, 및 기술은 실시예를 모호하게 하는 것을 피하기 위해 불필요한 세부 사항 없이 나타내어질 수 있다. 또한, 다양한 도면에서의 유사한 참조 번호 및 명칭은 유사한 요소를 나타낸다.
또한, 개별 실시예는 플로차트, 흐름도, 데이터 흐름도, 구조도, 또는 블록도로서 도시되는 프로세스로서 설명될 수 있다. 플로차트는 동작을 순차적 프로세스로서 설명할 수 있지만, 많은 동작이 병렬로 또는 동시에 수행될 수 있다. 또한, 동작의 순서가 재배열될 수 있다. 동작이 완료되면 프로세스가 종료될 수 있지만, 도면에 설명되거나 포함되지 않은 추가적인 스텝이 있을 수 있다. 또한, 특별히 설명된 프로세스의 모든 동작이 모든 실시예에서 발생하는 것은 아니다. 프로세스는 메소드, 함수, 프로시저, 서브루틴, 서브프로그램 등에 해당할 수 있다. 프로세스가 함수에 해당하는 경우, 함수의 종료는 호출 함수 또는 주 함수로의 함수의 반환에 해당할 수 있다.
또한, 개시된 주제의 실시예는 적어도 부분적으로 수동으로 또는 자동으로 구현될 수 있다. 수동 또는 자동 구현은 머신, 하드웨어, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 설명 언어, 또는 이들의 조합을 사용하여 실행되거나 적어도 지원될 수 있다. 소프트웨어, 펌웨어, 미들웨어, 또는 마이크로코드로 구현되는 경우, 필요한 작업을 수행하기 위한 프로그램 코드 또는 코드 세그먼트는 머신 판독 가능 매체에 저장될 수 있다. 프로세서(들)는 필요한 작업을 수행할 수 있다.
본 명세서에 설명된 다양한 방법 또는 프로세스는 다양한 운영 체제 또는 플랫폼 중 어느 하나를 채용하는 하나 이상의 프로세서에서 실행 가능한 소프트웨어로서 코딩될 수 있다. 추가적으로, 이러한 소프트웨어는 다수의 적합한 프로그래밍 언어 및/또는 프로그래밍 또는 스크립팅 도구 중 어느 하나를 사용하여 작성될 수 있으며, 실행 가능한 기계 언어 코드 또는 프레임워크 또는 가상 머신에서 실행되는 중간 코드로서 컴파일될 수도 있다. 전형적으로, 프로그램 모듈의 기능은 다양한 실시예에서 원하는 대로 결합되거나 배포될 수 있다.
본 개시의 실시예는 그 예시가 제공된 방법으로서 구현될 수 있다. 방법의 일부로서 수행되는 행동은 적절한 방식으로 지시될 수 있다. 따라서, 예시적인 실시예에서는 순차적 행동으로서 나타냈다고 하더라도, 일부 행동을 동시에 수행하는 것을 포함할 수 있는 행동이 예시된 것과 다른 순서로 수행되는 실시예가 구성될 수 있다. 본 개시는 특정한 바람직한 실시예를 참조하여 설명되었지만, 본 개시의 정신과 범위 내에서 다양한 다른 적용 및 수정이 이루어질 수 있다는 것이 이해되어야 한다. 그러므로, 본 개시의 진정한 정신 및 범위 내에 있는 모든 변형 및 수정을 포괄하는 것이 첨부된 청구범위의 측면이다.

Claims (20)

  1. 허가형 블록체인 네트워크(permissioned blockchain network)에 액세스할 수 있는 서로 다른 네트워크화한 컴퓨터(networked computer)를 갖는 책임 있는(accountable) 분산 컴퓨팅 시스템을 형성하기 위한 블록체인 기반의 네트워크화한 컴퓨터로서,
    상기 블록체인 기반의 네트워크화한 컴퓨터는,
    적어도 하나의 프로세서와,
    상기 적어도 하나의 프로세서에 의해 실행될 때 상기 네트워크화한 컴퓨터가 스마트 계약을 컴파일하고 실행하는 것 - 상기 스마트 계약은 상기 프로세서가 1) 상기 허가형 블록체인 네트워크에 액세스할 수 있는 상기 네트워크화한 컴퓨터 사이의 메시지의 교환을 나타내는 로그를 포함하는 트랜잭션을 상기 허가형 블록체인에 추가하는 것, (2) 합의에 도달함에 있어서 상기 네트워크화한 컴퓨터의 악의적인 행위를 감지하는 것 - 상기 감지는 상기 네트워크화한 컴퓨터의 커널 계측에 기초하여 수행됨 -, (3) 상기 악의적인 행위가 감지되면 상기 허가형 블록체인 네트워크에 대한 상기 네트워크화한 컴퓨터의 상기 액세스를 취소하는 것, 또는 이들의 조합을 행하도록 설정하는 일련의 규칙을 포함함 - 과, 상기 허가형 블록체인 네트워크에 액세스할 수 있는 상기 네트워크화한 컴퓨터와 합의에 도달하도록 구성된 분산 컴퓨팅 프로그램을 실행하는 것을 수행하게 하는 명령이 저장된 메모리
    를 구비하는
    네트워크화한 컴퓨터.
  2. 제 1 항에 있어서,
    상기 네트워크화한 컴퓨터는 상기 허가형 블록체인 네트워크의 프로토콜과 무관한 통신 프로토콜을 사용하여 상기 허가형 블록체인 네트워크에 액세스할 수 있는 상기 네트워크화한 컴퓨터와 메시지를 교환하도록 구성되는
    네트워크화한 컴퓨터.
  3. 제 1 항에 있어서,
    상기 네트워크화한 컴퓨터는 상기 허가형 블록체인 네트워크의 프로토콜에 의존하는 통신 프로토콜을 사용하여 상기 허가형 블록체인 네트워크에 액세스할 수 있는 상기 네트워크화한 컴퓨터와 메시지를 교환하도록 구성되는
    네트워크화한 컴퓨터.
  4. 제 1 항에 있어서,
    상기 스마트 계약은 상기 스마트 계약의 실행 및 상기 허가형 블록체인 네트워크의 해당 트랜잭션에 응답하여 상기 네트워크화한 컴퓨터에 의해 생성된 하나 이상의 감사 로그의 분석에 기초하여 악의적인 행위를 감지하도록 구성되는
    네트워크화한 컴퓨터.
  5. 제 1 항에 있어서,
    상기 스마트 계약은 상기 네트워크화한 컴퓨터가 상기 허가형 블록체인 네트워크에 액세스할 수 있는 서로 다른 네트워크화한 컴퓨터에 동일한 메시지의 서로 다른 값을 전달할 때에 상기 악의적인 행위를 감지하도록 구성되는
    네트워크화한 컴퓨터.
  6. 제 1 항에 있어서,
    상기 네트워크화한 컴퓨터는 상기 허가형 블록체인 네트워크 내의 관찰자 노드(observer node) 또는 운영자 노드(operator node) 중 적어도 하나가 되도록 구성되는
    네트워크화한 컴퓨터.
  7. 제 1 항에 있어서,
    상기 허가형 블록체인 네트워크에 상기 스마트 계약을 배포하는 것은 상기 허가형 블록체인 네트워크의 구성원에게 상기 스마트 계약의 소스 코드 또는 컴파일된 스마트 계약과 연관된 신뢰할 수 있는 바이너리 파일 중 적어도 하나를 배포함으로써 발생하는
    네트워크화한 컴퓨터.
  8. 제 1 항에 있어서,
    상기 스마트 계약이 상기 네트워크화한 컴퓨터의 상기 커널 계측의 일부로서 배포되어, 하나 또는 복수의 유형의 시스템 호출(syscall) 요청의 기동(invocation)이 상기 허가형 블록체인 네트워크에 공개하기 위해 상기 스마트 계약에 의해 자동으로 로깅되는
    네트워크화한 컴퓨터.
  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) 상기 악의적인 행위가 감지되면 상기 허가형 블록체인 네트워크에 대한 상기 적어도 하나의 네트워크화한 컴퓨터의 상기 액세스를 취소하는 것을 수행하도록 구성됨 - 과,
    상기 허가형 블록체인 네트워크에 액세스할 수 있는 상기 네트워크화한 컴퓨터와의 합의에 도달하도록 구성된 분산 컴퓨팅 프로그램을 실행하는 것
    을 포함하는
    비일시적 컴퓨터 판독 가능 저장 매체.
KR1020237035038A 2021-04-19 2022-01-13 블록체인 기반의 책임 있는 분산 컴퓨팅 시스템 KR20230156129A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/234,041 US11985143B2 (en) 2021-04-19 2021-04-19 Blockchain-based accountable distributed computing system
US17/234,041 2021-04-19
PCT/JP2022/001874 WO2022224513A1 (en) 2021-04-19 2022-01-13 Blockchain-based accountable distributed computing system

Publications (1)

Publication Number Publication Date
KR20230156129A true KR20230156129A (ko) 2023-11-13

Family

ID=80786894

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237035038A KR20230156129A (ko) 2021-04-19 2022-01-13 블록체인 기반의 책임 있는 분산 컴퓨팅 시스템

Country Status (7)

Country Link
US (1) US11985143B2 (ko)
EP (1) EP4147416B1 (ko)
JP (1) JP2024510049A (ko)
KR (1) KR20230156129A (ko)
CN (1) CN117203937A (ko)
TW (1) TW202242691A (ko)
WO (1) WO2022224513A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117033146B (zh) * 2023-10-10 2023-12-08 北京安天网络安全技术有限公司 指定共识合约执行进程的识别方法、装置、设备及介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
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

Also Published As

Publication number Publication date
TW202242691A (zh) 2022-11-01
WO2022224513A1 (en) 2022-10-27
JP2024510049A (ja) 2024-03-05
CN117203937A (zh) 2023-12-08
EP4147416B1 (en) 2023-07-12
EP4147416A1 (en) 2023-03-15
US20220337602A1 (en) 2022-10-20
US11985143B2 (en) 2024-05-14

Similar Documents

Publication Publication Date Title
Khan et al. Cloud log forensics: Foundations, state of the art, and future directions
Ujcich et al. Cross-app poisoning in software-defined networking
Datta et al. Valve: Securing function workflows on serverless computing platforms
Hong et al. Systematic identification of threats in the cloud: A survey
US10178031B2 (en) Tracing with a workload distributor
US8695075B2 (en) System and method for discovery enrichment in an intelligent workload management system
US10810055B1 (en) Request simulation for ensuring compliance
WO2020224928A1 (en) Threat information sharing based on blockchain
Soares et al. Cloud security: state of the art
Liao et al. Towards provenance-based anomaly detection in MapReduce
WO2022116761A1 (en) Self auditing blockchain
EP4147416B1 (en) Blockchain-based accountable distributed computing system
Ficco et al. Security and resilience in intelligent data-centric systems and communication networks
Anupa et al. Cloud workflow and security: A survey
Kundu et al. Collaborative and accountable hardware governance using blockchain
Bhargava et al. Privacy-preserving data sharing and adaptable service compositions in mission-critical clouds
Lombardi et al. Security for cloud computing
Khan Data confidentiality and risk management in Cloud Computing
Eguiluz et al. Interactions among techniques addressing quality attributes
Ishgair et al. SoK: A Defense-Oriented Evaluation of Software Supply Chain Security
Cui DevSecOps of Containerization
Xinguang et al. Filter-based trusted remote attestation for web services
Dudziak-Gajowiak et al. Solving problems relating to ICT security management systems including various characteristics of the environment and system
Nhan et al. A Study on Accounting Information System Security
Polinsky Practical and Secure Architectures Using Ephemeral Cloud Environments

Legal Events

Date Code Title Description
A201 Request for examination