KR102095326B1 - 블록체인 노드 사이의 통신 방법 및 통신 장치 - Google Patents

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

Info

Publication number
KR102095326B1
KR102095326B1 KR1020197021996A KR20197021996A KR102095326B1 KR 102095326 B1 KR102095326 B1 KR 102095326B1 KR 1020197021996 A KR1020197021996 A KR 1020197021996A KR 20197021996 A KR20197021996 A KR 20197021996A KR 102095326 B1 KR102095326 B1 KR 102095326B1
Authority
KR
South Korea
Prior art keywords
node
blockchain
blockchain node
service
nodes
Prior art date
Application number
KR1020197021996A
Other languages
English (en)
Other versions
KR20190099310A (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 KR20190099310A publication Critical patent/KR20190099310A/ko
Application granted granted Critical
Publication of KR102095326B1 publication Critical patent/KR102095326B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • 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/0869Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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
    • 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/3271Cryptographic 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 challenge-response
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security
    • H04L2209/38
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks

Abstract

블록체인 네트워크의 제 2 블록체인 노드에 의해 전송된 통신 요청은 블록체인 네트워크의 제 1 블록체인 노드에 의해 수신된다. 제 2 블록체인 노드가 제 1 블록체인 노드와의 맵핑 관계를 갖는지 여부가 결정된다. 만약 그렇다면, 제 2 블록체인 노드에 대한 통신 접속이 확립되고, 그렇지 않으면, 제 2 블록체인 노드에 대한 통신 접속의 확립이 거부된다.

Description

블록체인 노드 사이의 통신 방법 및 통신 장치
<관련 출원에 대한 상호 참조>
본 출원은, 2017년 7월 26일에 출원된 중국 특허 출원 번호 제201710616370.1호를 우선권으로 주장하며, 이로써 이 출원은 그 전체가 인용에 의해 통합된다.
<기술 분야>
본 출원은 정보 기술들의 분야에 관한 것으로서, 특히 블록체인 노드들 간의 통신을 위한 방법 및 장치에 관한 것이다.
블록체인 기술의 한 부문으로서, 컨소시엄 블록체인 기술(consortium blockchain technology)이 점점 더 널리 적용되고 있다. 컨소시엄 블록체인 네트워크 내의 블록체인 노드들은 서비스 노드들 및 컨센서스(consensus) 노드들을 포함한다. 서비스 노드는 서비스에 참여하고, 컨센서스 노드는 서비스 노드에 의해 전송된 서비스 데이터를 수신하고 서비스 데이터에 대한 컨센서스 검증을 수행하는 것을 담당한다.
이전의 서비스 노드는 실제로, 컨소시엄 블록체인 네트워크에 가담하는 각각의 기관의 서비스 서버이고, 컨소시엄 블록체인 네트워크 내의 다른 노드와 통신하는 데 사용되는 소프트웨어가 서버 상에 설치된다(소프트웨어는 본 출원에서 통신 프로그램으로서 지칭됨). 2개의 노드들이 고정된 서비스 관계를 갖는 경우, 2개의 노드들은 별개로 서비스 관계를 로컬로 저장할 수 있다(이 서비스 관계는 본 출원에서 맵핑 관계로서 지칭됨).
도 1은 컨소시엄 블록체인 네트워크를 예시하는 아키텍처 다이어그램이다. 도 1에 도시된 바와 같이, 속이 찬 원은 컨센서스 노드들이고, 속이 빈 원은 서비스 노드들이다. 상이한 서비스 노드들은 상이한 애플리케이션들(APP들)에 대한 서비스를 제공한다. 서비스 노드는 APP에 의해 생성된 서비스 데이터를 컨센서스 검증을 위해 컨센서스 노드에 전송한다. 서비스 노드가 케이터링(catering) 애플리케이션에 대응하는 서버이고, 다른 서비스 노드가 지불 애플리케이션에 대응하는 서버인 것으로 가정한다. 사용자는 케이터링 애플리케이션에 대응하는 APP를 통해 주문한 후 지불 애플리케이션을 통해 지불할 수 있고; 두 서비스 노드들은 동일한 서비스에 참여하고 도 1에 도시된 서비스 관계를 컨소시엄 블록체인 네트워크에 등록할 수 있다.
컨소시엄 블록체인 네트워크에서, 각각의 서비스 노드는 자신의 참여 서비스의 서비스 데이터를 저장하고 서비스 데이터는 보통은 사용자의 개인 데이터를 포함한다. 기존 기술에 기초하여, 보다 안전한 통신 방법이 필요하다.
본 출원의 구현들은, 서비스 노드에 저장된 서비스 데이터 내의 사용자의 개인 데이터가 유출되기 쉬운 문제를 해결하도록, 블록체인 노드들 간의 통신을 위한 방법 및 장치를 제공한다.
이전의 기술적인 문제를 해결하기 위해, 본 출원의 구현들은 아래에서 설명되는 바와 같이 구현된다.
본 출원의 구현들은 블록체인 노드들 간의 통신을 위한 방법을 제공하며, 여기서 블록체인 네트워크 내의 블록체인 노드들은 서비스 노드들을 포함한다. 동일한 서비스에 참여하는 서비스 노드들은 맵핑 관계를 가지며, 방법은, 제 1 블록체인 노드에 의해, 제 2 블록체인 노드에 의해 전송된 통신 요청을 수신하는 단계; 제 2 블록체인 노드가 제 1 블록체인 노드와의 맵핑 관계를 갖는지 여부를 결정하는 단계; 및 만약 그렇다면, 제 2 블록체인 노드에 대한 통신 접속을 확립하는 단계; 또는, 그렇지 않으면, 제 2 블록체인 노드에 대한 통신 접속을 확립하는 것을 거부하는 단계를 포함한다.
본 출원의 구현들은 블록체인 노드들 간의 통신을 위한 장치를 제공하며, 여기서 블록체인 네트워크 내의 블록체인 노드들은 서비스 노드들을 포함한다. 동일한 서비스에 참여하는 서비스 노드들은 맵핑 관계를 가지며, 장치는, 제 2 블록체인 노드에 의해 전송된 통신 요청을 수신하도록 구성된 수신 모듈; 및 제 2 블록체인 노드가 장치와의 맵핑 관계를 갖는지 여부를 결정하고; 만약 그렇다면, 제 2 블록체인 노드에 대한 통신 접속을 확립하거나; 또는, 그렇지 않으면, 제 2 블록체인 노드에 대한 통신 접속을 확립하는 것을 거부하도록 구성되는 결정 및 프로세싱 모듈을 포함한다.
본 출원의 구현들은 블록체인 노드들 간의 통신을 위한 디바이스를 제공하며, 여기서 디바이스는 하나 이상의 프로세서 및 메모리를 포함한다. 메모리는 프로그램을 저장하고, 프로그램은 제 2 블록체인 노드에 의해 전송된 통신 요청을 수신하는 단계; 제 2 블록체인 노드가 디바이스와의 맵핑 관계를 갖는지 여부를 결정하는 단계; 및 만약 그렇다면, 제 2 블록체인 노드에 대한 통신 접속을 확립하는 단계; 또는, 그렇지 않으면, 제 2 블록체인 노드에 대한 통신 접속을 확립하는 것을 거부하는 단계를 수행하도록 하나 이상의 프로세서에 의해 실행되고, 여기서, 블록체인 네트워크 내의 블록체인 노드들은 서비스 노드들을 포함하고, 동일한 서비스에 참여하는 서비스 노드들은 맵핑 관계를 갖는다.
본 출원의 구현들에서, 본 출원의 구현들에서 제공되는 이전의 기술적 솔루션들로부터, 2개의 서비스 노드들 사이에 통신 접속이 확립되기 전에, 통신을 수행하기 위한 서비스 노드 요청들은 통신을 수행하기를 요청하는 서비스 노드의 아이덴티티(identity)를 검증한다는 것을 알 수 있다. 통신 접속은, 서비스 노드가 통신을 수행하기를 요청할 때 그리고 통신을 수행하기를 요청하는 서비스 노드가 동일한 서비스에 참여할 때만 2개의 서비스 노드들 간에 확립될 수 있다. 따라서, 동일한 서비스에 참여하지 않는 서비스 노드들 간에는 통신 접속이 확립되지 않고, 서비스 노드들은 통신 프로그램을 통해 서비스에 참여하는 서비스 노드에 저장된 서비스 데이터를 도용할 수 없고, 그리하여 서비스 데이터에서의 개인 데이터의 보안성을 보장한다.
본 출원의 구현들 또는 기존의 기술에서의 기술적 솔루션을 보다 명확하게 설명하기 위해, 다음은 구현들 또는 기존의 기술을 설명하는 데 필요한 첨부 도면들을 간략하게 설명한다. 명백하게, 다음의 설명에서 첨부 도면은 단지 본 출원의 일부 구현들을 도시할 뿐이며, 당업자는 창의적인 노력 없이도 이들 첨부 도면으로부터 다른 도면을 여전히 유도할 수 있다.
도 1은 컨소시엄 블록체인 네트워크를 예시하는 아키텍처 다이어그램이다.
도 2는 본 출원의 구현에 따라, 블록체인 노드들 간의 통신을 위한 방법을 예시하는 흐름도이다.
도 3은 다른 컨소시엄 블록체인 네트워크를 예시하는 개략적인 아키텍처 다이어그램이다.
도 4는 본 출원의 구현에 따라, 블록체인 노드들 간의 통신을 위한 장치를 예시하는 개략도이다.
도 5는 본 출원의 구현에 따라, 블록체인 노드들 간의 통신을 위한 디바이스를 예시하는 개략도이다.
도 6은 본 개시내용의 구현에 따라, 블록체인 노드들 간의 통신을 위한 컴퓨터-구현 방법의 예를 예시하는 흐름도이다.
컨소시엄 블록체인 네트워크에서, 서비스에 참여하는 서비스 노드에 의해 생성된 서비스 데이터는 사용자의 개인 데이터를 포함한다. 따라서 사용자의 개인 데이터가 서비스에 참여하지 않는 서비스 노드로 유출되는 것을 방지하기 위해, 각각의 서비스 노드는 컨소시엄 블록체인 네트워크에 그의 참여 서비스의 서비스 데이터만을 저장한다.
그러나, 서비스에 대한 실제 애플리케이션에서, 예를 들어, 서비스에 참여하지 않는 서비스 노드(A)는, 통신 프로그램을 통해 서비스에 참여하고 있는 서비스 노드(B)와의 통신 접속을 확립할 수 있으며, 이는 기술적 수단(이를테면, 데이터베이스 크랙킹)을 이용하여 서비스 노드(B)에 저장된 서비스 데이터를 도용할 수 있다. 즉, 통신 프로그램을 통해 통신 접속을 확립하는 각각의 서비스 노드는 기술적 수단을 사용하여, 서비스 노드에 대한 통신 접속을 확립한 다른 서비스 노드에 저장된 서비스 데이터를 획득할 수 있다. 서비스 데이터는 사용자의 개인 데이터를 포함할 수 있기 때문에, 본 출원은 보다 안전한 통신 기술 솔루션을 제공한다.
당업자가 본 출원의 기술적 솔루션을 더 잘 이해할 수 있도록 하기 위해, 다음은 본 출원의 구현들의 첨부 도면들을 참조하여 본 출원의 구현들의 기술 솔루션들을 명확하고 완전히 설명한다. 명백하게, 설명된 구현들은 본 출원의 모든 구현들이기보다는, 단지 일부일 뿐이다. 창의적인 노력 없이 본 출원의 구현들에 기초하여 당업자에 의해 획득된 다른 모든 구현들은 본 출원의 보호 범위 내에 있다.
본 출원의 구현들에서 제공되는 기술적 솔루션들은 첨부 도면들을 참조하여 아래에서 상세하게 설명된다.
도 2는 본 출원의 구현에 따라, 블록체인 노드들 간의 통신을 위한 방법을 예시하는 흐름도이다. 이 방법은 다음 단계들을 포함한다.
S200. 제 1 블록체인 노드는 제 2 블록체인 노드에 의해 전송된 통신 요청을 수신한다.
본 출원의 하나 이상의 구현의 애플리케이션 시나리오는 블록체인 네트워크이고, 블록체인 노드들은 서비스 노드들을 포함한다. 서비스 노드는 서비스에 참여하는 기관의 서버일 수 있고, 서비스 노드들은 서비스를 실행하도록 설치된 통신 프로그램을 통해 데이터를 교환한다. 동일한 서비스에 참여하는 서비스 노드들은 도 1에 도시된 서비스 관계를 갖는다. 본 출원에서, 서비스 노드들 간의 서비스 관계는 블록체인 노드들 간의 맵핑 관계이다. 따라서, 서비스 노드들 간의 맵핑 관계는 실제로 서비스 노드들 간의 서비스 관계이다.
본 출원의 이러한 구현에서, 제 1 블록체인 노드는 통신 접속을 확립하도록 요청받은 블록체인 노드이고, 제 2 블록체인 노드는 통신 접속을 확립하도록 요청하는 블록체인 노드이다.
S202. 제 2 블록체인 노드가 제 1 블록체인 노드와의 맵핑 관계를 갖는지 여부를 결정하고; 만약 그렇다면, 단계(S204)를 수행하거나; 또는, 그렇지 않으면, 단계(S206)를 수행한다.
S204. 제 2 블록체인 노드에 대한 통신 접속을 확립한다.
S206. 제 2 블록체인 노드에 대한 통신 접속을 확립하는 것을 거부한다.
제 1 블록체인 노드 및 제 2 블록체인 노드 둘 모두가 서비스 노드들일 때, 통신 요청을 수신한 제 1 블록체인 노드는 통신 요청을 전송한 제 2 블록체인 노드를 검증한다. 제 1 블록체인 노드가 제 2 블록체인 노드와의 맵핑 관계를 갖는 경우, 이는, 제 1 블록체인 노드 및 제 2 블록체인 노드가 동일한 서비스에 참여하며, 제 1 블록체인 노드는 제 2 블록체인 노드에 대한 통신 접속을 확립할 수 있음을 나타낸다. 그러나 제 1 블록체인 노드가 제 2 블록체인 노드와의 맵핑 관계를 갖지 않는 경우, 이는, 제 1 블록체인 노드 및 제 2 블록체인 노드가 상이한 서비스들에 참여하며, 제 1 블록체인 노드는 제 2 블록체인 노드에 대한 통신 접속을 확립하는 것을 거부할 수 있음을 나타낸다. 이전 실행 로직은 각각의 블록체인 노드 상에 설치된 통신 프로그램에서 미리 구성될 수 있다는 것이 주의되어야 한다.
또한, 블록체인 노드는 컨센서스 노드를 포함할 수 있고, 컨센서스 노드는 서비스에 참여하는 서비스 노드에 의해 생성된 서비스 데이터에 대해 컨센서스 검증(consensus verification)을 수행하는 것을 담당한다. 각각의 서비스 노드에 대해, 서비스 노드에 의해 생성된 서비스 데이터에 대한 컨센서스 검증을 수행하는 컨센서스 노드가 서비스 노드와의 맵핑 관계를 가질 수 있다. 게다가, 각각의 서비스 노드에 대해, 서비스 노드에 의해 생성된 서비스 데이터에 대한 컨센서스 검증을 수행하는 상이한 컨센서스 노드도 또한 맵핑 관계를 가질 수 있다.
따라서, 제 1 블록체인 노드 및 제 2 블록체인 노드 둘 모두가 컨센서스 노드들일 때, 또는 제 1 블록체인 노드가 서비스 노드이고 제 2 블록체인 노드가 컨센서스 노드일 때(또는 제 1 블록체인 노드가 컨센서스 노드이고 제 2 블록체인 노드가 서비스 노드일 때), 제 1 블록체인 노드는, 제 1 블록체인 노드가 제 2 블록체인 노드에 대한 통신 접속을 확립해야 하는지 여부를 결정하기 위해, 제 2 블록체인 노드가 제 1 블록체인 노드와의 맵핑 관계를 갖는지 여부를 검증할 수 있다.
명백하게, 동일한 서비스에 참여하는 서비스 노드들에 저장된 서비스 데이터는 동일한 서비스의 서비스 데이터이며, 2개의 서비스 노드들 사이에서 개인 데이터 유출의 위험이 없다. 마찬가지로, 동일한 서비스에 대해 컨센서스 검증을 수행하는 컨센서스 노드들은 서로 서비스 데이터를 도용할 필요가 없고, 서비스 노드에 의해 생성된 서비스 데이터에 대한 컨센서스 검증을 수행하는 컨센서스 노드는 서비스 노드에 저장된 서비스 데이터를 도용할 필요가 없다. 따라서, 맵핑 관계를 갖는 블록체인 노드들(서비스 노드들 또는 컨센서스 노드들에 무관하게) 간에 통신 접속을 확립될 수 있고, 개인 데이터 유출의 위험이 없다.
(서비스 노드 또는 컨센서스 노드에 무관하게) 각각의 블록체인 노드는 블록체인 노드와의 맵핑 관계를 갖는 블록체인 노드의 리스트를 구성할 수 있는데, 즉, 블록체인 노드가 신뢰할 수 있는 블록체인 노드들은 블록체인 노드에 대한 통신 접속을 확립할 수 있다는 것이 주의되어야 한다.
게다가, 제 2 블록체인 노드가 제 1 블록체인 노드와의 맵핑 관계를 갖는다고 제 1 블록체인 노드가 결정할 때, 제 1 블록체인 노드는 검증 요청을 제 2 블록체인 노드에 전송하여서, 제 2 블록체인 노드가 제 1 블록체인 노드가 검증 요청에 기초하여 제 2 블록체인 노드와의 맵핑 관계를 갖는지 여부를 결정할 수 있게 한다. 만약 그렇다면, 제 2 블록체인 노드는 제 1 블록체인 노드에 대한 통신 접속을 확립하거나; 또는, 그렇지 않으면, 제 2 블록체인 노드는 제 1 블록체인 노드에 대한 통신 접속을 확립하는 것을 거부한다.
따라서, 통신 접속을 확립할 필요가 있는 2개의 블록체인 노드들 사이의 양방향 검증이 구현될 수 있어서, 제 2 블록체인 노드를 신뢰할 수 있는 것으로 제 1 블록체인 노드가 결정하게 한다. 제 2 블록체인 노드는, 제 1 블록체인 노드가 신뢰할 수 있고 통신 보안성이 추가로 향상되는 것으로 결정한다.
물론, 제 1 블록체인 노드는, 제 2 블록체인 노드에 의해 전송된 통신 요청을 수신한 후에 제 2 블록체인 노드에 검증 요청을 전송할 수 있다. 제 2 블록체인 노드는 동일한 방법을 사용하여 제 1 블록체인 노드에 대한 접속을 확립할지 여부를 결정할 수 있다.
도 2에 도시된 방법에서, 2개의 서비스 노드들 사이에 통신 접속이 확립되기 전에, 서비스 노드는 통신을 수행하기를 요청하고, 통신을 수행하기를 요청하는 서비스 노드의 아이덴티티를 검증한다. 통신 접속은, 서비스 노드가 통신을 수행하기를 요청할 때 그리고 통신을 수행하기를 요청하는 서비스 노드가 동일한 서비스에 참여할 때만 2개의 서비스 노드들 간에 확립될 수 있다. 따라서, 동일한 서비스에 참여하지 않는 서비스 노드들 간에는 통신 접속이 확립되지 않고, 서비스에 참여하지 않는 서비스 노드는 통신 프로그램을 통해 서비스에 참여하는 서비스 노드에 저장된 서비스 데이터를 도용할 수 없고, 그리하여 서비스 데이터에서의 개인 데이터의 보안성을 보장한다.
게다가, 기존 블록체인 네트워크, 특히 기존 컨소시엄 블록체인 네트워크에서, 블록체인 노드들 간의 통신은 일반적으로 TLS(Transport Layer Security) 프로토콜에 기초한다. 일반적으로, 각각의 블록체인 노드는 신뢰 CA(certificate authority)에 의해 발행된 인증서를 보유하며, 인증서는 블록체인 노드(서버)의 속성 정보(예를 들어, 국가명, 지방명, 도시명 및 서버가 속한 기관명 및 서버의 도메인 이름) 외에도 CA의 서명을 포함한다. TLS 프로토콜에 기초하여, 통신 접속을 확립할 필요가 있는 2개의 블록체인 노드들은, 그들의 아이덴티티들이 CA에 의해 인증됨을 검증하기 위해 그들의 인증서들을 교환할 필요가 있고(인증서들은 CA 서명들을 포함함); 2개의 블록체인 노드들은 그들의 아이덴티티들이 유효한 경우 통신 접속을 확립할 수 있다. 명백히, 기존의 TLS 프로토콜은 유효한 아이덴티티들을 갖지만 맵핑 관계를 갖지 않는 블록체인 노드들 간의 통신 접속의 확립을 방지할 수 없다.
본 출원의 하나 이상의 구현은 TLS 프로토콜에 기초하여 구현될 수 있다. 그러나 각각의 블록체인 노드에 대해, 블록체인 노드가 인증서에 대한 CA에 적용될 때, 블록체인 노드는, CA가 블록체인 노드의 노드 식별자를 블록체인 노드의 인증서에 추가할 수 있도록, 블록체인 노드의 노드 식별자를 CA에 제공해야 한다. 블록체인 노드의 노드 식별자는 블록체인 노드의 고유한 식별자이며 블록체인 노드의 번호일 수 있다.
따라서 각각의 블록체인 노드는 블록체인 노드와의 맵핑 관계를 갖는 블록체인 노드의 노드 식별자를 저장할 수 있다. 도 1에 도시된 단계(S200)에서, 제 1 블록체인 노드는 제 2 블록체인 노드에 의해 전송된, 제 2 블록체인 노드의 인증서를 포함하는 통신 요청을 수신할 수 있다. 단계(S202)에서, 제 1 블록체인 노드는 제 2 블록체인 노드의 인증서로부터 노드 식별자를 획득하고, 획득된 노드 식별자가 제 1 블록체인 노드의 노드 식별자와의 맵핑 관계를 갖는지 여부를 결정할 수 있다.
도 3은 다른 컨소시엄 블록체인 네트워크를 예시하는 개략적인 아키텍처 다이어그램이다. 도 3에 도시된 바와 같이, 복수의 서비스들 및 컨센서스 검증 그룹들이 컨소시엄 블록체인 네트워크에 존재할 수 있고, 컨센서스 검증 그룹들은 상이한 서비스들을 검증하는 것을 담당한다. 이 아키텍처에서, 서비스 노드에 대해 CA에 의해 발행된 인증서는 서비스 노드가 참여하는 서비스의 서비스 식별자를 더 포함할 수 있고, 컨센서스 노드에 대해 CA에 의해 발행된 인증서는 컨센서스 노드가 속한 컨센서스 검증 그룹의 그룹 식별자를 더 포함할 수 있다.
각각의 서비스 노드는 그의 참여 서비스의 서비스 식별자를 추가로 저장할 수 있고, 각각의 컨센서스 노드는 컨센서스 노드를 포함하는 컨센서스 검증 그룹의 그룹 식별자를 추가로 저장할 수 있다. 따라서, 서비스 노드는, 서비스 노드와 통신하기를 요청하는 블록체인 노드의 인증서에 기초하여, 블록체인 노드가 서비스 노드와의 맵핑 관계를 갖는지 여부를 결정할 수 있고; 컨센서스 노드는, 컨센서스 노드와 통신하기를 요청하는 블록체인 노드의 인증서에 기초하여, 블록체인 노드가 컨센서스 노드와의 맵핑 관계를 갖는지 여부를 결정할 수 있다. 이 경우에, 제 1 블록체인 노드가 검증을 수행할 때마다, 제 1 블록체인 노드는, 제 2 블록체인 노드의 인증서 내의 서비스 식별자 또는 그룹 식별자가 존재하는지 여부를 결정하기 위해 제 1 블록체인 노드에 저장된 서비스 식별자들 및 그룹 식별자들을 확인한다(traverse)는 것이 주의되어야 한다.
추가로, CA가 블록체인 네트워크 내의 복수의 블록체인 노드에 대해 인증서를 발행할 때, CA는 블록체인 노드를 포함하는 블록체인 네트워크의 네트워크 식별자를 블록체인 노드의 인증서에 추가할 수 있다. 따라서, 제 2 블록체인 노드의 인증서 내의 네트워크 식별자가 제 1 블록체인 노드를 포함하는 블록체인 네트워크의 네트워크 식별자와는 상이하다고 결정할 때, 제 1 블록체인 노드는 추가의 검증을 수행하지 않고서, 제 2 블록체인 노드에 대한 통신 접속을 확립하는 것을 거부할 수 있다.
본 출원의 이러한 구현에서, 블록체인 노드의 인증서는 블록체인 네트워크 내의 블록체인 노드의 아이덴티티를 표시하기 위한 더 많은 필드들(이를테면, 이전 노드 식별자, 서비스 식별자, 그룹 식별자 및 네트워크 식별자)을 포함할 수 있다는 것을 알 수 있다.
마지막으로, 본 출원의 하나 이상의 구현은 TLS 프로토콜에 기초하는 것이 아니라, 통신 프로토콜은 블록체인 네트워크에 대응하는 통신 프로그램에서 특정되고 구축될 수 있다는 것이 주의되어야 한다. 통신 프로토콜이 도 2에 도시된 단계들을 구현할 수 있다면, 통신 프로토콜은 본 출원에서 제한되지 않는다.
도 2에 도시된 블록체인 노드들 간의 통신을 위한 방법에 기초하여, 본 출원의 구현은 추가로, 도 4에 도시된 바와 같이 블록체인 노드들 간의 통신을 위한 장치를 제공한다. 블록체인 네트워크 내의 블록체인 노드들은 서비스 노드들을 포함하고, 동일한 서비스에 참여하는 서비스 노드들은 맵핑 관계를 갖는다. 장치는, 제 2 블록체인 노드에 의해 전송된 통신 요청을 수신하도록 구성된 수신 모듈(401); 및 제 2 블록체인 노드가 장치와의 맵핑 관계를 갖는지 여부를 결정하고; 만약 그렇다면, 제 2 블록체인 노드에 대한 통신 접속을 확립하거나; 또는, 그렇지 않으면, 제 2 블록체인 노드에 대한 통신 접속을 확립하는 것을 거부하도록 구성되는 결정 및 프로세싱 모듈(402)을 포함한다.
블록체인 노드는 컨센서스 노드를 더 포함한다. 각각의 서비스 노드에 대해, 서비스 노드에 의해 생성된 서비스 데이터에 대한 컨센서스 검증을 수행하는 컨센서스 노드가 서비스 노드와의 맵핑 관계를 갖고; 그리고/또는 각각의 서비스 노드에 대해, 서비스 노드에 의해 생성된 서비스 데이터에 대한 컨센서스 검증을 수행하는 컨센서스 노드들이 맵핑 관계를 갖는다.
수신 모듈(401)은 제 2 블록체인 노드에 의해 전송된, 제 2 블록체인 노드의 인증서를 포함하는 통신 요청을 수신한다.
제 2 블록체인 노드의 인증서는 제 2 블록체인 노드의 노드 식별자를 포함한다.
결정 및 프로세싱 모듈(402)은, 제 2 블록체인 노드의 인증서로부터 노드 식별자를 획득하고, 획득된 노드 식별자에 기초하여, 획득된 노드 식별자가 장치의 노드 식별자와의 맵핑 관계를 갖는지 여부를 결정한다.
결정 및 프로세싱 모듈(402)은, 검증 요청을 제 2 블록체인 노드에 전송하여서, 제 2 블록체인 노드가 검증 요청에 기초하여 장치가 제 2 블록체인 노드와의 맵핑 관계를 갖는지 여부를 결정하고; 만약 그렇다면, 제 2 블록체인 노드는 장치에 대한 통신 접속을 확립하거나; 또는, 그렇지 않으면, 제 2 블록체인 노드는 장치에 대한 통신 접속을 확립하는 것을 거부한다.
도 2에 도시된 모듈 트레이닝 방법에 기초하여, 본 출원의 구현은 추가로, 블록체인 노드들 간의 통신을 위한 디바이스를 제공한다. 디바이스는 하나 이상의 프로세서 및 메모리를 포함하고, 메모리는 프로그램을 저장하고, 프로그램은 제 2 블록체인 노드에 의해 전송된 통신 요청을 수신하는 단계; 제 2 블록체인 노드가 디바이스와의 맵핑 관계를 갖는지 여부를 결정하는 단계; 및 만약 그렇다면, 제 2 블록체인 노드에 대한 통신 접속을 확립하는 단계; 또는, 그렇지 않으면, 제 2 블록체인 노드에 대한 통신 접속을 확립하는 것을 거부하는 단계를 수행하도록 하나 이상의 프로세서에 의해 실행된다.
블록체인 네트워크 내의 블록체인 노드들은 서비스 노드들을 포함하고, 동일한 서비스에 참여하는 서비스 노드들은 맵핑 관계를 갖는다.
본 출원에서의 구현들은 점진적인 방식으로 전부 설명된다. 구현들에서 동일하거나 유사한 부분들에 대해, 이러한 구현들에 대한 상호 참조가 이루어질 수 있다. 각각의 구현은 다른 구현들 간의 차이점에 초점을 맞춘다. 특히, 도 5에 도시된 블록체인 노드들 간의 통신을 위한 디바이스는 기본적으로 방법 구현과 유사하고, 이에 따라 간략하게 설명된다. 관련된 부분들에 대해, 방법 구현에서의 관련된 설명들을 참조한다.
1990년대에, 기술의 개선은 하드웨어 개선(예를 들어, 다이오드, 트랜지스터 및 스위치와 같은 회로 구조들의 개선)과 소프트웨어 개선(방법 절차에 대한 개선) 사이에서 명확히 구분될 수 있었다. 그러나, 기술들의 발전과 함께, 다수의 방법 절차들의 개선은 하드웨어 회로 구조의 직접적인 개선으로서 간주될 수 있다. 거의 모든 설계자들은 개선된 방법 절차를 하드웨어 회로에 프로그래밍하여 대응하는 하드웨어 회로 구조를 획득한다. 따라서, 방법 절차의 개선은 하드웨어 엔티티 모듈을 사용하여 구현될 수 없다고 말할 수 없다. 예를 들어, 프로그래밍 가능 로직 디바이스(programmable logic device; PLD)(예를 들어, 필드 프로그래밍 가능 게이트 어레이(field programmable gate array; FPGA))는 집적 회로의 유형이다. PLD의 로직 기능은 사용자에 의해 실행되는 컴포넌트 프로그래밍에 의해 결정된다. 설계자들은 전용 집적 회로 칩을 설계 및 생산하도록 칩 제조자에 요구하지 않고 디지털 시스템을 단일 PLD 내에 "통합"하는 프로그래밍을 수행한다. 또한, 집적 회로 칩을 수동으로 생산하는 대신, 프로그래밍은 대부분, 프로그램 개발 동안 사용되는 소프트웨어 컴파일러와 유사한 "로직 컴파일러" 소프트웨어에 의해 구현된다. 컴파일 전의 오리지널 코드는 또한 하드웨어 기술 언어(hardware description language; HDL)로서 지칭되는 특정된 프로그래밍 언어로 작성된다. ABEL(Advanced Boolean Expression Language), AHDL(Altera Hardware Description Language), Confluence, CUPL(Comell 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가 가장 흔히 사용된다. 당업자는 또한 방법 절차가 단지 논리적으로 프로그래밍될 필요가 있고, 이전의 하드웨어 기술 언어들을 사용하여 집적 회로에 프로그래밍되어서, 논리적 방법 절차를 구현하는 하드웨어 회로가 쉽게 획득될 수 있다는 것을 이해해야 한다.
제어기는 임의의 적합한 방식으로 구현될 수 있다. 예를 들어, 제어기는 마이크로프로세서, 프로세서, (마이크로)프로세서에 의해 실행될 수 있는 컴퓨터-판독 가능 프로그램 코드(예를 들어, 소프트웨어 또는 펌웨어)를 저장하는 컴퓨터-판독 가능 매체, 로직 게이트, 스위치, 주문형 집적 회로(ASIC), 프로그래밍 가능 로직 제어기 또는 임베디드 마이크로제어기일 수 있다. 제어기의 예들은 다음의 마이크로제어기들 즉, ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20 및 Silicone Labs C8051F320를 포함(그러나 이에 제한되지 않음)한다. 메모리 제어기는 또한 메모리의 제어 로직의 부분으로서 구현될 수 있다. 또한, 당업자는 제어기가 컴퓨터-판독 가능 프로그램 코드의 방식으로만 구현될 수 있다는 것을 알고 있으며, 방법의 단계들은 제어기가 로직 게이트, 스위치, 주문형 집적 회로, 프로그래밍 가능 로직 제어기, 임베디드 마이크로제어기 등의 형태들로 동일한 기능들을 추가로 구현하는 것을 가능하게 하도록 논리적으로 프로그래밍될 수 있다. 따라서, 제어기는 하드웨어 컴포넌트로서 간주될 수 있고, 제어기에 포함되고 다양한 기능들을 구현하도록 구성된 장치는 또한 하드웨어 컴포넌트에서의 구조로서 간주될 수 있다. 대안적으로, 다양한 기능들을 구현하도록 구성된 장치는 하드웨어 컴포넌트의 구조 및 방법을 구현하는 소프트웨어 모듈 둘 모두로서 간주될 수 있다.
이전의 구현들에서 설명된 시스템, 장치, 모듈 또는 유닛은 컴퓨터 칩 또는 엔티티에 의해 구현될 수 있거나, 또는 특정 기능을 갖는 제품에 의해 구현될 수 있다. 통상적인 구현 디바이스는 컴퓨터이다. 컴퓨터는 예를 들어, 개인용 컴퓨터, 랩톱 컴퓨터, 셀룰러 폰, 카메라 폰, 스마트폰, 개인용 디지털 보조기기, 미디어 플레이어, 내비게이션 디바이스, 이메일 디바이스, 게임 콘솔, 태블릿 컴퓨터, 웨어러블 디바이스 또는 이들 디바이스들의 임의의 조합일 수 있다.
설명을 용이하게 하기 위해, 이전의 장치는 기능들을 다양한 유닛들로 분할하여 설명된다. 물론, 본 출원이 구현될 때, 각각의 유닛의 기능들은 소프트웨어 및/또는 하드웨어의 하나 이상의 부분에서 구현될 수 있다.
당업자는, 본 출원의 하나 이상의 구현은 방법, 시스템 또는 컴퓨터 프로그램 제품으로서 제공될 수 있다는 것을 이해해야 한다. 따라서, 본 출원의 하나 이상의 구현은, 하드웨어 단독 구현들, 소프트웨어 단독 구현들 또는 소프트웨어와 하드웨어의 조합을 갖는 구현들의 형태를 사용할 수 있다. 게다가, 본 출원의 하나 이상의 구현은 컴퓨터-사용 가능 프로그램 코드들을 포함하는 하나 이상의 컴퓨터-사용 가능 저장 매체(디스크 메모리, CD-ROM, 광학 메모리 등을 포함함(그러나 이에 제한되지 않음)) 상에 구현되는 컴퓨터 프로그램 제품의 형태를 사용할 수 있다.
본 출원은 본 출원의 하나 이상의 구현에 기초하여 방법, 디바이스(시스템) 및 컴퓨터 프로그램 제품의 흐름도들 및/또는 블록도들을 참조하여 설명된다. 컴퓨터 프로그램 명령어들이 흐름도들 및/또는 블록도들의 각각의 프로세스 및/또는 각각의 블록 및 흐름도들 및/또는 블록도들의 프로세스 및/또는 블록의 조합을 구현하는 데 사용될 수 있다는 것이 이해되어야 한다. 이들 컴퓨터 프로그램 명령어들은 머신을 생성하도록 범용 컴퓨터, 전용 컴퓨터, 임베디드 프로세서 또는 임의의 다른 프로그래밍 가능 데이터 프로세싱 디바이스의 프로세서에 제공될 수 있어서, 컴퓨터 또는 임의의 다른 프로그래밍 가능 데이터 프로세싱 디바이스의 프로세서에 의해 실행되는 명령어들은, 흐름도들의 하나 이상의 절차에서 그리고/또는 블록도들 내의 하나 이상의 블록에서 특정 기능을 구현하기 위한 장치를 생성하게 된다.
이들 컴퓨터 프로그램 명령어들은 컴퓨터 또는 임의의 다른 프로그래밍 가능 데이터 프로세싱 디바이스들이 특정 방식으로 동작하도록 지시할 수 있는 컴퓨터-판독 가능 메모리에 저장될 수 있어서, 컴퓨터-판독 가능 메모리에 저장된 명령어들은 명령 장치를 포함하는 가공품(artifact)을 생성할 수 있게 된다. 명령 장치는 흐름도들의 하나 이상의 절차에서 그리고/또는 블록도들의 하나 이상의 블록에서 특정 기능을 구현한다.
이들 컴퓨터 프로그램 명령어들은 컴퓨터 또는 다른 프로그래밍 가능 데이터 프로세싱 디바이스 상에 로딩될 수 있어서, 일련의 동작들 및 단계들이 컴퓨터 또는 다른 프로그래밍 가능 디바이스 상에서 수행되어 컴퓨터-구현 프로세싱을 생성하게 된다. 따라서, 컴퓨터 또는 다른 프로그래밍 가능 디바이스 상에서 실행되는 명령어들은 흐름도들의 하나 이상의 절차에서 그리고/또는 블록도들의 하나 이상의 블록에서 특정 기능을 구현하기 위한 단계들을 제공한다.
통상적인 구성에서, 컴퓨팅 디바이스는 하나 이상의 중앙 처리 장치(CPU), 입력/출력 인터페이스, 네트워크 인터페이스 및 메모리를 포함한다.
메모리는 컴퓨터 판독 가능 매체에 있는 비-영구적 메모리, RAM(random access memory), 비-휘발성 메모리 및/또는 다른 형태, 예를 들어, ROM(read-only memory) 또는 플래시 메모리(플래시 RAM)를 포함할 수 있다. 메모리는 컴퓨터 판독 가능 매체의 예이다.
컴퓨터 판독 가능 매체는 임의의 방법 또는 기술을 사용함으로써 정보를 저장할 수 있는 영구적, 비-영구적, 이동식 및 비이동식 매체들을 포함한다. 정보는 컴퓨터-판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 다른 데이터일 수 있다. 컴퓨터-저장 매체의 예들은, PRAM(parameter random access), SRAM(static random access memory), DRAM(dynamic random access memory), 다른 유형의 RAM(random access memory), ROM(read-only memory), EEPROM(electrically erasable programmable read-only memory), 플래시 메모리 또는 다른 메모리 기술, CD-ROM(compact disc read-only memory), DVD(digital versatile disc) 또는 다른 광학 저장소, 카세트 자기 테이프, 테이프 및 디스크 저장 또는 다른 자기 저장 디바이스, 또는 컴퓨팅 디바이스가 액세스할 수 있는 정보를 저장하도록 구성될 수 있는 임의의 다른 비-전송 매체들을 포함(그러나 이에 제한되지 않음)한다. 본 출원에서 설명된 바와 같은 컴퓨터-판독 가능 매체는 변조된 데이터 신호 및 캐리어와 같은 일시적인 컴퓨터-판독 가능 매체들(일시적인 매체들)을 포함하지 않는다.
"포함하다(include, comprise)"라는 용어 또는 그것의 임의의 파생어들은 비-배타적인 포함을 커버하도록 의도되어서, 엘리먼트들의 리스트를 포함하는 프로세스, 방법, 상품 또는 디바이스가 이러한 엘리먼트들을 포함할 뿐만 아니라, 명시적으로 나열되지 않은 다른 엘리먼트들도 포함하거나, 또는 그러한 프로세스, 방법, 상품 또는 디바이스에 고유한 엘리먼트들을 더 포함한다는 것이 추가로 주의되어야 한다. 더 많은 제약들 없이, "~를 포함하는"이란 문장에 의해 설명된 엘리먼트는 엘리먼트를 포함하는 프로세스, 방법, 상품 또는 디바이스에 다른 동일한 엘리먼트를 더 포함한다.
당업자는, 본 출원의 하나 이상의 구현은 방법, 시스템 또는 컴퓨터 프로그램 제품으로서 제공될 수 있다는 것을 이해해야 한다. 따라서, 본 출원은, 하드웨어 단독 구현들, 소프트웨어 단독 구현들 또는 소프트웨어와 하드웨어의 조합을 갖는 구현들의 형태를 사용할 수 있다. 게다가, 본 출원은 컴퓨터-사용 가능 프로그램 코드들을 포함하는 하나 이상의 컴퓨터-사용 가능 저장 매체(디스크 메모리, CD-ROM, 광학 메모리 등을 포함(그러나 이에 제한되지 않음)함) 상에 구현되는 컴퓨터 프로그램 제품의 형태를 사용할 수 있다.
본 출원은 컴퓨터에 의해 실행되는 컴퓨터 실행 가능 명령어들, 예를 들어, 프로그램 모듈의 일반적인 맥락에서 설명될 수 있다. 일반적으로, 프로그램 모듈은 특정 작업을 실행하거나 특정 추상 데이터 유형을 구현하기 위한 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 본 출원은 또한, 작업들이 통신 네트워크를 이용하여 연결된 원격 프로세싱 디바이스들에 의해 수행되는 분산 컴퓨팅 환경들에서 실시될 수 있다. 분산 컴퓨팅 환경들에서, 프로그램 모듈들은 저장 디바이스들을 포함하는 로컬 및 원격 컴퓨터 저장 매체들 둘 모두에 위치될 수 있다.
이전의 구현들은 단지 본 출원의 구현들일 뿐이며, 본 출원을 제한하려는 것은 아니다. 당업자는 본 출원에 다양한 수정들 및 변동들을 가할 수 있다. 본 출원의 사상 및 원리를 벗어나지 않고 이루어지는 임의의 수정, 등가의 교체 또는 개선은 본 출원의 청구항들의 범위에 속해야 한다.
도 6은 본 개시내용의 구현에 따라, 블록체인 노드들 간의 통신을 위한 컴퓨터-구현 방법(600)의 예를 예시하는 흐름도이다. 설명을 명료하게 하기 위해, 이어지는 설명은 이 설명의 다른 도면들의 맥락에서 방법(600)을 일반적으로 설명한다. 그러나, 방법(600)은 예를 들어, 임의의 시스템, 환경, 소프트웨어 및 하드웨어, 또는 시스템들, 환경들, 소프트웨어 및 하드웨어의 조합에 의해 적절히 수행될 수 있다는 것이 이해될 것이다. 일부 구현들에서, 방법(600)의 다양한 단계들은 병렬로, 조합하여, 루프로, 또는 임의의 순서로 실행될 수 있다.
일반적으로, 블록체인 내의 2개의 노드들 사이에 통신 접속이 확립되기 전에, 통신을 수행하도록 요청받은 노드들 중 하나 또는 둘 모두는, 통신 접속을 확립하고 통신이 행해지게 하기 전에 다른 노드의 아이덴티티를 검증할 수 있다. 특히, 블록체인 내의 노드들 중 적어도 일부는 서비스 노드들로 간주될 수 있으며, 여기서 서비스 노드들은 서비스에 참여하는 기관의 서버일 수 있고, 서비스 노드들은 서비스를 실행하도록 설치된 통신 프로그램을 통해 데이터를 교환한다. 동일한 서비스에 참여하는 서비스 노드들은 서비스 관계를 갖는 것으로 간주될 수 있으며, 여기서 서비스 관계는 2개의 서비스 노드들 간의 맵핑 관계에 대응한다. 블록체인 내의 2개의 노드들이 동일한 서비스에 참여할 때, 2개의 노드들은 맵핑 관계를 갖는 것으로 간주되고 통신 접속이 확립되도록 허용할 수 있다. 2개의 노드들이 동일한 서비스에 참여하지 않는 경우, 통신 접속이 거부되어, 잠재적으로 동일한 서비스에 참여하지 않는 노드들 간의 인가되지 않은 데이터의 공유를 회피할 수 있다.
일부 경우들에서, 블록체인 노드는 컨센서스 노드를 포함할 수 있고, 여기서 컨센서스 노드들은 서비스에 참여하는 서비스 노드에 의해 생성된 서비스 데이터에 대해 컨센서스 검증을 수행하는 것을 담당한다. 각각의 서비스 노드에 대해, 그 서비스 노드에 의해 생성된 서비스 데이터에 대한 컨센서스 검증을 수행하는 컨센서스 노드가 서비스 노드와의 맵핑 관계를 갖는 것으로 간주될 수 있다. 부가적으로, 각각의 서비스 노드에 대해, 서비스 노드에 의해 생성된 서비스 데이터에 대한 컨센서스 검증을 수행하는 상이한 컨센서스 노드도 또한 맵핑 관계를 가질 수 있다.
방법(600)의 예시로 돌아가면, 602에서, 블록체인 네트워크 내의 제 1 노드는 블록체인 네트워크 내의 제 2 노드로부터 통신 요청을 수신한다. 602로부터, 방법(600)은 604로 진행된다.
604에서, 제 2 노드가 제 1 노드와의 맵핑 관계를 갖는지 여부에 관한 결정이 내려진다. 제 2 노드가 제 1 노드와의 맵핑 관계를 갖는 것으로 결정되는 경우, 방법(600)은 606으로 진행된다. 그렇지 않고, 제 2 노드가 제 1 노드와의 맵핑 관계를 갖지 않는 것으로 결정되는 경우, 방법(600)은 608로 진행된다.
제 2 노드가 제 1 노드와의 맵핑 관계를 갖는지 여부를 결정하는 것은 다양한 방식들로 수행될 수 있다. 일 경우에서, 제 1 노드 및 제 2 노드가 동일하거나 상이한 서비스들에 참여하는지 여부에 관한 일반적인 결정이 내려질 수 있다. 2개의 노드들이 동일한 서비스에 참여하는 경우, 맵핑 관계의 유형인 서비스 관계가 노드들 사이에 존재하고, 맵핑 관계가 존재하는 것으로 결정된다. 2개의 노드들이 동일한 서비스에 참여하는 것이 아니라, 오히려 상이하고 비-중첩 서비스에 참여하는 경우, 노드들 사이에 어떠한 맵핑 관계가 존재하지 않는 것으로 결정된다.
이전에 언급된 바와 같이, 제 1 노드 및 제 2 노드 둘 모두가 공통 서비스 노드와 연관된 컨센서스 노드일 때, 제 1 노드가 서비스 노드이고 제 2 노드가 제 1 노드의 컨센서스 노드일 때, 또는 제 1 노드가 제 2 노드의 컨센서스 노드일 때, 맵핑 관계가 노드들 사이에 존재하는 것으로 결정된다.
일부 경우들에서, 서비스 노드들 및 컨센서스 노드를 둘 모두를 포함하는 블록체인 내의 특정 노드는 그 노드와의 맵핑 관계를 갖는 노드들의 리스트를 구성하고, 생성하고, 유지하거나 또는, 그렇지 않으면, 이에 대한 액세스를 가질 수 있다. 즉, 특정 블록체인 노드는 맵핑 관계에 기초하여 신뢰 관계가 존재하는 블록체인 내의 다른 노드들을 식별하는 정보를 저장하거나 사용할 수 있다. 일 예에서, 특정 노드는 특정 노드에 대한 맵핑 관계를 갖는 각각의 노드의 노드 식별자를 저장할 수 있다. 각각의 노드의 노드 식별자는 그러한 노드들에 대해 발행된 디지털 인증서에 포함되거나 또는, 그렇지 않으면, 이와 연관될 수 있다. 예를 들어, 블록체인 노드가 디지털 인증서에 대한 CA(certificate authority)에 적용될 때, 블록체인 노드는, CA가 블록체인 노드의 노드 식별자를 블록체인 노드의 디지털 인증서에 추가할 수 있도록 노드의 노드 식별자를 CA에 제공할 수 있다. 블록체인 노드의 노드 식별자는 블록체인 노드의 고유한 식별자일 수 있으며, 일부 경우들에서, 블록체인 노드의 번호일 수 있다. 따라서, 특정 노드는 특정 노드가 맵핑 관계를 갖는, 다른 노드들 중 적어도 일부의 고유한 노드 식별자들을 저장할 수 있다. 그러한 경우들에서, 맵핑 관계가 존재하는지 여부를 결정하는 것은 (이를테면, 요청에 포함된 요청 노드의 디지털 인증서로부터) 요청 노드의 노드 식별자를 획득하는 것 그리고 획득된 노드 식별자가 특정 노드에 대한 맵핑 관계를 갖는 노드와 연관되는지 여부를 결정하는 것을 포함한다.
또 다른 경우들에서, CA는 서비스 노드에 대한 디지털 인증서를 발행할 수 있으며, 여기서 디지털 인증서는 서비스 노드가 참여하는 서비스의 서비스 식별자를 포함한다. 컨센서스 노드들은 또한, 컨센서스 노드가 속한 컨센서스 검증 그룹의 그룹 식별자를 포함할 수 있는 디지털 인증서를 CA에 의해 발급받을 수 있다. 각각의 서비스 노드는 그의 참여 서비스의 서비스 식별자를 저장하거나 또는, 그렇지 않으면, 이와 연관될 수 있고, 각각의 컨센서스 노드는 컨센서스 노드를 포함하는 컨센서스 검증 그룹의 그룹 식별자를 저장할 수 있다. 그 정보를 사용하여, 서비스 노드는 통신 접속을 요청하는 블록체인 노드가 서비스 노드와의 맵핑 관계를 갖는지 여부를 결정할 수 있고, 컨센서스 노드는, 컨센서스 노드와 통신하기를 요청하는 블록체인 노드의 인증서에 기초하여, 블록체인 노드가 컨센서스 노드와의 맵핑 관계를 갖는지 여부를 결정할 수 있다. 이 경우에, 제 1 블록체인 노드가 검증을 수행할 때마다, 제 1 블록체인 노드는, 제 2 블록체인 노드의 인증서 내의 서비스 식별자 또는 그룹 식별자가 존재하는지 여부를 결정하기 위해 제 1 블록체인 노드에 저장된 서비스 식별자들 및 그룹 식별자들을 확인한다는 것이 주의되어야 한다.
뿐만 아니라, CA가 블록체인 네트워크 내의 복수의 블록체인 노드에 대해 인증서를 발행할 때, CA는 블록체인 노드를 포함하는 블록체인 네트워크의 네트워크 식별자를 블록체인 노드의 인증서에 추가할 수 있다. 따라서, 제 2 블록체인 노드의 인증서 내의 네트워크 식별자가 제 1 블록체인 노드를 포함하는 블록체인 네트워크의 네트워크 식별자와는 상이하다고 결정할 때, 제 1 블록체인 노드는 추가의 검증을 수행하지 않고서, 제 2 블록체인 노드에 대한 통신 접속을 확립하는 것을 거부할 수 있다.
일 구현에서, 블록체인 노드의 인증서는 블록체인 네트워크 내의 블록체인 노드의 아이덴티티를 표시하기 위한 더 많은 필드들(이를테면, 노드 식별자, 서비스 식별자, 그룹 식별자 및 네트워크 식별자)을 포함할 수 있다.
608에서, 제 1 노드와 제 2 노드 사이에 어떠한 맵핑 관계도 존재하지 않는 것으로 결정한 후에, 제 1 노드는 이 결정에 기초하여 제 2 노드에 대한 통신을 확립하는 것을 거부할 수 있다. 608 후에, 방법(600)이 중지될 수 있다.
언급된 바와 같이, 제 1 노드와 제 2 노드 사이에 맵핑 관계가 존재하는 것으로 결정될 때, 방법(600)은 606에서 계속된다. 블록(606)에서, 블록체인의 통신 프로토콜이 양방향 검증을 요구하는지 여부에 관한 결정이 내려진다. 만약 아니라면, 방법(600)은 610에서 계속되며, 여기서 제 1 노드는 결정된 맵핑 관계에 기초하여 제 1 노드로부터 제 2 노드로의 통신 접속을 확립할 수 있다. 610 후에, 방법(600)이 중지될 수 있다. 그러나, 양방향 검증이 요구되는 경우, 방법(600)은 612로 진행한다.
612에서, 제 1 노드는 제 1 노드로부터 제 2 노드로 검증 요청을 전송할 수 있다. 요청에 대한 응답으로, 제 2 노드는, 614에서, 제 1 노드가 제 2 노드에 대한 맵핑 관계를 갖는지 여부에 관한 결정을 수행한다. 만약 그렇다면, 제 2 노드는 616에서, 제 1 노드에 대한 통신 접속을 확립할 수 있는 반면, 만약 아니라면, 제 2 노드는 618에서, 제 1 노드에 대한 시도된 통신 접속을 거부할 수 있다. 양방향 검증을 요구함으로써, 블록체인 내의 통신 보안성이 개선 및 강화되어, 통신 접속을 확립하기 전에 양방향으로 통신들이 허용되는 것을 보장한다. 616 또는 618 후에, 방법(600)은 중지될 수 있다.
기존 블록체인 네트워크 이를테면, 기존 컨소시엄 블록체인 네트워크에서, 블록체인 노드들 간의 통신은 TLS(Transport Layer Security) 프로토콜에 기초할 수 있다. 일반적으로, 각각의 블록체인 노드는 신뢰 CA에 의해 발행된 디지털 인증서를 보유하며, 디지털 인증서는 블록체인 노드(서버)의 속성 정보(예를 들어, 국가명, 지방명, 도시명 및 서버가 속한 기관명 및 서버의 도메인 이름) 외에도 CA의 서명을 포함한다. TLS 프로토콜에 기초하여, 통신 접속을 확립할 필요가 있는 2개의 블록체인 노드들은, 그들의 아이덴티티들이 CA에 의해 인증됨을 검증하기 위해 그들의 디지털 인증서들을 교환할 필요가 있다(인증서들은 CA 서명들을 포함함). 2개의 블록체인 노드들은 그들의 아이덴티티들이 유효한 경우 통신 접속을 확립할 수 있다.
설명된 솔루션의 구현들은 중요한 기술적 이점들을 제공한다. 동일한 서비스에 참여하는 서비스 노드들에 저장된 서비스 데이터는 동일한 서비스의 서비스 데이터이기 때문에, 2개의 서비스 노드들(이들 서비스 노드들은 동일한 서비스에 참여함) 사이에서 개인 데이터 유출의 위험이 없다. 유사하게, 동일한 서비스에 대해 컨센서스 검증을 수행하는 컨센서스 노드들은 서로 서비스 데이터를 도용할 필요가 없고, 서비스 노드에 의해 생성된 서비스 데이터에 대한 컨센서스 검증을 수행하는 컨센서스 노드는 서비스 노드에 저장된 서비스 데이터를 도용할 필요가 없다. 따라서, 맵핑 관계를 갖는 블록체인 노드들(서비스 노드들 또는 컨센서스 노드들에 무관하게) 간에 통신 접속을 확립될 수 있고, 개인 데이터 유출의 위험이 없다.
설명된 솔루션들은 블록체인 내의 노드들 간의 통신 접속들을 확립하기 전에 노드들 간에 만족스러운 관계들이 존재한다는 것을 보장할 수 있다. 그렇게 함으로써, 블록체인 내의 통신 보안성은 기존 맵핑 관계를 갖는 노드들에 대해 허용되는 노드간 연결(inter-nodal connection)들을 제한함으로써 증가된다. 기존 맵핑 관계는 공통 서비스에 참여한 노드들에 기초할 수 있으며, 여기서 그 서비스와 연관된 서비스 데이터는 이미 각각의 노드가 이용 가능하다. 동일한 서비스에 참여하지 않는 서비스 노드들 사이에서 통신 접속들이 확립되지 않고 사실상 거부되기 때문에, 특정 서비스에 참여하지 않는 서비스 노드들은 특정 서비스에 참여하는 서비스 노드에 저장된 서비스 데이터를 도용하거나 가로채는 데 사용될 수 없으며, 그리하여 서비스의 서비스 데이터 내의 개인 데이터의 보안성을 보장한다.
본 명세서에서 설명된 실시예들 및 동작들은, 본 명세서에서 개시된 구조들 및 이 구조들 중 하나 이상의 것들의 조합들을 포함하는 디지털 전자 회로나 컴퓨터 소프트웨어로, 펌웨어로, 또는 하드웨어로 구현될 수 있다. 동작들은, 하나 이상의 컴퓨터-판독 가능 저장 디바이스 상에 저장되거나 다른 소스들로부터 수신된 데이터에 대하여 데이터 프로세싱 장치에 의해 수행되는 동작들로서 구현될 수 있다. 데이터 프로세싱 장치, 컴퓨터 또는 컴퓨팅 디바이스는 예로서, 프로그래밍 가능 프로세서, 컴퓨터, 칩 상의 시스템, 또는 다수의 언급한 것들 또는 이들의 조합들을 포함한, 데이터를 프로세싱하기 위한 장치, 디바이스들 및 머신들을 포함할 수 있다. 장치는 특수 목적 로직 회로 예를 들어, CPU(central processing unit), FPGA(field programmable gate array), 또는 ASIC(application-specific integrated circuit)를 포함할 수 있다. 장치는 또한 문제의 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제(예를 들어, 하나의 운영 체제 또는 운영 체제들의 조합), 크로스-플랫폼 런타임 환경, 가상 머신 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 장치 및 실행 환경은 웹 서비스들, 분산 컴퓨팅 및 그리드 컴퓨팅 인프라스트럭처(grid computing infrastructure)들과 같은 다양한 상이한 컴퓨팅 모델 인프라스트럭처들을 실현할 수 있다.
컴퓨터 프로그램(예를 들어, 프로그램, 소프트웨어, 소프트웨어 애플리케이션, 소프트웨어 모듈, 소프트웨어 유닛, 스크립트, 또는 코드로서 또한 알려짐)은 컴파일되거나 인터프리팅된 언어들, 선언형 또는 절차형 언어들을 포함한 임의의 형태의 프로그래밍 언어로 작성될 수 있으며, 그것은 자립형 프로그램 또는 모듈, 컴포넌트, 서브루틴, 객체 또는 컴퓨팅 환경에서 사용하기에 적합한 다른 유닛을 포함한 임의의 형태로 배포될 수 있다. 프로그램은, 다른 프로그램들 또는 데이터(예를 들어, 마크업 언어 문서에 저장되는 하나 이상의 스크립트)를 유지하는 파일의 부분에, 문제의 프로그램에 전용된 단일 파일에, 또는 다수의 통합된 파일들(예를 들어, 하나 이상의 모듈, 서브-프로그램 또는 코드의 부분을 저장하는 파일들)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 사이트에 위치되거나 다수의 사이트들에 걸쳐 분산되어 통신 네트워크에 의해 상호연결되는 다수의 컴퓨터들 상에서 실행되거나 또는 하나의 컴퓨터 상에서 실행될 수 있다.
컴퓨터 프로그램의 실행을 위한 프로세서들은, 예로서, 범용 및 특수-목적 마이크로프로세서들 둘 모두 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 판독-전용 메모리 또는 랜덤-액세스 메모리 또는 둘 모두로부터 명령어들 및/또는 데이터를 수신할 것이다. 컴퓨터의 필수 엘리먼트들은 명령어들에 따라 액션들을 수행하기 위한 프로세서 및 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스로부터 데이터를 수신하거나 또는 이들에 데이터를 전달하거나, 또는 둘 모두를 수행하도록 동작 가능하게 커플링되거나, 또는 이들을 포함할 것이다. 컴퓨터는 다른 디바이스, 예를 들어, 모바일 디바이스, 개인용 디지털 보조기기(PDA), 게임 콘솔, 글로벌 포지셔닝 시스템(GPS) 수신기 또는 휴대용 저장 디바이스에 임베딩될 수 있다. 컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적합한 디바이스들은 예로서 반도체 메모리 디바이스들, 자기 디스크들 및 광-자기 디스크들을 포함하는 비-휘발성 메모리 매체들 및 메모리 디바이스들을 포함한다. 프로세서 및 메모리는 특수-목적 로직 회로에 의해 보완되거나 또는 거기에 통합될 수 있다.
모바일 디바이스들은 핸드셋들, 사용자 장비(UE), 모바일 전화(예를 들어, 스마트 폰들), 태블릿들, 웨어러블 디바이스(예를 들어, 스마트 와치들 및 스마트 안경들), 인체 내부의 이식 디바이스(예를 들어, 바이오 센서들, 달팽이관 이식(cochlear implant)), 또는 다른 유형들의 모바일 디바이스들을 포함할 수 있다. 모바일 디바이스들은 다양한 통신 네트워크들(아래에서 설명됨)에 무선으로(예를 들어, 무선 주파수(RF) 신호들을 사용하여) 통신할 수 있다. 모바일 디바이스들은 모바일 디바이스들의 현재 환경의 특성들을 결정하기 위한 센서들을 포함할 수 있다. 센서들은 카메라들, 마이크로폰들, 근접도 센서들, GPS 센서들, 모션 센서들, 가속도계들, 주변 광 센서들, 습도 센서들, 자이로스코프들, 컴퍼스들, 기압계들, 지문 센서들, 얼굴 인식 시스템들, RF 센서들(예를 들어, Wi-Fi 및 셀룰러 라디오들), 열 센서들 또는 다른 유형들의 센서들을 포함할 수 있다. 예를 들어, 카메라들은 이동가능 또는 고정 렌즈들을 갖는 전방 또는 후방 카메라들, 플래시, 이미지 센서 및 이미지 프로세서를 포함할 수 있다. 카메라는 얼굴 및/또는 홍채 인식을 위해 세부사항들을 캡처할 수 있는 메가픽셀 카메라일 수 있다. 카메라는, 데이터 프로세서 및 메모리에 저장되거나 원격으로 액세스되는 인증 정보와 함께 얼굴 인식 시스템을 형성할 수 있다. 얼굴 인식 시스템 또는 하나 이상의 센서, 예를 들어, 마이크로폰들, 모션 센서들, 가속도계들, GPS 센서들 또는 RF 센서들이 사용자 인증을 위해 사용될 수 있다.
사용자와의 상호작용을 제공하기 위해, 실시예들은 디스플레이 디바이스 및 입력 디바이스, 예를 들어 사용자에게 정보를 디스플레이하기 위한 액정 디스플레이(LCD) 또는 유기 발광 다이오드(OLED)/가상 현실(VR)/증강 현실(AR) 디스플레이 및 사용자가 컴퓨터에 입력을 제공할 수 있게 하는 터치스크린, 키보드 및 포인팅 디바이스(pointing device)를 갖는 컴퓨터 상에서 구현될 수 있다. 다른 종류들의 디바이스들은 또한, 사용자와의 상호작용을 제공하기 위해 사용될 수 있으며, 예를 들어, 사용자에게 제공된 피드백은 임의의 형태의 감각 피드백, 예를 들어, 시각적 피드백, 청각적 피드백, 또는 촉각적 피드백일 수 있고; 사용자로부터의 입력은 음향, 스피치, 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다. 게다가, 컴퓨터는 사용자에 의해 사용되는 디바이스에 문서들을 전송하고 이 디바이스로부터 문서들을 수신함으로써, 예를 들어, 웹 브라우저로부터 수신된 요청들에 대한 응답으로 사용자의 클라이언트 디바이스 상의 웹 브라우저에 웹 페이지들을 전송함으로써, 사용자와 상호작용할 수 있다.
실시예들은 유선 또는 무선 디지털 데이터 통신(또는 이들의 조합)의 임의의 형태 또는 매체, 예를 들어 통신 네트워크에 의해 상호 연결된 컴퓨팅 디바이스들을 사용하여 구현될 수 있다. 상호 연결된 디바이스의 예들은, 통상적으로 통신 네트워크를 통해 상호작용하는, 일반적으로 서로 떨어져 있는 클라이언트 및 서버이다. 클라이언트 예를 들어, 모바일 디바이스는 스스로, 예를 들어, 구매, 판매, 제공, 전송, 또는 대여 트랜잭션들을 수행하거나 이를 인가하는 서버를 이용하여 또는 서버를 통해 트랜잭션들을 수행할 수 있다. 이러한 트랜잭션은 액션 및 응답이 시간적으로 근접하도록 실시간으로 이루어질 수 있으며; 예를 들어 개인은 액션 및 응답이 실질적으로 동시에 발생하는 것으로 지각하고, 개인의 액션 이후의 응답에 대한 시간차가 1밀리초(ms) 미만 또는 1초(s)미만이거나, 또는 응답은 시스템의 프로세싱 제한들을 고려하여 의도적인 지연이 없다.
통신 네트워크들의 예들은 LAN(Local Area Network), RAN(Radio Access Network), MAN(Metropolitan Area Network) 및 WAN(Wide Area Network)을 포함한다. 통신 네트워크는 인터넷, 다른 통신 네트워크 또는 통신 네트워크들의 조합 중 일부 또는 전부를 포함할 수 있다. 정보는 LTE(Long Term Evolution), 5Q IEEE 802, 인터넷 프로토콜(IP) 또는 다른 프로토콜들 또는 프로토콜들의 조합을 포함하는 다양한 프로토콜들 및 표준들에 따라 통신 네트워크 상에서 송신될 수 있다. 통신 네트워크는 연결된 컴퓨팅 디바이스 사이에서 음성, 비디오, 생체측정(biometric) 또는 인증 데이터 또는 다른 정보를 송신할 수 있다.
별개의 구현들로 설명된 특징들은 단일 구현에서 조합하여 구현될 수 있는 반면, 단일 구현으로서 설명된 특징들은 다수의 구현들에서, 별개로 또는 임의의 적합한 서브-조합으로 구현될 수 있다. 특정 순서로 설명되고 주장되는 동작들은 특정 순서를 요구하는 것으로 또는 모든 예시된 동작들이 반드시 수행되어야 하는 것으로 이해되어서는 안 된다(일부 동작들은 선택적일 수 있음). 적절하면, 멀티태스킹 또는 병렬-프로세싱(또는 멀티태스킹과 병렬-프로세싱의 조합)이 수행될 수 있다.

Claims (12)

  1. 블록체인 노드들 간의 통신을 위한 방법에 있어서,
    블록체인 네트워크 내의 블록체인 노드들은 서비스 노드들을 포함하고, 동일한 서비스에 참여하는 서비스 노드들은 맵핑 관계를 갖고;
    상기 방법은,
    제 2 블록체인 노드에 의해 전송된 통신 요청 - 상기 통신 요청은 상기 제 2 블록체인 노드의 인증서를 포함하고, 상기 제 2 블록체인 노드의 인증서는 복수의 식별자를 포함함 - 을 제 1 블록체인 노드에 의해 수신하는 단계;
    상기 제 2 블록체인 노드의 인증서로부터 상기 복수의 식별자를 획득하는 단계;
    상기 복수의 식별자에 기초하여, 상기 제 2 블록체인 노드가 상기 제 1 블록체인 노드와의 맵핑 관계를 갖는지 여부를 결정하는 단계; 및
    상기 제 2 블록체인 노드가 상기 제 1 블록체인 노드와의 맵핑 관계를 갖는 것으로 결정되는 경우, 상기 제 2 블록체인 노드에 대한 통신 접속을 확립하는 단계; 또는
    상기 제 2 블록체인 노드가 상기 제 1 블록체인 노드와의 맵핑 관계를 갖지 않는 것으로 결정되는 경우, 상기 제 2 블록체인 노드에 대한 통신 접속을 확립하는 것을 거부하는 단계
    를 포함하는, 블록체인 노드들 간의 통신을 위한 방법.
  2. 제 1 항에 있어서,
    상기 블록체인 노드는 하나 이상의 컨센서스 노드(consensus node)를 더 포함하고;
    각각의 서비스 노드에 대해, 상기 서비스 노드에 의해 생성된 서비스 데이터에 대한 컨센서스 검증을 수행하는 컨센서스 노드가 상기 서비스 노드와의 맵핑 관계를 갖는 것; 또는
    각각의 서비스 노드에 대해, 상기 서비스 노드에 의해 생성된 서비스 데이터에 대한 컨센서스 검증을 수행하는 상이한 컨센서스 노드들이 맵핑 관계를 갖는 것
    중 적어도 한쪽인, 블록체인 노드들 간의 통신을 위한 방법.
  3. 삭제
  4. 제 1 항 또는 제 2 항에 있어서,
    상기 제 2 블록체인 노드의 인증서의 상기 복수의 식별자는, 상기 제 2 블록체인 노드의 노드 식별자, 네트워크 식별자, 이전 노드 식별자, 서비스 식별자 및 그룹 식별자 중 하나 이상을 포함하는 것인, 블록체인 노드들 간의 통신을 위한 방법.
  5. 제 1 항 또는 제 2 항에 있어서,
    상기 제 2 블록체인 노드에 대한 통신 접속을 확립하는 단계는 구체적으로,
    검증 요청을 상기 제 2 블록체인 노드에 전송하여서, 상기 제 2 블록체인 노드가 상기 검증 요청에 기초하여 상기 제 1 블록체인 노드가 상기 제 2 블록체인 노드와의 맵핑 관계를 갖는지 여부를 결정하는 단계;
    상기 제 2 블록체인 노드가 상기 제 1 블록체인 노드가 상기 제 2 블록체인 노드와의 맵핑 관계를 갖는 것으로 결정하는 경우, 상기 제 2 블록체인 노드에 의해 상기 제 1 블록체인 노드에 대한 통신 접속을 확립하거나; 또는, 상기 제 2 블록체인 노드가 상기 제 1 블록체인 노드가 상기 제 2 블록체인 노드와의 맵핑 관계를 갖는 것으로 결정하는데 실패하는 경우, 상기 제 2 블록체인 노드에 의해 상기 제 1 블록체인 노드에 대한 통신 접속을 확립하는 것을 거부하는 단계를 포함하는, 블록체인 노드들 간의 통신을 위한 방법.
  6. 블록체인 노드들 간의 통신을 위한 장치에 있어서,
    블록체인 네트워크 내의 블록체인 노드들은 서비스 노드들을 포함하고, 동일한 서비스에 참여하는 서비스 노드들은 맵핑 관계를 갖고;
    상기 장치는 제 1 블록체인 노드에 적용되고, 상기 장치는,
    제 2 블록체인 노드에 의해 전송된 통신 요청 - 상기 통신 요청은 상기 제 2 블록체인 노드의 인증서를 포함하고, 상기 제 2 블록체인 노드의 인증서는 복수의 식별자를 포함함 - 을 수신하도록 구성된 수신 모듈;
    상기 제 2 블록체인 노드의 인증서로부터 상기 복수의 식별자를 획득하도록 구성된 획득 모듈; 및
    상기 복수의 식별자에 기초하여 상기 제 2 블록체인 노드가 상기 장치와의 맵핑 관계를 갖는지 여부를 결정하고; 상기 제 2 블록체인 노드가 상기 장치와의 맵핑 관계를 갖는 것으로 결정되는 경우, 상기 제 2 블록체인 노드에 대한 통신 접속을 확립하거나; 또는, 상기 제 2 블록체인 노드가 상기 장치와의 맵핑 관계를 갖지 않는 것으로 결정되는 경우, 상기 제 2 블록체인 노드에 대한 통신 접속을 확립하는 것을 거부하도록 구성되는 결정 및 프로세싱 모듈
    을 포함하는, 블록체인 노드들 간의 통신을 위한 장치.
  7. 제 6 항에 있어서,
    상기 블록체인 노드는 하나 이상의 컨센서스 노드를 더 포함하고;
    각각의 서비스 노드에 대해, 상기 서비스 노드에 의해 생성된 서비스 데이터에 대한 컨센서스 검증을 수행하는 컨센서스 노드가 상기 서비스 노드와의 맵핑 관계를 갖는 것; 또는
    각각의 서비스 노드에 대해, 상기 서비스 노드에 의해 생성된 서비스 데이터에 대한 컨센서스 검증을 수행하는 상이한 컨센서스 노드들이 맵핑 관계를 갖는 것
    중 적어도 한쪽인, 블록체인 노드들 간의 통신을 위한 장치.
  8. 삭제
  9. 제 6 항 또는 제 7 항에 있어서,
    상기 제 2 블록체인 노드의 인증서의 상기 복수의 식별자는, 상기 제 2 블록체인 노드의 노드 식별자, 네트워크 식별자, 이전 노드 식별자, 서비스 식별자 및 그룹 식별자 중 하나 이상을 포함하는 것인, 블록체인 노드들 간의 통신을 위한 장치.
  10. 제 6 항 또는 제 7 항에 있어서,
    상기 결정 및 프로세싱 모듈은,
    검증 요청을 상기 제 2 블록체인 노드에 전송하여서, 상기 제 2 블록체인 노드가 상기 검증 요청에 기초하여 상기 장치가 상기 제 2 블록체인 노드와의 맵핑 관계를 갖는지 여부를 결정하고;
    상기 제 2 블록체인 노드가 상기 장치가 상기 제 2 블록체인 노드와의 맵핑 관계를 갖는 것으로 결정하는 경우, 상기 제 2 블록체인 노드에 의해 상기 장치에 대한 통신 접속을 확립하거나; 또는, 상기 제 2 블록체인 노드가 상기 장치가 상기 제 2 블록체인 노드와의 맵핑 관계를 갖는 것으로 결정하는데 실패하는 경우, 상기 제 2 블록체인 노드에 의해 상기 장치에 대한 통신 접속을 확립하는 것을 거부하는, 블록체인 노드들 간의 통신을 위한 장치.
  11. 블록체인 노드들 간의 통신을 위한 디바이스에 있어서,
    상기 디바이스는 제 1 블록체인 노드에 적용되고, 상기 디바이스는 하나 이상의 프로세서 및 메모리를 포함하고, 상기 메모리는 프로그램을 저장하고, 상기 프로그램은,
    제 2 블록체인 노드에 의해 전송된 통신 요청 - 상기 통신 요청은 상기 제 2 블록체인 노드의 인증서를 포함하고, 상기 제 2 블록체인 노드의 인증서는 복수의 식별자를 포함함 - 을 수신하는 단계;
    상기 제 2 블록체인 노드의 인증서로부터 상기 복수의 식별자를 획득하는 단계;
    상기 획득된 복수의 식별자에 기초하여, 상기 제 2 블록체인 노드가 상기 디바이스와의 맵핑 관계를 갖는지 여부를 결정하는 단계; 및
    상기 제 2 블록체인 노드가 상기 디바이스와의 맵핑 관계를 갖는 것으로 결정되는 경우, 상기 제 2 블록체인 노드에 대한 통신 접속을 확립하는 단계; 또는
    상기 제 2 블록체인 노드가 상기 디바이스와의 맵핑 관계를 갖지 않는 것으로 결정되는 경우, 상기 제 2 블록체인 노드에 대한 통신 접속을 확립하는 것을 거부하는 단계를 수행하도록,
    상기 하나 이상의 프로세서에 의해 실행되고,
    블록체인 네트워크 내의 블록체인 노드들은 서비스 노드들을 포함하고, 동일한 서비스에 참여하는 서비스 노드들은 맵핑 관계를 갖는, 블록체인 노드들 간의 통신을 위한 디바이스.
  12. 삭제
KR1020197021996A 2017-07-26 2018-07-26 블록체인 노드 사이의 통신 방법 및 통신 장치 KR102095326B1 (ko)

Applications Claiming Priority (3)

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

Publications (2)

Publication Number Publication Date
KR20190099310A KR20190099310A (ko) 2019-08-26
KR102095326B1 true KR102095326B1 (ko) 2020-04-01

Family

ID=60974762

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197021996A KR102095326B1 (ko) 2017-07-26 2018-07-26 블록체인 노드 사이의 통신 방법 및 통신 장치

Country Status (12)

Country Link
US (2) US10657151B2 (ko)
EP (2) EP3840291A1 (ko)
JP (1) JP6765543B2 (ko)
KR (1) KR102095326B1 (ko)
CN (1) CN107566337B (ko)
ES (1) ES2866161T3 (ko)
MY (1) MY185529A (ko)
PH (1) PH12019501729A1 (ko)
PL (1) PL3602959T3 (ko)
SG (1) SG11201906936UA (ko)
TW (1) TWI696367B (ko)
WO (1) WO2019023466A1 (ko)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10419225B2 (en) 2017-01-30 2019-09-17 Factom, Inc. Validating documents via blockchain
US10411897B2 (en) 2017-02-17 2019-09-10 Factom, Inc. Secret sharing via blockchains
US10817873B2 (en) 2017-03-22 2020-10-27 Factom, Inc. Auditing of electronic documents
US10685399B2 (en) 2017-03-31 2020-06-16 Factom, Inc. Due diligence in electronic documents
US10270599B2 (en) 2017-04-27 2019-04-23 Factom, Inc. Data reproducibility using blockchains
CN111901121B (zh) * 2018-04-03 2023-09-29 创新先进技术有限公司 跨区块链的认证方法及装置、电子设备
US10783164B2 (en) * 2018-05-18 2020-09-22 Factom, Inc. Import and export in blockchain environments
US11134120B2 (en) 2018-05-18 2021-09-28 Inveniam Capital Partners, Inc. Load balancing in blockchain environments
US11170366B2 (en) 2018-05-18 2021-11-09 Inveniam Capital Partners, Inc. Private blockchain services
CN108777711B (zh) * 2018-05-31 2021-06-08 中国联合网络通信集团有限公司 区块链节点通信方法、装置及区块链节点
US11374753B2 (en) 2018-07-27 2022-06-28 Hrl Laboratories, Llc System and method for selective transparency for public ledgers
EP3831012B1 (en) * 2018-07-27 2023-08-23 HRL Laboratories, LLC Bidirectional blockchain
US11328290B2 (en) 2018-08-06 2022-05-10 Inveniam Capital Partners, Inc. Stable cryptocurrency coinage
US11348097B2 (en) 2018-08-06 2022-05-31 Inveniam Capital Partners, Inc. Digital contracts in blockchain environments
CN109345389A (zh) * 2018-09-25 2019-02-15 阿里巴巴集团控股有限公司 一种资源分享方法、装置及设备
EP3549306A4 (en) 2018-11-07 2020-01-01 Alibaba Group Holding Limited RECOVERY OF ENCRYPTED TRANSACTION INFORMATION IN CONFIDENTIAL BLOCK CHAIN TRANSACTIONS
EP3533178B1 (en) * 2018-11-07 2020-09-09 Alibaba Group Holding Limited Managing communications among consensus nodes and client nodes
WO2019072261A2 (en) * 2018-11-07 2019-04-18 Alibaba Group Holding Limited REGULATION OF CONFIDENTIAL TRANSACTIONS OF BLOCK CHAIN
CA3041203C (en) 2018-11-16 2021-01-19 Alibaba Group Holding Limited A domain name management scheme for cross-chain interactions in blockchain systems
CA3041163C (en) * 2018-11-16 2020-10-06 Alibaba Group Holding Limited A domain name scheme for cross-chain interactions in blockchain systems
CN110008686B (zh) * 2018-11-16 2020-12-04 创新先进技术有限公司 跨区块链的数据处理方法、装置、客户端、区块链系统
AU2018347193B2 (en) 2018-11-16 2020-05-14 Advanced New Technologies Co., Ltd. Cross-chain interactions using a domain name scheme in blockchain systems
CN111223227B (zh) * 2018-11-26 2022-03-22 腾讯科技(深圳)有限公司 一种目标用户筛选方法及装置
CN111382119B (zh) * 2018-12-29 2023-08-22 华为技术有限公司 区块数据归档方法及相关设备
CN109873808A (zh) * 2019-01-11 2019-06-11 平安科技(深圳)有限公司 区块链节点之间的通信方法及装置、存储介质及电子设备
CN109981750B (zh) * 2019-03-06 2021-09-17 北京百度网讯科技有限公司 业务流程系统、业务数据处理方法和装置
CN110914851B (zh) 2019-03-27 2024-02-06 创新先进技术有限公司 提高区块链网络与外部数据源之间的通信的完整性
AU2019204708B2 (en) 2019-03-27 2020-08-20 Advanced New Technologies Co., Ltd. Retrieving public data for blockchain networks using highly available trusted execution environments
EP3910907B1 (en) 2019-03-29 2023-08-02 Advanced New Technologies Co., Ltd. Retrieving access data for blockchain networks using highly available trusted execution environments
CN110188563B (zh) * 2019-06-02 2021-04-13 四川虹微技术有限公司 一种信任数据更新方法及装置
US10742415B2 (en) 2019-06-28 2020-08-11 Alibaba Group Holding Limited Method and apparatus for inter-blockchain transmission of authenticable message
CN112615868B (zh) * 2019-06-28 2023-08-22 创新先进技术有限公司 一种跨链发送可认证消息的方法和装置
CN110492908B (zh) * 2019-07-31 2022-02-11 南京智睿能源互联网研究院有限公司 一种基于区块链技术的电力通讯管理机
US11038699B2 (en) * 2019-08-29 2021-06-15 Advanced New Technologies Co., Ltd. Method and apparatus for performing multi-party secure computing based-on issuing certificate
CN110598477A (zh) * 2019-09-19 2019-12-20 腾讯科技(深圳)有限公司 基于区块链的信息处理方法、装置、存储介质和设备
WO2021092650A1 (en) 2019-11-11 2021-05-20 Inkerz Pty Ltd Computer-implemented method for extracting content from a physical writing surface
CN110866288B (zh) * 2019-11-18 2023-01-10 广州安加互联科技有限公司 一种基于区块链的数据保护方法、系统及终端
CN111669442A (zh) * 2019-11-27 2020-09-15 朱培培 基于区块链的数据传输方法及电子设备
CN111147517A (zh) * 2019-12-31 2020-05-12 上海分布信息科技有限公司 安全通讯方法、装置、终端设备
US11343075B2 (en) 2020-01-17 2022-05-24 Inveniam Capital Partners, Inc. RAM hashing in blockchain environments
US11682095B2 (en) 2020-02-25 2023-06-20 Mark Coast Methods and apparatus for performing agricultural transactions
CN111541724B (zh) * 2020-07-08 2021-06-29 支付宝(杭州)信息技术有限公司 区块链一体机及其节点自动加入方法、装置
CN111541552B (zh) 2020-07-08 2021-06-22 支付宝(杭州)信息技术有限公司 区块链一体机及其节点自动加入方法、装置
KR102236265B1 (ko) * 2020-08-24 2021-04-05 국방과학연구소 블록체인 네트워크에 기반한 방위기술정보 관리 방법, 컴퓨터 판독 가능한 기록매체 및 컴퓨터 프로그램
US11194791B1 (en) 2020-10-23 2021-12-07 Coinbase Crypto Services, LLC. Blockchain orchestrator computer system
CN112702323B (zh) * 2020-12-14 2022-06-03 杭州溪塔科技有限公司 一种区块链软件的许可签发验证方法、装置和电子设备
CN113328935B (zh) * 2021-05-20 2022-11-11 福建思特电子有限公司 基于工业互联网的分布式安全追溯区块链系统
CN113347630A (zh) * 2021-06-01 2021-09-03 永旗(北京)科技有限公司 一种基于区块链的通信方法
KR102439351B1 (ko) * 2022-02-10 2022-09-01 주식회사 스카이플레이 Esg를 위한 비채굴 블록체인 네트워크 시스템 및 그 시스템에 참여하는 서버 노드의 동작 방법

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100499536C (zh) * 2003-10-22 2009-06-10 华为技术有限公司 无线局域网中选定业务的解析接入处理方法
CN101262342A (zh) 2007-03-05 2008-09-10 松下电器产业株式会社 分布式授权与验证方法、装置及系统
CN101577973A (zh) * 2008-05-08 2009-11-11 中兴通讯股份有限公司 通信连接建立方法和装置
WO2010068698A2 (en) * 2008-12-09 2010-06-17 Glue Networks, Inc. System and method for providing virtual private networks
US8874769B2 (en) 2011-06-30 2014-10-28 Qualcomm Incorporated Facilitating group access control to data objects in peer-to-peer overlay networks
US20160217436A1 (en) * 2015-01-25 2016-07-28 Dror Samuel Brama Method, System and Program Product for Tracking and Securing Transactions of Authenticated Items over Block Chain Systems.
US11386404B2 (en) * 2015-02-04 2022-07-12 Ripple Luxembourg S.A. Temporary consensus subnetwork in a distributed network for payment processing
JP6364132B2 (ja) 2015-03-31 2018-07-25 ナスダック, インコーポレイテッドNasdaq, Inc. ブロックチェーン取引記録のシステムおよび方法
US20170132625A1 (en) 2015-11-05 2017-05-11 Mastercard International Incorporated Method and system for use of a blockchain in a transaction processing network
US20170132630A1 (en) 2015-11-11 2017-05-11 Bank Of America Corporation Block chain alias for person-to-person payments
US20170140375A1 (en) 2015-11-15 2017-05-18 Michael Kunstel System and Method for Permissioned Distributed Block Chain
KR102050129B1 (ko) 2016-05-03 2019-11-28 안규태 블록 검증을 위한 복수의 일방향 함수를 지원하는 블록 체인
US20170345011A1 (en) 2016-05-26 2017-11-30 Hitfin, Inc. System and method executed on a blockchain network
KR101784219B1 (ko) 2016-06-15 2017-10-12 주식회사 코인플러그 블록체인을 기반으로 하는 금융기관 제증명서류 위변조 검증시스템 및 방법
US11395092B2 (en) 2016-07-18 2022-07-19 Here Global B.V. Device location verification for updated map data
CN106301792B (zh) 2016-08-31 2019-10-18 江苏通付盾科技有限公司 基于区块链的ca认证管理方法、装置及系统
US11128603B2 (en) 2016-09-30 2021-09-21 Nec Corporation Method and system for providing a transaction forwarding service in blockchain implementations
US10284378B2 (en) * 2016-10-05 2019-05-07 The Toronto-Dominion Bank Certificate authority master key tracking on distributed ledger
US10554746B2 (en) 2016-11-14 2020-02-04 International Business Machines Corporation Decentralized immutable storage blockchain configuration
JP6533771B2 (ja) * 2016-11-15 2019-06-19 富士通株式会社 通信方法、装置、及びプログラム
CN106789920A (zh) * 2016-11-25 2017-05-31 深圳前海微众银行股份有限公司 区块链的节点连接方法及装置
WO2018119585A1 (zh) * 2016-12-26 2018-07-05 深圳前海达闼云端智能科技有限公司 区块链的权限控制方法、装置、系统及节点设备
US20180183586A1 (en) * 2016-12-28 2018-06-28 Intel Corporation Assigning user identity awareness to a cryptographic key
CN106789089B (zh) 2017-02-23 2019-10-08 腾讯科技(深圳)有限公司 管理证书的方法、装置、和系统以及服务器

Also Published As

Publication number Publication date
TW201911834A (zh) 2019-03-16
JP6765543B2 (ja) 2020-10-07
US20200089690A1 (en) 2020-03-19
US10657151B2 (en) 2020-05-19
EP3602959A1 (en) 2020-02-05
MY185529A (en) 2021-05-19
TWI696367B (zh) 2020-06-11
KR20190099310A (ko) 2019-08-26
PL3602959T3 (pl) 2021-07-19
US20190034459A1 (en) 2019-01-31
EP3602959B1 (en) 2021-02-17
JP2020509461A (ja) 2020-03-26
EP3840291A1 (en) 2021-06-23
ES2866161T3 (es) 2021-10-19
CN107566337B (zh) 2019-08-09
WO2019023466A1 (en) 2019-01-31
CN107566337A (zh) 2018-01-09
PH12019501729A1 (en) 2020-03-09
SG11201906936UA (en) 2019-08-27

Similar Documents

Publication Publication Date Title
KR102095326B1 (ko) 블록체인 노드 사이의 통신 방법 및 통신 장치
KR102074116B1 (ko) 블록체인 노드 통신 방법 및 장치
US11265177B2 (en) Blockchain consensus node selection
KR102268950B1 (ko) 블록체인 노드들 간의 통신을 위한 방법, 장치와 전자 디바이스, 및 블록체인 기반 인증서 관리를 위한 방법, 장치와 전자 디바이스
US11315112B2 (en) Blockchain data processing method, apparatus, device, and system
KR102242221B1 (ko) 서비스 데이터 처리 방법 및 디바이스, 및 서비스 처리 방법 및 디바이스
KR102221326B1 (ko) 비즈니스 프로세싱 방법 및 장치
RU2723308C1 (ru) Управление приватными транзакциями в сетях цепочек блоков на основе потока обработки

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant