KR20200089687A - 블록체인 네트워크와 같은 네트워크에서 데이터의 전파 및 통신을 위한 컴퓨터 구현 시스템 및 방법 - Google Patents

블록체인 네트워크와 같은 네트워크에서 데이터의 전파 및 통신을 위한 컴퓨터 구현 시스템 및 방법 Download PDF

Info

Publication number
KR20200089687A
KR20200089687A KR1020207016019A KR20207016019A KR20200089687A KR 20200089687 A KR20200089687 A KR 20200089687A KR 1020207016019 A KR1020207016019 A KR 1020207016019A KR 20207016019 A KR20207016019 A KR 20207016019A KR 20200089687 A KR20200089687 A KR 20200089687A
Authority
KR
South Korea
Prior art keywords
node
nodes
data packet
network
data
Prior art date
Application number
KR1020207016019A
Other languages
English (en)
Other versions
KR102519197B1 (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 엔체인 홀딩스 리미티드
Priority to KR1020237011374A priority Critical patent/KR20230048468A/ko
Publication of KR20200089687A publication Critical patent/KR20200089687A/ko
Application granted granted Critical
Publication of KR102519197B1 publication Critical patent/KR102519197B1/ko

Links

Images

Classifications

    • 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
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/108Resource delivery mechanisms characterised by resources being split in blocks or fragments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • 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
    • 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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
    • 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/3297Cryptographic 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 time stamps, e.g. generation of time stamps
    • 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)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • General Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Finance (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

노드의 네트워크에서 데이터 패킷을 전파하는 방법이 개시된다. 노드 중 하나에서 구현되는 방법은, 제 1 유형의 적어도 하나의 데이터 패킷을 생성하는 단계와, 제 1 기간 동안 제 1 유형의 데이터 패킷의 세트를 수집하는 단계 - 이러한 세트는 네트워크 내의 하나 이상의 제 1 노드로부터 수신된 적어도 하나의 제 1 유형의 데이터 패킷 및 적어도 하나의 생성된 데이터 패킷을 포함함 - 와, 세트 내의 각 데이터 패킷에 대해: 상기 노드 중 하나에 연결된 둘 이상의 이웃 노드를 무작위로 선택하는 단계; 둘 이상의 선택된 이웃 노드들 각각에 데이터 패킷을 전송하는 단계 - 둘 이상의 선택된 이웃 노드는 그 이웃 노드에 대해 임의로 선택된 데이터 전파 모드를 사용하여 네트워크 내의 하나 이상의 제 2 노드에 데이터 패킷을 중계하도록 구성됨 - 를 포함한다. 본 발명은 특히, 예를 들어 비트코인 블록체인과 같은 블록체인 네트워크에서의 구현에 특히 적합하다.

Description

블록체인 네트워크와 같은 네트워크에서 데이터의 전파 및 통신을 위한 컴퓨터 구현 시스템 및 방법
본 발명은 일반적으로 컴퓨터 네트워크에 관한 것으로, 보다 상세하게는 노드 네트워크에서 데이터를 전파하는 방법 및 장치에 관한 것이다. 본 발명은 블록체인 네트워크와 함께 사용하기에 적합하지만 이에 한정되지는 않는다.
이 문헌에서 용어 '블록체인'은 모든 형태의 전자적인, 컴퓨터 기반의 분산 원장(distributed ledger)을 포함하도록 사용된다. 이는, 합의(consensus) 기반 블록체인 및 거래 체인(transaction-chain) 기술, 허가형 및 비허가형 원장(permissioned and un-permissioned ledgers), 공유형 원장(shared ledgers) 및 이들의 변형을 포함하나, 이에 한정되지 않는다. 비록 다른 블록체인 구현이 제안되고 개발되었기는 하나, 블록체인 기술의 가장 널리 알려진 응용은 비트코인 원장(Bitcoin ledger)이다. 편의 및 예시의 목적으로 본 문서에서 비트코인이 언급될 수 있으나, 발명은 비트코인 블록체인과의 사용으로 제한되지 않으며 대안적인 블록체인 구현 및 프로토콜이 본 발명의 범위 내에 속한다는 점에 유의하여야 한다.
블록체인은, 결국 거래로 이루어지는 블록으로 구성된, 컴퓨터 기반의 탈중앙화된(decentralized) 분산형(distributed) 시스템으로서 구현되는 합의 기반 전자적 원장이다. 각각의 거래는 블록체인 시스템 내의 참여자 간의 디지털 자산의 제어 이전(transfer of control)을 인코딩하는 데이터 구조이며, 적어도 하나의 입력 및 적어도 하나의 출력을 포함한다. 블록체인의 개시 이후 블록체인에 기입된 모든 거래의 영속적인 불변의 기록을 생성하기 위하여 블록이 함께 연쇄되게(chained) 하도록 각각의 블록은 이전 블록의 해시(hash)를 포함한다. 거래는 거래의 입력 및 출력 내에 임베딩된(embedded) 스크립트(script)로 알려진 작은 프로그램을 포함하는데, 이는 거래의 출력이 어떻게, 그리고 누구에 의해 액세스될 수 있는지를 명시한다. 비트코인 플랫폼 상에서, 이들 스크립트는 스택 기반의 스크립팅 언어(scripting language)를 사용하여 기입된다.
새 거래를 수신한 네트워크 노드는 해당 거래를 네트워크의 다른 노드로 빠르게 밀어내려는 시도를 할 것이다. 새 거래를 다른 노드로 전송하기 전에 그러한 새 거래가 "검증"되는데, 이는 거래가 적용가능한 블록체인 프로토콜에 따라 적절한 거래를 위한 기본 요건을 충족하는 것을 확인하기 위해 일련의 기준에 따라 점검되는 것을 의미한다.
거래가 블록체인에 기입되도록 하기 위해서는, 거래를 수집하여 블록으로 구성하도록 설계된 노드("마이너(miner)" 또는 "마이닝 노드")에 의해 거래가 블록에 통합된다. 마이너는 이후에 노드에 관하여 "작업 증명(proof of work)"을 완료하려고 한다. 블록체인 네트워크 전체에서 마이너는 첫 번째로 거래 블록을 조립하고 해당 블록에 대한 연관된 작업 증명을 완료하려고 경쟁한다. 성공한 마이너는 블록체인에 자신의 확인된 블록을 추가하고 블록은 네트워크를 통해 전파되어 그 블록체인의 복사본을 관리하는 다른 노드가 자신의 레코드를 업데이트할 수 있다. 블록을 수신하는 노드는 그 블록 및 그 블록 내의 모든 거래를“검증”하여 프로토콜의 공식 요건을 준수하는 것을 확인한다.
비트코인과 같은 블록체인 기술의 인지된 이점 중 하나가 거래의 익명성이다. 비트코인 사용자의 개인 정보는 공식적으로 그리고 명시적으로 비트코인 주소에 첨부되지 않으며 블록체인의 비트코인 원장은 공개 주소 정보만 포함한다. 그러나, 블록체인은 인터넷을 기반으로 운영되는 분산형 피어 대 피어 네트워크로 구성되어 있기 때문에, 인터넷 프로토콜(IP) 주소 정보를 사용하여 사용자를 네트워크 활동과 연결하는 공격에 의해 거래의 익명성이 손상될 수 있다. 예를 들어, 블록체인 기반 네트워크에서 수행되는 IP 트래픽 분석과 같은 익명화 해제 공격(de-anonymization attacks)은 이해관계가 있는 제3자가 네트워크에서 사용자가 제출한 거래를 모니터링하고 공개적으로 이용가능한 정보를 사용하여 예를 들면, 사용자의 공개 키와 이의 IP 주소를 연결함으로써 거래를 이의 소스에 연결하는 것을 가능하게 할 수 있다.
트래픽 분석은 블록체인 기반 네트워크에서 특히 문제가 되며, 이는 네트워크 노드에 의한 그리고 네트워크 노드 간의 거래 전파에 의존한다. 거래를 수신하는 네트워크의 각 노드는 거래의 유효성을 검증하고 이어서 이를 피어 노드 노드로 송신한다. 비트코인 프로토콜에서, 노드는 거래 목록을 포함하는 "INV" 메시지를 피어 노드에 보내고 "INV" 메시지에 광고된 거래의 일부 서브세트를 선택하는 "GETDATA" 응답 메시지를 수신할 것이다. 노드는 이어서 요청된 거래를 피어 노드에 송신한다. 이러한 프로세스는 노드가 연결된 각 피어 노드에 대해 수행된다. 공격자는 네트워크에서 거래가 전파될 때 전송되는 데이터를 가로채 분석하여 궁극적으로 거래의 소스와 대상을 연결하는 데 사용될 수 있는 정보를 획득할 수 있다.
트래픽 분석 또는 다른 유형의 익명화 해제 공격을 통해 네트워크 익명성이 손상될 가능성을 줄일 수 있는 블록체인 기반 네트워크에서의 거래 전파를 위한 기법을 제공하는 것이 바람직하다. 더 일반적으로, 익명화 해제 공격에 대한 취약성을 줄이도록 P2P 네트워크의 노드간에 데이터를 중계하는 기술을 제공하는 것이 바람직하다.
이제 그러한 해결책이 마련되었다.
따라서, 본 발명에 따라 첨부된 청구 범위에 정의된 방법 및 장치가 제공된다.
본 출원은 노드의 네트워크에서 데이터 패킷을 전파하기 위한 노드를 설명한다. 네트워크의 각 노드는 다른 노드에 대한 하나 이상의 연결을 가질 수 있다. 노드는 프로세서, 네트워크 연결을 제공하는 네트워크 인터페이스 및 메모리를 포함한다. 프로세서에 의해 실행될 때, 프로세서로 하여금, 제 1 유형의 적어도 하나의 데이터 패킷을 생성하고; 제 1 기간 동안 제 1 유형의 데이터 패킷의 세트를 수집하며 - 이 세트는 바람직하게는 적어도 하나의 생성된 데이터 패킷과 네트워크 내의 하나 이상의 제 1 노드로부터 수신된 적어도 하나의 제 1 유형의 데이터 패킷을 포함함 - ; 세트 내의 각 데이터 패킷에 대해: 노드에 연결된 둘 이상의 이웃 노드를 임의로 선택하고; 데이터 패킷을 둘 이상의 선택된 이웃 노드 각각에 전송하게 하는 프로세서 실행가능 명령어를 포함할 수 있고, 둘 이상의 선택된 이웃 노드는 데이터 패킷을 이웃 노드에 대해 무작위로 선택된 데이터 전파 모드를 사용하는 네트워크에서 하나 이상의 제 2 노드에 중계하도록 구성될 수 있다.
일부 구현예에서, 제 1 기간은 미리 정의된 길이를 갖는다.
일부 구현예에서, 명령어는 실행될 때, 프로세서로 하여금 트리거링 조건이 충족되었다는 결정에 응답하여 전송을 수행하게 한다.
일부 구현예에서, 트리거링 조건은 노드에 의한 제 1 유형의 적어도 하나의 데이터 패킷의 생성 시간 이후의 미리 결정된 지속 기간의 만료를 포함한다.
일부 구현예에서, 트리거링 조건은 하나 이상의 제 1 노드로부터 제 1 유형의 적어도 하나의 데이터 패킷 중 제 1 데이터 패킷을 수신한 시간 이후의 미리 결정된 지속 기간의 만료를 포함한다.
일부 구현예에서, 이웃 노드에 대한 데이터 전파 모드는 제 1 모드와 제 2 모드 사이에서 임의로 선택되며, 여기서 제 1 모드에서, 데이터 패킷은 이웃 노드에 연결된 노드의 임의로 선택된 서브세트로 중계되고, 제 2 모드에서, 데이터 패킷은 이웃 노드에 연결된 모든 노드에 중계된다.
일부 구현예에서, 명령어들은 실행될 때, 프로세서가 제 1 기간 동안 제 1 유형의 임의의 데이터 패킷을 전송하지 못하게 한다.
본 출원은 노드의 네트워크에서 데이터 패킷을 전파하는 컴퓨터로 구현되는 방법을 제공하는 것으로 설명될 수 있다. 네트워크의 각 노드는 다른 노드에 대한 하나 이상의 연결을 가질 수 있다. 노드 중 하나에서 구현될 수 있는 방법은, 제 1 유형의 적어도 하나의 데이터 패킷을 생성하는 단계; 제 1 기간 동안 제 1 유형의 데이터 패킷의 세트를 수집하는 단계 - 이러한 세트는 바람직하게는 적어도 하나의 생성된 데이터 패킷 및 네트워크 내의 하나 이상의 제 1 노드로부터 수신된 적어도 하나의 제 1 유형의 데이터 패킷을 포함함 - ; 및 세트 내의 각각의 데이터 패킷에 대해: 상기 노드 중 하나에 연결된 둘 이상의 이웃 노드를 임의로 선택하고; 둘 이상의 선택된 이웃 노드 각각에 데이터 패킷을 전송하는 단계 - 둘 이상의 선택된 이웃 노드는 이웃 노드에 대해 무작위로 선택된 데이터 전파 모드를 사용하여 네트워크 내의 하나 이상의 제 2 노드에 데이터 패킷을 중계하도록 구성됨 - 를 포함할 수 있다.
본 출원은 노드의 네트워크에서 데이터 패킷을 전파하기 위한 프로세스에 참여하기 위한 프로세서 실행가능 명령어를 저장하는 비 일시적 프로세서 판독가능 매체를 추가로 기술할 수 있으며, 여기서 프로세서 실행가능 명령어는 복수의 참여 노드 중 하나에서 프로세서에 의해 실행되는 경우, 프로세서로 하여금 본 명세서에 설명된 하나 이상의 방법의 동작을 수행하게 한다.
본 명세서에 기술된 많은 예시적인 구현예에서, 블록체인 거래에 대한 구체적인 참조가 이루어지지만, 본 명세서에 기술된 방법 및 장치는 비-블록체인 거래 전파와 관련하여 구현되고 적용될 수 있다는 점을 이해할 수 있을 것이다. 더 일반적으로, 본 개시에서 설명된 방법 및 장치는 피어 대 피어 네트워크의 노드들 사이에서 데이터를 전파하는 데 사용하기에 적합할 수 있다.
본 발명의 일 측면 또는 실시예에 관하여 설명된 모든 특징은 하나 이상의 다른 측면/실시예에 관하여도 사용될 수 있다. 이들 및 다른 측면은 본 문서에 기술된 실시예를 참조하면 분명하고 명료하게 이해될 것이다. 이제 본 발명의 실시예가 첨부된 도면을 참조하여, 단지 예로서 기술될 것이다.
도 1은 블록체인과 관련된 예시적인 네트워크를 도시한다.
도 2는 입력 버퍼 및 출력 버퍼를 갖는 예시적인 블록체인 노드를 개략적으로 도시한다.
도 3은 예시적인 노드 네트워크에서 거래의 전파를 도시한다.
도 4는 노드 네트워크에서 거래의 중계의 예를 도시한다.
도 5는 블록체인 네트워크에서 데이터 패킷을 전파하기 위한 예시적인 프로세스를 흐름도 형태로 도시한다.
도 5a는 본 발명의 예시적인 실시예에 따른 중계 노드에 의해 수행되는 예시적인 프로세스를 도시한다.
도 6은 블록체인 네트워크에서 데이터 패킷을 전파하기 위한 다른 예시적인 프로세스를 흐름도 형태로 도시한다.
도 7은 예시적인 블록체인 노드를 블록도 형태로 도시한다.
본 출원에서, "및/또는"이라는 용어는, 열거된 요소 중 임의의 것을 단독으로, 요소의 임의의 하위 조합(sub-combination) 또는 전부를 포함하여, 그리고 추가적인 요소를 반드시 배제하지는 않고서, 열거된 요소의 모든 가능한 조합 및 하위 조합을 포함하도록 의도된다.
본 출원에서, "... 또는 ... 중 적어도 하나"라는 문구는, 열거된 요소 중 임의의 것을 단독으로, 요소의 임의의 하위 조합 또는 전부를 포함하여, 그리고 임의의 추가적인 요소를 반드시 배제하지는 않고서, 열거된 요소 중 임의의 하나 이상을 포섭하도록 의도된다.
블록체인과 연관된 예시적인 네트워크(이는 본 명세서에서 블록체인 네트워크(100)라고 지칭될 수 있음)를 블록도 형태로 보여주는 도 1에 대한 참조가 우선 행해질 것이다. 블록체인 네트워크(100)는 다른 멤버로부터의 동의 없이 또는 초대 없이, 누구나 가담할 수 있는 피어 대 피어(peer-to-peer) 개방 멤버십(membership) 네트워크이다. 블록체인 네트워크(100)가 동작하는 블록체인 프로토콜의 인스턴스(instance)를 가동하는(running) 분산된 전자 장치가 블록체인 네트워크(100)에 참여할 수 있다. 그러한 분산된 전자 장치는 노드(102)로 지칭될 수 있다. 블록체인 프로토콜은, 예를 들어, 비트코인 프로토콜, 또는 다른 암호화폐일 수 있다.
블록체인 프로토콜을 가동하고 블록체인 네트워크(100)의 노드(102)를 형성하는 전자 장치는, 예를 들어, 컴퓨터(예컨대, 데스크톱(desktop) 컴퓨터, 랩톱(laptop) 컴퓨터, 태블릿(tablet) 컴퓨터, 서버), 모바일 장치(mobile device)(예컨대, 스마트폰), 웨어러블(wearable) 컴퓨터(예컨대, 스마트 워치) 또는 다른 전자 장치를 포함하는 다양한 유형의 것일 수 있다.
블록체인 네트워크(100)의 노드(102)는 유선 및 무선 통신 기술을 포함할 수 있는 적합한 통신 기술을 사용하여 서로 커플링된다(coupled). 많은 경우에, 블록체인 네트워크(100)는 적어도 부분적으로 인터넷 상에서 구현되고, 노드(102) 중 몇몇은 지리적으로 산개된 위치에 배치될 수 있다.
노드(102)는 블록(이들 각각은 체인 내의 이전 블록의 해시를 포함함)으로 그룹화된 블록체인 상의 모든 거래의 전역 원장(global ledger)을 유지한다. 전역 원장은 분산 원장이며 각각의 노드(102)는 전역 원장의 완전한 사본(copy) 또는 부분적인 사본을 저장할 수 있다. 전역 원장에 영향을 미치는 노드(102)에 의한 거래는 전역 원장의 유효성이 유지되도록 다른 노드(102)에 의해 확인된다(verified). 블록체인 네트워크, 예컨대 비트코인 프로토콜을 사용하는 것을 구현하고 동작시키는 것의 세부사항은 통상의 기술자에 의해 인식될 것이다.
각각의 거래는 전형적으로 하나 이상의 입력 및 하나 이상의 출력을 갖는다. 입력 및 출력 내에 임베딩된 스크립트는 거래의 출력이 어떻게, 그리고 누구에 의해 액세스될 수 있는지를 명시한다. 거래의 출력은 주소(주소 값이 거래의 결과로서 전달됨)일 수 있다. 그러면 해당 가치는 미지출 거래 출력(unspent transaction output, UTXO)으로서 해당 출력 주소와 연관된다. 그러면 차후의 거래는 해당 가치를 지출하거나 배분하기 위해서 해당 주소를 입력으로서 참조할 수 있다.
노드 102는 네트워크 라우팅에서 월렛 서비스에 이르기까지 강력하고 안전한 탈중앙화된 공공 원장(decentralized public ledger)을 유지하기 위해 수많은 다른 기능을 수행할 수 있다. "풀 노드(full node)"는 블록체인의 완전한 최신 사본을 포함하므로, 공공 원장 상에서 (쓰이거나 쓰이지 않는) 모든 거래를 확인할 수 있다. "경량 노드(Lightweight nodes)" (또는 SPV)는 블록체인의 서브세트를 유지하고 "간단한 지불 검증" 기술을 사용하여 거래를 확인할 수 있다. 경량 노드는 단지 블록체인의 헤더를 다운로드하며, 각 블록 내의 거래는 다운로드하지 않는다. 따라서 이러한 노드는 이들의 거래를 검증하기 위해 피어에 의존한다. 전체 또는 경량 노드일 수 있는 "마이닝 노드"는 거래를 검증하고 블록체인에서 새 블록을 생성하는 것을 담당한다. 일반적으로 경량 노드인 "월렛 노드(Wallet nodes)"는 사용자의 월렛 서비스를 처리한다. 노드(102)는 TCP/IP(Transmission Control Protocol)와 같은 연결 지향 프로토콜을 사용하여 서로 통신한다.
노드가 피어에게 거래를 보내려고 할 때“INVENTORY”메시지가 피어로 송신되어 전송 노드로 알려진 하나 이상의 인벤토리 객체가 전송된다. 피어가 "GETDATA" 메시지, 즉 전체 거래 요청으로 응답하면, 거래는 "TRANSACTION" 메시지를 사용하여 송신된다. 거래를 수신한 노드는 거래가 유효한 경우, 이를 동일한 방식으로 자신의 피어에게 전달한다.
이제, 입력 버퍼(202) 및 출력 버퍼(204)를 갖는 예시적인 노드(200)를 개략적으로 도시하는 도 2를 참조한다. 예시적인 노드(200)는 intA, intB, intC, intD 등으로 지칭되는 다수의 피어 노드와의 네트워크 인터페이스를 갖는다. 입력 버퍼(202)는 다양한 피어 노드로부터의 수신 거래를 나타내고, 출력 버퍼(204)는 개개의 인터페이스를 통한 피어 노드로의 전송을 위해, 거래에 대응하는 출력 네트워크 패킷을 나타낸다. 네트워크 패킷은 노드(202)의 운영체제에 의해 제공되는 프리미티브에 따라 애플리케이션 레벨에서 직렬로 송수신된다. 거래 x가 단일 이더넷/IP 패킷에 적합하다고 가정하면, m 개의 피어로의 전송은 m 개의 다른 출력 네트워크 패킷의 버퍼링을 필요로 한다. 다른 정보와 함께 입력 및 출력 네트워크 패킷 모두가 직렬화된 거래 및 송수신 피어로의 TCP/IP 연결을 나타내는 논리적 인터페이스 ID를 포함할 것이다.
비트코인 거래가 생성되면, 소스 노드는 네트워크를 통해 거래 메시지를 브로드캐스트한다. 일반적으로 클라이언트가 거래를 생성하면, 이를 출력 버퍼(204)에 넣는다. 거래는 피어에게 즉시 전달되거나 전달되지 않을 수 있다. 비트코인 네트워크의 현재 구현에서, 거래는 "확산 전파"라고 알려진 메커니즘에 의해 전파되며, 이로 인해 각 거래 소스는 독립적인 지수 지연(exponential delay)을 두고 거래를 인접 거래로 전송한다. 전파에서 지연은 무작위이며, 악성 공격자에 대한 타이밍 예측에 불확실성을 도입하는 데 유용하다. 피어가 특정 거래를 수신하면, 피어는 동일한 거래의 향후 중계를 수락하지 않는데, 예를 들어, 거래 해시가 피어의 메모리 풀에 저장될 수 있어, 피어로 하여금 동일한 거래를 거부하게 한다. 네트워크를 통한 거래의 "확산"은 대칭적이며, 이는 전달 노드가 거래 브로드캐스트에 영향을 주는 이웃 노드의 IP 주소에 관한 정보를 사용하지 않는다는 것을 의미한다. 예를 들어, "표준" 확산 프로세스(비트코인 프로토콜에서 사용됨)에서 브로드캐스트 노드의 피어는 모두 동일한 거래를 수신하고 각 중계 인스턴스에서 한 번에 단 하나만의 거래가 피어마다 중계된다. 이러한 "확산"의 대칭적 성질은 익명화 해제 공격을 수행할 때 네트워크의 피어 대 피어 그래프 구조에 대한 지식이 있는 악의적인 제 3자에 의해 이용될 수 있다.
본 개시는 트래픽 분석 공격에 대한 익명성 보호를 향상시키기 위해 블록체인 네트워크상의 거래 중계를 위한 대안적인 기술을 제공한다. 더 구체적으로, 제안된 중계 프로토콜은 거래의 소스 노드와 이들의 IP 주소 사이의 연결을 가장(disguis)하는 데 사용될 수 있다.
본 출원의 일 측면에 따르면, 블록체인 기반 네트워크의 노드는 새로운 거래를 일정 기간동안 버퍼링하여, 그 피어 노드로 전파될 거래를 축적한다. 이후에, 노드는 버퍼링/축적된 거래의 다른 세트를 이들 피어 노드의 임의로 선택된 서브세트로 송신한다. 이러한 방식으로 거래가 네트워크 전체에 전파되며, 각 수신자 노드는 수신된 거래를 자신의 피어로 중계하는 모드를 독립적으로 선택한다.
제안된 중계 프로토콜인 DMP(Difffusion Mixer Protocol)에는 두 개의 독립적인 확산 단계가 포함되어 있다. 첫 번째 단계("무작위 차등 중계(random differential relay)")는 중계된 거래 혼합 및 거래 소스의 난독화(obfuscation)를 허용한다. 무작위 차등 중계 단계 중에, 각 노드는 거래를 네트워크로 브로드캐스트하기 전에 미리 정의된 시간 동안 대기하여 자신의 피어에서 더 많은 거래를 수집한다. 그런 다음 노드는 "엔트리 노드"로 나가는 연결을 생성하고 대략 동일한 타임스탬프를 갖는 상이한 거래를 이러한 엔트리 노드의 임의로(예를 들어, 무작위로) 선택된 서브세트에 송신한다. 노드의 엔트리 노드는 노드로부터 직접 나가는 연결이 설정될 수 있는 그러한 이웃 노드이다. 엔트리 노드의 선택에서의 무작위성 및 중계된 거래의 다양성으로 인해 공격자가 네트워크 토폴로지를 재구성하는 것이 어려워질 수 있다.
두 번째 단계("표준 확산")는 네트워크 내에서 적시의 신뢰성 있는 거래 전파를 보장한다. 표준 확산 단계에서, 각 노드는 동일한 거래를 이의 모든 엔트리 노드에 중계하고 각 중계 인스턴스에서 노드마다 한 번에 하나의 거래만이 중계된다.
블록체인 네트워크와 같은 노드 네트워크에서, 노드 중 하나 이상이 DMP를 구현할 수 있다는 점에 주의해야 한다. 구체적으로, 네트워크의 노드 중 하나 이상이 DMP에 참여함으로써 자신이 수신한 데이터 패킷을 자신의 엔트리 노드로 중계 할 수 있을 것이다. 참여 노드는 예를 들어, 특정 데이터 패킷을 전파하기 위해, 무작위 차등 중계 프로세스 및 표준 확산 프로세스 사이에서 선택할 수 있다. 네트워크의 노드는 DMP에 참여하도록 선발될 수 있어, 탈중앙화된 방식을 통해 또는 중앙 당국(central authority)에 의해 구성된 참여 노드 그룹에 포함시킴으로써 프로토콜에 참여할 수 있다. 참여 노드는 DMP에 따라 출력 네트워크 패킷을 중계할 것이다. 특히, 참여 노드가 데이터 패킷을 수신하면, 노드는 그 노드에 대해 선택된 전파 모드에 따라 수신된 데이터 패킷을 DMP에서 규정한 규칙을 사용하여 전달할 수 있다.
거래 중계를 위한 DMP의 개략적인 시각화가 도 3에 제공된다. 노드의 예시적인 블록체인 네트워크(300)가 도시된다. 각 노드는 네트워크 터미널(즉, 블록체인 노드)을 나타내며, 에지는 노드 간의 링크를 나타낸다. 이와 같은 예시를 위해, 각각의 링크에 대해 한 번에 하나의 비트를 송신 또는 수신할 수 있는 것으로 가정된다.
이러한 예시적인 네트워크(300)에서, 각각의 노드는 확인되지 않은 거래의 멤풀(mempool)을 유지하여 노드가 새로운 거래를 수신하면, 이는 네트워크를 통해 다른 모든 노드로 전파된다. 각 노드는 개개의 로컬 멤풀에서 새로운 거래를 검증하고 저장하기 위한 것이며, 새로운 거래를 아직 새로운 거래를 갖지 못한 임의의 피어 노드로 전달하기 위한 것이다. 블록체인 네트워크(300)의 피어 대 피어 성질로 인해, 모든 노드가 동시에 새로운 거래를 수신하지는 못하는데, 이는 새로운 거래가 네트워크(300)에서 모든 노드에 도달하는 데 어느 정도의 시간이 소요될 것이라는 점을 의미한다. 예를 들어, 비트코인 네트워크의 현재 구현에서, 새로운 유효 거래는 비트코인 네트워크 노드의 90 %에 도달하는 데 평균 3.5 초가 소요될 것이다.
도 3은 특정 거래 Tx1을 전파하기 위한 DMP의 두 단계, 즉 Tx1(304)에 대한 무작위 차등 전파(302) 및 표준 확산을 도시한다. 거래 Tx1의 소스 노드(310)는 거래 Tx1을 생성하거나 이를 t1 시간에 피어 노드로부터 수신할 수 있다. DMP에 따르면, 소스 노드(310)는 수신/대기된 거래의 브로드캐스트를 시작하기 전에 이웃 노드로부터 적어도 하나의 들어오는 거래를 수신하기를 기다린다. 도 3의 예에서, 거래 Tx2가 소스 노드(310)에 의해 수신되면, 거래 Tx1 및 Tx2는 소스 노드(310)의 엔트리 노드의 임의로 선택된 서브세트에 송신된다. 거래 Tx1이 엔트리 노드(310c 및 310d)에 전달되고, 거래 Tx2는 엔트리 노드(310a 및 310b)로 전달된다. 도 3의 예는 단지 예시적인 것이며, 특히 소스 노드(310)는 수신된 임의의 거래를 전파하기 전에 둘 이상의 수신 거래를 수신하기를 기다릴 수 있다.
엔트리 노드는 수신된 거래를 그들 자신의 피어에게 중계한다. 예를 들어, 노드(310b 및 310d)는 거래 Tx2 및 Tx1을 각각 자신의 하나 이상의 이웃 노드로 전달한다. DMP에서, 거래의 각 수신자는 수신된 거래를 전파하는 모드를 독립적으로 선택한다. 노드(320)는 확산 모드로서 표준 확산을 선택하는 노드의 예이다. 도 3에 도시된 바와 같이, 노드(320)는 동일한 거래 Tx1을 자신의 모든 엔트리 노드, 즉 320a, 320b, 320c, 320d 및 320e로 전달한다.
이제 도 5를 참조하며, 도 5는 네트워크에서 데이터 패킷을 전파하기 위한 예시적인 프로세스(500)를 흐름도 형태로 도시한다. 프로세스(500)는 예를 들어, 네트워크(100)와 같은 블록체인 네트워크의 노드에 의해 구현된다. 이러한 상황에서 노드는 마이닝 노드, 풀 노드, 검증기 노드(validator node) 또는 블록체인 네트워크의 다른 유형의 이산 블록체인 노드를 의미하는 것으로 이해될 수 있다. 노드는 네트워크 연결(들), 컴퓨팅 자원을 가지며 블록체인 프로토콜을 구현하는 소프트웨어 실행하는 컴퓨팅 장치이다.
단계 502에서, 노드와 연관된 클라이언트는 제 1 유형의 적어도 하나의 데이터 패킷을 생성한다. 블록체인 네트워크와 관련하여, 제 1 유형의 데이터 패킷은 블록체인 거래를 포함할 수 있다. 즉, 클라이언트는 네트워크의 다른 노드로 전파될 블록체인 거래를 생성할 수 있다.
단계 504에서, 노드는 제 1 기간(T) 동안 제 1 유형의 데이터 패킷 세트를 수집한다. 즉, 노드는 일정 기간 동안 제 1 유형의 데이터 패킷을 축적한다. 이러한 세트는 적어도 하나의 생성된 데이터 패킷 및 네트워크의 하나 이상의 피어 노드로부터 수신된 제 1 유형의 적어도 하나의 데이터 패킷을 포함한다. 이러한 방식으로, 노드에 의해 생성된 데이터 패킷은 이웃 노드로부터 수신된 동일한 유형의 그러한 데이터 패킷과 혼합된다. 블록체인 네트워크에서, 기간 T 동안, 노드는 중개될 들어오는 거래에 대해 네트워크를 감시하는 거래 세트를 축적한다. 기간 T의 길이 Δt가 미리 정의될 수 있다. 일부 예시적인 구현에서, 시간 길이는 평균 연결 시간, 단위 시간당 수신된 거래의 평균적인 수 또는 네트워크 내의 노드의 중심성(centrality)(즉, 노드로의 들어오는 연결의 수)과 같은 파라미터에 기초하여 변할 수 있다. 기간 T 동안, 노드가 제 1 유형의 데이터 패킷을 축적하는 것만이 허용될 수 있고, 따라서 기간(T) 동안 제 1 유형의 임의의 데이터 패킷을 전송하는 것이 금지될 수 있다.
동작 506에서, 노드는 수집된 데이터 패킷의 상이한 세트가 전달될 엔트리 노드의 서브세트를 임의로 선택한다. 더 구체적으로, 수집된 데이터 패킷의 세트 내의 각각의 데이터 패킷에 대해, 노드는 임의로 엔트리 노드(즉, 이웃 노드, 노드는 이웃 노드와의 나가는 연결을 가짐) 중 둘 이상을 선택하고, 선택된 엔트리 노드에 데이터 패킷을 할당한다. 예를 들어, 엔트리 노드는 무작위로 선택될 수 있다. 일부 구현예에서, 노드는 자신의 피어의 새로운(fresh) 주소를 획득하기 위 네트워크를 질의할 수 있다. 비트코인 네트워크에서, 노드는 비트코인 코어, 비트코인제이(BitcoinJ) 또는 다른 블록체인 프로토콜에 내장되고 비트코인(또는 다른 블록체인) 커뮤니티 구성원에 의해 유지되는 하나 이상의 데이터베이스 소스 이름(DSN)을 질의할 수 있다. 응답으로서, 노드는 들어오는 연결을 수락할 수 있는 사용 가능한 풀 노드의 IP 주소를 보여주는 하나 이상의 DSN 레코드를 가져 올 것이다. 탈중앙화된 버전의 피어 검색은 피어가 그들의 IP 주소와 포트 번호를 포함하는“ADDR”메시지를 네트워크에 참여하는 새 노드에 송신하게 함으로써 구현될 수 있다.
일부 구현예에서, 동작(506)의 일부로서, 네트워크 내의 하나 이상의 노드은 데이터 패킷이 중계되어야 하는 엔트리 노드에 대한 각각의 수집된 데이터 패킷의 할당을 추적하는 테이블 또는 다른 데이터 구조를 유지할 수 있다. 도 4는 블록체인 네트워크에서 DMP의 무작위 차동 전파 단계에서 소스 노드(410)에 대한 거래 중계의 예를 도시한다. 표 1은 소스 노드(410)의 엔트리 노드에 대한 수집된 거래 Tx1-Tx5의 할당의 예이다. 엔트리 노드는 노드 A, B, C, D, E, F, G 및 H로 표시된다. 도 4 및 표 1에 도시된 바와 같이, 소스 노드(410)는 각각의 거래를 적어도 2 개의 엔트리 노드로 중계하고, 다수의 거래는 동일한 노드를 통해 중계될 수 있다. 예를 들어, 거래 Tx3, Tx4 및 Tx5는 모두 엔트리 노드 E를 통해 동시에 중계된다. 보다 일반적으로, 무작위 차등 전파 프로세스에서, 다수의 데이터 패킷은 전달 노드(forwarding node)에 의해 동시에 동일한 피어 노드에 중계될 수 있다. 모든 엔트리 노드가 주어진 DMP 인스턴스에서 소스 노드(410)로부터 거래를 수신하는 것은 아니다. 표 1의 예에서, 엔트리 노드 C 및 G는 소스 노드(410)로부터 어떠한 거래도 수신하지 않는다.
Figure pct00001
표 1
다시 도 5를 참조하면, 수집된 각각의 데이터 패킷에 대해, 단계(508)에서, 노드가 데이터 패킷을 (임의적으로 또는 무작위로) 선택된 엔트리 노드 각각으로 전송한다. 각각의 선택된 엔트리 노드는 그 엔트리 노드에 대해 무작위로 선택된 데이터 전파 모드를 사용하여 데이터 패킷을 네트워크의 하나 이상의 제 2 노드에 중계하도록 구성된다. 즉, 각각의 선택된 엔트리 노드는 그 엔트리 노드에 대해 독립적으로 선택된 전파 모드를 사용하여, 수신된 데이터 패킷을 자신의 자체 피어 중 하나 이상으로 전달한다. 도 4의 예시적인 거래 중계에서, 거래 Tx1-Tx5 각각은 거래가 할당된 엔트리 노드로 전달된다. 일부 구현예에서, 동작(508)의 일부로서, 노드는 데이터 패킷과 함께, 무작위로 선택된 전파 모드를 사용하여 데이터 패킷을 전달하기 위해 선택된 엔트리 노드(즉, 수신자 노드)로 익스프레스 커맨드(express command)를 전송할 수 있다.
소스 노드(410)로부터 거래를 수신하는 각각의 노드는, 수신된 거래를 (존재하는 경우) 자신의 피어 노드 중 하나 이상으로 전달하는 데 사용하기 위해 전파/확산 모드를 무작위로 선택한다. 특히, 거래를 수신하는 엔트리 노드는, 표준 확산 프로세스 또는 임의의 차등 전파 프로세스에 따라 거래를 중계하는 것 사이에서 무작위 기반으로 선택한다. 두 옵션 중에서 선택하는 것은 무작위이다. 따라서, DMP에서는 두 확산 프로세스가 확률적으로 교대되는데, 즉 무작위 차등 전파 단계와 표준 확산 단계 사이에 명확한 분리가 이루어지지 않는다. 확산 프로세스의 이러한 "혼합"의 결과로, 침입자가 무작위 데이터 전파 또는 표준 확산을 통해 중계하는 노드 세트 사이의 분리를 식별하는 것에 기초하여 네트워크의 토폴로지를 재구성하는 것이 더욱 어려워진다.
일부 구현예에서, 확산 모드의 엔트리 노드에 의한 무작위 선택은 중계된 데이터 패킷에 추가하여 메시지를 소스 노드로부터 수신하는 것과 관련될 수 있다. 엔트리 노드는 이후에, 무작위 값(예를 들어, 무작위 넘버)을 생성하고, 이를 수신 된 메시지에 추가하며, 예를 들면 SHA-256을 사용하여 결과를 해시할 수 있다. 엔트리 노드는 이어서 해시 값을 검사할 수 있고, 그 후 해시 값에 관한 미리 결정된 규칙에 기초하여 확산 모드를 획득할 수 있다(예를 들어, 해시의 최종 문자가 숫자인 경우, 무작위 차등 전파를 확산 모드로서 선택한다). 대안적으로 또는 추가적으로, 확산 모드의 선택은 임의의 무작위화 프로세스(예를 들어, 난수 생성기)를 사용하여 수행될 수 있으며, 여기서 모드 중 하나를 선택할 확률은 들어오는 및/또는 나가는 연결의 수, 단위 시간당 수신된 데이터 패킷의 평균적인 수 등과 같은 요인에 따라 모드 중 다른 하나를 선택하는 확률보다 클 수 있다.
특정 데이터 패킷을 전파할 때, 전파 노드에 대한 익명성 보호 수준과 전체 전파 속도의 균형을 맞추는 것이 바람직할 수 있다. 특정한 수준의 익명성을 보장하기 위한 조치가 너무 번거로운 경우(예를 들어, 너무 많은 네트워크 자원을 요구하는 경우, 네트워크의 노드가 의도적으로 데이터 패킷을 중계하는 용도로 활용되지 않는 경우 등), 적시에 데이터를 확산시키는 데 있어 네트워크의 능률(efficacy)이 악화될 수 있다. 따라서, 일부 구현예에서, 중계 노드에 의한 전파 모드의 무작위 선택에 가중치가 부여될 수 있다. 특히, 확률이 데이터 전파 속도 및 익명 성의 비례적 중요성을 반영하도록 상이한 확률이 둘 이상의 전파 모드(즉, 무작위 차동 전파, 표준 확산 등) 각각에 할당될 수 있다. 예를 들어, 더 높은 사전 정의 된 확률은 특정 네트워크의 노드에 대한 무작위 차등 전파 모드와 연관될 수 있어, 전파된 데이터의 익명성을 보존하는 것에 비례적으로 더 큰 중요성을 반영한다.
도 5의 방법(500)은 제 1 유형의 자체 데이터 패킷을 생성하는 노드에 의해 구현된다. 특히 DMP에 참여하고 네트워크의 나머지 부분으로 전파하기 위한 데이터 패킷을 생성하는 노드가 방법(500)을 수행한다. 도 5a는 중계 노드 또는, 다른 노드에 의해 생성된 데이터 패킷을 전달하는 노드에 의해 수행되는 예시적인 프로세스를 도시한다. 즉, 중계 노드는 특정 데이터 패킷을 중계하는 동안 이전할 데이터를 스스로 생성하지 않는 노드이며, 단지 데이터 패킷을 "중계하는" 기능을 서빙한다. 550 단계에서, 중계 노드는 자체 데이터 전파 모드를 독립적으로 선택한다. 예를 들어, 중계 노드는 무작위 차등 전파 모드와 표준 확산 모드 중에서 선택할 수 있다. 단계 552에서, 표준 확산 모드가 선택되면, 중계 노드는 단계 554에서 데이터 패킷을 자신의 모든 엔트리 노드로 전달한다. 도 5a의 예에서, 전파 모드의 선택은 2 가지 가능한 옵션 사이에서 이루어지나, 이 예는 제한적인 것이 아니며, 다른 예에서는 셋 이상의 가능한 전파 모드가 존재할 수 있다. 방법(500)에서 선택된 모드가 무작위 차등 전파인 경우, 중계 노드는 도 5의 단계 504, 506 및 508에 대응하는 단계 556, 558 및 560을 수행한다.
이제 도 6을 참조할 것이며, 도 6은 네트워크에서 데이터 패킷을 전파하기 위한 예시적인 프로세스(600)를 흐름도 형태로 도시한다. 프로세스(600)는 블록체인 네트워크의 다른 노드에 대해 복수의 들어가는 연결 및 나가는 연결을 갖는 블록체인 노드에서 구현될 수 있다.
프로세스 600의 단계 602, 604, 606 및 610은 각각 프로세스 500의 단계 502, 504, 506 및 508에 대응한다. 단계 608에서, 노드는 단계 610에서 수집된 데이터 패킷을 자신의 할당된 엔트리 노드로 전송하기 전에 트리거링 조건이 충족되었는지를 결정한다. 특히, 데이터 패킷의 전송은 적절한 트리거링 조건이 충족되었다는 것을 검출하는 것에 응답하여 수행된다. 트리거링 조건이 충족되지 않은 경우, 노드는 상기 데이터 패킷 중 어느 것도 엔트리/피어 노드로 중계하지 않고 계속하여 제 1 유형의 데이터 패킷을 수집한다.
트리거링 조건은 노드로 하여금 충분한 수의 들어오는 데이터 패킷을 수집하고/하거나 충분한 시간동안 들어오는 데이터 패킷을 수집하도록 지시하는 데 사용될 수 있다. 복수의 들어오는 데이터 패킷을 예를 들어, 동시에 네트워크의 피어 노드로 전파하기 전에 이들을 수집함으로써, 노드에서 기원한 중계 트래픽을 모니터링하는 공격자가 노드를 중계된 데이터 패킷의 올바른 소스로서 쉽게 식별하지 못할 수 있다.
일부 구현예에서, 트리거링 조건은 단계 602에서 노드에 의한 제 1 유형의 적어도 하나의 데이터 패킷의 생성 시간 이후의 미리 결정된 지속 기간이 만료되는 것일 수 있다. 즉, 상기 데이터 패킷 중 임의의 것이 노드에 의해 전파되기 전에, 노드가 동일한 유형의 데이터 패킷을 생성할 때 시작되는 미리 결정된 기간 동안 들어오는 데이터 패킷(예, 거래)을 모니터링 및 수집하도록 노드가 설계될 수 있다. 이 조건은 노드에 의해 생성된 데이터 패킷이 동시에 브로드캐스트할 수 있는 동일한 유형의 더 많은 데이터 패킷을 수집한 후에 노드에 의해 생성된 데이터 패킷이 전파되는 것을 보장하려고 시도할 때 유용할 수 있으며, 이로써 공격자가 생성된 데이터 패킷의 소스로서 노드를 정확하게 식별하는 것을 어렵게 할 수 있다.
일부 구현예에서, 트리거링 조건은 노드의 피어들로부터 제 1 유형의 적어도 하나의 들어오는 데이터 패킷 중 첫 번째 패킷의 수신 시간 이후로 미리 결정된 지속 기간이 만료되는 것일 수 있다. 즉, 노드는 들어오는 데이터 패킷 중 첫 번째 패킷이 수신될 때 시작되는 미리 결정된 기간 동안 들어오는 데이터 패킷을 모니터링하고 수집하도록 설계될 수 있다. 이러한 조건은, 더 많은 데이터 패킷, 즉 노드 자체에 의해 생성되거나 다른 데이터 패킷으로부터 수신된 데이터 패킷이 네트워크의 나머지 피어로의 어떠한 브로드캐스트가 이루어지기 전에 노드에 의해 수집된다는 점을 보장하기 위한 시도에서 유용할 수 있다.
일부 구현예에서, 트리거링 조건은 제 1 기간 동안 동안 수집된 데이터 패킷의 수가 임계적 수에 도달하는 것일 수 있다. 특히, 노드는 제 1 기간의 만료 또는 미리 결정된 수의 데이터 패킷이 노드에 의해 수집되는 것 중 더 빠른 시점까지 들어 오는 데이터 패킷을 모니터링 및 수집하도록 설계될 수 있다.
도 7은 참여 노드(700)의 단순화된 예를 블록도 형태로 도시한다. 노드(700)는 프로세서(702)를 포함하는데, 이는 하나 이상의 마이크로프로세서(microprocessor), 애플리케이션 특정 집적 칩(Application Specific Integrated Chip: ASIC), 마이크로제어기(microcontroller), 또는 유사한 컴퓨터 처리 장치를 포함할 수 있다. 노드(700)는 메모리(704)(이는 값, 변수, 그리고 몇몇 사례에서는 프로세서 실행가능(processor-executable) 프로그램 명령어를 저장하는 지속성(persistent) 및 비지속성(non-persistent) 메모리를 포함할 수 있음), 그리고 유선 또는 무선 네트워크를 통하여 네트워크 연결성을 제공하는 네트워크 인터페이스(706)를 더 포함한다.
노드(700)는, 실행되는 경우, 프로세서(702)로 하여금 본 문서에 기술된 기능 또는 동작 중 하나 이상을 수행하게 하는 프로세서 실행가능 명령어를 포함한 프로세서 실행가능 블록체인 애플리케이션(708)을 포함한다.
본 문서에 기술된 장치와 프로세스, 그리고 블록체인 노드를 구성하기 위해 기술된 방법/프로세스를 구현하는 임의의 모듈(module), 루틴(routine), 프로세스(process), 쓰레드(thread), 애플리케이션(application), 또는 다른 소프트웨어 컴포넌트(software component)는 표준적인 컴퓨터 프로그래밍 기법 및 언어를 사용하여 실현될 수 있음이 이해될 것이다. 본 출원은 특정한 프로세서, 컴퓨터 언어, 컴퓨터 프로그래밍 관례(conventions), 데이터 구조, 또는 다른 그러한 구현 세부사항에 한정되지 않는다.
앞서 언급된 실시예는 발명을 한정하기보다는 예시한다는 점, 그리고 당업자는 부기된 청구항에 의해 정의된 바와 같은 발명의 범위로부터 벗어나지 않고서 많은 대안적인 실시예를 설계하는 것이 가능할 것이라는 점에 유의하여야 한다. 청구항에서, 괄호 안에 놓인 임의의 참조 부호는 청구항을 한정하는 것으로 해석되어서는 안 된다. 단어 “포함하는"(comprising) 및 "포함한다"(comprises)와, 유사한 것은, 전체적으로 명세서 또는 임의의 청구항 내에 열거된 것이 아닌 요소 또는 단계의 존재를 배제하지 않는다. 본 명세서에서, "comprises"는 "includes or consists of"를 의미하고 "comprising"은 "including or consisting of"를 의미한다. 요소의 단수형 참조는 그러한 요소의 복수형 참조를 배제하지 않으며 반대로도 마찬가지이다. 발명은 몇 개의 구별되는 요소를 포함하는 하드웨어에 의해서, 그리고 적절하게 프로그래밍된 컴퓨터에 의해서 구현될 수 있다. 몇 개의 수단을 나열하는 장치 청구항에서, 이들 수단 중 몇 개는 하드웨어의 동일한 한 아이템에 의해 구현될(embodied) 수 있다. 상호간에 상이한 종속 청구항에서 어떤 조치가 언급된다는 사실만으로 이들 조치의 조합이 유리하게 사용될 수 없다는 것을 나타내는 것은 아니다.

Claims (15)

  1. 노드의 네트워크에서 데이터 패킷을 전파하기 위한 노드로서,
    상기 네트워크의 각 노드는 다른 노드로의 하나 이상의 연결을 가지며,
    상기 노드는,
    프로세서와,
    네트워크 연결을 제공하는 네트워크 인터페이스와,
    프로세서 실행가능 명령어를 포함하는 메모리
    를 포함하되,
    상기 프로세서 실행가능 명령어는 상기 프로세서에 의해 실행될 때 상기 프로세서로 하여금
    제 1 유형의 적어도 하나의 데이터 패킷을 생성하고,
    제 1 기간 동안 제 1 유형의 데이터 패킷의 세트를 수집하고 - 상기 세트는 적어도 하나의 생성된 데이터 패킷 및 상기 네트워크의 하나 이상의 제 1 노드로부터 수신된 제 1 유형의 적어도 하나의 데이터 패킷을 포함함 -,
    상기 세트의 각 데이터 패킷에 대해,
    상기 노드에 연결된 둘 이상의 이웃 노드를 임의로 선택하고,
    상기 데이터 패킷을 상기 둘 이상의 선택된 이웃 노드 각각에 전송하게 하며,
    상기 둘 이상의 선택된 이웃 노드는 그 이웃 노드에 대해 무작위로 선택된 데이터 전파 모드를 사용하여 상기 네트워크의 하나 이상의 제 2 노드에 상기 데이터를 중계하도록 구성되는
    노드.
  2. 제 1 항에 있어서,
    상기 제 1 기간은 미리 정의된 길이를 갖는
    노드.
  3. 제 1 항에 있어서,
    상기 명령어는 실행될 때, 상기 프로세서로 하여금 트리거링 조건이 충족되었다는 결정에 응답하여 상기 전송을 수행하게 하는
    노드.
  4. 제 3 항에 있어서,
    상기 트리거링 조건은 상기 노드에 의한 상기 제 1 유형의 적어도 하나의 데이터 패킷의 생성 시간 이후에 미리 결정된 지속 기간이 만료되는 것을 포함하는
    노드.
  5. 제 3 항에 있어서,
    상기 트리거링 조건은 상기 하나 이상의 제 1 노드로부터의 상기 제 1 유형의 적어도 하나의 데이터 패킷 중 첫 번째 데이터 패킷을 수신한 시간 이후에 미리 결정된 지속 기간이 만료되는 것을 포함하는
    노드.
  6. 제 3 항에 있어서,
    상기 트리거링 조건은 상기 제 1 기간 동안 수집된 데이터 패킷의 수가 임계적 수에 도달하는 것을 포함하는
    노드.
  7. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,
    이웃 노드에 대한 상기 데이터 전파 모드는 제 1 모드와 제 2 모드 사이에서 임의로 선택되고,
    상기 제 1 모드에서, 상기 데이터 패킷은 상기 이웃 노드에 연결된 노드의 임의로 선택된 서브세트에 중계되고,
    상기 제 2 모드에서, 상기 데이터 패킷은 상기 이웃 노드에 연결된 모든 노드에 중계되는
    노드.
  8. 제 1 항 내지 제 7 항 중 어느 한 항에 있어서에 있어서,
    상기 명령어는 실행될 때, 상기 프로세서로 하여금 상기 제 1 기간 동안 상기 제 1 유형의 임의의 데이터 패킷을 전송하는 것을 방지하는
    노드.
  9. 노드의 네트워크에서 데이터 패킷을 전파하는 컴퓨터로 구현되는 방법으로서,
    상기 네트워크의 각 노드는 다른 노드로의 하나 이상의 연결을 가지고,
    상기 노드 중 하나에서 구현될 수 있는 방법은,
    제 1 유형의 적어도 하나의 데이터 패킷을 생성하는 단계와,
    제 1 기간 동안 상기 제 1 유형의 데이터 패킷의 세트를 수집하는 단계 - 상기 세트는 적어도 하나의 생성된 데이터 패킷 및 상기 네트워크 내의 하나 이상의 제 1 노드로부터 수신된 적어도 하나의 상기 제 1 유형의 데이터 패킷을 포함함 - 와,
    상기 세트 내의 각각의 데이터 패킷에 대해.
    상기 노드 중 하나에 연결된 둘 이상의 이웃 노드를 임의로 선택하고,
    상기 둘 이상의 선택된 이웃 노드 각각에 상기 데이터 패킷을 전송하는 단계
    를 포함하고,
    상기 둘 이상의 선택된 이웃 노드는 그 이웃 노드에 대해 무작위로 선택된 데이터 전파 모드를 사용하여 상기 네트워크 내의 하나 이상의 제 2 노드에 상기 데이터 패킷을 중계하도록 구성되는
    방법.
  10. 제 9 항에 있어서,
    상기 전송 단계는 트리거링 조건이 충족되었다는 결정에 응답하여 수행되는
    방법.
  11. 제 10 항에 있어서,
    상기 트리거링 조건은 상기 노드 중 하나에 의한 상기 제 1 유형의 적어도 하나의 데이터 패킷의 생성 시간 이후에 미리 결정된 지속 기간이 만료되는 것을 포함하는
    방법.
  12. 제 10 항에 있어서,
    상기 트리거링 조건은 상기 하나 이상의 제 1 노드로부터 상기 제 1 유형의 상기 적어도 하나의 데이터 패킷 중 첫 번째 데이터 패킷을 수신한 이후에 미리 결정된 지속 시간이 만료되는 것을 포함하는
    방법.
  13. 제 10 항에 있어서,
    상기 트리거링 조건은 상기 제 1 기간 동안 수집된 데이터 패킷의 수가 임계적 수에 도달하는 것을 포함하는
    방법.
  14. 제 9 항에 있어서,
    상기 제 1 기간 동안 상기 제 1 유형의 임의의 데이터 패킷의 전송을 방지하는 단계를 더 포함하는
    방법.
  15. 노드의 네트워크에서 데이터 패킷을 전파하기 위한 프로세스에 참여하기 위한 프로세서 실행가능 명령어를 저장하는 비 일시적 프로세서 판독가능 매체로서,
    상기 프로세서 실행가능 명령어는 참여 노드 중 하나의 프로세서에 의해 실행될 때 상기 프로세서로 하여금, 제 9 항 내지 제 14 항 중 어느 한 항에 청구된 방법을 수행하게 하는
    비 일시적 프로세서 판독가능 매체.
KR1020207016019A 2017-11-27 2018-11-19 블록체인 네트워크와 같은 네트워크에서 데이터의 전파 및 통신을 위한 컴퓨터 구현 시스템 및 방법 KR102519197B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020237011374A KR20230048468A (ko) 2017-11-27 2018-11-19 블록체인 네트워크와 같은 네트워크에서 데이터의 전파 및 통신을 위한 컴퓨터 구현 시스템 및 방법

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GBGB1719654.4A GB201719654D0 (en) 2017-11-27 2017-11-27 Computer-implemented system and method
GB1719654.4 2017-11-27
PCT/IB2018/059092 WO2019102334A1 (en) 2017-11-27 2018-11-19 Computer-implemented system and method for propagation and communication of data in a network such as a blockchain network

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020237011374A Division KR20230048468A (ko) 2017-11-27 2018-11-19 블록체인 네트워크와 같은 네트워크에서 데이터의 전파 및 통신을 위한 컴퓨터 구현 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20200089687A true KR20200089687A (ko) 2020-07-27
KR102519197B1 KR102519197B1 (ko) 2023-04-06

Family

ID=60950589

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020207016019A KR102519197B1 (ko) 2017-11-27 2018-11-19 블록체인 네트워크와 같은 네트워크에서 데이터의 전파 및 통신을 위한 컴퓨터 구현 시스템 및 방법
KR1020237011374A KR20230048468A (ko) 2017-11-27 2018-11-19 블록체인 네트워크와 같은 네트워크에서 데이터의 전파 및 통신을 위한 컴퓨터 구현 시스템 및 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020237011374A KR20230048468A (ko) 2017-11-27 2018-11-19 블록체인 네트워크와 같은 네트워크에서 데이터의 전파 및 통신을 위한 컴퓨터 구현 시스템 및 방법

Country Status (9)

Country Link
US (3) US11245757B2 (ko)
EP (3) EP4401387A2 (ko)
JP (2) JP2021504783A (ko)
KR (2) KR102519197B1 (ko)
CN (1) CN111406396B (ko)
GB (1) GB201719654D0 (ko)
SG (1) SG11202004652WA (ko)
WO (1) WO2019102334A1 (ko)
ZA (1) ZA202002623B (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201802347D0 (en) * 2018-02-13 2018-03-28 Nchain Holdings Ltd Computer-implemented system and method
GB201804479D0 (en) * 2018-03-21 2018-05-02 Nchain Holdings Ltd Computer-implemented system and method
CN108696589B (zh) * 2018-05-14 2022-04-08 百度在线网络技术(北京)有限公司 区块链数据传输方法、装置、设备和存储介质
CN112102078B (zh) * 2020-08-07 2024-05-21 柳州市蓝海数链科技有限公司 区块链共识计算方法、装置、计算机设备及存储介质
CN112102079B (zh) * 2020-08-07 2024-05-17 柳州市蓝海数链科技有限公司 业务数据的处理方法、装置、计算机设备及存储介质
JP7420287B2 (ja) 2021-01-07 2024-01-23 日本電信電話株式会社 情報処理装置、隣接ノード選択方法及びプログラム
JP7048039B1 (ja) * 2021-01-15 2022-04-05 株式会社アクセル 決済システム、決済装置、決済方法及び決済プログラム
US11902426B2 (en) * 2021-06-26 2024-02-13 Ceremorphic, Inc. Efficient storage of blockchain in embedded device
US11651110B2 (en) * 2021-07-08 2023-05-16 Dell Products, L.P. Hardware device mutual authentication system and method for a baseboard management controller (BMC)
CN115174573B (zh) * 2022-06-30 2024-02-02 蚂蚁区块链科技(上海)有限公司 区块链***中的数据广播方法、节点和区块链***
CN116545608B (zh) * 2023-05-15 2024-06-04 合肥工业大学 基于熟人免疫策略的区块传播方法和***

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120297405A1 (en) * 2011-05-17 2012-11-22 Splendorstream, Llc Efficiently distributing video content using a combination of a peer-to-peer network and a content distribution network

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7593376B2 (en) * 2005-12-07 2009-09-22 Motorola, Inc. Method and apparatus for broadcast in an ad hoc network using elected broadcast relay nodes
CN101207557B (zh) * 2006-12-19 2012-03-07 中兴通讯股份有限公司 无线传感器网络中数据分发的***及方法
JP4948610B2 (ja) * 2010-02-04 2012-06-06 株式会社エヌ・ティ・ティ・ドコモ 通信制御装置及びプログラム
JP5361001B2 (ja) * 2010-08-30 2013-12-04 日本電信電話株式会社 経路制御装置、経路制御方法、およびプログラム
CN102158864B (zh) * 2011-04-15 2013-07-24 北京航空航天大学 一种基于可靠性的移动Ad Hoc网络自适应安全路由方法
US8898327B2 (en) 2011-10-05 2014-11-25 Peerialism AB Method and device for arranging peers in a live streaming P2P network
US9674251B2 (en) * 2013-06-17 2017-06-06 Qualcomm Incorporated Mediating content delivery via one or more services
KR102233371B1 (ko) * 2014-06-24 2021-03-29 삼성전자주식회사 멀티캐스트 네트워크에서의 릴레이 방법 및 장치
US9668238B1 (en) * 2014-10-02 2017-05-30 Sprint Spectrum L.P. Multicast file delivery
KR20160109126A (ko) * 2015-03-10 2016-09-21 한국전자통신연구원 다중 전송경로 환경에서 네트워크 코딩을 이용한 데이터 송수신 장치
US10362106B2 (en) 2015-07-21 2019-07-23 Cisco Technology, Inc. Adaptive gossip protocol
JP6567683B2 (ja) * 2015-10-16 2019-08-28 国立大学法人東北大学 情報処理システム、情報処理装置、情報処理方法、及び、プログラム
WO2017109140A1 (en) 2015-12-22 2017-06-29 Bigchaindb Gmbh Decentralized, tamper-resistant, asset-oriented database system and method of recording a transaction
CN111954096B (zh) * 2016-05-19 2023-05-12 日本电信电话株式会社 传感器中继装置和传感器中继***
CN106102048B (zh) * 2016-06-03 2019-06-04 上海理工大学 一种物联网中传感器发出数据包安全传输到基站的方法
CN106656784B (zh) * 2016-10-14 2020-01-21 ***股份有限公司 用于区块链网络的数据流传播***及方法
GB201709219D0 (en) * 2017-06-09 2017-07-26 Nchain Holdings Ltd Computer-implemented system and method
GB201709848D0 (en) * 2017-06-20 2017-08-02 Nchain Holdings Ltd Computer-implemented system and method
CN107172615B (zh) * 2017-07-25 2019-11-05 中国信息安全测评中心 一种网络节点的数据传输方法、装置、网络节点及***
US10929823B2 (en) * 2017-09-12 2021-02-23 Northwestern University Peer auditing in a blockchain distribution network
US10477543B2 (en) * 2017-09-27 2019-11-12 Trellisware Technologies, Inc. Methods and systems for improved communication in multi-hop networks
GB201802347D0 (en) * 2018-02-13 2018-03-28 Nchain Holdings Ltd Computer-implemented system and method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120297405A1 (en) * 2011-05-17 2012-11-22 Splendorstream, Llc Efficiently distributing video content using a combination of a peer-to-peer network and a content distribution network

Also Published As

Publication number Publication date
EP4054117B1 (en) 2024-07-17
SG11202004652WA (en) 2020-06-29
US20240015211A1 (en) 2024-01-11
US11743328B2 (en) 2023-08-29
ZA202002623B (en) 2023-04-26
EP3718285A1 (en) 2020-10-07
KR102519197B1 (ko) 2023-04-06
US20200389519A1 (en) 2020-12-10
WO2019102334A1 (en) 2019-05-31
CN111406396A (zh) 2020-07-10
US20220232068A1 (en) 2022-07-21
JP2023175020A (ja) 2023-12-08
EP4054117A1 (en) 2022-09-07
GB201719654D0 (en) 2018-01-10
US11245757B2 (en) 2022-02-08
EP3718285B1 (en) 2022-05-25
KR20230048468A (ko) 2023-04-11
JP2021504783A (ja) 2021-02-15
CN111406396B (zh) 2024-06-14
EP4401387A2 (en) 2024-07-17

Similar Documents

Publication Publication Date Title
KR102519197B1 (ko) 블록체인 네트워크와 같은 네트워크에서 데이터의 전파 및 통신을 위한 컴퓨터 구현 시스템 및 방법
US11863422B2 (en) Blockchain-based systems and methods for propagating data in a network
JP7401465B2 (ja) ノードのネットワークにおいてデータパケットを伝搬させるシステム及び方法
JP2023159363A (ja) ノードのネットワークにおいてデータ・パケットを伝搬するための方法
JP2024010228A (ja) ランダム差動リレー及びネットワークコーディングのシステム及び方法

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
A107 Divisional application of patent
GRNT Written decision to grant