KR102074116B1 - 블록체인 노드 통신 방법 및 장치 - Google Patents

블록체인 노드 통신 방법 및 장치 Download PDF

Info

Publication number
KR102074116B1
KR102074116B1 KR1020197021844A KR20197021844A KR102074116B1 KR 102074116 B1 KR102074116 B1 KR 102074116B1 KR 1020197021844 A KR1020197021844 A KR 1020197021844A KR 20197021844 A KR20197021844 A KR 20197021844A KR 102074116 B1 KR102074116 B1 KR 102074116B1
Authority
KR
South Korea
Prior art keywords
node
blockchain
certificate
blockchain node
communication
Prior art date
Application number
KR1020197021844A
Other languages
English (en)
Other versions
KR20190099054A (ko
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 KR20190099054A publication Critical patent/KR20190099054A/ko
Application granted granted Critical
Publication of KR102074116B1 publication Critical patent/KR102074116B1/ko

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3265Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate chains, trees or paths; Hierarchical trust model
    • 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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/02Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/03Protecting confidentiality, e.g. by encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography

Abstract

제 2 블록체인 노드에 의해 송신된 통신 요청이 블록체인 네트워크의 제 1 블록체인 노드에 의해 수신되고, 통신 요청은 제 2 블록체인 노드의 제 2 인증서를 포함하며, 블록체인 네트워크는, 인증 기관(CA)에 의해 송신된 인증서를 저장하고 CA 신뢰 목록으로 미리구성된 서비스 노드를 포함한다. 제 2 인증서에 대응하는 CA 식별자가 결정된다. 제 2 인증서에 대응하는 결정된 CA 식별자가 CA 신뢰 목록에 포함되어 있는지의 여부가 결정된다. 결정된 CA 식별자가 CA 신뢰 목록에 포함되어 있다면, 제 2 블록체인 노드에의 통신 연결이 수립된다. 결정된 CA 식별자가 CA 신뢰 목록에 포함되어 있지 않다면, 제 2 블록체인 노드에의 통신 연결을 수립하는 것이 스킵된다.

Description

블록체인 노드 통신 방법 및 장치
본 출원은 그 전체가 참조로서 본원에 포함되는, 2017년 7월 26일에 출원된, 중국 특허 출원 제 201710617463.6 호를 우선권으로 주장한다.
본 출원은 정보 기술들의 분야, 특히 블록체인 노드 통신 방법 및 장치에 관한 것이다.
블록체인 기술 중 한 부문으로서, 컨소시엄 블록체인 기술이 점점 더 사용된다. 컨소시엄 블록체인 네트워크 내의 블록체인 노드들은 서비스 노드들 및 합의 노드(consensus node)들을 포함한다. 서비스 노드는 서비스에 참여하고, 합의 노드는 서비스 노드에 의해 송신된 서비스 데이터를 수신하고 서비스 데이터에 대한 합의 검증을 수행하는 것을 담당한다.
이전에 설명된 서비스 노드는 컨소시엄 블록체인 네트워크에 연결되는 각각의 기관(institution)의 서비스 서버이고, 컨소시엄 블록체인 네트워크 내의 다른 노드와의 통신을 위해 서버에 소프트웨어(소프트웨어는 본 출원에서 “통신 프로그램”으로 지칭됨)가 설치된다.
도 1은 컨소시엄 블록체인 네트워크를 예시하는 아키텍처도이다. 도 1에 도시된 바와 같이, 속이 비지 않은 원들은 합의 노드들이고, 속이 빈 원들은 서비스 노드들이다. 상이한 서비스 노드들이 상이한 애플리케이션(application; APP)들에 대한 서비스들을 제공한다. 서비스 노드는 APP에 의해 생성된 서비스 데이터를 합의 검증을 위해 합의 노드에 송신한다. 서비스 노드는 케이터링(catering) 애플리케이션에 대응하는 서비이고, 다른 서비스 노드는 지불 애플리케이션에 대응하는 서비라고 가정한다. 사용자는 케이터링 애플리케이션을 통해 주문을 행한 후 지불 애플리케이션을 통해 지불을 행할 수 있는데, 가령 2개의 서비스 노드들이 동일한 서비스에 참여할 수 있고, 도 1에 도시된 바와 같은 서비스 관계를 컨소시엄 블록체인 네트워크에 등록할 수 있다.
컨소시엄 블록체인 네트워크에서, 각각의 서비스 노드는, 서비스 노드가 참여한 서버의 서비스 데이터를 저장하고, 서비스 데이터는 보통 사용자의 개인 데이터를 포함한다. 기존의 기술에 기반하면, 더 많은 보안 통신 방법이 필요된다.
본 출원의 하나 이상의 구현예는, 기존의 기술에서의, 블록체인 네트워크 내의 서비스 노드들이 통신을 수행할 때 유발될 수 있는 개인 데이터 유출의 문제를 해결하기 위해, 블록체인 노드 통신 방법을 제공한다.
본 출원의 하나 이상의 구현예는, 기존의 기술에서의, 블록체인 네트워크 내의 서비스 노드들이 통신을 수행할 때 유발될 수 있는 개인 데이터 유출의 문제를 해결하기 위해, 블록체인 노드 통신 장치를 제공한다.
다음의 기술적 솔루션들이 본 출원의 구현예들에서 사용된다:
블록체인 노드 통신 방법이 제공된다. 블록체인 네트워크 내의 블록체인 노드들은 서비스 노드를 포함한다. 서비스 노드는 인증 기관(certificate authority; CA)에 의해 송신된 인증서를 저장하고, CA 신뢰 목록으로 미리구성된다(pre-configured). 방법은, 제 1 블록체인 노드에 의해, 제 2 블록체인 노드에 의해 송신된 통신 요청을 수신하는 단계로서, 통신 요청은 제 2 블록체인 노드의 제 2 인증서를 포함하는 것인, 통신 요청을 수신하는 단계; 제 2 인증서에 대응하는 CA 식별자를 결정하는 단계; 제 2 인증서에 대응하는 결정된 CA 식별자가 CA 신뢰 목록에 포함되어 있는지의 여부를 결정하는 단계; 및 결정된 CA 식별자가 CA 신뢰 목록에 포함되어 있다면, 제 2 블록체인 노드에의 통신 연결을 수립하는(establishing) 단계; 또는 결정된 CA 식별자가 CA 신뢰 목록에 포함되어 있지 않다면, 제 2 블록체인 노드에의 통신 연결을 수립하는 것을 스킵하는 단계를 포함한다.
블록체인 노드 통신 장치가 제공되고, 장치는, 제 2 블록체인 노드에 의해 송신된 통신 요청을 수신하도록 구성된 수신 모듈로서, 통신 요청은 제 2 블록체인 노드의 제 2 인증서를 포함하는 것인, 수신 모듈; 제 2 인증서에 대응하는 CA 식별자를 결정하도록 구성된 결정 모듈; 제 2 인증서에 대응하는 결정된 CA 식별자가 CA 신뢰 목록에 포함되어 있는지의 여부를 결정하도록 구성된 결정 및 실행 모듈로서, 결정된 CA 식별자가 CA 신뢰 목록에 포함되어 있다면, 제 2 블록체인 노드에의 통신 연결을 수립하고, 결정된 CA 식별자가 CA 신뢰 목록에 포함되어 있지 않다면, 제 2 블록체인 노드에의 통신 연결을 수립하는 것을 스킵하는 것인, 결정 및 실행 모듈을 포함하고, 블록체인 네트워크 내의 블록체인 노드들은 서비스 노드를 포함하며, 서비스 노드는 CA에 의해 송신된 인증서를 저장하고 CA 신뢰 목록으로 미리구성된다.
블록체인 노드 통신 디바이스가 제공된다. 통신 디바이스는 하나 이상의 프로세서 및 메모리를 포함한다. 메모리는 프로그램을 저장하고, 프로그램은 다음의 단계들을 수행하도록 하나 이상의 프로세서에 의해 실행된다: 제 1 블록체인 노드에서, 제 2 블록체인 노드에 의해 송신된 통신 요청을 수신하는 단계로서, 통신 요청은 제 2 블록체인 노드의 제 2 인증서를 포함하는 것인, 통신 요청을 수신하는 단계; 제 2 인증서에 대응하는 CA 식별자를 결정하는 단계; 제 2 인증서에 대응하는 결정된 CA 식별자가 CA 신뢰 목록에 포함되어 있는지의 여부를 결정하는 단계; 및 결정된 CA 식별자가 CA 신뢰 목록에 포함되어 있다면, 제 2 블록체인 노드에의 통신 연결을 수립하는 단계; 또는 결정된 CA 식별자가 CA 신뢰 목록에 포함되어 있지 않다면, 제 2 블록체인 노드에의 통신 연결을 수립하는 것을 스킵하는 단계; 여기서 블록체인 네트워크 내의 블록체인 노드들은 서비스 노드를 포함하고, 서비스 노드는 CA에 의해 송신된 인증서를 저장하고 CA 신뢰 목록으로 미리구성됨.
본 출원의 하나 이상의 구현예에서 사용되는 하나 이상의 기술적 솔루션은 다음의 이로운 효과들을 달성할 수 있다:
블록체인 네트워크 내의 서비스 노드는 CA에 의해 송신된 인증서를 저장하고, CA 신뢰 목록으로 미리구성된다. 제 2 블록체인 노드에 의해 송신된 통신 요청을 수신했을 때, 제 1 블록체인 노드는 통신 요청에 포함된 제 2 블록체인 노드의 제 2 인증서에 기반하여, 제 2 인증서에 대응하는 CA 식별자를 먼저 결정할 수 있고, 이어서 제 2 인증서에 대응하는 CA 식별자가 CA 신뢰 목록에 포함되어 있는지의 여부를 결정할 수 있다. 제 2 인증서에 대응하는 CA 식별자가 CA 신뢰 목록에 포함되어 있다면, 제 1 블록체인 노드는 제 2 블록체인 노드에의 통신 연결을 수립하거나; 제 2 인증서에 대응하는 CA 식별자가 CA 신뢰 목록에 포함되어 있지 않다면, 제 1 블록체인 노드는 제 2 블록체인 노드에의 통신 연결을 수립하지 않는다. 본 출원의 구현예들에서 제공되는 방법에 따르면, 서비스 노드가 통신 연결을 수립할 수 있는 객체(object)(예를 들어, 다른 서비스 노드)를 제한함으로써 서비스 노드에 의한 개인 데이터 유출 가능성이 감소될 수 있고, 블록체인 네트워크에 저장된 데이터의 보안성이 향상될 수 있도록, 통신 연결을 수립하기 전에, 블록체인 네트워크 내의 서비스 노드는 미리구성된 CA 신뢰 목록 및 통신 요청에 포함된 인증서에 기반하여 통신 연결을 수립할지의 여부를 결정할 수 있다.
본원에서 설명되는 첨부 도면들은 본 출원의 추가 이해를 제공하도록 의도되며, 본 출원의 일부를 구성한다. 본 출원의 예시적인 구현예들 및 구현예들의 설명들은 본 출원을 설명하기 위해 의도된 것이며, 본 출원에 대한 제한들을 구성하는 것은 아니다. 첨부된 도면들에서:
도 1은 컨소시엄 블록체인 네트워크를 예시하는 개략적인 아키텍처도이다.
도 2는 본 출원의 구현예에 따른, 블록체인 노드 통신 프로세스를 예시하는 흐름도이다.
도 3은 본 출원의 구현예에 따른, 컨소시엄 블록체인 네트워크를 예시하는 개략적인 아키텍처도이다.
도 4는 본 출원의 구현예에 따른 CA 관계를 예시하는 개략도이다.
도 5는 본 출원의 구현예에 따른, 블록체인 노드 통신 장치를 예시하는 개략적인 구조도이다.
도 6은 본 출원의 구현예에 따른, 블록체인 노드 통신 디바이스를 예시하는 개략적인 구조도이다.
도 7은 본 개시의 구현예에 따른, 블록체인 네트워크의 보안성을 향상시키기 위해 컴퓨터 구현 방법의 예시를 예시하는 흐름도이다.
컨소시엄 블록체인 네트워크에서, 서비스에의 서비스 노드의 참여로 인해 서비스 노드에 의해 생성된 서비스 데이터는 사용자의 개인 데이터를 포함한다. 따라서, 서비스에 참여하지 않은 서비스 노드에 사용자의 개인 데이터가 유출되는 것을 방지하기 위해, 컨소시엄 블록체인 네트워크에서, 각각의 서비스 노드는 서비스 노드가 참여한 서비스의 서비스 데이터만을 저장한다.
그러나, 실제 응용들에서, 예를 들어 서비스에 대해, 서비스에 참여하지 않은 서비스 노드(A)는, 통신 프로그램을 통해, 서비스에 참여한 서비스 노드(B)에의 통신 연결을 수립할 수 있고, 서비스 노드(B)에 저장된 서비스 데이터를 도용하기 위해 [데이터베이스 크래킹(cracking)과 같은] 기술적 수단을 사용할 수 있다. 즉, 통신 프로그램을 통해 통신 연결을 수립하는 각각의 서비스 노드는, 다른 서비스 노드에 저장된 서비스 데이터를 획득하기 위해, 이들 2개의 서비스 노드들간에 통신이 수립될 수 있다면 기술적 수단을 사용할 수 있다. 서비스 데이터가 사용자의 개인 데이터를 포함할 수 있기 때문에, 본 개시는 더 안전한 통신 기술 솔루션을 제공한다.
본 출원의 구현예들의 목적들, 기술적 솔루션들, 및 이점들을 더 명확히 하기 위해, 다음은 본 출원의 하나 이상의 특정 구현예 및 대응하는 첨부 도면들을 참조하여 본 출원의 기술적 솔루션들을 명확히 설명한다. 명백하게, 설명되는 구현예들은 본 출원의 모든 구현예라기보다는 단지 일부의 구현예들이다. 창의적인 노력없이 본 출원의 하나 이상의 구현예에 기반하여 당업자에 의해 획득되는 모든 다른 구현예들은 본 출원의 보호 범위 내에 있을 것이다. 본 출원의 구현예들에서 제공되는 기술적 솔루션들이 첨부 도면들을 참조하여 아래에서 상세히 설명된다.
도 2는 본 출원의 구현예에 따른 블록체인 노드 통신 프로세스를 예시한다. 블록체인 네트워크 내의 블록체인 노드들은 서비스 노드를 포함한다. 서비스 노드는 인증 기관(CA)에 의해 송신된 인증서를 저장하고, CA 신뢰 목록으로 미리구성된다. 블록체인 노드 통신 프로세스는 다음의 단계들을 포함할 수 있다.
단계(S202): 제 1 블록체인 노드가 제 2 블록체인 노드에 의해 송신된 통신 요청을 수신함.
본 출원의 하나 이상의 구현예에서, 컨소시엄 블록체인 네트워크 내의 블록체인 노드들은 서로 통신할 수 있다. 서비스 노드들은 서비스들을 실행하기 위해 통신하고 데이터를 전송한다. 서비스 실행 동안 생성된 서비스 데이터는 합의 검증을 위해 합의 노드에 송신된다. 합의 노드에 의해 서비스 데이터가 검증된 후, 서비스 데이터가 블록체인에 저장된다. 따라서, 블록체인 내의 임의의 블록체인 노드는 다른 블록체인 노드에 의해 송신된 통신 요청을 수신할 수 있다. 설명의 용이성을 위해, 본 출원의 구현예들에서, 통신 요청을 수신하는 예시적인 블록체인 노드는 제 1 블록체인 노드로 지칭되고, 통신 요청을 송신하는 블록체인 노드는 제 2 블록체인 노드로 지칭된다. 또한, 통신 요청은 제 2 블록체인 노드에 의해 송신된 통신 연결을 수립하기 위한 요청일 수 있고, 제 1 블록체인 노드는 후속 단계들에 기반하여, 요청에 응답할지 그리고 제 2 블록체인 노드에의 통신 연결을 수립할지의 여부를 결정할 수 있다.
블록체인 네트워크의 구조가 도 1에 도시될 수 있다. 블록체인 노드들은 서비스 노드 및 합의 노드를 포함할 수 있다. 합의 노드 또는 서비스 노드와 관계없이, 블록체인 노드는 CA에 의해 송신된 인증서를 저장할 수 있고, CA 신뢰 목록으로 미리구성된다.
특히, 서비스 노드를 예시로서 사용하여, 도 1 내의 아키텍처에 도시된 바와 같이, 컨소시엄 블록체인 네트워크 내에 복수의 서비스 관계들이 존재할 수 있고, 각각의 서비스 관계는 적어도 2개의 서비스 노드들을 포함한다. 위에서 언급된 바와 같이, 서비스 노드들은, 정확히 동일하지 않으며 컨소시엄 블록체인 네트워크에 연결되는 기관들의 서비스 서버들일 수 있다. 동일한 서비스 관계에 있는 서비스 서버들은 서비스를 공동으로(jointly) 실행하고, 서비스 데이터를 합의 검증을 위해 합의 노드에 송신한다(예를 들어, 판매자의 뱅크, 구매자의 뱅크, 및 중간 트랜잭션 플랫폼도 지불 서비스에 참여할 수 있음). 따라서, 지불 서비스에서, 3개의 기관들의 서비스 서버들이 동일한 서비스의 상이한 절차들에서 정확히 동일하지 않은 단계들을 수행할 수 있고, 종국에는 합의 검증이 수행될 서비스 데이터를 생성할 수 있다. 설명의 용이성을 위해, 모든 차후의 서비스 노드들은 기관들의 서비스 서버들로 간주될 수 있다.
또한, 본 출원의 하나 이상의 구현예에서, 각각의 서비스 관계는 하나의 CA에 대응하거나, 동일한 서비스 관계에 있는 서비스 노드들이 동일한 CA에 대응한다고 간주될 수 있다. 서비스 관계에 있는 서비스를 실행하는 각각의 서비스 노드에 대해, 서비스를 실행하는 그러한 서비스 노드를 구성하기 위해, 서비스 관계에 대응하는 CA에 아이덴티티 검증 요청이 먼저 송신될 수 있다. 아이덴티티 요청은 서비스 노드가 속하는 기관을 포함한다.
CA는, 서비스 노드가 검증된 후 서비스 노드의 인증서를 생성하기 위해, 기존 기술에서의 방법들을 사용함으로써 서비스 노드의 아이덴티티를 검증할 수 있고, 인증서를 서비스 노드에 리턴할 수 있다.
따라서, 본 출원의 하나 이상의 구현예에서, 각각의 서비스 노드는 인증서를 저장할 수 있다. 인증서는 서비스 노드에 대응하는 CA에 의해 송신된다. 기존의 기술과 같이, 인증서는 서비스 노드의 식별자를 포함할 수 있고, 인증서의 공개 키(public key)는 인증서를 발행한 CA의 서명을 포함한다. 다른 블록체인 노드는 또한, 기존의 기술에서의 방법을 사용함으로써 인증서에 기반하여, 서비스 노드의 아이덴티티 및 서비스 노드의 인증서를 발행한 CA의 식별자를 결정할 수 있다.
또한, 제 2 블록체인 노드가 제 1 블록체인 노드에 통신 요청을 송신했을 때, 통신 요청은 제 2 블록체인 노드에 저장된 제 2 인증서를 더 포함할 수 있다. 제 2 인증서는 제 2 블록체인 노드에 대응하는 CA에 의해 제 2 블록체인 노드에 발행된 인증서이다. 통신 요청을 수신한 후, 제 1 블록체인 노드는 제 2 인증서에 기반하여, 제 2 블록체인 노드의 식별자, 및 제 2 블록체인 노드에 대응하는 CA을 결정할 수 있다.
또한, 본 출원의 하나 이상의 구현예에서, 컨소시엄 블록체인 네트워크 내의 블록체인 노드들은, 전송 계층 보안(Transport Layer Security; TLS)을 사용함으로써 통신 연결을 수립할 수 있고, 제 2 블록체인 노드는 TLS 핸드쉐이크 프로토콜(TLS 핸드쉐이크)에 기반하여, 제 2 블록체인 노드의 제 2 인증서를 제 1 블록체인 노드에 송신되는 통신 요청에 추가한다.
각각의 블록체인 노드가 또한 CA 신뢰 목록으로 구성된다는 점에 유념해야 한다. CA 신뢰 목록은 블록체인 노드에 CA에 의해 송신될 수 있거나, 또는 블록체인 노드에 의해 구성될 수 있다. 이는 본 출원에 제한되는 것은 아니다. CA 신뢰 목록이 블록체인 노드에 의해 구성되었을 때, CA 신뢰 목록은 블록체인 노드에 대응하는 기관에 의한 요건(requirement)에 기반하여 블록체인 노드에 구성될 수 있다. CA 신뢰 목록이 CA에 의해 구성되면, CA에 의해 송신된 인증서에 추가하여, 블록체인 노드는 또한 CA에 의해 송신된 CA 신뢰 목록을 수신할 수 있고, CA 신뢰 목록을 저장할 수 있다. CA 신뢰 목록은 하나 이상의 CA 식별자를 포함한다.
본 출원의 하나 이상의 구현예에서, 제 1 블록체인 노드 및 제 2 블록체인 노드는 컨소시엄 블록체인 네트워크 내의 서비스 노드들 또는 합의 노드들일 수 있다. 블록체인 노드들이 합의 노드들일 때, 합의 노드들은 합의 검증을 수행하도록 구성된 합의 서버들일 수 있고, 합의 서버들은 컨소시엄 블록체인에 참여한 기관들에 의해 제공된다. 즉, 합의 노드는 어떤 기관에도 속하지 않고 서비스에 참여하지 않은 서버로 간주될 수 있다. 물론, 각각의 서버(예를 들어, 각각의 서비스 서버 및 각각의 합의 서버)는 개별 디바이스일 수 있거나, 또는 복수의 디바이스들을 포함하는 시스템일 수 있다. 이는 본 출원에 제한되는 것은 아니다.
단계(S204): 제 2 인증서에 대응하는 CA 식별자를 결정함.
본 출원의 하나 이상의 구현예에서, 통신 요청을 수신한 후, 제 1 블록체인 노드는 통신 요청에 포함된 제 2 블록체인 노드의 제 2 인증서를 결정할 수 있고, 이어서 제 2 인증서에 대응하는 CA 식별자를 또한 결정할 수 있다.
특히, 인증서가 인증서를 발행한 CA의 서명을 포함하기 때문에, 통신 요청에 포함된 제 2 인증서를 결정한 후, 제 1 블록체인 노드는 제 2 인증서 내의 서명에 기반하여, 제 2 블록체인 노드에 인증서를 발행한 CA의 CA 식별자를 결정할 수 있다. 즉, 통신 요청을 수신한 후, 서비스 노드는 통신 요청에 포함된 제 2 인증서의 CA 식별자를 결정할 수 있다.
단계(S206): 제 2 인증서에 대응하는 결정된 CA 식별자가 CA 신뢰 목록에 포함되어 있는지의 여부를 결정함. 포함되어 있다면 단계(S208)를 수행하거나; 또는 포함되어 있지 않다면 단계(S210)를 수행함.
본 출원의 하나 이상의 구현예에서, 컨소시엄 블록체인 네트워크 내의 각각의 블록체인 노드는 CA 신뢰 목록으로 구성되고, CA 신뢰 목록은 하나 이상의 CA 식별자를 포함한다. 따라서, 제 1 블록체인 노드는 미리구성된 CA 신뢰 목록 내의 CA 식별자에 기반하여, 제 2 인증서에 대응하는 CA 식별자가 제 1 블록체인 노드에 구성된 CA 신뢰 목록에 포함되어 있는지(예를 들어, CA 신뢰 목록 내의 CA 식별자들 중 어느 하나와 일치하는지)의 여부를 결정할 수 있다. 즉, 제 1 블록체인 노드는, 제 2 인증서에 대응하는 CA 식별자가 신뢰되는지의 여부를 결정한다.
미리구성된 CA 신뢰 목록에 제 2 인증서에 대응하는 CA 식별자가 포함되어 있으면, 제 1 블록체인 노드는 CA 식별자가 신뢰된다고 결정할 수 있고, 단계(S208)를 수행한다. 미리구성된 CA 신뢰 목록에 제 2 인증서에 대응하는 CA 식별자가 포함되어 있지 않으면, 제 1 블록체인 노드는 CA 식별자가 신뢰되지 않는다고 결정할 수 있고, 단계(S210)를 수행한다.
단계(S208): 제 2 블록체인 노드에의 통신 연결을 수립함.
본 출원의 하나 이상의 구현예에서, CA 식별자가 신뢰된다고 결정했을 때, 제 1 블록체인 노드는 제 2 블록체인 노드에의 통신 연결을 수립할 수 있다.
특히, 제 1 블록체인 노드는 제 2 블록체인 노드에의 통신 연결을 직접적으로 수립할 수 있다. 통신 보안성을 더 보장하기 위해, 제 1 블록체인 노드는 또한 제 1 블록체인 노드의 제 1 인증서를 제 2 블록체인 노드에 송신할 수 있고, 제 2 블록체인 노드에 송신되는 데이터를 암호화하기 위해 제 1 인증서 내의 공개 키를 사용할 수 있다. 마찬가지로, 제 1 블록체인 노드에 데이터를 송신할 때, 제 2 블록체인 노드는 또한 제 2 인증서 내의 공개 키를 사용함으로써 데이터를 암호화할 수 있다.
또한, 본 출원의 하나 이상의 구현예에서, 블록체인 네트워크 내의 블록체인 노드들은 TLS 핸드쉐이크 프로토콜에 기반하여 통신 연결을 수립할 수 있다. 따라서, 제 2 블록체인 노드에의 통신 연결을 수립하기로 결정한 후, 제 1 블록체인 노드는 또한 제 2 블록체인 노드에 검증 요청을 리턴할 수 있다.
특히, 검증 요청은 제 1 블록체인 노드의 제 1 인증서를 포함한다. 제 2 블록체인 노드는 또한, 제 1 인증서에 대응하는 CA 식별자가 제 2 블록체인 노드에 구성된 CA 신뢰 목록에 포함되어 있는지의 여부를 결정하기 위해, 단계(S202) 내지 단계(S206)를 수행할 수 있다. 포함되어 있다면, 제 2 블록체인 노드는 제 1 블록체인 노드에의 통신 연결을 수립하거나; 포함되어 있지 않다면, 제 2 블록체인 노드는 제 2 블록체인 노드에의 통신 연결을 수립하지 않는다. 즉, 제 2 블록체인 노드는 또한, 제 1 블록체인 노드의 제 1 인증서에 대응하는 CA 식별자가 신뢰되는지의 여부를 검증할 수 있다. 신뢰된다면, 제 2 블록체인 노드는 제 1 블록체인 노드에의 통신 연결을 수립하거나; 신뢰되지 않다면, 제 2 블록체인 노드는 제 1 블록체인 노드에의 통신 연결을 수립하지 않는다.
통신 연결을 수립할 때, 제 1 블록체인 노드 및 제 2 블록체인 노드는 기존의 기술에서의 TLS 핸드쉐이크 프로세스와 유사한 프로세스를 사용함으로써 통신에서 사용되는 키를 결정할 수 있고, 전송되는 데이터를 키를 사용함으로써 암호화할 수 있다. 물론, TLS 핸드쉐이크 프로세스는 비교적 성숙한(mature) 기술이다. 상세사항들은 본 출원에서 설명되지 않는다.
단계(S210): 제 2 블록체인 노드에의 통신 연결을 수립하는 것을 스킵함.
본 출원의 하나 이상의 구현예에서, 제 2 인증서에 대응하는 CA 식별자가 제 1 블록체인 노드에 구성된 CA 신뢰 목록에 포함되어 있지 않다고 결정했을 때, 제 1 블록체인 노드는 제 2 블록체인 노드에의 통신 연결을 수립하지 않기로 결정할 수 있다. 또한, 제 1 블록체인 노드는 제 2 블록체인 노드에 검증 요청을 송신할 필요가 없을 수 있다.
도 2에 도시된 블록체인 노드 통신 방법에 따르면, 블록체인 네트워크 내의 서비스 노드가 CA에 의해 송신된 인증서를 저장하고, CA에 의해 송신된 CA 신뢰 목록으로 구성된다는 점을 알 수 있다. 또한, 블록체인 네트워크 내의 합의 노드는 또한 CA에 의해 송신된 인증서를 저장할 수 있고, CA에 의해 송신된 CA 신뢰 목록으로 구성된다. 제 2 블록체인 노드에 의해 송신된 통신 요청을 수신했을 때, 제 1 블록체인 네트워크 내의 제 1 블록체인 노드는 통신 요청에 포함된 제 2 블록체인 노드의 제 2 인증서에 기반하여, 제 2 인증서에 대응하는 CA 식별자를 먼저 결정할 수 있고, 이어서 미리구성된 CA 신뢰 목록 내의 CA 식별자에 기반하여, 제 2 인증서에 대응하는 CA 식별자가 신뢰되는지의 여부를 결정할 수 있다. 신뢰된다면, 제 1 블록체인 노드는 제 2 블록체인 노드에의 통신 연결을 수립하거나; 신뢰되지 않다면, 제 1 블록체인 노드는 제 2 블록체인 노드에의 통신 연결을 수립하지 않는다. 본 개시의 하나 이상의 구현예에서 제공되는 방법에 따르면, 통신 연결을 수립하기 전, 블록체인 네트워크 내의 서비스 노드는 미리구성된 CA 신뢰 목록 및 통신 요청에 포함된 인증서에 기반하여 통신 연결을 수립할지의 여부를 결정할 수 있다. 따라서, 서비스 노드가 통신 연결을 수립할 수 있는 객체(예를 들어, 다른 서비스 노드)를 제한함으로써 서비스 노드에 의해 개인 데이터가 유출될 가능성이 감소될 수 있어서, 블록체인 네트워크에 저장된 데이터의 보안성을 향상시킨다.
또한, 도 2에 도시된 블록체인 노드 통신 방법은 서비스 노드 및 합의 노드 둘 다에 적용가능하며, 서비스 노드에 대한 통신 연결 수립 프로세스와 합의 노드에 대한 통신 연결 수립 프로세스 사이에 차이점이 없다. 통신 연결을 수립할지의 여부는 노드에 저장된 인증서와 미리구성된 CA 신뢰 목록에만 기반하여 결정될 수 있다. 제 1 블록체인 노드는 서비스 노드 또는 합의 노드일 수 있다. 마찬가지로, 제 2 블록체인 노드는 서비스 노드 또는 합의 노드일 수 있다. 물론, 합의 노드가 보통 서비스 노드에 의해 송신되고 합의 검증이 수행될 데이터를 수신하도록만 구성되기 때문에, 제 2 블록체인 노드는 보통 서비스 노드이다. 이는 본 출원의 구현예들에 제한되는 것은 아니다.
또한, 도 1에 도시된 블록체인 네트워크를 사용하여, 예시로서, 각각의 블록체인 노드가 하나의 CA에 대응하고, 동일한 서비스 관계에 있는 블록체인 노드들이 동일한 CA에 대응할 수 있을 때, 컨소시엄 블록체인 네트워크의 아키텍처가 도 3에 도시될 수 있다. 각각의 서비스 관계가 CA(즉, 도 3 내의 점선 원)를 포함한다는 점을 알 수 있다. CA는 관계에 있는 각각의 서비스 노드에 인증서를 발행하도록 구성된다. 또한, 복수의 CA들이 합의 노드들 내에 존재할 수 있고, 상이한 합의 노드들에 인증서들을 발행할 수 있다. 각각의 서비스 노드는 합의 검증이 수행될 데이터를 상이한 합의 노드에 송신할 수 있다. 동일한 CA에 의해 발행된 인증서들을 갖는 합의 노드들은 데이터에 대해 합의 검증을 수행한다. 하나의 블록체인 노드가 복수의 CA들에 의해 송신된 인증서들을 수신할 수 있고, 그러한 블록체인 노드가 하나 이상의 CA 신뢰 목록으로 구성될 수 있다는 점에 유념해야 한다. 다른 블록체인 노드에 통신 요청을 송신할 때, 통신 요청에 임의의 인증서가 추가될 수 있다. 이는 본 출원에 제한되는 것은 아니다.
또한, 복수의 그룹들의 합의 노드들이 합의 검증을 개별적으로 수행하는 기존의 블록체인, 예를 들어, Corda 프로토콜에 기반하는 블록체인에서, 합의 노드들에 저장된 블록체인들이 정확히 동일하지 않기 때문에, 합의 검증이 수행될 동일한 서비스 데이터에 대한 합의 검증을 합의 노드들이 수행한 후 획득된 결과들이 상이할 수 있다. 따라서, 블록체인에서 데이터를 전송하기 위한 방법[Corda 프로토콜에서 노터리 전송(notary transfer)으로 지칭됨]이 있을 수 있다. 본 개시의 하나 이상의 구현예에서의 상이한 합의 노드들에서 데이터를 전송하기 위해 동일한 방법이 사용될 수 있다. 상세사항들은 본 개시에서 설명되지 않는다. 물론, 대안적으로, 본 개시의 하나 이상의 구현예에서, 합의 노드들의 인증서들이 하나의 CA에 의해서만 발행될 수 있다. 이는 본 개시에 제한되는 것은 아니다.
또한, 기존의 기술에서 복수의 CA들 간의 상호(mutual) 신뢰가 루트(root) CA에 의해 지원될 필요가 있기 때문에, 각각의 블록체인 노드에 구성되는 CA 신뢰 목록이 TLS 핸드쉐이크 프로토콜에서 사용될 수 있도록 하여 통신 연결을 수립할지의 여부를 결정하기 위해, 도 4에 대한 참조가 이루어질 수 있다. 도 4는 본 출원의 구현예에 따른 CA 관계를 예시하는 개략도이다. 루트 CA는 서드 파티 CA일 수 있고, 컨소시엄 블록체인 CA는 서드 파티 CA에 의해 발행된 인증서에 기반하여 생성될 수 있다. 컨소시엄 블록체인 CA는 블록체인 노드들의 CA들에 인증서들을 발행하고(예를 들어, 제 1 CA, 제 2 CA, 및 제 3 CA에 인증서들을 발행함), 종국에는 블록체인 노드들의 CA들이 블록체인들에 블록체인 노드 인증서들을 송신한다[예를 들어, 제 1 CA가 블록체인 노드 인증서(1-n)를 발행하고, 제 2 CA가 블록체인 노드 인증서(m-p)를 발행함, 여기서 노드 인증서들은 정확히 동일하지 않은 블록체인 노드들에 송신될 수 있음]. 물론, 인증서에 기반하는 인증서 신뢰 체인은 비교적 성숙한 기술이다. 상세사항들은 본 출원의 구현예들에서 설명되지 않는다.
본 개시의 하나 이상의 구현예에서 제공되는 방법의 단계들이 하나의 디바이스에 의해 수행될 수 있거나, 또는 방법이 상이한 디바이스들에 의해 수행될 수 있다는 점에 유념해야 한다. 예를 들어, 단계(S202) 및 단계(S204)는 디바이스(1)에 의해 수행될 수 있고, 단계(S206)는 디바이스(2)에 의해 수행될 수 있다. 예를 들어, 단계(S202)는 디바이스(1)에 의해 수행될 수 있고, 단계(S204) 및 단계(S206)는 디바이스(2)에 의해 수행될 수 있다. 본 개시의 특정 구현예들이 위에서 설명된다. 다른 구현예들은 첨부된 청구항들의 범위 내에 있다. 일부 상황들에서, 청구항들에서 설명되는 액션들 또는 단계들이 구현예에서의 순서와는 상이한 순서로 수행될 수 있으며 바람직한 결과들이 여전히 달성될 수 있다. 또한, 첨부 도면들에서 표현되는 프로세스는, 바람직한 결과들을 달성하기 위한 특정 실행 순서를 반드시 요하는 것은 아니다. 일부 구현예들에서, 멀티태스킹 및 병렬 프로세싱이 바람직할 수 있다.
도 2에 도시된 블록체인 노드 통신 프로세스에 기반하여, 본 출원의 구현예는 또한 도 5에 도시된 바와 같은 블록체인 노드 통신 장치를 제공한다.
도 5는 본 출원의 구현예에 따른, 블록체인 노드 통신 장치를 예시하는 개략적인 구조도이다. 블록체인 노드 통신 장치는, 제 2 블록체인 노드에 의해 송신된 통신 요청을 수신하도록 구성된 수신 모듈(302)을 포함하고, 블록체인 네트워크 내의 블록체인 노드들은 서비스 노드를 포함하고, 서비스 노드는 CA에 의해 송신된 인증서를 저장하고 CA 신뢰 목록으로 미리구성되며, 장치는, 제 2 인증서에 대응하는 CA 식별자를 결정하도록 구성된 결정 모듈(304); 및 제 2 인증서에 대응하는 결정된 CA 식별자가 CA 신뢰 목록에 포함되어 있는지의 여부를 결정하도록 구성된 결정 및 실행 모듈(305)로서, 결정된 CA 식별자가 CA 신뢰 목록에 포함되어 있다면, 제 2 블록체인 노드에의 통신 연결을 수립하고, 결정된 CA 식별자가 CA 신뢰 목록에 포함되어 있지 않다면, 제 2 블록체인 노드에의 통신 연결을 수립하는 것을 스킵하는 것인, 결정 및 실행 모듈(305)을 더 포함한다.
블록체인 노드는 합의 노드를 더 포함하고, 합의 노드는 CA에 의해 송신된 인증서를 저장하며, CA 신뢰 목록으로 미리구성된다.
블록체인 네트워크 내의 블록체인 노드들은 CA들에 대응하고, CA들은 동일하지 않다.
수신 모듈(302)은 TLS 핸드쉐이크 프로토콜에 기반하여, 제 2 블록체인 노드에 의해 송신된 통신 요청을 수신한다.
결정 및 실행 모듈(306)은 제 2 블록체인 노드에 검증 요청을 리턴하고, 검증 요청은, 제 2 블록체인 노드가 제 1 인증서 및 제 2 블록체인 노드에 미리구성된 CA 신뢰 목록에 기반하여, 장치에의 통신 연결을 수립할지의 여부를 결정하도록 장치의 제 1 인증서를 포함한다.
특히, 블록체인 노드 통신 장치는 블록체인 노드 내에 위치될 수 있다. 블록체인 노드는 컨소시엄 블록체인 네트워크 내의 서비스 노드 또는 합의 노드일 수 있다. 이는 본 개시에 제한되는 것은 아니다. 또한, 컨소시엄 블록체인 네트워크 내의 합의 노드가 또한 컨소시엄의 멤버(기관)에 의해 제공된 서버일 수 있기 때문에, 블록체인 노드는 합의 서버일 수 있다. 물론, 대안적으로, 블록체인 노드가 서비스 노드일 때, 서비스 노드는 또한 기관의 서비스 서버일 수 있다.
또한, 서버(예를 들어, 서비스 서버 또는 합의 서버)는 분리된 디바이스일 수 있거나, 또는 분산형 서버와 같은 복수의 디바이스들을 포함하는 시스템일 수 있다. 그러나, 서버가 하나의 디바이스 또는 하나보다 많은 디바이스인지의 여부와 관계없이, 컨소시엄 블록체인 네트워크 내의 서버는 블록체인 노드로 간주될 수 있다.
도 2에 도시된 블록체인 노드 통신 프로세스에 기반하여, 본 출원의 구현예는 또한 도 6에 도시된 바와 같은 블록체인 노드 통신 디바이스를 제공한다.
도 6은 본 출원의 구현예에 따른, 블록체인 노드 통신 디바이스를 예시하는 개략적인 구조도이다. 통신 디바이스는 하나 이상의 프로세서 및 메모리를 포함한다. 메모리는 프로그램을 저장하고, 프로그램은 다음의 단계들을 수행하도록 하나 이상의 프로세서에 의해 실행된다: 제 1 블록체인 노드에서, 제 2 블록체인 노드에 의해 송신된 통신 요청을 수신하는 단계로서, 통신 요청은 제 2 블록체인 노드의 제 2 인증서를 포함하는 것인, 통신 요청을 수신하는 단계; 제 2 인증서에 대응하는 CA 식별자를 결정하는 단계; 제 2 인증서에 대응하는 결정된 CA 식별자가 CA 신뢰 목록에 포함되어 있는지의 여부를 결정하는 단계; 및 결정된 CA 식별자가 CA 신뢰 목록에 포함되어 있다면, 제 2 블록체인 노드에의 통신 연결을 수립하는 단계; 또는 결정된 CA 식별자가 CA 신뢰 목록에 포함되어 있지 않다면, 제 2 블록체인 노드에의 통신 연결을 수립하는 것을 스킵하는 단계.
블록체인 네트워크 내의 블록체인 노드들은 서비스 노드를 포함한다. 서비스 노드는 CA에 의해 송신된 인증서를 저장하고, CA 신뢰 목록으로 미리구성된다.
또한, 블록체인 노드는 합의 노드일 수 있고, 블록체인 노드 통신 디바이스를 사용함으로써 다른 블록체인 노드에의 통신 연결을 수립할 때 동일한 단계들을 수행할 수 있다.
1990년대에는, 기술 향상이 하드웨어적 향상(예를 들어, 다이오드, 트랜지스터, 또는 스위치와 같은 회로 구조물의 향상)인지 또는 소프트웨어적 향상(방법 절차의 향상)인지의 여부가 명확히 구분될 수 있었다. 그러나, 기술들이 발전함에 따라, 많은 방법 절차들에 대한 현재의 향상은 하드웨어 회로 구조물의 직접적인 향상으로 간주될 수 있다. 설계자들은 보통, 향상된 방법 절차를 대응하는 하드웨어 회로 구조물을 획득하기 위해 하드웨어 회로에 프로그래밍한다. 따라서, 방법 절차는 하드웨어 엔티티 모듈(hardware entity module)을 사용함으로써 향상될 수 있다. 예를 들어, 프로그래밍가능 논리 디바이스(programmable logic device; PLD)[예를 들어, 필드 프로그래밍가능 게이트 어레이(field programmable gate array; FPGA)]가 그러한 집적 회로이며, 프로그래밍가능 논리 디바이스의 논리 함수가 디바이스 프로그래밍을 통해 사용자에 의해 결정된다. 설계자는, 칩 제조자가 주문형 집적 회로 칩(application-specific integrated circuit chip)을 설계하고 생산하도록 요청하지 않고 PLD에 디지털 시스템을 “집적”하기 위해 프로그래밍을 수행한다. 또한, 프로그래밍은 집적 회로 칩을 수동으로 제조하는 대신 “논리 컴파일러” 소프트웨어를 수정함으로써 대부분 구현된다. 이는 프로그램 개발 및 컴파일링을 위해 사용되는 소프트웨어 컴파일러와 유사하다. 그러나, 컴파일링 전의 오리지널 코드는 또한, 하드웨어 기술 언어(hardware description language; HDL)로 지칭되는 특정 프로그래밍 언어로 작성된다. ABEL(Advanced Boolean Expression Language), AHDL(Altera Hardware Description Language), Confluence, CUPL(Cornell University Programming Language), HDCal, JHDL(Java Hardware Description Language), Lava, Lola, MyHDL, PALASM, 및 RHDL(Ruby Hardware Description Language)와 같은 많은 HDL들이 있다. 현재, VHDL(Very-High-Speed Integrated Circuit Hardware Description Language) 및 Verilog가 가장 일반적으로 사용된다. 당업자는 또한, 방법 절차가 몇몇 설명된 하드웨어 기술 언어들을 사용함으로써 논리적으로 프로그래밍되고 집적 회로에 프로그래밍되면, 논리적 방법 절차를 구현하는 하드웨어 회로가 쉽게 획득될 수 있다는 점을 이해해야 한다.
임의의 적절한 방식으로 컨트롤러가 구현될 수 있다. 예를 들어, 컨트롤러는 마이크로프로세서, 프로세서, 또는 컴퓨터 판독가능 매체, 논리 게이트, 스위치, 주문형 집적 회로(application-specific integrated circuit; ASIC), 프로그래밍가능 논리 컨트롤러, 또는 프로세서(또는 마이크로프로세서)에 의해 실행될 수 있는 컴퓨터 판독가능 프로그램 코드(예를 들어, 소프트웨어 또는 펌웨어)를 저장하는 임베딩된 마이크로컨트롤러일 수 있다. 컨트롤러의 예시들은 다음의 마이크로컨트롤러들을 포함하지만 이에 제한되는 것은 아니다: ARC 625D, Atmel AT91SAM, 마이크로칩 PIC18F26K20, 또는 실리콘 랩스 C8051F320. 메모리의 제어 논리부의 일부로서 메모리 컨트롤러가 또한 구현될 수 있다. 당업자는 또한, 순수(pure) 컴퓨터 판독가능 프로그램 코드의 방식으로 컨트롤러가 구현될 수 있고, 컨트롤러가 논리 게이트, 스위치, 주문형 집적 회로, 프로그래밍가능 논리 컨트롤러, 임베딩된 마이크로컨트롤러 등의 형태들로 동일한 기능들을 구현하게 하도록 방법에서의 단계들이 논리적으로 프로그래밍될 수 있다는 점을 알고 있다. 따라서, 컨트롤러는 하드웨어 컴포넌트로서 간주될 수 있고, 컨트롤러에서 다양한 기능들을 구현하도록 구성되는 장치가 또한 하드웨어 컴포넌트 내의 구조물로서 간주될 수 있다. 대안적으로, 다양한 기능들을 구현하도록 구성된 장치는, 방법을 구현할 수 있는 소프트웨어 모듈 또는 하드웨어 컴포넌트 내의 구조물로 간주될 수 있다.
이전의 구현예들에서 예시된 시스템, 장치, 모듈, 또는 유닛은 컴퓨터 칩 또는 엔티티를 사용함으로써 구현될 수 있거나, 또는 어떤 기능을 갖는 제품을 사용함으로써 구현될 수 있다. 특히, 컴퓨터는, 예를 들어 개인용 컴퓨터, 랩탑 컴퓨터, 셀룰러 폰, 카메라 폰, 스마트폰, 개인용 디지털 보조기, 미디어 플레이어, 내비게이션 디바이스, 이메일 디바이스, 게임 콘솔, 태블릿 컴퓨터, 웨어러블 디바이스, 또는 이 디바이스들 중 임의의 디바이스들의 조합일 수 있다.
설명의 용이성을 위해, 설명된 장치는 기능들을 다양한 유닛들로 분할하는 것으로 설명된다. 물론, 본 출원이 구현될 때, 각각의 유닛의 기능들은 하나 이상의 피스의 소프트웨어 및/또는 하드웨어로 구현될 수 있다.
당업자는 본 개시의 구현예들이 방법, 시스템, 또는 컴퓨터 프로그램 제품으로서 제공될 수 있다는 점을 이해해야 한다. 따라서, 본 개시는 하드웨어만 있는 구현예들, 소프트웨어만 있는 구현예들, 또는 소프트웨어 및 하드웨어의 조합이 있는 구현예들의 형태를 사용할 수 있다. 또한, 본 개시는 컴퓨터 사용가능 프로그램 코드를 포함하는 하나 이상의 컴퓨터 사용가능 저장 매체[자기 디스크 메모리, 컴팩트 디스크 판독 전용 메모리(compact disc read-only memory; CD-ROM), 및 광학 메모리를 포함하지만 이들에 제한되는 것은 아님] 상에서 구현되는 컴퓨터 프로그램 제품의 형태를 사용할 수 있다.
본 개시는 본 개시의 구현예들에 기반하여 방법, 디바이스(시스템), 및 컴퓨터 프로그램 제품의 흐름도들 및/또는 블록도들을 참조하여 설명된다. 흐름도들 및/또는 블록도들 내의 각각의 절차 및/또는 각각의 블록, 및 흐름도들 및/또는 블록도들 내의 절차 및/또는 블록의 조합을 구현하기 위해 컴퓨터 프로그램 명령어들이 사용될 수 있다는 점이 이해되어야 한다. 흐름도들 내의 하나 이상의 절차 및/또는 블록도들 내의 하나 이상의 블록 내의 특정 기능을 구현하기 위한 장치를 생성하기 위해 컴퓨터 또는 다른 프로그래밍가능 데이터 프로세싱 디바이스의 프로세서에 의해 명령어들이 실행되도록, 이들 컴퓨터 프로그램 명령어들은, 범용 컴퓨터, 전용 컴퓨터, 임베딩된 프로세서, 또는 머신을 생성하기 위한 다른 프로그래밍가능 데이터 프로세싱 디바이스의 프로세서용으로 제공될 수 있다.
컴퓨터 판독가능 메모리에 저장된 명령어들이 명령어 장치를 포함하는 아티팩트(artifact)를 생성하도록, 이들 컴퓨터 프로그램 명령어들은, 컴퓨터 또는 다른 프로그래밍가능 데이터 프로세싱 디바이스에게 특정 방식으로 작동하도록 지시할 수 있는 컴퓨터 판독가능 메모리에 저장될 수 있다. 명령어 장치는 흐름도들 내의 하나 이상의 절차 및/또는 블록도들 내의 하나 이상의 블록 내의 특정 기능을 구현한다.
컴퓨터 구현 프로세싱을 생성하기 위해 일련의 동작들 및 단계들이 컴퓨터 또는 다른 프로그래밍가능 디바이스 상에서 수행되도록, 이들 컴퓨터 프로그램 명령어들은, 컴퓨터 또는 다른 프로그래밍가능 데이터 프로세싱 디바이스에 로딩될 수 있다. 따라서, 컴퓨터 또는 다른 프로그래밍가능 디바이스 상에서 실행되는 명령어들은 흐름도들 내의 하나 이상의 절차 및/또는 블록도들 내의 하나 이상의 블록 내의 특정 기능을 구현하기 위한 단계들을 제공한다.
일반적인 구성에서, 컴퓨팅 디바이스는 하나 이상의 프로세서(CPU), 입력/출력 인터페이스, 네트워크 인터페이스, 및 메모리를 포함한다.
메모리는, 판독 전용 메모리(read-only memory; ROM) 또는 플래시 메모리와 같은, 컴퓨터 판독가능 매체 내의 휘발성 메모리, 랜덤 액세스 메모리(random access memory; RAM), 및/또는 비휘발성 메모리 등을 포함할 수 있다. 메모리는 컴퓨터 판독가능 매체의 예시이다.
컴퓨터 판독가능 매체는 임의의 방법 또는 기술을 사용함으로써 정보를 저장할 수 있는 지속성, 비지속성, 가동(movable), 및 비가동 매체들을 포함한다. 정보는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 다른 데이터일 수 있다. 컴퓨터 저장 매체의 예시들은, 위상 변화 RAM(phase change RAM; PRAM), 정적 RAM(static RAM; SRAM), 동적 RAM(dynamic RAM; DRAM), 다른 유형의 RAM, ROM, 전기적으로 소거가능한 프로그래밍가능 판독 전용 메모리(electrically erasable programmable read-only memory; EEPROM), 플래시 메모리 또는 다른 메모리 기술, 컴팩트 디스크 판독 전용 메모리(CD-ROM), 디지털 다기능 디스크(digital versatile disc; DVD) 또는 다른 광학 저장소, 자기 테이프, 자기 디스크 저장소, 다른 자기 저장 디바이스, 또는 임의의 다른 비전송 매체를 포함하지만, 이에 제한되는 것은 아니다. 컴퓨터 저장 매체는 컴퓨팅 디바이스에 의해 액세스될 수 있는 정보를 저장하도록 사용될 수 있다. 본 출원에서 설명되는 바와 같이, 컴퓨터 판독가능 매체는 일시적 매체(transitory media), 예를 들어 변조된 데이터 신호 또는 캐리어를 포함하지 않는다.
일련의 엘리먼트들을 포함하는 프로세스, 방법, 상품, 또는 디바이스가 이 엘리먼트들을 포함할 뿐만 아니라 명확히 목록화되지 않은 다른 엘리먼트들을 포함하거나, 또는 그러한 프로세스, 방법, 상품, 또는 디바이스에 내재되는 엘리먼트들을 더 포함하도록, 용어 “포함한다”, “구비한다”, 또는 임의의 다른 변형이 비배타적 포함을 커버하도록 의도된다는 점을 유념해야 한다. “포함한다” 앞에 오는 엘리먼트는, 더 이상의 제한없이, 엘리먼트를 포함하는 프로세스, 방법, 상품 또는 디바이스 내의 추가적 동일 엘리먼트들의 존재를 배제하는 것은 아니다.
당업자는 본 출원의 구현예들이 방법, 시스템, 또는 컴퓨터 프로그램 제품으로서 제공될 수 있다는 점을 이해해야 한다. 따라서, 본 출원은 하드웨어만 있는 구현예들, 소프트웨어만 있는 구현예들, 또는 소프트웨어 및 하드웨어의 조합이 있는 구현예들의 형태를 사용할 수 있다. 또한, 본 출원은 컴퓨터 사용가능 프로그램 코드를 포함하는 하나 이상의 컴퓨터 사용가능 저장 매체(자기 디스크 메모리, CD-ROM, 광학 메모리를 포함하지만 이들에 제한되는 것은 아님) 상에서 구현되는 컴퓨터 프로그램 제품의 형태를 사용할 수 있다.
본 출원은 프로그램 모듈과 같은 컴퓨터에 의해 실행되는 컴퓨터 실행가능 명령어들의 공통적인 컨텍스트들로 설명될 수 있다. 일반적으로, 프로그램 모듈은 특정 태스크(task)를 실행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 본 출원은 또한 분산형 컴퓨팅 환경들에서 실시될 수 있다. 이들 분산형 컴퓨팅 환경들에서, 태스크들은 통신 네트워크를 사용함으로써 연결된 원격 프로세싱 디바이스들에 의해 실행된다. 분산형 컴퓨팅 환경들에서, 프로그램 모듈은 저장 디바이스들을 포함하는 로컬 및 원격 컴퓨터 저장 매체에 위치될 수 있다.
본 출원 내의 구현예들이 진보적인 방식으로 설명된다. 구현예들 내의 동일하거나 유사한 부분들에 대해, 구현예들에 대한 참조들이 이루어질 수 있다. 각각의 구현예는 다른 구현예들과의 차이점에 초점을 둔다. 특히, 시스템 구현예는 방법 구현예와 유사하고, 따라서 간략히 설명된다. 관련된 부분들에 대해, 방법 구현예에서 관련된 설명들에 대한 참조들이 이루어질 수 있다.
이전의 설명들은 본 출원의 구현예들일 뿐이며, 본 출원을 제한하도록 의도되는 것은 아니다. 당업자는 본 출원에 다양한 변형들 및 변경들을 행할 수 있다. 본 출원의 사상 및 원리 내에서 이루어진 임의의 변형들, 균등한 대체들, 향상들 등은 본 출원의 청구범위의 보호 범위 내에 있을 것이다.
도 7은 본 개시의 구현예에 따른, 블록체인 네트워크의 보안성을 향상시키기 위해 컴퓨터 구현 방법(700)의 예시를 예시하는 흐름도이다. 제시의 명확성을 위해, 이어지는 설명은 일반적으로, 본 설명에서의 다른 도면들의 컨텍스트로 방법(700)을 설명한다. 그러나, 방법(700)이 예를 들어 적절하게 임의의 시스템, 환경, 소프트웨어, 및 하드웨어, 또는 시스템들, 환경들, 소프트웨어, 및 하드웨어의 조합에 의해 수행될 수 있다는 점이 이해될 것이다. 일부 구현예들에서, 방법(700)의 다양한 단계들이 병렬로, 조합으로, 루프들로, 또는 임의의 순서로 수행될 수 있다.
일반적으로, 분산형 원장(distributed ledger)은, 중앙 관리자 또는 중앙형 데이터 저장소(centralized data storage)없이 다수의 노드들에 걸쳐 분산된 복제되고, 공유되며, 동기화되는 디지털 데이터의 합의이다. 분산형 원장의 카피들이 복제되고 분산형 원장 네트워크의 노드들 사이에서 공유된다. 복제 및 공유는 분산형 원장에게 자신의 특유의 복원성(characteristic resiliency) 및 인가되지 않은 변경에 대한 보호성을 부여한다. 블록체인 네트워크는 분산형 원장의 예시이다.
블록체인 네트워크는 일반적으로, ‘무허가(permission-less)’ 블록체인 네트워크이거나 또는 ‘허가된(permissioned)’ 블록체인 네트워크일 수 있다. 무허가 블록체인 네트워크에서, 블록체인에의 액세스가 제한되지 않는다. 그러나, 제한되지 않는 액세스로 인해, 무허가 블록체인은, 재무 데이터(financial data), 온라인 트랜잭션 데이터, 개인 식별 정보(personal identification information), 또는 자산 데이터(proprietary data)와 같은 민감하거나 개인적인 데이터를 포함하는 블록체인 트랜잭션들에서 응용들이 제한될 수 있다. 다른 한편으로, ‘허가된’ 블록체인은 컨소시엄의 형태에 있는 참가자들의 그룹 또는 중앙의 신뢰되는 파티에 의해 소유되고, 제어되며, 관리될 수 있다. ‘허가된’ 블록체인의 예시들은 컨소시엄 블록체인 네트워크 및 개인 블록체인 네트워크를 포함한다.
컨소시엄 블록체인 네트워크에서, 컨소시엄의 일부인 신뢰되는 또는 심사된(vetted) 참가자들, 또는 노드들만이 블록체인의 제어 및 유지에 참가하는 것이 허용된다. 블록체인의 카피들은 컨소시엄 블록체인 네트워크의 각각의 노드들에 의해 보관될 수 있고, 블록체인에의 액세스는 컨소시엄 노드들에만 제한된다. 컨소시엄 노드들 사이의 블록체인들의 이 제어되는 공유는, 민감하거나 개인적인 데이터를 포함하는 분산형 원장 트랜잭션들을 기록하기 위해 사용될 수 있다.
컨소시엄 블록체인 네트워크에 의해 저장될 수 있는 민감하거나 개인적인 데이터로 인해, 그러한 블록체인 네트워크의 노드들이 해킹 시도들의 타겟들이 될 수 있다. 어떤 해킹 방법들은, 개인적이거나 민감한 데이터를 포함하는 블록체인에의 액세스를 진행하고 잠재적으로 획득하기 위한 해킹 시도를 위해, 예를 들어 악성 노드와 컨소시엄 노드 사이에 통신 세션이 수립되는 것만을 요할 수 있다. 컨소시엄 블록체인 네트워크의 각각의 노드가 민감하거나 개인적인 데이터를 포함하는 블록체인의 카피를 포함하기 때문에, 그리고 해킹 방법들이 끊임없이 진화하고 있고 제로 데이 취약점(zero-day vulnerability)들이 노출되는 것이 지속되기 때문에, 컨소시엄 블록체인 네트워크와 같은 블록체인 네트워크의 노드들에의 통신 세션들의 수립을 제어할 필요가 있다. 공개 키 인증서들 및 신뢰 목록을 사용하는 통신 세션들의 수립에 대한 그러한 제어를 달성하는 것이 가능할 수 있다.
단계(702)에서, 복수의 CA 식별자들을 포함하는 제 1 인증 기관(CA) 신뢰 목록이 블록체인 네트워크의 제 1 노드에 의해 획득된다. CA은 공개 키 인증서들을 발행하는 엔티티이다. 디지털 인증서 또는 아이덴티티 인증서로 종종 알려진 공개 키 인증서는 일반적으로, 자신의 아이덴티티를 인증하는데에 온라인 트랜잭션의 파티에 의해 사용되고, 일반적으로 공개 키 기반구조(public key infrastructure; PKI) 암호기법(cryptography)에 기반한다. 블록체인의 각각의 노드는 일반적으로, 자신의 아이덴티티를 인증하고 블록체인에 추가될 블록에 암호기법으로 서명하기 위해 사용되는 연관된 공개 키 인증서를 갖는다. 공개 키 인증서들은 인증서들을 발행한 CA에 의해 디지털로 서명되고, 이와 같이 함으로써 공개 키 인증서의 명칭된(named) 엔티티의 인증을 증명한다. 이와 같이, 공개 키 인증서를 제시하는 파티의 아이덴티티를 인증하는 태스크는 공개 키 인증서를 발행한 CA에 기초한다. 이에 따라, 발행한 CA의 무결성(integrity) 또는 신뢰도는 인증서 기반 디지털 아이덴티티 검증 체계의 무결성을 유지하는데 중요하다.
일반적으로, 악성 파티는 자신이 CA로서 역할할 수 있고 악성 파티가 가장하고자 하는 어떤 엔티티라고 칭하는(purporting) 공개 키 인증서에 자체 서명할 수 있다. 이와 같이, 공개 키 인증서의 신뢰도를 검증하는 한가지 방식은, 문제의 공개 키 인증서를 발행한 CA에 대해, 신뢰되는 루트 인증서 기관으로부터 신뢰 체인(chain of trust)을 검증하는 것이다. 블록체인 노드 인증서(1)로부터 제 1 CA, 컨소시엄 블록체인(CA), 루트(CA)로 수립된 신뢰 체인과 같은 신뢰 체인의 예시가 도 4에 예시된다. 일부 경우들에서, 신뢰 체인은 비교적 길 수 있고, 이는 신뢰 체인의 검증과 연관된 어느 정도의 프로세싱 시간을 초래한다. 신뢰 체인이 비교적 짧은 경우들에서도, 각각의 검증 시도는 일정량(finite amount)의 프로세싱 시간을 소요한다. 다량(high-volume), 저지연(low latency), 고스루풋(high-throughput), 또는 이들의 조합을 요하는 블록체인 응용에서, 신뢰 체인의 검증과 연관된 그러한 프로세싱 시간은 감소된 시스템 성능을 초래할 수 있다.
신뢰 체인의 검증과 연관된 프로세싱 시간을 감소시키는 한가지 방식은 신뢰될 수 있는 CA 식별자들의 목록을 포함하는 CA 신뢰 목록을 획득하는 것이다. CA 신뢰 목록에 포함된 CA들을 신뢰함으로써, 전체 신뢰 체인의 검증이 우회(bypass)될 수 있고, 이는 연관된 프로세싱 시간을 감소시키거나 없앨 수 있다. CA 신뢰 목록은 다양한 방식들로 획득될 수 있다. 예를 들어, 블록체인 노드는 CA 신뢰 목록으로 미리구성될 수 있다. 미리구성하는 예시들은, 블록체인 노드에 저장되고 블록체인 노드에서 실행되는 블록체인 소프트웨어에 CA 신뢰 목록의 카피를 포함시키는 것, 및 블록체인 노드에 물리적으로 설치된 보안 하드웨어 모듈에 CA 신뢰 목록의 카피를 저장하는 것을 포함한다. 보안 하드웨어 모듈은 판독 전용 저장소일 수 있고, 이는 악의적인 방식으로 CA 신뢰 목록을 원격으로 편집하려는 시도들을 경감시키는데 이로울 수 있다. 다른 예시로서, 특정 블록체인 노드의 공개 키 인증서를 발행했고, 따라서 특정 블록체인 노드에 의해 신뢰되는 CA로부터 CA 신뢰 목록이 수신될 수 있다. CA가 인증서들을 발행한 노드들에의 CA에 의한 CA 신뢰 목록의 배포(distribution)는 CA 신뢰 목록의 관리 및 업데이트를 간소화하는데(streamlining) 바람직할 수 있다. 따라서, 일부 구현예들에서, 복수의 CA 식별자들을 포함하는 제 1 CA 신뢰 목록의 획득은 다음 중 하나에 의해 수행될 수 있다: 제 1 CA 신뢰 목록으로 제 1 노드를 미리구성하는 것; 또는 제 1 노드와 연관된 CA로부터, 제 1 CA 신뢰 목록을 수신하는 것. 단계(702)로부터, 방법(700)은 단계(704)로 진행한다.
단계(704)에서, 블록체인 네트워크의 제 2 노드의 공개 키 인증서를 포함하는 통신 요청이 블록체인 네트워크의 제 2 노드로부터 제 1 노드에 의해 수신된다. 이 단계는 도 2의 단계(S202)와 유사할 수 있다. 통신 요청은 일반적으로, 제 1 네트워크 노드의 의도(intent)를 제 2 네트워크 노드와의 통신에 릴레이하는 네트워크를 통해 교환되는 요청 또는 메시지를 지칭한다. 블록체인 네트워크의 보안 정책(security measure)의 일부로서, 블록체인 네트워크의 노드들 간의 통신은 일반적으로 암호화를 사용하여 보안된다. 암호화 프로세스를 용이하게 하고, 통신을 요청하는 노드의 아이덴티티를 수립하기 위해, 통신 요청은 요청 노드의 공개 키 인증서를 포함한다. 통신 요청의 포맷 및 컨텐츠가 표준화되거나 구현 특유적(implementation-specific)일 수 있다.
전송 계층 보안(TLS) 프로토콜 및 그 전임자(predecessor)인 보안 소켓 계층(secure socket layer; SSL) 프로토콜이 네트워크의 2개의 노드들 간의 네트워크를 통한 보안 통신을 수행하는데 널리 사용되는 프로토콜이다. TLS 및 SSL 프로토콜들은 보안 통신 세션을 개시하기 위해 사용되는 핸드쉐이크 절차들을 갖는다. 핸드쉐이크 절차들의 일부로서, 표준화된 절차들을 통해 2개의 네트워크 노드들 간에 공개 키 인증서들이 교환된다. 이와 같이, 일부 구현예들에서, 블록체인 네트워크의 제 2 노드로부터 제 1 노드에 의해, 제 2 노드의 공개 키 인증서를 포함하는 통신 요청을 수신하는 것은, 제 2 노드로부터 제 1 노드에 의해, 전송 계층 보안(TLS) 핸드쉐이크 프로토콜에 따라 통신 요청을 수신하는 것을 포함한다. 단계(704)로부터, 방법(700)은 단계(706)로 진행한다.
단계(706)에서, 수신된 공개 키 인증서로부터 제 1 CA 식별자가 결정된다. 이 단계는 도 2의 단계(S204)와 유사할 수 있다. 공개 키 인증서는 일반적으로, X.509 표준과 같은 적절한 표준에 의해 규정된 표준화된 포맷의 다양한 정보를 포함한다. 발행자 명칭, 또는 인증서를 발행한 CA의 명칭이 공개 키 인증서의 표준화된 필드 중 하나이다. 이와 같이, 공개 키 인증서 내에 포함된 발행자 명칭이 예를 들어 CA 식별자로서 사용될 수 있다. 다른 예시로서, 기관 키 식별자(authority key identifier; AKI) 또는 발행 CA의 디지털 서명과 같은 발행 CA와 연관된 비알파벳(non-alphabetical) 식별 정보가 CA 식별자로서 사용될 수 있다. 일반적으로, 특정 공개 키 인증서를 발행한 CA를 식별하기 위해 사용가능한 공개 키 인증서 내에 포함된 임의의 정보가 CA 식별자로서 사용될 수 있다. 또한, 인증서는 또한, 공개 키 인증서의 소유자의 식별 정보 또는 명칭인 주체(subject) 명칭 필드를 포함한다. 단계(706)로부터, 방법(700)은 단계(708)로 진행한다.
단계(708)에서, 제 1 CA 식별자가 제 1 CA 신뢰 목록의 복수의 CA 식별자들 중 하나와 매칭되는지의 여부에 대한 결정이 이루어진다. 이 단계는 도 2의 단계(S206)와 유사할 수 있다. 매칭의 결정은, 예를 들어 제 1 CA 신뢰 목록의 엔트리들과의 수신된 공개 키 인증서로부터 결정된 제 1 CA 식별자의 [예를 들어, 비트 대 비트 비교(bit-by-bit comparison)를 통한] 정확한 매칭을 서치함으로써 수행될 수 있다. 제 1 CA 식별자가 제 1 CA 신뢰 목록의 복수의 CA 식별자들 중 하나와 매칭된다고 결정되면, 방법(700)은 단계(710)로 진행한다. 그렇지 않고, 제 1 CA 식별자가 제 1 CA 신뢰 목록의 복수의 CA 식별자들 중 하나와 매칭되지 않는다고 결정되면, 방법(700)은 단계(712)로 진행한다.
단계(710)에서, 제 1 노드에 의해 통신 요청이 승인된다. 이 단계는 도 2의 단계(S208)와 유사할 수 있다. 제 1 노드에 의해 통신 요청이 승인되었을 때, 제 1 노드는 제 1 노드와 제 2 노드 사이의 통신 세션을 수립할 수 있다. 수립된 통신 세션은 TLS으로 보안되는 통신 세션과 같은, 암호화된 통신 세션일 수 있다. 통신 세션이 수립되면, 제 1 노드와 제 2 노드 사이에 데이터가 흐를 수 있고, 수립된 통신 세션을 통해 블록체인 트랜잭션들이 수행될 수 있다.
일부 구현예들에서, 통신 세션이 수립되기 전에 제 1 노드에 의한 승인 후에 추가 단계들이 수행될 수 있다. 예를 들어, 통신 요청을 개시한 제 2 노드는 또한 2개의 노드들 간의 통신 세션을 수립하기 전에 제 1 노드의 상호간의(reciprocal) 아이덴티티 검증을 수행하기 원할 수 있다. 아이덴티티의 그러한 상호 검증이 블록체인 네트워크의 전체 보안성을 향상시킬 수 있다. 이와 같이, 일부 구현예들에서, 제 2 노드는 복수의 CA 식별자들을 포함하는 제 2 CA 신뢰 목록을 포함하고, 제 1 노드에 의해, 통신 요청을 승인하는 것은, 제 1 노드의 공개 키 인증서를 포함하는 검증 요청을 제 2 노드에 제 1 노드에 의해 전송하는 것을 포함한다. 검증 요청은 예를 들어, TLS 또는 SSL 프로토콜과 같은 통신 프로토콜들에 따라 전송될 수 있다. 그러한 구현예들에서, 방법(700)은, 제 2 노드에 의해, 제 1 노드의 수신된 공개 키 인증서로부터 제 2 CA 식별자를 결정하는 단계; 제 2 CA 식별자가 제 2 노드의 제 2 CA 신뢰 목록의 복수의 CA 식별자들 중 하나와 매칭되는지의 여부를 결정하는 단계; 제 2 CA 식별자가 제 2 CA 신뢰 목록의 복수의 CA 식별자들 중 하나와 매칭된다고 결정한 것에 응답하여, 제 1 노드와의 통신 세션을 수립하는 단계; 및 제 2 CA 식별자가 제 2 CA 신뢰 목록의 복수의 CA 식별자들 중 하나와 매칭되지 않는다고 결정한 것에 응답하여, 제 2 노드에 의해, 제 1 노드와의 통신 세션의 수립을 거부하는(denying) 단계를 더 포함한다. 제 2 노드에 의한 검증 프로세스의 상세사항들은 단계들(706 및 708)과 유사할 수 있다.
단계(712)에서, 제 1 노드에 의해 통신 요청이 거부된다. 이 단계는 도 2의 단계(S210)와 유사할 수 있다. 제 1 CA 식별자가 제 1 CA 신뢰 목록의 복수의 CA 식별자들 중 하나와 매칭되지 않을 때, 제 1 노드는, 통신 요청이 악성 노드로부터의 것, 또는 블록체인 네트워크에 의해 설정된 표준에 따라 아이덴티티가 검증될 수 없는 노드로부터의 것일 수 있으므로 통신 요청을 거부한다. 제 1 노드는, 통신 요청 거부시, 다양한 액션들을 수행할 수 있거나 다양한 액션들을 수행하는 것을 보류할 수 있다. 예를 들어, 제 1 노드는 단순히, 통신 요청에 관하여 더 이상의 액션을 취하지 않을 수 있다. 다른 예시로서, 제 1 노드는 ‘통신 요청이 거부됨’ 메시지를 제 2 노드에 송신할 수 있다. 또 다른 예시로서, 제 1 노드는 제 2 노드의 네트워크 식별자(예를 들어, MAC 어드레스 또는 IC 어드레스)를 의심스러운 활동(suspicious activity)들을 모니터링하기 위한 감시 리스트(watch list), 또는 통신 요청이 거부된 제 2 노드로부터의 어떠한 더 이상의 통신 요청들도 차단하기 위한 블랙 리스트에 추가할 수 있다.
일반적으로, 블록체인 네트워크의 상이한 노드들은 상이한 CA들에 의해 발행된 공개 키 인증서들을 가질 수 있다. 예를 들어, CA들은 컨소시엄 블록체인 네트워크의 일부일 수 있고, 한 유형의 블록체인 트랜잭션들을 수행하는 노드들에 대한 공개 키 인증서들이 제 1 CA에 의해 발행될 수 있으며, 상이한 유형의 블록체인 트랜잭션들을 수행하는 노드들에 대한 공개 키 인증서들이 제 1 CA와는 상이한 제 2 CA에 의해 발행될 수 있다. 이와 같이, 일부 구현예들에서, 제 2 노드의 공개 키 인증서의 제 1 CA 식별자는 제 1 노드의 공개 키 식별자의 제 2 CA 식별자와 상이하다. 상이한 트랜잭션 유형들에 대한 개별 CA들을 구현하는 것은, 블록체인 네트워크의 하나의 특정 동작에서의 임의의 가능한 보안 위반(security breach)을 방지하고 이 위반이 블록체인 네트워크의 다른 동작들로 확산되는 것을 방지하는데 바람직할 수 있다.
일부 구현예들에서, 방법(700)의 블록체인 네트워크는 컨소시엄 블록체인 네트워크이다.
일반적으로, 블록체인 네트워크는, 블록체인 네트워크의 다양한 노드들에 걸쳐 분산된 블록체인의 카피들에 대한 합의 검증을 수행하도록 구성된 하나 이상의 합의 노드를 포함한다. 이와 같이, 일부 구현예들에서, 통신 요청을 수신하는 블록체인 네트워크의 제 1 노드 또는 통신 요청을 전송하는 제 2 노드가 합의 노드이다.
단계(710 또는 712) 후, 방법(700)은 중단된다.
본원에서 개시되는 방법들 및 장치들은, 의심되거나 악성인 CA들에 의해 야기되는 보안 위협(security threat)들을 경감시킴으로써 블록체인 네트워크의 보안성을 향상시킬 수 있다. 신뢰되는 CA에 의해 아이덴티티들이 증명되지 않은 노드들과의 통신 세션들의 수립을 거부함으로써, 컨소시엄 블록체인의 노드들의 보안성이, CA 신뢰 목록을 이용하지 않는 노드들에 비해 향상될 수 있다. 또한, 개시되는 방법들 및 장치들을 구현하는 블록체인 네트워크의 성능이, 공개 키 인증서의 신뢰 체인의 검증과 연관된 감소된 프로세싱 시간으로 인해 종래의 블록체인들의 성능에 비해 월등할 수 있다.
본 명세서에서 설명되는 실시예들 및 동작들은 디지털 전자 회로에서, 또는 본 명세서에서 설명되는 구조물들 또는 이 구조물들 중 하나 이상의 조합들을 포함하여, 컴퓨터 소프트웨어, 펌웨어, 또는 하드웨어에서 구현될 수 있다. 동작들은 하나 이상의 컴퓨터 판독가능 저장 디바이스에 저장되거나 다른 소스들로부터 수신되는 데이터 상으로 데이터 프로세싱 장치에 의해 수행되는 동작들로서 구현될 수 있다. 데이터 프로세싱 장치, 컴퓨터, 또는 컴퓨팅 디바이스는, 예시로서 프로그래밍가능 프로세서, 컴퓨터, 시스템 온 칩, 또는 이들 중 다수의 것들, 또는 이들의 조합들을 포함하여, 데이터를 프로세싱하기 위한 장치, 디바이스들, 및 기계들을 망라할 수 있다. 장치는 특수 목적 논리 회로, 예를 들어, 중앙 프로세싱 유닛(central processing unit; CPU), 필드 프로그래밍가능 게이트 어레이(field programmable gate array; FPGA), 또는 주문형 집적 회로(application-specific integrated circuit; ASIC)를 포함할 수 있다. 장치는 또한, 논의되고 있는 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제(예를 들어, 운영 체제 또는 운영 체제들의 조합), 크로스 플랫폼 런타임 환경(cross-platform runtime environment), 가상 기계, 또는 이들의 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 장치 및 실행 환경은, 웹 서비스들, 분산형 컴퓨팅 및 그리드 컴퓨팅 인프라구조들과 같은 다양한 상이한 컴퓨팅 모델 인프라구조들을 실현할 수 있다.
컴퓨터 프로그램(또한, 예를 들어 프로그램, 소프트웨어, 소프트웨어 애플리케이션, 소프트웨어 모듈, 소프트웨어 유닛, 스크립트, 또는 코드로도 알려짐)은, 컴파일되거나 해석되는 언어들, 선언형(declarative) 또는 절차적 언어들을 포함한 임의의 형태의 프로그래밍 언어로 기록될 수 있고, 독립형(stand-alone) 프로그램으로서 또는 모듈, 컴포넌트, 서브루틴, 객체 또는 컴퓨팅 환경에서의 사용을 위해 적절한 다른 유닛으로서를 포함하여 임의의 형태로 배포될 수 있다. 프로그램은, 논의되고 있는 프로그램에 전용되는 단일 파일 내에, 또는 다중 협력 파일(multiple coordinated file)들(예를 들어 하나 이상의 모듈, 서브 프로그램, 또는 코드의 일부를 저장하는 파일들) 내에, 다른 프로그램들 또는 데이터를 보유하는 파일(예를 들어 마크업 언어 문서에 저장된 하나 이상의 스크립트)의 일부에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 상에서 또는 한 사이트에 또는 다중 사이트들에 걸쳐 분산되어 위치되고 통신 네트워크에 의해 상호연결된 다중 컴퓨터들 상에서 실행될 수 있다.
컴퓨터 프로그램의 실행을 위한 프로세서들은 예시로서, 범용 및 특수 목적 마이크로프로세서들 둘 다, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 이들 둘 다로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 필수 엘리먼트들은, 명령어들에 따라 액션들을 수행하기 위한 프로세서 및 명령어들과 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한, 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스들로부터 데이터를 수신하거나 이들에 데이터를 전송하거나 또는 수신 및 전송 둘 다를 수행하도록 이들에 동작가능하게 커플링되거나 또는 이들을 포함할 것이다. 컴퓨터는 다른 디바이스, 예를 들어 모바일 디바이스, 개인용 디지털 보조기(personal digital assistant; PDA), 게임 콘솔, 글로벌 포지셔닝 시스템(Global Positioning System; GPS) 수신기, 또는 포터블 저장 디바이스 내에 임베딩될 수 있다. 컴퓨터 프로그램 명령어들 및 데이터를 저장하기 위해 적절한 디바이스들은, 예시로서 반도체 메모리 디바이스들, 자기 디스크들, 및 광자기(magneto-optical) 디스크들을 포함하여, 비휘발성 메모리, 매체 및 메모리 디바이스들을 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보완되거나 특수 목적 논리 회로 내에 통합될 수 있다.
모바일 디바이스들은 핸드셋(handset)들, 사용자 장비(user equipment; UE), 모바일 텔레폰들(예를 들어, 스마트폰들), 태블릿들, 웨어러블 디바이스들(예를 들어, 스마트 워치들 및 스마트 아이글래스들), 사람 몸에 이식되는 디바이스들[예를 들어, 바이오센서들, 인공 귀(cochlear implant)들], 또는 다른 유형들의 모바일 디바이스들을 포함할 수 있다. 모바일 디바이스들은 다양한 통신 네트워크들과 [예를 들어, 무선 주파수(radio frequency; RF) 신호들을 사용하여] 무선으로 통신할 수 있다(아래에서 설명됨). 모바일 디바이스들은 모바일 디바이스의 현재 환경의 특성들을 결정하기 위한 센서들을 포함할 수 있다. 센서들은 카메라들, 마이크로폰들, 근접 센서들, GPS 센서들, 모션 센서들, 가속도계들, 주위 밝기 센서들, 습도 센서들, 자이로스코프들, 컴파스들, 바로미터들, 지문 센서들, 안면 인식 시스템들, RF 센서들[예를 들어, Wi-Fi 및 셀 방식 무선 전화(cellular radio)들], 열 센서들, 또는 다른 유형들의 센서들을 포함할 수 있다. 예를 들어, 카메라들은 가동 또는 고정된 렌즈들을 갖는 전향 또는 후향 카메라, 플래시, 이미지 센서, 및 이미지 프로세서를 포함할 수 있다. 카메라는 안면 및/또는 홍채 인식을 위해 상세사항들을 캡처할 수 있는 메가픽셀 카메라일 수 있다. 카메라는, 데이터 프로세서 및 메모리에 저장되거나 원격으로 액세스되는 인증 정보와 함께 안면 인식 시스템을 형성할 수 있다. 안면 인식 시스템 또는 하나 이상의 센서, 예를 들어 마이크로폰들, 모션 센서들, 가속도계들, GPS 센서들, 또는 RF 센서들은 사용자 인증을 위해 사용될 수 있다.
사용자와의 상호작용을 제공하기 위해, 실시예들은 디스플레이 디바이스 및 입력 디바이스, 예를 들어 사용자에게 정보를 디스플레이하기 위한 액정 디스플레이(liquid crystal display; LCD) 또는 유기 발광 다이오드(organic light-emitting diode; OLED)/가상 현실(virtual-reality; VR)/증강 현실(augmented-reality; AR) 디스플레이 및 사용자가 컴퓨터에게 입력을 제공할 수 있는 터치스크린 키보드, 및 포인팅 디바이스를 갖는 컴퓨터 상에 구현될 수 있다. 사용자와의 상호작용을 제공하기 위해 또한 다른 종류들의 디바이스들이 사용될 수 있고; 예를 들어, 사용자에게 제공되는 피드백은 임의의 형태의 감각적 피드백, 예를 들어 시각적 피드백, 청각적 피드백, 또는 촉각적 피드백일 수 있으며; 사용자로부터의 입력은 음향, 말, 또는 촉각적 입력을 포함하여 임의의 형태로 수신될 수 있다. 또한, 컴퓨터는, 예를 들어 웹 브라우저로부터 수신된 요청들에 응답하여 사용자의 클라이언트 디바이스 상의 웹 브라우저에 웹 페이지들을 송신함으로써, 사용자에 의해 사용되는 디바이스에 문서들을 송신하고 이로부터 문서들을 수신함으로써 사용자와 상호작용할 수 있다.
실시예들은 임의의 형태의 또는 유선 또는 무선 디지털 데이터 통신 매체(또는 이들의 조합), 예를 들어 통신 네트워크에 의해 상호연결된 컴퓨팅 디바이스들을 사용하여 구현될 수 있다. 상호연결된 디바이스들의 예시들은, 일반적으로 통신 네트워크를 통해 상호연결되는 일반적으로 서로 떨어져 있는 클라이언트와 서버이다. 클라이언트, 예를 들어 모바일 디바이스는 서버와 또는 서버를 통해 트랜잭션들, 예를 들어 구매, 판매, 지불, 기부, 송신, 또는 대출(loan) 트랜잭션들을 수행하거나 이들을 인증하는 것을 자체적으로 실행할 수 있다. 그러한 트랜잭션들은 실시간일 수 있어서 액션 및 응답이 시간적으로 근접하고; 예를 들어 개인이 액션 및 응답이 실질적으로 동시에 일어나는 것으로 인지하며, 개인의 액션에 이은 응답에 대한 시간차는 1 밀리초(millisecond; ms)보다 작거나 1 초(second; s)보다 작고, 또는 응답은 시스템의 프로세싱 제한들을 고려하여 의도적인 딜레이가 없다.
통신 네트워크들의 예시들은 근거리 통신망(local area network; LAN), 무선 액세스 네트워크(radio access network; RAN), 도시 지역 통신망(metropolitan area network; MAN), 및 광역 통신망(wide area network; WAN)을 포함한다. 통신 네트워크는 인터넷, 다른 통신 네트워크, 또는 통신 네트워크들의 조합 모두 또는 일부를 포함할 수 있다. 정보는, 롱 텀 에볼루션(Long Term Evolution; LTE), 5G, IEEE 802, 인터넷 프로토콜(Internet Protocol; IP), 또는 다른 프로토콜들 또는 프로토콜들의 조합들을 포함하여, 다양한 프로토콜들 및 표준들에 따라 통신 네트워크 상에서 전송될 수 있다. 통신 네트워크는 연결된 컴퓨팅 디바이스들 간에 음성, 비디오, 바이오메트릭(biometric), 또는 인증 데이터, 또는 다른 정보를 전송할 수 있다.
분리적 구현예들로서 설명된 특징들이 조합으로, 단일 구현예로 구현될 수 있는 한편, 단일 구현예로서 설명된 피처들이 다수의 구현예들로, 분리적으로, 또는 임의의 적절한 서브 조합으로 구현될 수 있다. 특정 순서로 설명되고 청구된 동작들이 그 특정 순서를 요하는 것으로 이해되어서는 안되며, 모든 예시된 동작들이 반드시 수행되어야 함을 요하는 것도 아니다(일부 동작들은 선택적일 수 있음). 적절하게, 멀티태스킹 또는 병령 프로세싱(또는 멀티태스킹과 병렬 프로세싱의 조합)이 수행될 수 있다.

Claims (11)

  1. 블록체인 노드 통신 방법에 있어서, 블록체인 네트워크 내의 블록체인 노드들은 서비스 노드를 포함하고, 상기 서비스 노드는 인증 기관(certificate authority; CA)에 의해 송신된 인증서를 저장하며, CA 신뢰 목록(trust list)으로 미리구성되고, 상기 방법은,
    제 2 블록체인 노드에 의해 송신된 통신 요청 - 상기 통신 요청은 상기 제 2 블록체인 노드의 제 2 인증서를 포함함 - 을 제 1 블록체인 노드에 의해 수신하는 단계;
    상기 제 2 인증서에 대응하는 CA 식별자를 결정하는 단계;
    상기 제 2 인증서에 대응하는 상기 결정된 CA 식별자가 상기 CA 신뢰 목록에 포함되어 있는지의 여부를 결정하는 단계; 및
    상기 결정된 CA 식별자가 상기 CA 신뢰 목록에 포함되어 있다면, 상기 제 2 블록체인 노드에의 통신 연결을 수립하는(establishing) 단계; 또는
    상기 결정된 CA 식별자가 상기 CA 신뢰 목록에 포함되어 있지 않다면, 상기 제 2 블록체인 노드에의 통신 연결을 수립하는 것을 스킵하는 단계를 포함하는 것인, 블록체인 노드 통신 방법.
  2. 제 1 항에 있어서, 상기 블록체인 노드들은 합의 노드(consensus node)를 더 포함하고, 상기 합의 노드는 CA에 의해 송신된 인증서를 저장하며, CA 신뢰 목록으로 미리구성되는 것인, 방법.
  3. 제 1 항 또는 제 2 항에 있어서, 상기 블록체인 네트워크 내의 상기 블록체인 노드들은, 정확히 동일하지 않은 CA들에 대응하는 것인, 방법.
  4. 제 1 항에 있어서, 제 2 블록체인 노드에 의해 송신된 통신 요청을 상기 제 1 블록체인 노드에 의해 수신하는 단계는 구체적으로,
    전송 계층 보안(transport layer security; TLS) 핸드쉐이크 프로토콜(handshake protocol)에 기반하여 상기 제 2 블록체인 노드에 의해 송신된 통신 요청을 상기 제 1 블록체인 노드에 의해 수신하는 단계를 포함하는 것인, 방법.
  5. 제 1 항 또는 제 2 항에 있어서, 상기 제 2 블록체인 노드에의 통신 연결을 수립하는 단계는 구체적으로,
    상기 제 1 블록체인 노드에 의해, 상기 제 2 블록체인 노드에 검증 요청을 리턴하는 단계로서, 상기 검증 요청은, 상기 제 2 블록체인 노드가 제 1 인증서 및 상기 제 2 블록체인 노드에 미리구성된 CA 신뢰 목록에 기반하여, 상기 제 1 블록체인 노드에의 통신 연결을 수립할지의 여부를 결정하도록, 상기 제 1 블록체인 노드의 제 1 인증서를 포함하는 것인, 상기 검증 요청을 리턴하는 단계를 포함하는 것인, 방법.
  6. 블록체인 노드 통신 장치에 있어서,
    제 2 블록체인 노드에 의해 송신된 통신 요청 - 상기 통신 요청은 상기 제 2 블록체인 노드의 제 2 인증서를 포함함 - 을 수신하도록 구성된 수신 모듈;
    상기 제 2 인증서에 대응하는 CA 식별자를 결정하도록 구성된 결정 모듈; 및
    상기 제 2 인증서에 대응하는 상기 결정된 CA 식별자가 CA 신뢰 목록에 포함되어 있는지의 여부를 결정하고; 상기 결정된 CA 식별자가 상기 CA 신뢰 목록에 포함되어 있다면, 상기 제 2 블록체인 노드에의 통신 연결을 수립하거나; 또는 상기 결정된 CA 식별자가 상기 CA 신뢰 목록에 포함되어 있지 않다면, 상기 제 2 블록체인 노드에의 통신 연결을 수립하는 것을 스킵하도록 구성된 결정 및 실행 모듈을 포함하고,
    블록체인 네트워크 내의 블록체인 노드들은 서비스 노드를 포함하고, 상기 서비스 노드는 CA에 의해 송신된 인증서를 저장하며, 상기 CA 신뢰 목록으로 미리구성되는 것인, 블록체인 노드 통신 장치.
  7. 제 6 항에 있어서, 상기 블록체인 노드들은 합의 노드를 더 포함하고, 상기 합의 노드는 CA에 의해 송신된 인증서를 저장하며, CA 신뢰 목록으로 미리구성되는 것인, 장치.
  8. 제 6 항 또는 제 7 항에 있어서, 상기 블록체인 네트워크 내의 상기 블록체인 노드들은, 정확히 동일하지 않은 CA들에 대응하는 것인, 장치.
  9. 제 6 항에 있어서, 상기 수신 모듈은, TLS 핸드쉐이크 프로토콜에 기반하여, 상기 제 2 블록체인 노드에 의해 송신된 통신 요청을 수신하는 것인, 장치.
  10. 제 6 항 또는 제 7 항에 있어서, 상기 결정 및 실행 모듈은 상기 제 2 블록체인 노드에 검증 요청을 리턴하고, 상기 검증 요청은, 상기 제 2 블록체인 노드가 제 1 인증서 및 상기 제 2 블록체인 노드에 미리구성된 CA 신뢰 목록에 기반하여, 상기 장치에의 통신 연결을 수립할지의 여부를 결정하도록, 상기 장치의 제 1 인증서를 포함하는 것인, 장치.
  11. 블록체인 노드 통신 디바이스에 있어서, 하나 이상의 프로세서 및 메모리를 포함하고, 상기 메모리는 프로그램을 저장하며, 상기 프로그램은,
    제 1 블록체인 노드에서, 제 2 블록체인 노드에 의해 송신된 통신 요청 - 상기 통신 요청은 상기 제 2 블록체인 노드의 제 2 인증서를 포함함 - 을 수신하는 단계;
    상기 제 2 인증서에 대응하는 CA 식별자를 결정하는 단계;
    상기 제 2 인증서에 대응하는 상기 결정된 CA 식별자가 CA 신뢰 목록에 포함되어 있는지의 여부를 결정하는 단계; 및
    상기 결정된 CA 식별자가 상기 CA 신뢰 목록에 포함되어 있다면, 상기 제 2 블록체인 노드에의 통신 연결을 수립하는 단계; 또는
    상기 결정된 CA 식별자가 상기 CA 신뢰 목록에 포함되어 있지 않다면, 상기 제 2 블록체인 노드에의 통신 연결을 수립하는 것을 스킵하는 단계
    를 수행하도록 상기 하나 이상의 프로세서에 의해 실행되며;
    블록체인 네트워크 내의 블록체인 노드들은 서비스 노드를 포함하고, 상기 서비스 노드는 CA에 의해 송신된 인증서를 저장하며, 상기 CA 신뢰 목록으로 미리구성되는 것인, 블록체인 노드 통신 디바이스.
KR1020197021844A 2017-07-26 2018-07-26 블록체인 노드 통신 방법 및 장치 KR102074116B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201710617463.6A CN107592292B (zh) 2017-07-26 2017-07-26 一种区块链节点间通信方法及装置
CN201710617463.6 2017-07-26
PCT/US2018/043927 WO2019023475A1 (en) 2017-07-26 2018-07-26 METHOD AND APPARATUS FOR COMMUNICATION BETWEEN BLOCK CHAIN NODES

Publications (2)

Publication Number Publication Date
KR20190099054A KR20190099054A (ko) 2019-08-23
KR102074116B1 true KR102074116B1 (ko) 2020-02-05

Family

ID=61041869

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197021844A KR102074116B1 (ko) 2017-07-26 2018-07-26 블록체인 노드 통신 방법 및 장치

Country Status (9)

Country Link
US (3) US10956616B2 (ko)
EP (1) EP3602388B1 (ko)
JP (1) JP6705064B1 (ko)
KR (1) KR102074116B1 (ko)
CN (1) CN107592292B (ko)
PH (1) PH12019501743A1 (ko)
SG (1) SG11201906836RA (ko)
TW (1) TWI680379B (ko)
WO (1) WO2019023475A1 (ko)

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10764259B2 (en) 2017-02-07 2020-09-01 Microsoft Technology Licensing, Llc Transaction processing for consortium blockchain network
US11538031B2 (en) * 2017-03-31 2022-12-27 Vijay Madisetti Method and system for identity and access management for blockchain interoperability
CN107592292B (zh) 2017-07-26 2019-08-09 阿里巴巴集团控股有限公司 一种区块链节点间通信方法及装置
CN108418795B (zh) * 2018-01-30 2019-05-28 百度在线网络技术(北京)有限公司 跨区块链的数据访问方法、装置、系统及计算机可读介质
CN108389129B (zh) 2018-02-27 2020-12-04 创新先进技术有限公司 基于区块链的交易执行方法及装置、电子设备
CN108777673B (zh) * 2018-04-12 2020-09-15 三维通信股份有限公司 一种在区块链中进行双向身份认证方法
US10855448B2 (en) * 2018-05-03 2020-12-01 Honeywell International Inc. Apparatus and method for using blockchains to establish trust between nodes in industrial control systems or other systems
WO2019220271A1 (en) * 2018-05-14 2019-11-21 nChain Holdings Limited Computer-implemented systems and methods for using a blockchain to perform an atomic swap
CN108848125B (zh) * 2018-05-22 2021-08-17 北京京东尚科信息技术有限公司 区块链中提供共识服务的方法和装置及存储介质
CN109242467B (zh) * 2018-09-17 2021-01-01 金蝶软件(中国)有限公司 基于区块链的组网方法、装置、计算机设备和存储介质
US11729186B2 (en) * 2018-10-04 2023-08-15 Research Foundation Of The City University Of New York Blockchain architecture for computer security applications
KR102266206B1 (ko) * 2018-11-07 2021-06-21 어드밴스드 뉴 테크놀로지스 씨오., 엘티디. 합의 노드와 클라이언트 노드 간의 통신을 관리하는 방법
RU2708350C1 (ru) 2018-11-16 2019-12-05 Алибаба Груп Холдинг Лимитед Перекрестные цепочечные взаимодействия с использованием схемы доменных имен в системах цепочек блоков
SG11201903478WA (en) 2018-11-16 2019-05-30 Alibaba Group Holding Ltd A domain name management scheme for cross-chain interactions in blockchain systems
CN111899104B (zh) * 2018-11-27 2023-12-01 创新先进技术有限公司 一种业务执行方法及装置
US20200175514A1 (en) * 2018-12-04 2020-06-04 Palo Alto Research Center Incorporated Using a blockchain to establish a web of trust
CN111027970B (zh) * 2018-12-07 2024-02-23 深圳市智税链科技有限公司 区块链系统的认证管理方法、装置、介质及电子设备
CN111327564B (zh) * 2018-12-13 2022-03-08 航天信息股份有限公司 一种联盟链的准入方法及装置
CN109815657B (zh) * 2018-12-14 2022-10-28 深圳壹账通智能科技有限公司 基于联盟链的身份认证方法、装置、计算机可读存储介质及终端设备
CN109861980B (zh) * 2018-12-29 2020-08-04 阿里巴巴集团控股有限公司 一种建立可信计算集群的方法、装置、存储介质及计算设备
EP3607727B1 (en) 2019-02-01 2023-11-22 Advanced New Technologies Co., Ltd. Methods and devices for establishing communication between nodes in blockchain system
US11038857B1 (en) * 2019-02-14 2021-06-15 Sprint Communications Company L.P. Data messaging service with distributed ledger control
CN110008739B (zh) * 2019-03-05 2023-10-03 深圳前海微众银行股份有限公司 一种基于群组的区块链系统、群组管理方法及装置
EP3673435B1 (en) 2019-03-27 2022-05-25 Advanced New Technologies Co., Ltd. Improving integrity of communications between blockchain networks and external data sources
KR102136960B1 (ko) * 2019-03-27 2020-07-23 알리바바 그룹 홀딩 리미티드 고 가용성의 신뢰 실행 환경을 사용하여 블록체인 네트워크에 대한 공용 데이터를 리트리빙하는 방법
SG11201908982QA (en) 2019-03-29 2019-10-30 Alibaba Group Holding Ltd Managing sensitive data elements in a blockchain network
CA3058244C (en) 2019-03-29 2021-04-27 Alibaba Group Holding Limited Retrieving access data for blockchain networks using highly available trusted execution environments
CN110071969B (zh) * 2019-04-17 2021-11-30 杭州云象网络技术有限公司 一种基于多链架构的数据安全共享方法
CN110266763B (zh) * 2019-05-20 2022-04-12 深圳壹账通智能科技有限公司 跨网段互连的区块链网络实现方法、系统及存储介质
CN112039822B (zh) * 2019-06-03 2022-08-02 本无链科技(深圳)有限公司 一种基于WebRTC构建实时区块链网络的方法及系统
CN110278256B (zh) * 2019-06-13 2021-12-14 魏松杰 区块链节点接入上链方法、相关设备及系统
CN110689344B (zh) * 2019-08-30 2021-04-09 创新先进技术有限公司 在区块链中并发执行交易的方法和装置
CN110519281B (zh) * 2019-08-30 2022-06-07 北京百度网讯科技有限公司 一种区块链网络的运行实现方法、装置、设备和介质
CN110516007B (zh) * 2019-08-30 2022-07-29 北京百度网讯科技有限公司 一种区块链网络的部署控制方法、装置、设备和介质
CN110545325B (zh) * 2019-09-06 2022-07-08 重庆华医康道科技有限公司 一种基于智能合约的数据加密分享方法
CN110689350A (zh) * 2019-09-30 2020-01-14 肖光昱 电子平台供应链金融流转方法、系统、终端设备及介质
CN110781200B (zh) * 2019-10-30 2022-07-08 百度在线网络技术(北京)有限公司 一种区块链异常数据的处理方法、装置、设备和介质
EP3769228B1 (en) * 2019-11-06 2022-06-08 Alipay (Hangzhou) Information Technology Co., Ltd. Consenus of shared blockchain data storage based on error correction code
JP7004423B2 (ja) * 2019-11-06 2022-01-21 アリペイ (ハンジョウ) インフォメーション テクノロジー カンパニー リミテッド 誤り訂正符号に基づく共有されたブロックチェーンデータの記憶のデータセキュリティ
AU2019321746A1 (en) * 2019-11-13 2021-05-27 Alipay (Hangzhou) Information Technology Co., Ltd. Dynamic blockchain data storage based on error correction code
CN111131399B (zh) * 2019-12-03 2021-11-26 北京海益同展信息科技有限公司 一种区块链中共识节点动态增加方法及装置
CN111132149B (zh) * 2019-12-30 2023-11-21 全链通有限公司 5g用户终端的注册方法、用户终端设备及介质
CN111277562B (zh) * 2020-01-07 2022-02-01 广东通莞科技股份有限公司 一种区块链网络搭建方法
CN113206817B (zh) * 2020-02-03 2022-07-12 中移物联网有限公司 一种设备连接确认方法和区块链网络
CN111340485B (zh) * 2020-02-19 2023-03-14 北京众享比特科技有限公司 一种用于联盟区块链的数字证书的配置方法、终端和根证书服务器
WO2021172684A1 (ko) * 2020-02-28 2021-09-02 엘지전자 주식회사 전송 계층 보안을 위한 방법 및 장치
CN111131336B (zh) * 2020-03-30 2020-07-17 腾讯科技(深圳)有限公司 多方授权场景下的资源访问方法、装置、设备及存储介质
US11100501B1 (en) * 2020-05-22 2021-08-24 Kpmg Llp Modular, configurable smart contracts for blockchain transactions
US20220006654A1 (en) * 2020-07-02 2022-01-06 EMC IP Holding Company LLC Method to establish an application level ssl certificate hierarchy between master node and capacity nodes based on hardware level certificate hierarchy
WO2022011003A1 (en) * 2020-07-08 2022-01-13 Cervais Inc. Peer-to-peer secure communication system, apparatus, and method
KR102364479B1 (ko) * 2020-07-17 2022-02-17 주식회사 딥샌드 접속우회 서비스 제공 시스템 및 그 방법
CN111814129B (zh) * 2020-08-28 2021-06-04 支付宝(杭州)信息技术有限公司 数字凭证的失效和验证方法及装置
CN112134883B (zh) * 2020-09-22 2023-05-30 北京八分量信息科技有限公司 基于可信计算进行节点间信任关系快速认证的方法、装置及相关产品
US10958450B1 (en) * 2020-10-15 2021-03-23 ISARA Corporation Constructing a multiple-entity root certificate data block chain
US20220147982A1 (en) * 2020-10-30 2022-05-12 National Automated Clearing House Association System and method for business payment information directory services
US11799670B2 (en) * 2020-12-11 2023-10-24 Vmware, Inc. Secure end-to-end deployment of workloads in a virtualized environment using hardware-based attestation
US11886223B2 (en) 2020-12-11 2024-01-30 VMware LLC Leveraging hardware-based attestation to grant workloads access to confidential data
KR102529809B1 (ko) * 2021-03-23 2023-05-08 주식회사 헤세그 신뢰할 수 있는 노드를 통한 블록체인 액세스 방법, 이를 저장하는 컴퓨터로 판독 가능한 기록매체 및 그 시스템
CN113114473B (zh) * 2021-04-02 2022-03-01 西南石油大学 一种基于农业区块链物联网感知层节点的信用评估系统
CN113347630A (zh) * 2021-06-01 2021-09-03 永旗(北京)科技有限公司 一种基于区块链的通信方法
CN113256297B (zh) * 2021-07-02 2021-09-14 腾讯科技(深圳)有限公司 基于区块链的数据处理方法、装置、设备及可读存储介质
CN113806711B (zh) * 2021-09-30 2022-11-15 北京航星永志科技有限公司 一种基于区块链系统的登录验证方法、装置及电子设备
CN114047980B (zh) * 2021-11-29 2024-01-19 珠海格力电器股份有限公司 可编程控制器配置数据的管理系统
CN114553527A (zh) * 2022-02-22 2022-05-27 中国人民解放军78111部队 一种基于区块链的跨ca信任域的身份认证服务系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101637854B1 (ko) 2015-10-16 2016-07-08 주식회사 코인플러그 블록체인을 기반으로 하는 공인인증서 발급시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 발급방법 및 블록체인을 기반으로 하는 공인인증서 인증시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 인증방법
KR101661930B1 (ko) 2015-08-03 2016-10-05 주식회사 코인플러그 블록체인을 기반으로 하는 공인인증서 발급시스템

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7844816B2 (en) 2005-06-08 2010-11-30 International Business Machines Corporation Relying party trust anchor based public key technology framework
KR100953095B1 (ko) 2007-12-18 2010-04-19 한국전자통신연구원 슈퍼 피어 기반 p2p 네트워크 시스템 및 이를 위한 피어인증 방법
US8392980B1 (en) 2008-08-22 2013-03-05 Avaya Inc. Trusted host list for TLS sessions
CN102088699B (zh) * 2009-12-08 2014-04-09 中兴通讯股份有限公司 一种基于信任列表的系统及方法
JP2011130012A (ja) * 2009-12-15 2011-06-30 Sony Corp アクターノード、センサノード、担当区画変更方法、パラメータ変更方法、プログラムおよび情報処理システム
US9559845B2 (en) * 2012-03-01 2017-01-31 Ologn Technologies Ag Systems, methods and apparatuses for the secure transmission of media content
US9565180B2 (en) 2012-09-28 2017-02-07 Symantec Corporation Exchange of digital certificates in a client-proxy-server network configuration
TWI456427B (zh) * 2012-12-12 2014-10-11 Inst Information Industry 進行授權管理之主要管理裝置、代理管理裝置、電子裝置及其授權管理方法
CN104966001B (zh) * 2015-06-24 2017-04-12 广州酷狗计算机科技有限公司 一种多媒体文件的处理方法及装置
US9912486B1 (en) * 2015-08-27 2018-03-06 Amazon Technologies, Inc. Countersigned certificates
CN105701372B (zh) 2015-12-18 2019-04-09 布比(北京)网络技术有限公司 一种区块链身份构建及验证方法
US10680833B2 (en) 2016-02-26 2020-06-09 Apple Inc. Obtaining and using time information on a secure element (SE)
US10411905B2 (en) 2016-07-01 2019-09-10 Intel Corporation Public key infrastructure using blockchains
CA2975843C (en) 2016-08-10 2023-06-13 Peer Ledger Inc. Apparatus, system, and methods for a blockchain identity translator
CN106301792B (zh) * 2016-08-31 2019-10-18 江苏通付盾科技有限公司 基于区块链的ca认证管理方法、装置及系统
CN106453636A (zh) * 2016-11-22 2017-02-22 深圳银链科技有限公司 可信区块生成方法及系统
US10764259B2 (en) * 2017-02-07 2020-09-01 Microsoft Technology Licensing, Llc Transaction processing for consortium blockchain network
CN106789090B (zh) 2017-02-24 2019-12-24 陈晶 基于区块链的公钥基础设施系统及半随机联合证书签名方法
CN106888087B (zh) * 2017-03-15 2018-09-04 腾讯科技(深圳)有限公司 一种管理证书的方法和装置
CN107592292B (zh) 2017-07-26 2019-08-09 阿里巴巴集团控股有限公司 一种区块链节点间通信方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101661930B1 (ko) 2015-08-03 2016-10-05 주식회사 코인플러그 블록체인을 기반으로 하는 공인인증서 발급시스템
KR101637854B1 (ko) 2015-10-16 2016-07-08 주식회사 코인플러그 블록체인을 기반으로 하는 공인인증서 발급시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 발급방법 및 블록체인을 기반으로 하는 공인인증서 인증시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 인증방법

Also Published As

Publication number Publication date
US20200136806A1 (en) 2020-04-30
EP3602388A1 (en) 2020-02-05
JP2020519039A (ja) 2020-06-25
TW201911099A (zh) 2019-03-16
PH12019501743A1 (en) 2020-06-15
KR20190099054A (ko) 2019-08-23
US20190036682A1 (en) 2019-01-31
US11113421B2 (en) 2021-09-07
US20210110063A1 (en) 2021-04-15
TWI680379B (zh) 2019-12-21
EP3602388B1 (en) 2021-09-01
CN107592292B (zh) 2019-08-09
SG11201906836RA (en) 2019-08-27
US10909269B2 (en) 2021-02-02
US10956616B2 (en) 2021-03-23
CN107592292A (zh) 2018-01-16
WO2019023475A1 (en) 2019-01-31
JP6705064B1 (ja) 2020-06-03

Similar Documents

Publication Publication Date Title
KR102074116B1 (ko) 블록체인 노드 통신 방법 및 장치
US11489678B2 (en) Platform attestation and registration for servers
US10657151B2 (en) Method and apparatus for communication between blockchain nodes
US11063944B2 (en) Out-of-band authentication based on secure channel to trusted execution environment on client device
JP6934058B2 (ja) ブロックチェーンノード間の通信のための方法、装置および電子デバイス、ならびにブロックチェーンに基づく証明書管理のための方法、装置および電子デバイス
RU2723308C1 (ru) Управление приватными транзакциями в сетях цепочек блоков на основе потока обработки
US9867043B2 (en) Secure device service enrollment
KR20200084009A (ko) 자산 관리 방법 및 장치, 및 전자 디바이스
WO2019218919A1 (zh) 区块链场景下的私钥管理方法、装置及系统
KR20200081441A (ko) 자산 관리 방법 및 장치, 및 전자 디바이스
KR20190118561A (ko) 디지털 인증서 관리 방법, 장치 및 시스템
JP2020528224A (ja) 信頼できる実行環境におけるスマート契約動作のセキュアな実行
KR20190097269A (ko) 디지털 인증서 관리 방법 및 장치, 및 전자 디바이스
US20150180869A1 (en) Cloud-based scalable authentication for electronic devices
KR102266206B1 (ko) 합의 노드와 클라이언트 노드 간의 통신을 관리하는 방법
CN108965250B (zh) 一种数字证书安装方法及系统
CN117436875A (zh) 一种业务执行方法、装置、存储介质及电子设备

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant