KR20200054123A - 합의 노드와 클라이언트 노드 간의 통신을 관리하는 방법 - Google Patents

합의 노드와 클라이언트 노드 간의 통신을 관리하는 방법 Download PDF

Info

Publication number
KR20200054123A
KR20200054123A KR1020197011517A KR20197011517A KR20200054123A KR 20200054123 A KR20200054123 A KR 20200054123A KR 1020197011517 A KR1020197011517 A KR 1020197011517A KR 20197011517 A KR20197011517 A KR 20197011517A KR 20200054123 A KR20200054123 A KR 20200054123A
Authority
KR
South Korea
Prior art keywords
public key
node
certificate
consensus
consensus node
Prior art date
Application number
KR1020197011517A
Other languages
English (en)
Other versions
KR102266206B1 (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 KR20200054123A publication Critical patent/KR20200054123A/ko
Application granted granted Critical
Publication of KR102266206B1 publication Critical patent/KR102266206B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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
    • 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/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/083Key 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) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • 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
    • 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/321Cryptographic 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 a third party or a trusted authority
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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/40Network security protocols
    • 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
    • H04L2209/38

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Storage Device Security (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Prostheses (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 개시내용의 구현예는, 합의 노드가 인증서 서명 요청(CSR)을 생성하는 단계와, CSR를 제1 인증기관(CA)에 전송하는 단계와, 제1 CA로부터 합의 노드의 제1 공개키 인증서를 수신하는 단계와, 제1 하나 이상의 CA에 의해 발행된 제1 하나 이상의 공개키를 수신하는 단계를 포함한다. 합의 노드는 또한 CSR를 제2 CA에 전송하고, 제2 CA로부터 합의 노드의 제2 공개키 인증서를 수신하며, 제2 하나 이상의 CA에 의해 발행된 제2 하나 이상의 공개키를 수신한다. 합의 노드는 또한 제1 공개키 인증서와 제1 하나 이상의 공개키 인증서를 포함하는 제1 트러스트스토어, 및 제2 공개키 인증서와 제2 하나 이상의 공개키 인증서를 포함하는 제2 트러스트스토어를 구성한다.

Description

합의 노드와 클라이언트 노드 간의 통신을 관리하는 방법
블록체인 시스템, 합의 네트워크(consensus network), 분산 장부 시스템(DLS, distributed ledger system), 또는 블록체인이라고도 칭해질 수 있는 블록체인 네트워크는 참여하는 엔티티가 데이터를 안전하게 그리고 불변으로 저장할 수 있게 한다. 블록체인은 트랜잭션의 장부라고도 기술될 수 있으며, 블록체인의 다수의 사본이 블록체인 네트워크 상에 저장된다. 예시적인 유형의 블록체인으로는 공개형 블록체인(public blockchain), 컨소시엄 블록체인(consortium blockchain), 및 폐쇄형 블록체인 네트워크(private blockchain)이 있다. 공개형 블록체인은 모든 엔티티가 블록체인을 사용하고 합의 프로세스에 참여하도록 공개되어 있다. 컨소시엄 블록체인은 합의 프로세스가 사전 선택된 노드의 세트에 의해 제어되는 블록체인이다. 폐쇄형 블록체인은 특정 엔티티를 위한 것으로서, 중앙에서 읽기 및 쓰기 권한을 제어한다.
컨소시엄 블록체인 시스템은 컨소시엄 네트워크를 사용하는 합의 노드와 클라이언트 노드(또는 사용자)를 포함할 수 있다. 한편, 합의 노드는 합의에 도달하기 위해 다른 합의 노드와 통신한다. 다른 한편으로, 합의 노드는 새로운 트랜잭션을 수용하고 블록에 추가하기 위해 클라이언트 노드와 통신한다. 경우에 따라, 합의 노드는 컨소시엄 시스템의 사전 선택된 노드와 또는 상이한 보안 수준을 가진 다른 코어 시스템과 통신한다. 이와 같이, 데이터 프라이버시 및 보안성을 보호하기 위해 상이한 유형의 통신마다 경계가 설정될 수 있다.
본 개시내용은 합의 노드 간의 통신 및 합의 노드와 클라이언트 노드 간의 통신을 관리하는 것에 관한 것이다. 보다 구체적으로, 본 개시내용의 실시형태는 합의 노드 간의 통신 및 합의 노드와 클라이언트 노드 간의 통신에 대해 각 CA(인증기관, Certificate Authority)에 의해 발행된 루트 인증서(root certificate)를 구성하여, 클라이언트 노드가 합의 노드 간에 전달되는 합의 메시지에 액세스할 수 없도록 하는 것에 관한 것이다.
일부 구현예들에 있어서, 액션(action)은, 합의 노드가 인증서 서명 요청(CSR, certificate signing request)을 생성하는 단계와, CSR을 제1 인증기관(CA)에 전송하는 단계와, CSR에 응답하여 제1 CA로부터 합의 노드의 제1 공개키 인증서(public key certificate)와, 제1 하나 이상의 CA에 의해 발행된 하나 이상의 다른 합의 노드의 제1 하나 이상의 공개키 인증서를 수신하는 단계와, CSR를 제2 CA에 전송하는 단계와, CSR에 응답하여 제2 CA로부터 합의 노드의 제2 공개키 인증서와, 제2 하나 이상의 CA에 의해 발행된 하나 이상의 클라이언트 노드의 제2 하나 이상의 공개키 인증서를 수신하는 단계와, 합의 노드 상에, 제1 공개키 인증서와, 하나 이상의 다른 합의 노드의 제1 하나 이상의 공개키 인증서를 포함하는 제1 트러스트스토어(truststore), 및 제2 공개키 인증서와, 하나 이상의 클라이언트 노드의 제2 하나 이상의 공개키 인증서를 포함하는 제2 트러스트스토어를 구성하는 단계를 포함한다. 다른 구현예들은 방법의 액션을 수행하도록 구성된, 대응하는 시스템, 장치, 그리고 컴퓨터 저장 디바이스 상에 인코딩된, 컴퓨터 프로그램을 포함한다.
이들 구현예 및 다른 구현예는 각각 옵션으로 다음과 같은 특징 중 하나 이상을 포함할 수 있는데, 이들 특징은, 제1 하나 이상의 CA와 제2 하나 이상의 CA를 결정하는 것; 제1 하나 이상의 CA 및 제2 하나 이상의 CA로부터 루트 인증서를 수신하고, 제1 하나 이상의 CA 및 제2 하나 이상의 CA의 대응하는 공개키에 기초하여 루트 인증서를 검증하는 것; CSR은 제1 공개키 인증서 또는 제2 공개키 인증서에 포함될 공개키와 정보를 포함하는 것; CSR은 합의 노드에 의해 개인키를 사용하여 디지털 서명되는 것; 제1 하나 이상의 공개키 인증서의 일부 중 적어도 하나의 공개키 인증서는 대응하는 합의 노드에 의해 자기 서명(self-signed)되는 것; 제2 하나 이상의 공개키 인증서의 일부는 대응하는 클라이언트 노드에 의해 자기 서명되는 것; 합의 노드의 대응하는 개인키를 사용하여 공개키의 자기 서명 인증서를 생성하는 것; 합의 노드 상에, 합의 노드의 개인키와 자기 서명 인증서를 구성하는 것; 제1 공개키 인증서, 제1 하나 이상의 공개키 인증서, 제2 공개키 인증서, 및 제2 하나 이상의 공개키 인증서는 전송 계층 보안(TLS, transport layer security)인 것이다.
본 개시내용은 또한, 하나 이상의 프로세서에 결합되며, 명령어가 저장된 하나 이상의 비일시적 컴퓨터 판독 가능한 저장 매체를 제공하고, 명령어는 하나 이상의 프로세서에 의해 실행될 때에, 하나 이상의 프로세서로 하여금, 여기에 제공되는 방법의 구현예에 따른 동작을 수행하게 한다.
본원 개시내용은 또한 여기에 제공되는 방법을 구현하는 시스템을 제공한다. 시스템은 하나 이상의 프로세서와, 하나 이상의 프로세서에 결합되며, 명령어가 저장된 컴퓨터 판독 가능한 저장 매체를 제공하고, 명령어는 하나 이상의 프로세서에 의해 실행될 때에, 하나 이상의 프로세서로 하여금, 여기에 제공되는 방법의 구현예에 따른 동작을 수행하게 한다.
본 개시내용에 따른 방법은 여기에서 설명하는 양태 및 특징의 임의의 조합을 포함할 수 있음이 이해될 것이다. 즉, 본 개시내용에 따른 방법은 여기에서 특정적으로 설명한 양태 및 특징의 조합에 제한되지 않을 뿐만 아니라, 제공되는 양태 및 특징의 임의의 조합을 포함한다.
본 개시내용의 하나 이상의 구현예의 상세내용은 첨부하는 도면 및 이하에서 설명한다. 본 개시내용의 다른 특징 및 효과는 본 명세서와 도면으로부터 그리고 청구범위로부터 명백해질 것이다.
도 1은 본 개시내용의 구현예를 실행하는데 사용될 수 있는 환경예를 도시한다.
도 2는 본 개시내용의 구현예에 따른 개념상 아키텍처예를 도시한다.
도 3a는 본 개시내용의 구현예에 따른 합의 노드 간의 통신을 구성하는 프로세스예를 도시한다.
도 3b는 본 개시내용의 구현예에 따른 합의 노드와 클라이언트 노드 간의 통신을 구성하는 프로세스예를 도시한다.
도 4는 본 개시내용의 구현예에 따른 합의 노드와 클라이언트 노드 간의 통신을 위한 구성예를 도시한다.
도 5는 본 개시내용의 구현예에 따른 합의 노드와 클라이언트 노드의 통신을 관리하는 방법예를 도시한다.
여러 도면에서의 같은 참조 부호는 같은 엘리먼트를 가리킨다.
본 개시내용은 합의 노드 간의 통신 및 합의 노드와 클라이언트 노드 간의 통신을 관리하는 것에 관한 것이다. 보다 구체적으로, 본 개시내용의 실시형태는 합의 노드 간의 통신 및 합의 노드와 클라이언트 노드 간의 통신에 대해 각 CA(인증기관, Certificate Authority)에 의해 발행된 루트 인증서를 구성하여, 클라이언트 노드가 합의 노드 간에 전달되는 합의 메시지에 액세스할 수 없도록 하는 것에 관한 것이다.
일부 구현예들에 있어서, 액션은, 합의 노드가 인증서 서명 요청(CSR, certificate signing request)을 생성하는 단계와, CSR을 제1 인증기관(CA)에 전송하는 단계와, CSR에 응답하여 제1 CA로부터 합의 노드의 제1 공개키 인증서와, 제1 하나 이상의 CA에 의해 발행된 하나 이상의 다른 합의 노드의 제1 하나 이상의 공개키 인증서를 수신하는 단계와, CSR를 제2 CA에 전송하는 단계와, CSR에 응답하여 제2 CA로부터 합의 노드의 제2 공개키 인증서와, 제2 하나 이상의 CA에 의해 발행된 하나 이상의 클라이언트 노드의 제2 하나 이상의 공개키 인증서를 수신하는 단계와, 합의 노드 상에, 제1 공개키 인증서와, 하나 이상의 다른 합의 노드의 제1 하나 이상의 공개키 인증서를 포함하는 제1 트러스트스토어, 및 제2 공개키 인증서와, 하나 이상의 클라이언트 노드의 제2 하나 이상의 공개키 인증서를 포함하는 제2 트러스트스토어를 구성하는 단계를 포함한다.
본 개시내용의 구현예에 대한 추가 컨텍스트를 제공하자면, 앞에서 소개한 바와 같이, 합의 네트워크(예를 들어, 피어 투 피어 노드로 구성), 분산 장부 시스템, 또는 간단히 블록체인이라고도 불릴 수 있는 블록체인 네트워크는 참여 엔티티가 안전하고 그리고 불변으로 트랜잭션을 수행하고 데이터를 저장하게 할 수 있다. 블록체인은 공개형 블록체인, 폐쇄형 블록체인, 또는 컨소시엄 블록체인으로서 제공될 수 있다. 참여하는 엔티티 사이에서 공개되어 있는 공개형 블록체인을 참조하여 본 개시내용의 구현예들에 대해 더 상세하게 한다. 그러나, 본 개시내용의 구현예들은 임의의 적절한 유형의 블록체인에도 실현될 수 있는 것으로 간주된다.
컨소시엄 블록체인의 경우, 합의 프로세스는 공인된(authorized) 노드 세트에 의해 제어될 수 있고, 하나 이상의 노드는 각각의 엔티티(예를 들어, 기업)에 의해 운영된다. 예를 들어, 10개의 엔티티(예를 들어, 회사)의 컨소시엄이 컨소시엄 블록체인 시스템을 운영할 수 있으며, 각 엔티티는 컨소시엄 DLS에서 적어도 하나의 노드를 운영한다. 따라서, 컨소시엄 블록체인 시스템은 참여 엔티티에 대한 사설망으로 간주될 수 있다. 일부 예에서, 각 엔티티(노드)는 블록이 유효 상태로 블록체인에 추가되게 하기 위해 매 블록마다 서명해야 한다. 일부 예에서, 엔티티(노드)의 적어도 서브세트(예를 들어, 적어도 7개의 엔티티)는 블록이 유효한 상태로 블록체인에 추가되게 하기 위해 매 블록마다 서명해야 한다. 컨소시엄 블록체인 시스템의 일례는 미국 뉴욕주 뉴욕에 소재한 J.P. Morgan Chase & Co.가 개발한 쿼럼(Quorum)이다. 쿼럼은 재무 사용 사례를 위해 특별히 설계된 기업 중심의 허가된 블록체인 인프라라고 설명할 수 있다. 쿼럼은 스위스 주그(Zug)에 소재한 Ethereum Foundation이 제공하는 이더리움(Ethereum) 블록체인의 기본 코드인 고이더리움(Go Ethereum)를 발전시킨 것이다.
일반적으로, 컨소시엄 블록체인 시스템은 컨소시엄 블록체인 시스템에 참여 권한을 가진 엔티티 간의 트랜잭션을 지원한다. 블록체인이 모든 노드에서 복제되기 때문에 트랜잭션은 컨소시엄 블록체인 시스템 내의 모든 노드와 공유된다. 즉, 모든 노드는 블록체인과 관련하여 완벽한 합의 상태에 있다. 합의(예를 들어, 블록을 블록체인에 추가하는 것에 동의)를 달성하기 위해, 컨소시엄 블록체인 네트워크 내에 컨소시엄 프로토콜이 구현된다. 예시적인 합의 프로토콜은, 비제한적으로, 비트코인(Bitcoin) 네트워크에 구현된 작업증명(POW, proof-of-work)을 포함한다.
본 개시내용의 구현예들은 전술한 컨텍스트를 고려하면서 여기에서 더 상세하게 설명된다. 보다 구체적으로, 앞에서 소개한 바와 같이, 본 개시내용의 구현예는 합의 노드 간의 통신 및 합의 노드와 클라이언트 노드 간의 통신에 대해 각 CA에 의해 발행된 루트 인증서를 구성하여, 클라이언트 노드가 합의 노드 간에 전달되는 합의 메시지에 액세스할 수 없도록 하는 것에 관한 것이다.
도 1은 본 개시내용의 구현예를 실행하는데 사용될 수 있는 환경예(100)를 도시한다. 일부 예에서, 예시적인 환경(100)은 엔티티가 공개형 블록체인(102)에 참여할 수 있게 한다. 예시적인 환경(100)은 컴퓨팅 시스템(106, 108) 및 네트워크(110)를 포함한다. 일부 예로, 네트워크(110)는 근거리 네트워크(LAN, local area network), 원거리 네트워크(WAN, wide area network), 인터넷, 또는 이들의 조합을 포함하고. 웹 사이트, 사용자 디바이스(예를 들어, 컴퓨팅 디바이스), 및 백엔드 시스템을 접속시킨다. 일부 예에서, 네트워크(110)는 유선 및/또는 무선 통신 링크를 통해 액세스될 수 있다.
도시하는 예에서, 컴퓨팅 시스템(106, 108)은 블록체인(104)에 트랜잭션을 저장하기 위해 컨소시엄 블록체인 시스템(102)에서 노드로서의 참여를 가능하게 하는 임의의 적절한 컴퓨팅 시스템을 각각 포함할 수 있다. 예시적인 컴퓨팅 디바이스는 비제한적으로, 서버, 데스크탑 컴퓨터, 랩탑 컴퓨터, 태블릿 컴퓨팅 디바이스, 및 스마트폰을 포함한다. 일부 예로, 컴퓨팅 시스템(106, 108)은 각각 컨소시엄 블록체인 시스템(102)과 인터랙션하기 위한 하나 이상의 컴퓨터 구현 서비스를 호스팅한다. 예를 들어, 컴퓨팅 시스템(106)은 제1 엔티티(예를 들어, 사용자 A)가 하나 이상의 다른 엔티티(예를 들어, 다른 사용자)와의 트랜잭션을 관리하는데 사용하는 트랜잭션 관리 시스템과 같은, 제1 엔티티의 컴퓨터 구현 서비스를 호스팅할 수 있다. 컴퓨팅 디바이스(108)는 제2 엔티티(예를 들어, 사용자 B)가 하나 이상의 다른 엔티티(예를 들어, 다른 사용자)와의 트랜잭션을 관리하는데 사용하는 트랜잭션 관리 시스템과 같은, 제2 엔티티의 컴퓨터 구현 서비스를 호스팅할 수 있다. 도 1의 예에서, 컨소시엄 블록체인 시스템(102)은 노드들의 피어 투 피어 네트워크로 표현되고, 컴퓨팅 시스템(106, 108)은 각각 컨소시엄 블록체인 시스템(102)에 참여하는 제1 엔티티 및 제2 엔티티의 노드를 제공한다 .
도 2는 본 개시내용의 구현예에 따른 개념상 아키텍처예(200)를 도시한다. 예시적인 개념상 아키텍처(200)는 엔티티 계층(202), 호스팅된 서비스 계층(204), 및 블록체인 계층(206)을 포함한다. 도시하는 예에서, 엔티티 계층(202)은 3개의 엔티티인 Entity_1(E1), Entity_2(E2) 및 Entity_3(E3)을 포함하며, 각각의 엔티티는 각각의 트랜잭션 관리 시스템(208)을 갖는다.
도시하는 예에서, 호스팅 서비스 계층(204)은 각 트랜잭션 관리 시스템(208)에 대한 블록체인 인터페이스(210)를 포함한다. 일부 예에서, 각각의 트랜잭션 관리 시스템(208)은 통신 프로토콜(예컨대, 하이퍼텍스트 트랜스퍼 프로토콜 시큐어(HTTPS, hypertext transfer protocol secure))를 사용하여 네트워크(예를 들어, 도 1의 네트워크(110))를 통해 각각의 블록체인 인터페이스(210)와 통신한다. 일부 예에서, 각각의 블록체인 인터페이스(210)는 각각의 트랜잭션 관리 시스템(208)과 블록체인 계층(206) 사이에 통신 접속을 제공한다. 보다 구체적으로, 각각의 블록체인 인터페이스(210)는 각각의 엔티티가, 블록체인 계층(206)의 컨소시엄 블록체인 시스템(212)에 기록된 트랜잭션을 수행하게 할 수 있다. 일부 예에서, 블록체인 인터페이스(210)와 블록체인 계층(206) 사이의 통신은 원격 프로시저 호출(RPC, remote procedure call)을 사용하여 수행된다. 일부 예에서, 블록체인 인터페이스(210)는 각각의 트랜잭션 관리 시스템(208)에 대해 컨소시엄 노드를 "호스팅"한다. 예를 들어, 블록체인 인터페이스(210)는 컨소시엄 블록체인 네트워크(212)에의 액세스를 위해 애플리케이션 프로그래밍 인터페이스(API)를 제공한다.
블록체인 시스템은 합의 노드와 클라이언트 노드를 포함할 수 있다. 합의 노드는 합의 프로세스에 참여할 수 있다. 클라이언트 노드는 블록체인 시스템을 이용할 수는 있지만, 합의 프로세스에 참여하지 못한다. 일부 구현예에 있어서, 합의 노드는 다른 목적을 위해 블록체인 시스템을 사용하면서 합의 프로세스에 참여할 수 있다. 일부 구현예에서는, 사용자가 블록체인에 트랜잭션을 제출하기 위해 클라이언트 노드를 사용할 수 있도록 합의 노드가 클라이언트 노드와 통신할 수 있다. 합의 노드는 또한 클라이언트 노드로부터 블록체인에 트랜잭션을 추가하기 위하여 서로 통신하여 합의에 도달할 수 있다.
일부 구현예에 있어서, 합의 노드 간의 통신 및 합의 노드와 클라이언트 노드 간의 통신은 통신 보안을 보장하기 위해, 전송 계층 보안(TLS, Transport Layer Security) 프로토콜과 같은 암호화 프로토콜을 기반으로 수행될 수 있다.
프라이버시를 강화하고 다른 노드가 액세스할 수 있는 데이터를 관리하기 위해, 합의 노드 간의 통신은 합의 노드와 클라이언트 노드 간의 통신과 격리(isolate)될 수 있다. 일부 구현예에서, 이러한 격리는 상이한 노드의 공개키 인증서의 상이한 TLS 트러스트스토어(truststore)를 형성함으로써 이루어질 수 있다. 공개키 인증서는 합의 노드 간의 통신 및 합의 노드와 클라이언트 노드 간의 통신을 위해 각 인증기관(CA)에서 발행될 수 있다.
도 3a는 본 개시내용의 구현예에 따른 합의 노드(302a) 간의 통신을 구성하는 프로세스예(300a)를 도시한다. 클라이언트 노드(302a)는 블록체인 네트워크에 접속된, 컴퓨터, 스마트폰, 또는 서버와 같은 임의의 적절한 전자 디바이스를 사용하여 구현될 수 있다.
306a에서, 합의 노드(302a)가 신뢰할 수 있는 하나 이상의 CA(304a)를 식별한다. 일부 구현예에서, CA는 공개키 인증서를 발행하는 엔티티일 수 있다. 공개키 인증서는 인증서의 명명된 주체에 의한 공개키의 소유권을 인증하는데 사용될 수 있다. 명명된 주체는 CA 자신, 또는 공개키의 인증을 원하는 다른 엔티티일 수 있다. CA가 소유하고 자기 서명(self-signed)한 공개키는 루트 인증서(root certificate)가 될 수 있다. 경우에 따라, 합의 노드(302a)의 적어도 일부가 CA로서 식별될 수 있다. 그러한 경우에, 그 합의 노드는 자신의 공개키에 자기 서명하여 공개키 인증서를 생성할 수 있다. 경우에 따라, TLS 프로토콜을 기반으로 생성된 공개키 인증서가 TLS 인증서라고 칭해질 수 이다.
308a에서, CA(304a)가 자신의 개인키 및 자기 서명 인증서를 준비한다. 자기 서명 인증서는 대응하는 공개키의 CA 루트 인증서일 수 있다.
310a에서, CA(304a)가 자기 서명 인증서를 합의 노드(302a)에 전송한다. 일부 구현예에서, 자기 서명 인증서는 자신의 대응하는 개인키를 사용하여 서명된 CA(304a)의 디지털 서명을 포함할 수 있다. 이와 같이, 합의 노드(302a)는 CA(304a)의 공개키를 사용하여, 그 인증서가 CA(304a)에 의해 발행된 것임을 검증할 수 있다.
312a에서, 합의 노드(302a)가 인증서 서명 요청(CSR, certificate signing request)을 생성한다. CSR은 TLS 인증서를 신청할 때 CA(304a)에 제공되는 인코딩된 텍스트의 블록이다. 일부 예에서, CSR는 조직 네임, 일반 네임(도메인 네임), 지역 및 국가와 같은, TLS 인증서에 포함될 정보를 포함할 수 있다. CSR은 또한 TLS 인증서에 포함될 공개키도 포함할 수 있다. 합의 노드(302a)는 CSR을 생성할 때 개인키를 생성할 수 있고, 그 개인키를 사용하여 대응하는 CSR에 서명할 수 있다.
314a에서, 합의 노드(302a)가 CSR를 CA(304a)에 전송한다. 316a에서, CA(304a)가 CSR에 응답하여 합의 노드(302a)에 대한 공개키 인증서를 생성한다. CA(304a)는 합의 노드(302a)에 대한 공개키 인증서를 생성하기 전에, CSR에 대응하는 디지털 서명이 정확한지를 검증할 수 있다.
318a에서, CA(304a)가 공개키 인증서를 합의 노드(302a)에 전송한다. CA(304a)는 공개키 인증서를 블록체인 네트워크 내의 모든 합의 노드(302a)에 전송할 수 있다. 이와 같이, 각 합의 노드(302a)는 네트워크 내의 모든 다른 합의 노드(302a)의 공개키 인증서의 사본을 가질 수 있다.
320a에서, 합의 노드(302a)가 트러스트스토어, 개인키 및 자기 서명 인증서를 구성한다. 트러스트스토어는 신뢰할 수 있는 CA(304a)로부터의 TLS 인증서를 저장하는데 사용될 수 있다. 신뢰할 수 있는 CA로부터 TLS 인증서를 수신하고 검증함으로써, 합의 노드(302a)는 인증된 공개키를 사용하여, 메시지를 암호화하고 네트워크 내의 다른 합의 노드와 안전하게 통신할 수 있다. 일부 구현예에서, 합의 노드(302a)는 대응하는 합의 노드(302a)의 대응하는 개인키를 사용하여 자기 서명 공개키 인증서를 생성할 수도 있다. 개인키는 또한 대응하는 합의 노드(302a)의 공개키를 사용하여 암호화된 블록체인 네트워크 내의 다른 노드로부터의 메시지를 복호화하는 데에도 사용될 수 있다.
일부 구현예에서는, 합의 노드 간의 통신 및 합의 노드와 클라이언트 노드 간의 통신이 격리되도록 블록체인 네트워크를 구성할 수 있다. 즉, 클라이언트 노드는 합의 노드 간에 전달되는 데이터에 액세스할 수 없고, 합의 노드는 다른 합의 노드와 그것의 접속된 클라이언트 노드 간에 전달되는 데이터에 액세스할 수 없다. 일부 예에서, 합의를 수행하는 합의 노드는 제1 CA 세트 중에서 TLS 인증서를 요청할 수 있으며, 서로 통신하는 합의 노드/클라이언트 노드 쌍은 제1 CA 세트와는 상이한 CA로부터 TLS 인증서를 요청하거나, 그 데이터의 공개키 암호화를 수행하지 않는다.
도 3b는 본 개시내용의 구현예에 따른 합의 노드 및 클라이언트 노드(302b) 간의 통신을 구성하는 프로세스예(300b)를 도시한다.
306b에서, 합의 노드 및 클라이언트 노드(302b)는 도 3a를 참조하여 전술한 예시적인 프로세스(300a)에서 식별된 CA(304a)와는 상이한 하나 이상의 CA(304b)를 식별한다. 일부 구현예에서, 각 합의 노드/클라이언트 노드 쌍은 이들의 통신이 다른 통신과 격리될 수 있도록, 상이한 CA를 식별할 수 있다. 일부 구현예에서, 통신하는 각 클라이언트 모드 및 합의 노드는 소규모 네트워크를 형성할 수 있고, 합의를 위해 다른 클라이언트 노드 또는 합의 노드(302b)에 의해 사용되지 않는 하나 이상의 CA를 식별할 수 있다. 경우에 따라, 합의 노드 및 클라이언트 노드(302b)의 적어도 일부는 자신을 CA로서 식별할 수 있다. 이 경우에, 합의 노드는 예시적인 프로세스(300a)에 있어서 인증서가 다른 합의 노드와의 통신을 위해 합의 노드(302a)에 의해 자기 서명되지 않는 한, 자신의 공개키에 자기 서명하여 공개키 인증서를 생성할 수 있다.
308b에서, CA(304b)가 자신의 개인키 및 자기 서명 인증서를 준비한다. 자기 서명 인증서는 대응하는 공개키의 CA 루트 인증서일 수 있다.
310b에서, CA(304b)가 자기 서명 인증서를 합의 노드 및 클라이언트 노드(302b)에 전송한다. 일부 구현예에서, 자기 서명 인증서는 각각의 개인키를 사용하여 서명된 CA(304b)의 디지털 서명을 포함할 수 있다. 이와 같이, 합의 노드 및 클라이언트 노드(302b)는 CA(304b)의 공개키를 사용하여, 그 인증서가 CA(304b)에 의해 발행된 것임을 검증할 수 있다.
312b에서, 합의 노드 및 클라이언트 노드(302a)는 CSR을 생성한다. 합의 노드 및 클라이언트 노드(302b)는 CSR을 생성할 때 개인키를 생성할 수 있고, 그 개인키를 사용하여 대응하는 CSR에 서명할 수 있다.
314b에서, 합의 노드 및 클라이언트 노드(302b)가 CSR를 CA(304b)에 전송한다. 316b에서, CA(304b)가 CSR에 응답하여 합의 노드 및 클라이언트 노드(302b)에 대한 공개키 인증서를 생성한다. CA(304b)는 합의 노드 및 클라이언트 노드(302b)에 대한 공개키 인증서를 생성하기 전에, CSR에 대응하는 디지털 서명이 정확한지를 검증할 수 있다.
318b에서, CA(304b)가 공개키 인증서를 합의 노드 및 클라이언트 노드(302b)에 전송한다. 일부 구현예에서, 상이한 CA는 공개키 인증서를 상이한 합의 노드 및 클라이언트 노드 쌍에 전송하여 소규모 인증서 트러스트스토어를 형성할 수 있다. 이와 같이, 각 클라이언트 노드 쌍은 통신의 프라이버시를 보장하기 위해 상이한 CA에 의해 발행된 합의 노드의 공개키 인증서를 가질 수 있다.
320b에서, 합의 노드 및 클라이언트 노드(302b)가 트러스트스토어, 개인키 및 자기 서명 인증서를 구성한다. 상이한 클라이언트 노드가 암호화된 통신을 위해 상이한 TLS 인증서 트러스트스토어를 가질 수 있고, 또 합의 노드가 암호화된 통신을 위해 자체 TLS 인증서 트러스트스토어를 가질 수 있기 때문에, 상이한 당사자들에 의해 수행되는 통신의 데이터 프라이버시를 보호할 수 있다.
도 4는 예시적인 블록체인 시스템(400), 및 본 개시내용의 구현예에 따른 합의 노드와 클라이언트 노드 간의 통신을 위한 구성을 도시한다. 상위 레벨에서, 예시적인 블록체인 시스템(400)은 4개의 합의 노드, 즉 노드 1(402), 노드 2(404), 노드 3(406), 및 노드 4(408)를 포함한다. 3개의 클라이언트 노드, 즉 클라이언트 1(410), 클라이언트 2(412) 및 클라이언트 3(414)이 합의 노드에 접속된다. 클라이언트 1(410)은 노드 1(402)과 노드 2(404)에 접속되고, 클라이언트 2(412)는 노드 3(406)에 접속되며, 클라이언트 3(414)는 노드 4(408)에 접속된다. 합의 노드가 클라이언트 노드와 통신할 수 있으므로 사용자는 클라이언트 노드로부터 합의 노드로 트랜잭션을 제출할 수 있다. 합의 노드는 클라이언트 노드로부터 트랜잭션을 블록체인에 추가하기 위해 서로 통신하여 합의 프로세스를 실행할 수 있다.
합의 노드 간의 통신을 위해, 노드 1(402), 노드 2(404), 노드 3(406) 및 노드 4(408)는 각각 트러스트스토어(A)의 블록체인 복제본을 취득할 수 있다. 트러스트스토어(A)는 제1 CA 세트에 의해 발행된 노드 1(402), 노드 2(404), 노드 3(406), 및 노드 4(408)의 TLS 인증서를 포함할 수 있다. 일부 구현예에서, 합의 노드는 대응하는 공개키 인증서에 자기 서명하는 CA일 수 있다. 노드 1(402), 노드 2(404), 노드 3(406), 및 노드 4(408)는 또한 각각의 개인키 및 자기 서명 인증서로 구성될 수도 있다. 이와 같이, 노드 1(402), 노드 2(404), 노드 3(406), 및 노드 4(408) 간의 통신은 트러스트스토어(A)의 TLS 인증서에 기반할 수 있다.
클라이언트 1(410)은 노드 1(402)과 노드 2(404) 사이의 통신을 위해 접속된다. 클라이언트 1(410), 노드 1(402), 및 노드 2(404)는 각각 트러스트스토어(B)의 블록체인 복제본을 취득할 수 있다. 트러스트스토어(B)는 제2 CA 세트에 의해 발행된 클라이언트 1(410), 노드 1(402), 및 노드 2(404)의 TLS 인증서를 포함할 수 있다. 이 경우에 있어서도, TLS 인증서는 다른 통신과 격리하기 위해 TLS 인증서에 서명하는데 사용된 서명 기관과 서명 기관이 상이한다면, 자기 서명될 수 있다. 클라이언트 1(410), 노드 1(402), 및 노드 2(404)는 각각의 개인키 및 자기 서명 인증서로 구성될 수도 있다. 이와 같이, 클라이언트 1(410)과 노드 1(402) 간의 통신 및 클라이언트 1(410)과 노드 2(404) 간의 통신은 트러스트스토어(B)의 TLS 인증서에 기반할 수 있다.
일부 구현예에서, 노드 1(402)과 노드 2(404)가 트러스트스토어(A)와 트러스트스토어(B) 둘 다를 유지하지만, 이들 노드는 트러스트스토어(A)의 TLS 인증서에 기반해서만 서로 통신할 수 있다. 이들 노드는 트러스트스토어(B)의 TLS 인증서에 기반해서는 통신할 수 없다. 따라서, 클라이언트 1(410)은 노드 1(402)과 노드 2(404) 사이에서 전달되는 합의 메시지를 볼 수 없다.
클라이언트 2(412)는 노드 3(406)과의 통신을 위해 접속된다. 클라이언트 2(412) 및 노드 3(406)은 각각 트러스트스토어(C)의 블록체인 복제본을 취득할 수 있다. 트러스트스토어(C)는 제3 CA 세트에 의해 발행된 클라이언트 2(412) 및 노드 3(406)의 TLS 인증서를 포함할 수 있다. 클라이언트 2(410) 및 노드 3(406)는 각각의 개인키 및 자기 서명 인증서로 구성될 수도 있다. 이와 같이, 클라이언트 2(412)와 노드 3(406) 간의 통신은 트러스트스토어(C)의 TLS 인증서에 기반할 수 있다.
클라이언트 3(414)은 노드 4(408)와 접속된다. 클라이언트 3(414)과 노드 4(408) 사이의 통신은 암호화되지 않는다. 이와 같이, 클라이언트 3(414)은 통신을 위해 공개키 인증서를 유지할 필요가 없다. 그러나, 클라이언트 3(414)은, 다른 노드가 클라이언트 3(414)으로 가장하여 노드 4(408)와 통신하는 경우처럼, 신원 도용의 위험이 있을 수 있다.
도 5는 본 개시내용의 구현예에 따른 합의 노드와 클라이언트 노드의 통신을 관리하는 방법예(500)를 도시한다. 설명의 명료성을 위해, 이하에서는 본 명세서 내의 다른 도면의 컨텍스트에 있어서 예시적인 프로세스(500)에 대해 일반적으로 설명한다. 그러나, 예시적인 프로세스(500)는 예를 들어 임의의 시스템, 환경, 소프트웨어, 및 하드웨어, 또는 시스템, 환경, 소프트웨어, 및 하드웨어의 조합에 의해 적절하게 수행될 수 있음을 이해할 것이다. 일부 구현예에서, 예시적인 프로세스(500)의 다양한 단계들은 병렬로, 조합으로, 루프로, 또는 임의의 순서로 실행될 수 있다.
502에서, 합의 노드가 CSR을 생성한다. 일부 구현예에서, CSR을 생성하기 전에, 합의 노드는 제1 하나 이상의 CA 및 제2 하나 이상의 CA를 식별할 수 있다. 협의 노드는 또한 제1 하나 이상의 CA 및 제2 하나 이상의 CA로부터 루트 인증서를 수신하고, 제1 하나 이상의 CA 및 제2 하나 이상의 CA의 각각의 공개키에 기초하여 루트 인증서를 검증할 수 있다. 일부 구현예에서, CSR은 제1 공개키 인증서, 또는 제2 공개키 인증서에 포함될 공개키 및 정보를 포함한다. 일부 구현예에서, CSR은 합의 노드에 의해 개인키를 사용하여 디지털 서명된다.
504에서, 합의 노드는 CSR을 제1 CA에 전송한다.
506에서, 합의 노드는 CSR에 응답하여 제1 CA로부터 합의 노드의 제1 공개키 인증서와, 제1 하나 이상의 CA에 의해 발행된 하나 이상의 다른 합의 노드의 제1 하나 이상의 공개키 인증서를 수신한다. 일부 구현예에서, 제1 하나 이상의 공개키 인증서의 일부 중 적어도 하나의 공개키 인증서는 대응하는 합의 노드에 의해 자기 서명되거나, 제2 하나 이상의 공개키 인증서의 일부는 대응하는 클라이언트 노드에 의해 자기 서명된다.
508에서, 합의 노드가 CSR을 제2 CA에 전송한다. 일부 구현예에서, 제1 하나 이상의 공개키 인증서의 일부 중 적어도 하나의 공개키 인증서는 대응하는 합의 노드에 의해 자기 서명되거나, 제2 하나 이상의 공개키 인증서의 일부는 대응하는 클라이언트 노드에 의해 자기 서명된다.
510에서, 합의 노드는 CSR에 응답하여 제2 CA로부터 합의 노드의 제2 공개키 인증서와, 제2 하나 이상의 CA에 의해 발행된 하나 이상의 클라이언트 노드의 제2 하나 이상의 공개키 인증서를 수신한다.
512에서, 합의 노드가 제1 트러스트스토어 및 제2 트러스트스토어를 구성한다. 제1 트러스트스토어는 제1 공개키 인증서와, 하나 이상의 다른 합의 노드의 제1 하나 이상의 공개키를 포함한다. 제2 트러스트스토어는 제2 공개키 인증서와, 하나 이상의 클라이언트 노드의 제2 하나 이상의 공개키를 포함한다.
일부 구현예에서, 합의 노드는 합의 노드의 대응하는 개인키를 사용하여 공개키의 자기 서명 인증서를 생성할 수 있다. 합의 노드는 합의 노드의 개인키와, 자기 서명 인증서를 구성할 수도 있다.
일부 구현예에서, 제1 공개키 인증서, 제1 하나 이상의 공개키 인증서, 제2 공개키 인증서, 및 제2 하나 이상의 공개키 인증서는 TLS 인증서이다.
본원에서 설명한 구현예 및 동작은 디지털 전자 회로로, 또는 본원에 개시한 구조를 포함하는, 컴퓨터 소프트웨어, 펌웨어, 또는 하드웨어로, 또는 이들 중 하나 이상의 조합으로 구현될 수 있다. 동작은 하나 이상의 컴퓨터 판독 가능한 저장 디바이스 상에 저장된 데이터 또는 다른 소스로부터 수신된 데이터에 대해 데이터 프로세싱 장치에 의해 수행되는 동작으로서 구현될 수 있다. 데이터 프로세싱 장치, 컴퓨터, 또는 컴퓨팅 디바이스는, 예시적으로 프로그래머블 프로세서, 컴퓨터, 시스템온칩, 또는 전술한 것들을 복합한 것, 또는 조합한 것을 포함하는, 데이터를 처리하기 위한 장치, 디바이스 및 머신을 망라할 수 있다. 이들 장치는 예를 들어 중앙 처리 장치(CPU), 필드 프로그래머블 게이트 어레이(FPGA) 또는 주문형 집적 회로(ASIC)와 같은 전문용 로직 회로를 포함할 수 있다. 또한, 장치는 문제의 컴퓨터 프로그램을 위한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어를 구성하는 코드, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제(예컨대, 단일 운영 체제 또는 운영 체제의 조합), 크로스-플랫폼 런타임 환경, 가상 머신, 또는 이들 중 하나 이상의 조합을 포함할 수 있다. 장치 및 실행 환경은 웹 서비스, 분산 컴퓨팅 및 그리드 컴퓨팅 인프라와 같은 다양한 컴퓨팅 모델 인프라를 실현할 수 있다.
컴퓨터 프로그램(예를 들어, 프로그램, 소프트웨어, 소프트웨어 애플리케이션, 소프트웨어 모듈, 소프트웨어 유닛, 스크립트, 또는 코드라고도 알려짐)은 컴파일링된 언어나 인터프리팅된 언어, 선언적 또는 절차적 언어를 포함한 임의의 형태의 프로그래밍 언어로 작성할 수 있고, 스태드얼론 프로그램으로서 또는 모듈, 컴포넌트, 서브루틴, 오브젝트, 또는 컴퓨팅 환경에서 사용하기에 적합한 다른 유닛으로서 포함하는, 모든 형태로 배포될 수 있다. 프로그램은 다른 프로그램이나 데이터(예컨대, 마크업 언어 문서에 저장된 하나 이상의 스크립트)를 유지하는 파일의 일부로, 문제의 프로그램에 전용된 단일 파일로, 또는 여러 개의 조정 파일(예컨대, 하나 이상의 모듈, 서브프로그램, 또는 코드의 일부를 저장한 파일)로 저장될 수 있다. 컴퓨터 프로그램은 한 컴퓨터 상에서 또는 한 장소에 배치되거나 여러 장소에 분산되어 통신 네트워크로 상호 접속된 여러 개의 컴퓨터 상에서 실행될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서는, 예시적으로 범용 및 전문용 마이크로프로세서 둘 다와, 임의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 리드 온리 메모리나 랜덤 액세스 메모리 또는 둘 다로부터 명령어와 데이터를 수신할 것이다. 컴퓨터의 필수 요소는 명령어에 따라 액션을 행하는 프로세서와, 명령어 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 데이터를 저장하는 하나 이상의 대용량 저장 디바이스를 포함할 것이고, 또는 이들로부터 데이터를 수신하거나 이들에 데이터를 전송하거나, 또는 이 두 가지를 모두 행하기 위해 이들에 동작 가능하게 결합될 것이다. 컴퓨터는 다른 디바이스, 예를 들어 모바일 디바이스, 개인용 디지털 어시스턴트(PDA), 게임 콘솔, GPS(Global Positioning System) 수신기, 또는 휴대용 저장 디바이스에 내장될 수 있다. 컴퓨터 프로그램 명령어 및 데이터를 저장하기에 적합한 디바이스는, 예시적으로 반도체 메모리 디바이스, 자기 디스크, 및 광-자기 디스크를 포함한, 비휘발성 메모리, 매체 및 메모리 디바이스를 포함한다. 프로세서 및 메모리는 전문용 로직 회로에 의해 보완될 수도 또는 그 내부에 통합될 수도 있다.
모바일 디바이스는 핸드셋, 사용자 장비(UE), 모바일폰(예컨대, 스마트폰), 태블릿, 웨어러블 디바이스(예컨대, 스마트 워치 및 스마트 아이글래스), 인체 내부의 이식 디바이스(예컨대, 바이오센서, 달팽이관 임플란트), 또는 기타 유형의 모바일 디바이스를 포함할 수 있다. 모바일 디바이스는 다양한 통신 네트워크(후술함)에 무선으로(예컨대, 무선 주파수(RF) 신호를 사용하여) 통신할 수 있다. 모바일 디바이스는 모바일 디바이스의 현재 환경의 특성을 결정하는 센서를 포함할 수 있다. 센서는 카메라, 마이크, 근접 센서, GPS 센서, 모션 센서, 가속도계, 주변광 센서, 습도 센서, 자이로스코프, 나침반, 기압계, 지문 센서, 안면 인식 시스템, RF 센서(예컨대, Wi-Fi 및 셀룰러 무선), 열 센서, 또는 기타 유형의 센서를 포함할 수 있다. 예를 들어, 카메라는 이동식 또는 고정식 렌즈가 있는 전방 또는 후방 카메라, 플래시, 이미지 센서, 및 이미지 프로세서를 포함할 수 있다. 카메라는 안면 및/또는 홍채 인식을 위한 상세정보(details)를 캡처할 수 있는 메가픽셀 카메라일 수 있다. 카메라는 메모리에 저장되거나 원격으로 액세스되는 인증 정보 및 데이터 프로세서와 함께, 안면 인식 시스템을 구성할 수 있다. 안면 인식 시스템, 또는 마이크, 모션 센서, 가속도계, GPS 센서, 또는 RF 센서와 같은 하나 이상의 센서가 사용자 인증에 사용될 수 있다.
사용자와의 인터랙션(interaction)을 제공하기 위해, 구현예는, 예컨대 사용자에게 정보를 표시하기 위한, 액정 디스플레이(LCD) 또는 유기 발광 다이오드(OLED)/가상 현실(VR)/증강 현실(AR) 디스플레이 및 터치 스크린, 키보드, 및 사용자가 컴퓨터에 입력을 제공할 수 있는 포인팅 디이스와 같은, 디스플레이 디바이스 및 입력 디바이스를 구비한 컴퓨터 상에 구현될 수 있다. 다른 종류의 디바이스도 사용자와의 인터랙션을 제공하는데 사용될 수 있는데, 예를 들어 사용자에게 제공되는 피드백은 예컨대 시각적 피드백, 청각적 피드백 또는 촉각적 피드백과 같은 임의의 형태의 감각적 피드백일 수 있고, 사용자로부터의 입력은 음향, 음성 또는 촉각적 입력을 포함하는 임의의 형태로 수신될 수 있다. 또한, 컴퓨터는 사용자가 사용하는 디바이스와 문서를 주고 받음으로써, 예를 들면 웹 브라우저로부터 수신된 요청에 응답하여 사용자의 클라이언트 디바이스 상의 웹 브라우저에 웹 페이지를 전송함으로써, 사용자와 인터랙션할 수 있다.
구현예들은 유선 또는 무선 디지털 데이터 통신(또는 이들의 조합)의 임의의 형태, 예컨대 통신 네트워크에 의해 상호 접속되는 컴퓨팅 디바이스를 사용하여 구현될 수 있다. 상호 접속되는 디바이스의 예는, 일반적으로 서로 원격으로 배치되며, 통상 통신 네트워크를 통해 인터랙션하는 클라이언트와 서버이다. 예를 들면 모바일 디바이스와 같은 클라이언트는, 서버와 함께, 또는 서버를 통해, 예컨대 트랜잭션을 구매, 판매, 결제, 제공, 전송 또는 대여, 또는 권한을 부여함으로써 서버를 통해 트랜잭션 자체를 수행할 수 있다. 이러한 트랜잭션은 행동과 응답이 시간적으로 근접하도록 실시간으로 이루어질 수 있는데, 예를 들면 개인은 실질적으로 동시에 발생하는 행동과 반응을 인지하고, 개인의 행동에 따른 반응의 시간차는 1 밀리초(ms) 미만 또는 1 초 미만이거나, 응답은 시스템의 처리 한계를 고려하면 의도적 지연이 없다.
통신 네트워크의 예는, LAN(Local Area Network), RAN(Radio Access Network), MAN(Metropolitan Area Network) 및 WAN(Wide Area Network)를 포함한다. 통신 네트워크는 인터넷의 전체 또는 일부, 다른 통신 네트워크, 또는 통신 네트워크의 조합을 포함할 수 있다. 정보는 LTE(Long Term Evolution), 5G, IEEE 802, 인터넷 프로토콜(IP), 또는 기타 프로토콜 또는 프로토콜의 조합을 포함한 다양한 프로토콜 및 표준에 따라, 통신 네트워크를 통해 전송될 수 있다. 통신 네트워크는 접속된 컴퓨팅 디바이스 사이에 보이스, 비디오, 바이오메트릭, 또는 인증 데이터 또는 기타 정보를 전송할 수 있다.
개별 구현예로서 기술한 특징들이 조합으로, 단일 구현으로 구현될 수도 있고, 단일 구현으로 기술한 특징들이 다중 구현으로, 개별적으로, 또는 임의의 적합한 하위 조합으로 구현될 수도 있다. 특정 순서로 기술하고 청구하는 동작들은 특정 순서를 요구하는 것으로서도, 예시하는 모든 동작들이 반드시 수행되어야 하는 것으로서도 이해되어서는 안 된다(일부 동작들은 옵션일 수 있다). 필요하다면, 멀티태스킹 또는 병렬 프로세싱(또는 멀티태스킹과 병렬 프로세싱의 조합)가 수행될 수도 있다.

Claims (9)

  1. 합의 노드(consensus node) 간의 통신과, 합의 노드와 클라이언트 노드 간의 통신을 격리(isolate)시키는 컴퓨터 구현 방법(computer-implemented method)에 있어서,
    합의 노드가 인증서 서명 요청(CSR, certificate signing request)을 생성하는 단계와,
    상기 CSR를 제1 인증기관(CA, certificate authority)에 전송하는 단계와,
    상기 CSR에 응답하여 상기 제1 CA로부터 상기 합의 노드의 제1 공개키 인증서(public key certificate)와, 제1 하나 이상의 CA에 의해 발행된 하나 이상의 다른 합의 노드의 제1 하나 이상의 공개키 인증서를 수신하는 단계와,
    상기 CSR를 제2 CA에 전송하는 단계와,
    상기 CSR에 응답하여 상기 제2 CA로부터 상기 합의 노드의 제2 공개키 인증서와, 제2 하나 이상의 CA에 의해 발행된 하나 이상의 클라이언트 노드의 제2 하나 이상의 공개키 인증서를 수신하는 단계와,
    상기 합의 노드 상에, 상기 제1 공개키 인증서와, 상기 하나 이상의 다른 합의 노드의 제1 하나 이상의 공개키 인증서를 포함하는 제1 트러스트스토어(truststore), 및 상기 제2 공개키 인증서와, 상기 하나 이상의 클라이언트 노드의 제2 하나 이상의 공개키 인증서를 포함하는 제2 트러스트스토어를 구성하는 단계
    를 포함하는, 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 제1 하나 이상의 CA와 상기 제2 하나 이상의 CA를 결정하는 단계와,
    상기 제1 하나 이상의 CA와 상기 제2 하나 이상의 CA로부터 루트 인증서(root certificate)를 수신하는 단계와,
    상기 제1 하나 이상의 CA와 상기 제2 하나 이상의 CA의 대응하는 공개키에 기초하여 상기 루트 인증서를 검증하는 단계
    를 더 포함하는, 컴퓨터 구현 방법.
  3. 제1항에 있어서, 상기 CSR은 상기 제1 공개키 인증서 또는 상기 제2 공개키 인증서에 포함될 공개키 및 정보를 포함하는, 컴퓨터 구현 방법.
  4. 제2항에 있어서, 상기 CSR은 상기 합의 노드에 의해 개인키를 사용하여 디지털 서명되는, 컴퓨터 구현 방법.
  5. 제1항에 있어서, 상기 제1 하나 이상의 공개키 인증서의 일부 중 적어도 하나의 공개키 인증서는 대응하는 합의 노드에 의해 자기 서명(self-sign)되거나, 또는 상기 제2 하나 이상의 공개키 인증서의 일부는 대응하는 클라이언트 노드에 의해 자기 서명되는, 컴퓨터 구현 방법.
  6. 제1항에 있어서,
    상기 합의 노드의 대응하는 개인키를 사용하여 상기 공개키의 자기 서명 인증서(self-signed certificate)를 생성하는 단계와,
    상기 합의 노드 상에, 상기 합의 노드의 개인키와 상기 자기 서명 인증서를 구성하는 단계
    를 더 포함하는, 컴퓨터 구현 방법.
  7. 제1항에 있어서, 상기 제1 공개키 인증서, 상기 제1 하나 이상의 공개키 인증서, 상기 제2 공개키 인증서, 및 상기 제2 하나 이상의 공개키 인증서는 전송 계층 보안(TLS, transport layer security) 인증서인, 컴퓨터 구현 방법.
  8. 하나 이상의 프로세서에 결합되며, 상기 하나 이상의 프로세서에 의해 실행될 때에, 상기 하나 이상의 프로세서로 하여금 제1항 내지 제7항 중 어느 한 항에 기재된 방법에 따른 동작을 수행하게 하는 명령어가 저장된, 비일시적 컴퓨터 판독 가능한 저장 매체.
  9. 시스템에 있어서,
    컴퓨팅 디바이스와,
    상기 컴퓨팅 디바이스에 결합되며, 상기 컴퓨팅 디바이스에 의해 실행될 때에, 상기 컴퓨팅 디바이스로 하여금 제1항 내지 제7항 중 어느 한 항에 기재된 방법에 따른 동작을 수행하게 하는 명령어가 저장된 컴퓨터 판독 가능한 저장 디바이스
    를 포함하는 시스템.
KR1020197011517A 2018-11-07 2018-11-07 합의 노드와 클라이언트 노드 간의 통신을 관리하는 방법 KR102266206B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/114417 WO2019072267A2 (en) 2018-11-07 2018-11-07 COMMUNICATION MANAGEMENT BETWEEN CONSENSUS NODES AND CLIENT NODES

Publications (2)

Publication Number Publication Date
KR20200054123A true KR20200054123A (ko) 2020-05-19
KR102266206B1 KR102266206B1 (ko) 2021-06-21

Family

ID=66100011

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197011517A KR102266206B1 (ko) 2018-11-07 2018-11-07 합의 노드와 클라이언트 노드 간의 통신을 관리하는 방법

Country Status (16)

Country Link
US (2) US10887114B2 (ko)
EP (1) EP3533178B1 (ko)
JP (1) JP6768947B2 (ko)
KR (1) KR102266206B1 (ko)
CN (1) CN110383759B (ko)
AU (1) AU2018347189B2 (ko)
BR (1) BR112019008174A2 (ko)
CA (1) CA3041159C (ko)
ES (1) ES2818623T3 (ko)
MX (1) MX2019004653A (ko)
PH (1) PH12019500879A1 (ko)
PL (1) PL3533178T3 (ko)
RU (1) RU2713870C1 (ko)
SG (1) SG11201903572YA (ko)
WO (1) WO2019072267A2 (ko)
ZA (1) ZA201902559B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023013861A1 (ko) * 2021-08-03 2023-02-09 삼성전자주식회사 디지털 컨텐츠에 대한 대체불가능 토큰을 관리하는 방법 및 장치

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11172013B2 (en) 2019-01-31 2021-11-09 Open Text Corporation System and method for launching and connecting to a local server from a webpage
US11245537B2 (en) * 2019-06-07 2022-02-08 Open Text Corporation System and method for a local server with self-signed certificates
CN110492997B (zh) * 2019-08-09 2020-12-01 华南理工大学 一种基于超级账本的加密系统、方法、装置和存储介质
US11283629B2 (en) 2019-10-10 2022-03-22 Red Hat, Inc. Automated replacement of renewable server certificates
KR20210121805A (ko) * 2020-03-31 2021-10-08 삼성전자주식회사 블록체인 기반의 pki 도메인에 속하는 전자 장치, 인증 기관 기반의 pki 도메인에 속하는 전자 장치, 및 이들을 포함하는 암호화 통신 시스템
CN111489159B (zh) * 2020-04-09 2024-03-15 腾讯科技(深圳)有限公司 数据处理方法、装置、计算机设备及介质
CN111858768B (zh) * 2020-07-27 2023-06-16 苏州区盟链数字科技有限公司 一种优化区块链可信节点与共识算法的装置
CN112560005A (zh) * 2020-12-01 2021-03-26 杭州趣链科技有限公司 身份可信服务系统、方法、电子设备和计算机可读介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101727525B1 (ko) * 2016-09-05 2017-04-17 주식회사 스케일체인 블록체인 기반 분산 저장 방법 및 이를 이용한 장치
US20180183587A1 (en) * 2016-12-23 2018-06-28 Vmware, Inc. Blockchain-Assisted Public Key Infrastructure for Internet of Things Applications

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7743248B2 (en) * 1995-01-17 2010-06-22 Eoriginal, Inc. System and method for a remote access service enabling trust and interoperability when retrieving certificate status from multiple certification authority reporting components
JP3890959B2 (ja) * 2001-11-22 2007-03-07 株式会社日立製作所 公開鍵証明書の生成システム及び検証システム
ATE315859T1 (de) 2002-09-17 2006-02-15 Errikos Pitsos Verfahren und vorrichtung zur bereitstellung einer liste von öffentlichen schlüsseln in einem public-key-system
US7702902B2 (en) * 2004-06-25 2010-04-20 The Go Daddy Group, Inc. Method for a web site with a proxy domain name registration to receive a secure socket layer certificate
US7844816B2 (en) * 2005-06-08 2010-11-30 International Business Machines Corporation Relying party trust anchor based public key technology framework
US8898457B2 (en) * 2010-02-26 2014-11-25 Red Hat, Inc. Automatically generating a certificate operation request
US8627065B2 (en) * 2010-11-09 2014-01-07 Cleversafe, Inc. Validating a certificate chain in a dispersed storage network
US9021255B1 (en) * 2012-06-29 2015-04-28 Emc Corporation Techniques for multiple independent verifications for digital certificates
US8707027B1 (en) * 2012-07-02 2014-04-22 Symantec Corporation Automatic configuration and provisioning of SSL server certificates
JP6299047B2 (ja) 2014-05-08 2018-03-28 華為技術有限公司Huawei Technologies Co.,Ltd. 証明取得方法及び装置
US20170331896A1 (en) * 2016-05-13 2017-11-16 De La Rue International Limited Methods and systems for processing assets
US10700853B2 (en) * 2016-07-12 2020-06-30 International Business Machines Corporation Token identity and attribute management
CN106789090B (zh) * 2017-02-24 2019-12-24 陈晶 基于区块链的公钥基础设施系统及半随机联合证书签名方法
CN108696348A (zh) * 2017-04-06 2018-10-23 中国移动通信有限公司研究院 一种实现ca互信的方法、装置、系统和电子设备
CN107392040B (zh) * 2017-04-28 2019-08-09 阿里巴巴集团控股有限公司 一种共识验证的方法及装置
CN107566337B (zh) * 2017-07-26 2019-08-09 阿里巴巴集团控股有限公司 一种区块链节点间的通信方法及装置
CN107592293A (zh) * 2017-07-26 2018-01-16 阿里巴巴集团控股有限公司 区块链节点间通讯方法、数字证书管理方法、装置和电子设备
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
KR101727525B1 (ko) * 2016-09-05 2017-04-17 주식회사 스케일체인 블록체인 기반 분산 저장 방법 및 이를 이용한 장치
US20180183587A1 (en) * 2016-12-23 2018-06-28 Vmware, Inc. Blockchain-Assisted Public Key Infrastructure for Internet of Things Applications

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Certificate Management for Financial Services - Part 1: Public Key Certificates, KS X ISO 15782-1:2003 (2017.) *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023013861A1 (ko) * 2021-08-03 2023-02-09 삼성전자주식회사 디지털 컨텐츠에 대한 대체불가능 토큰을 관리하는 방법 및 장치

Also Published As

Publication number Publication date
PL3533178T3 (pl) 2021-01-11
AU2018347189B2 (en) 2020-07-23
JP2020503717A (ja) 2020-01-30
US20210083885A1 (en) 2021-03-18
WO2019072267A3 (en) 2019-07-25
ES2818623T3 (es) 2021-04-13
US20190253265A1 (en) 2019-08-15
CA3041159A1 (en) 2019-04-18
CA3041159C (en) 2021-12-07
SG11201903572YA (en) 2019-05-30
US10887114B2 (en) 2021-01-05
KR102266206B1 (ko) 2021-06-21
RU2713870C1 (ru) 2020-02-07
WO2019072267A2 (en) 2019-04-18
EP3533178A2 (en) 2019-09-04
CN110383759A (zh) 2019-10-25
ZA201902559B (en) 2019-12-18
EP3533178A4 (en) 2019-09-25
AU2018347189A1 (en) 2020-05-21
EP3533178B1 (en) 2020-09-09
US11108571B2 (en) 2021-08-31
PH12019500879A1 (en) 2019-11-25
JP6768947B2 (ja) 2020-10-14
BR112019008174A2 (pt) 2019-09-10
MX2019004653A (es) 2019-08-05
CN110383759B (zh) 2022-05-10

Similar Documents

Publication Publication Date Title
JP7123208B2 (ja) 準同型暗号を使用したブロックチェーンデータ保護
KR102266206B1 (ko) 합의 노드와 클라이언트 노드 간의 통신을 관리하는 방법
US11113421B2 (en) Secure communications in a blockchain network
US11107075B2 (en) Blockchain data processing methods, apparatuses, devices, and systems
JP6767580B2 (ja) 準同型暗号を使用したブロックチェーンデータ保護
JP6810259B2 (ja) ワークフローに基づくブロックチェーンネットワーク上での非公開のトランザクションの管理
KR20190111042A (ko) 블록체인 노드들 간의 통신을 위한 방법, 장치와 전자 디바이스, 및 블록체인 기반 인증서 관리를 위한 방법, 장치와 전자 디바이스
CN105027107A (zh) 安全虚拟机迁移

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right