KR20200083940A - 트랜잭션 재전송을 사용한 블록체인 네트워크에서의 트랜잭션 전달의 가속 - Google Patents

트랜잭션 재전송을 사용한 블록체인 네트워크에서의 트랜잭션 전달의 가속 Download PDF

Info

Publication number
KR20200083940A
KR20200083940A KR1020197023256A KR20197023256A KR20200083940A KR 20200083940 A KR20200083940 A KR 20200083940A KR 1020197023256 A KR1020197023256 A KR 1020197023256A KR 20197023256 A KR20197023256 A KR 20197023256A KR 20200083940 A KR20200083940 A KR 20200083940A
Authority
KR
South Korea
Prior art keywords
transaction
blockchain
node
received
transactions
Prior art date
Application number
KR1020197023256A
Other languages
English (en)
Inventor
닝 시아
Original Assignee
알리바바 그룹 홀딩 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 알리바바 그룹 홀딩 리미티드 filed Critical 알리바바 그룹 홀딩 리미티드
Publication of KR20200083940A publication Critical patent/KR20200083940A/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/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/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/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)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

블록체인 트랜잭션 가속 시스템에서, 블록체인 내의 제1 노드를 통해 전송된 제1 트랜잭션을 수신한다. 제1 트랜잭션의 사본인 적어도 하나의 제2 트랜잭션이 블록체인 트랜잭션 가속 시스템에서 수신되며, 적어도 하나의 제2 트랜잭션은 제1 노드에 의해, 제1 노드와는 상이한, 블록체인 내의 적어도 하나의 제2 노드에 전송된다. 블록체인 트랜잭션 가속 시스템은, 제1 트랜잭션 및 적어도 하나의 제2 트랜잭션을 포함하는 수신된 트랜잭션 중 가장 먼저 수신된 트랜잭션을 실행한다. 블록체인 트랜잭션 가속 시스템에 의해, 수신된 트랜잭션 중 나머지 트랜잭션이, 가장 먼저 수신된 트랜잭션과 동일하다고 결정할 때, 나머지 트랜잭션을 폐기한다.

Description

트랜잭션 재전송을 사용한 블록체인 네트워크에서의 트랜잭션 전달의 가속
합의 네트워크(consensus network) 및/또는 블록체인 네트워크(blockchain network)로서도 지칭될 수 있는 분산형 원장 시스템(DLS, distributed ledger systems)은, 참여 엔티티가 보안적이고 불변적으로 데이터를 저장할 수 있게 한다. 임의의 특정 사용자 사례를 언급하지 않는 경우, DLS는 통상적으로 블록체인 네트워크로서 지칭된다. 블록체인 네트워크의 예시 유형은 공개(public) 블록체인 네트워크, 비공개(private) 블록체인 네트워크, 및 컨소시엄(consortium) 블록체인 네트워크를 포함할 수 있다. 공개 블록체인 네트워크는 모든 엔티티가 DLS를 사용하고 합의 프로세스에 참여할 수 있도록 개방되어 있다. 비공개 블록체인 네트워크는, 판독 및 기입 권한(read and write permissions)을 중심적으로 제어하는 특정 엔티티를 위해 제공된다. 컨소시엄 블록체인 네트워크는, 합의 프로세스를 제어하는 선택된 엔티티 그룹을 위해 제공되며, 액세스 제어 계층을 포함한다.
종래의 블록체인 시스템에서, 트랜잭션 전송 프로세스는, 트랜잭션을 생성하고 트랜잭션을 블록체인 노드에 전송하는 클라이언트를 포함한다. 블록체인 노드는 트랜잭션 배치(batch)에 대한 합의를 획득하며, 그 후 트랜잭션이 하나씩 실행된다. 실행 결과는 새 블록체인 노드에 기입된다. 이 프로세스는 트랜잭션 네트워크 송신을 수반하며, 이는 트랜잭션을 블록체인 노드에 전달하는 클라이언트에 의해 주로 달성된다. 기존의 블록체인 환경에서는, 통신을 위해 직접 네트워크 연결이 사용된다.
그러나, 클라이언트와 블록체인 노드 사이의 직접 네트워크 연결은 최적의 상태 미만일 수 있다. 그 단순함으로 인해, 직접 네트워크 연결은 비효율적일 수 있다. 네트워크는, 네트워크의 복잡성을 처리하기 위해 적응하는 능력이 없을 수 있다. 예컨대, 네트워크는, 네트워크 문제가 노드 사이의 통신을 느리게 하는 상황을 처리하지 못할 수 있다. 이러한 비효율성때문에, 네트워크 내의 2개의 네트워크 노드가 데이터를 송신해야 할 때, 확립되어 있는 직접 연결은 가능한 가장 빠른 연결이 아닐 수 있다. 예컨대, 경계를 가로지르는 네트워크 내에 2개의 노드가 있을 때, 또는 2개의 노드가 상이한 네트워크 운영자에 속할 때, 직접 네트워크 연결은 비효율적이거나 느릴 수 있다. 일반적으로, 블록체인 내에서의 트랜잭션의 송신 시간은 무작위이거나 알려지지 않는다. 이들 문제를 처리하기 위해 직접 네트워크 연결이 사용될 수 있지만, 직접 네트워크 연결을 처리하기 위한 더 효율적인 해결책이 이로울 것이다.
본 명세서의 구현예는, 블록체인 네트워크 트랜잭션을 개선시키기 위한 컴퓨터-구현 방법(computer-implemented method)을 포함한다. 더 구체적으로, 본 명세서의 구현예는, 트랜잭션 재전송을 사용한 블록체인 네트워크에서의 트랜잭션 전달의 가속에 관한 것이다.
일부 구현예에서, 동작은, 블록체인 트랜잭션 가속 시스템에서, 블록체인 내의 제1 노드를 통해 전송된 제1 트랜잭션을 수신하는 동작; 블록체인 트랜잭션 가속 시스템에서, 제1 트랜잭션의 사본인 적어도 하나의 제2 트랜잭션을 수신하는 동작 - 적어도 하나의 제2 트랜잭션은 제1 노드에 의해, 제1 노드와는 상이한, 블록체인 내의 적어도 하나의 제2 노드에 전송됨 -; 블록체인 트랜잭션 가속 시스템에 의해, 제1 트랜잭션 및 적어도 하나의 제2 트랜잭션을 포함하는 수신된 트랜잭션 중 가장 먼저 수신된 트랜잭션을 실행하는 동작; 및 블록체인 트랜잭션 가속 시스템에 의해, 수신된 트랜잭션 중 나머지 트랜잭션이, 가장 먼저 수신된 트랜잭션과 동일하다고 결정할 때, 나머지 트랜잭션을 폐기하는 동작을 포함한다. 다른 구현예는, 컴퓨터 저장 디바이스 상에 인코딩된 방법의 동작을 수행하도록 구성된 대응 시스템, 장치, 및 컴퓨터 프로그램을 포함한다.
이들 구현예 및 다른 구현예는 다음의 특징 중 하나 이상을 각각 선택적으로 포함할 수 있다.
다음의 특징 중 임의의 특징과 조합가능한 제1 특징으로서, 수신된 트랜잭션 중 나머지 트랜잭션이, 가장 먼저 수신된 트랜잭션과 동일하다고 결정하는 것은, 가장 먼저 수신된 트랜잭션의 디지털 서명과 일치(match)하는 나머지 트랜잭션 각각의 디지털 서명을 식별하는 것을 포함하는, 제1 특징.
이전의 또는 다음의 특징 중 임의의 특징과 조합가능한 제2 특징으로서, 블록체인 내의 제1 노드 및 블록체인 내의 적어도 하나의 제2 노드는, 상이한 네트워크 제공자에 의해 제공되는 상이한 네트워크 허브 내에 있는, 제2 특징.
이전의 또는 다음의 특징 중 임의의 특징과 조합가능한 제3 특징으로서, 더 빠른 트랜잭션 송신 속도를 제공하는 블록체인 내의 노드를 결정하기 위해, 수신된 트랜잭션에 대한 송신 속도 통계를 수집하는 동작을 더 포함하는, 제3 특징.
이전의 또는 다음의 특징 중 임의의 특징과 조합가능한 제4 특징으로서, 주어진 송신물 전송(transmission-sending) 노드에 대해, 그리고 송신 속도 통계에 기초하여, 트랜잭션이 전송될 선호 노드 세트를 결정하는 동작을 더 포함하는, 제4 특징.
이전의 또는 다음의 특징 중 임의의 특징과 조합가능한 제5 특징으로서, 블록체인 트랜잭션 가속 시스템은 블록체인 내의 하나 이상의 노드에서 또는 블록체인에 의해 액세스가능한 서버에서 구현되는, 제5 특징.
이전의 또는 다음의 특징 중 임의의 특징과 조합가능한 제6 특징으로서, 적어도 하나의 제2 트랜잭션을 전송하기 위해 사용할 복수의 제2 노드를 결정하는 동작을 더 포함하는, 제6 특징.
본 명세서는, 하나 이상의 프로세서에 커플링되고, 하나 이상의 프로세서에 의해 실행될 때, 하나 이상의 프로세서로 하여금, 본 명세서에 제공된 방법의 구현예에 따른 동작을 수행하게 하는 명령어가 저장되어 있는 하나 이상의 비일시적 컴퓨터-판독가능 저장 매체도 제공한다.
본 명세서는, 본 명세서에 제공된 방법을 구현하기 위한 시스템을 더 제공한다. 시스템은, 하나 이상의 프로세서, 및 하나 이상의 프로세서에 커플링되고, 하나 이상의 프로세서에 의해 실행될 때, 하나 이상의 프로세서로 하여금, 본 명세서에 제공된 방법의 구현예에 따라서 동작을 수행하게 하는 명령어가 저장되어 있는 컴퓨터-판독가능 저장 매체를 포함한다.
본 명세서에 따른 방법은, 본 명세서에 설명된 양상 및 특징의 임의의 조합을 포함할 수 있다는 것이 이해된다. 즉, 본 명세서에 따른 방법은, 본 명세서에 구체적으로 설명된 양상 및 특징의 조합으로 제한되는 것이 아니라, 제공된 양상 및 특징의 임의의 조합도 포함한다.
본 명세서의 하나 이상의 구현예의 세부사항이 첨부 도면 및 아래의 설명에 명시되어 있다. 본 명세서의 다른 특징 및 장점은, 설명 및 도면으로부터, 그리고 청구범위로부터 명백해질 것이다.
도 1은, 본 명세서의 구현예를 실행하기 위해 사용될 수 있는 환경의 예를 도시한다.
도 2는, 본 명세서의 구현예에 따른 개념적 아키텍처의 예를 도시한다.
도 3a는, 본 명세서의 구현예에 따른, 블록체인 내의 2개의 노드 사이에서 직접 전송되는 트랜잭션을 위한 경로의 예를 도시하는 블록도이다.
도 3b는, 본 명세서의 구현예에 따른, 블록체인 트랜잭션 가속 시스템에서 다수의 전달되는 트랜잭션의 전송 시 사용되는 경로의 예를 도시하는 블록도이다.
도 4는, 본 명세서의 구현예에 따른, 블록체인 네트워크 내에서 중복 트랜잭션을 사용하기 위한 예시 프로세스를 도시한다.
도 5는, 본 명세서의 구현예에 따른, 블록체인 내의 네트워크 가속 노드를 사용하여 전송되는 트랜잭션을 위해 블록체인 트랜잭션 가속 시스템에서 사용되는 경로의 예를 도시하는 블록도이다.
도 6은, 본 명세서의 구현예에 따른, 블록체인 네트워크 내에서 트랜잭션을 전송하기 위해 가속 노드를 사용하기 위한 프로세스의 예를 도시한다.
도 7은, 본 명세서의 구현예에 따른, 블록체인 트랜잭션 가속 시스템의 다중 블록체인 가속 네트워크의 예의 블록도이다.
도 8은, 본 명세서의 구현예에 따른, 다중 블록체인 가속 네트워크를 사용하기 위한 프로세스의 예를 도시한다.
도 9는, 본 명세서의 구현예에 따른 장치의 모듈의 예를 도시한다.
도 10은, 본 명세서의 구현예에 따른 장치의 모듈의 예를 도시한다.
도 11은, 본 명세서의 구현예에 따른 장치의 모듈의 예를 도시한다.
다양한 도면 내의 유사한 참조 기호는 유사한 요소를 나타낸다.
본 명세서의 구현예는, 블록체인 네트워크 트랜잭션을 개선시키기 위한 컴퓨터-구현 방법을 포함한다. 더 구체적으로, 본 명세서의 구현예는, 트랜잭션 재전송을 사용한 블록체인 네트워크에서의 트랜잭션 전달의 가속에 관한 것이다.
일부 구현예에서, 동작은, 블록체인 트랜잭션 가속 시스템에서, 블록체인 내의 제1 노드를 통해 전송된 제1 트랜잭션을 수신하는 동작; 블록체인 트랜잭션 가속 시스템에서, 제1 트랜잭션의 사본인 적어도 하나의 제2 트랜잭션을 수신하는 동작 - 적어도 하나의 제2 트랜잭션은 제1 노드에 의해, 제1 노드와는 상이한, 블록체인 내의 적어도 하나의 제2 노드에 전송됨 -; 블록체인 트랜잭션 가속 시스템에 의해, 제1 트랜잭션 및 적어도 하나의 제2 트랜잭션을 포함하는 수신된 트랜잭션 중 가장 먼저 수신된 트랜잭션을 실행하는 동작; 및 블록체인 트랜잭션 가속 시스템에 의해, 수신된 트랜잭션 중 나머지 트랜잭션이, 가장 먼저 수신된 트랜잭션과 동일하다고 결정할 때, 나머지 트랜잭션을 폐기하는 동작을 포함한다.
본 명세서의 구현예에 대한 추가적인 맥락을 제공하자면, 그리고 위에서 소개한 바와 같이, (예컨대, 피어-투-피어(peer-to-peer) 노드로 구성된) 합의 네트워크 및 블록체인 네트워크로서도 지칭될 수 있는 분산형 원장 시스템(DLS)은, 참여 엔티티가 보안적이고 불변적으로 트랜잭션을 수행하고 데이터를 저장할 수 있게 한다. 블록체인이라는 용어는 화폐 네트워크와 일반적으로 연관되어 있지만, 임의의 특정 활용 사례에 대한 언급이 없다면, 블록체인은 본 명세서에서 DLS를 일반적으로 지칭하기 위해 사용된다.
블록체인은, 트랜잭션이 불변인 방식으로 트랜잭션을 저장하는 데이터 구조이다. 따라서, 블록체인 상에 기록된 트랜잭션은 믿을 수 있고 신뢰할 수 있다. 블록체인은 하나 이상의 블록을 포함한다. 체인 내의 각 블록은, 체인 내에서 해당 블록의 바로 전에 있는 이전 블록의 암호 해시를 포함함으로써 이전 블록에 링크된다. 각 블록은 타임스탬프, 자체적인 암호 해시, 및 하나 이상의 트랜잭션도 포함한다. 블록체인 네트워크의 노드에 의해 이미 검증된 트랜잭션은 해싱(hashing)되고 머클 트리(Merkle tree)로 인코딩된다. 머클 트리는, 트리의 리프 노드(leaf node)에 있는 데이터가 해싱되어 있는 데이터 구조이며, 트리의 각 브랜치(branch) 내의 모든 해시는 브랜치의 루트(root)에서 연접(concatenating)된다. 이 프로세스는 트리를 따라 올라가면서 전체 트리의 루트까지 계속되며, 이러한 루트는 트리 내의 모든 데이터를 대표하는 해시를 저장한다. 해당 트리 내에 저장된 트랜잭션의 해시라고 주장하는 해시는, 해당 해시가 해당 트리의 구조와 일관적인지의 여부를 결정함으로써 신속하게 검증될 수 있다.
블록체인은, 트랜잭션을 저장하기 위한, 탈집중화된 또는 적어도 부분적으로 탈집중화된 데이터 구조이지만, 블록체인 네트워크는, 트랜잭션 등을 브로드캐스팅 및 검증하고, 유효성을 검사함으로써 하나 이상의 블록체인을 관리, 업데이트, 및 유지하는 컴퓨팅 노드의 네트워크이다. 위에서 소개한 바와 같이, 블록체인 네트워크는 공개 블록체인 네트워크, 비공개 블록체인 네트워크, 또는 컨소시엄 블록체인 네트워크로서 제공될 수 있다.
공개 블록체인 네트워크에서, 합의 프로세스는 합의 네트워크의 노드에 의해 제어된다. 예컨대, 수백, 수천, 또는 수백만 개의 엔티티까지도 공개 블록체인 네트워크 내에서 협력할 수 있으며, 엔티티 각각은 공개 블록체인 네트워크 내의 적어도 하나의 노드를 운영한다. 따라서, 공개 블록체인 네트워크는 참여 엔티티에 관하여 공개 네트워크로 간주될 수 있다. 일부 예에서, 블록이 유효하려면 그리고 블록이 블록체인 네트워크의 블록체인(분산형 원장)에 추가되려면 대다수의 엔티티(노드)가 모든 블록에 서명해야 한다. 예시 공개 블록체인 네트워크는, 블록체인으로서 지칭되는 분산형 원장을 활용하는 특정 피어-투-피어 결제 네트워크를 포함한다. 그러나, 위에서 언급한 바와 같이, 임의의 특정 블록체인 네트워크에 대한 특별한 언급이 없다면, 블록체인이라는 용어는 분산형 원장을 일반적으로 지칭하기 위해 사용된다.
일반적으로, 공개 블록체인 네트워크는 공개 트랜잭션을 지원한다. 공개 트랜잭션은 공개 블록체인 네트워크 내의 모든 노드와 공유되고, 전역적 블록체인 내에 저장된다. 전역적 블록체인은, 모든 노드에 걸쳐서 복제되는 블록체인이다. 즉, 모든 노드는, 전역적 블록체인에 관하여 완벽한 상태 합의(perfect state consensus)가 되어 있다. 합의(예컨대, 블록을 블록체인에 추가하는 것에 대한 동의)를 달성하기 위하여, 공개 블록체인 네트워크 내에 합의 프로토콜이 구현된다. 예시 합의 프로토콜은, (예컨대, 일부 화폐 네트워크 내에 구현된) 작업증명(POW, proof-of-work), 지분증명(POS, proof-of-stake), 및 권한증명(POA, proof-of-authority)을 제한 없이 포함한다. 본 명세서에서 POW는 비제한적인 예로서 추가적으로 언급된다.
일반적으로, 비공개 블록체인 네트워크는, 판독 및 기입 권한을 중심적으로 제어하는 특정 엔티티를 위해 제공된다. 해당 엔티티는, 어느 노드가 블록체인 네트워크에 참여할 수 있는지를 제어한다. 따라서, 비공개 블록체인 네트워크는, 누가 네트워크에 참여하도록 허용되는지 및 이들의 참여 수준(예컨대, 특정 트랜잭션에만 참여)에 대해 제한을 가하는 허가형 네트워크(permissioned network)로서 일반적으로 지칭된다. 다양한 유형의 액세스 제어 메커니즘이 사용될 수 있다(예컨대, 기존의 참여자가 새 엔티티의 추가에 대해 보팅(voting), 규제 기관이 가입을 제어).
일반적으로, 컨소시엄 블록체인 네트워크는 참여 엔티티 사이에서 비공개이다. 컨소시엄 블록체인 네트워크에서, 합의 프로세스는, 인가된 노드 세트에 의해 제어되며, 하나 이상의 노드가 각 엔티티(예컨대, 금융 기관, 보험사)에 의해 운영된다. 예컨대, 10개의 엔티티(예컨대, 금융 기관, 보험사)로 구성된 컨소시엄이 컨소시엄 블록체인 네트워크를 운영할 수 있으며, 엔티티 각각은 컨소시엄 블록체인 네트워크 내의 적어도 하나의 노드를 운영한다. 따라서, 컨소시엄 블록체인 네트워크는, 참여 엔티티에 관하여 비공개 네트워크로 간주될 수 있다. 일부 예에서, 블록이 유효하려면 그리고 블록이 블록체인에 추가되려면, 각 엔티티(노드)가 모든 블록에 서명해야 한다. 일부 예에서, 블록이 유효하려면 그리고 블록이 블록체인에 추가되려면, 적어도 엔티티들(노드들)의 부분 집합(예컨대, 적어도 7개의 엔티티)이 모든 블록에 서명해야 한다.
여기서는, 참여 엔티티들 사이에 공개된, 공개 블록체인 네트워크를 참조하여 본 명세서의 구현예가 더 상세히 설명된다. 그러나, 본 명세서의 구현예는 임의의 적절한 유형의 블록체인 네트워크 내에서 실현될 수 있으리라 예상된다.
여기서는 위의 맥락을 고려하여 본 명세서의 구현예가 더 상세히 설명된다. 더 구체적으로, 그리고 위에서 소개한 바와 같이, 본 명세서의 구현예는, 트랜잭션 재전송을 사용한 블록체인 네트워크에서의 트랜잭션 전달의 가속에 관한 것이다. (도 3a 내지 도 4를 참조하여 설명되는) 제1 예에서, 일부 트랜잭션 경로는 더 빠를 수 있으므로, 트랜잭션이 반복되어 트랜잭션 도착 속도를 감소시킬 수 있으며, 이는 전체적인 트랜잭션 실행 효율을 개선시킬 수 있다. (도 5 내지 도 6을 참조하여 설명되는) 제2 예에서, 블록체인 네트워크 내에서 네트워크 가속 노드가 사용되어, 트랜잭션을 전달하는 노드를 가속할 수 있으며, 이는 트랜잭션 전파 레이트를 개선시킬 수 있다. (도 7 내지 도 8을 참조하여 설명되는) 제3 예에서, 상이한 블록체인 시스템을 위해 통일된 네트워크 가속 서비스를 제공할 수 있는 공개 노드 가속 네트워크가 확립될 수 있다. 공개 노드 가속 네트워크의 확립은, 예컨대, 각 블록체인 시스템에 대한 전용 가속 네트워크의 구현과 연관된 비용을 회피함으로써, 비용을 절감할 수 있다.
도 1은, 본 명세서의 구현예를 실행하기 위해 사용될 수 있는 환경(100)의 예를 도시한다. 일부 예에서, 예시 환경(100)은 엔티티가 블록체인 네트워크(102)에 참여할 수 있게 한다. 블록체인 네트워크(102)는 공개, 비공개, 또는 컨소시엄 블록체인 네트워크일 수 있다. 예시 환경(100)은 컴퓨팅 디바이스(106, 108) 및 네트워크(110)를 포함한다. 일부 예에서, 네트워크(110)는 LAN(local area network), WAN(wide area network), 인터넷, 또는 이들의 조합을 포함하며, 웹 사이트, 사용자 디바이스(예컨대, 컴퓨팅 디바이스), 및 백엔드 시스템을 연결한다. 일부 예에서, 네트워크(110)는 유선 및/또는 무선 통신 링크를 통해 액세스될 수 있다. 일부 예에서, 네트워크(110)는 블록체인 네트워크(102)와의 통신 및 블록체인 네트워크(102) 내에서의 통신을 가능케 한다. 일반적으로 네트워크(110)는 하나 이상의 통신 네트워크를 나타낸다.
도시된 예에서, 컴퓨팅 시스템(106, 108)은, 블록체인 네트워크(102)에 노드로서 참여할 수 있게 하는 임의의 적절한 컴퓨팅 시스템을 각각 포함할 수 있다. 예시 컴퓨팅 디바이스는, 서버, 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨팅 디바이스, 및 스마트폰을, 제한 없이 포함한다. 일부 예에서, 컴퓨팅 시스템(106, 108)은, 블록체인 네트워크(102)와 상호작용하기 위한 하나 이상의 컴퓨터-구현 서비스(computer-implemented service)를 호스팅한다. 예컨대, 컴퓨팅 시스템(106)은, 하나 이상의 다른 엔티티(예컨대, 다른 참여자들)와의 트랜잭션을 관리하기 위해 제1 엔티티(예컨대, 참여자 A)가 사용하는 트랜잭션 관리 시스템과 같은, 제1 엔티티의 컴퓨터-구현 서비스를 호스팅할 수 있다. 컴퓨팅 시스템(108)은, 하나 이상의 다른 엔티티(예컨대, 다른 참여자들)와의 트랜잭션을 관리하기 위해 제2 엔티티(예컨대, 참여자 B)가 사용하는 트랜잭션 관리 시스템과 같은, 제2 엔티티의 컴퓨터-구현 서비스를 호스팅할 수 있다. 도 1의 예에서, 블록체인 네트워크(102)는, 노드의 피어-투-피어 네트워크로서 나타나 있으며, 컴퓨팅 시스템(106, 108)은, 블록체인 네트워크(102)에 참여하는 제1 엔티티 및 제2 엔티티의 노드를 각각 제공한다.
도 2는, 본 명세서의 구현예에 따른 개념적 아키텍처(200)의 예를 도시한다. 예시 개념적 아키텍처(200)는, 참여자 A, 참여자 B, 및 참여자 C에 각각 대응하는 참여자 시스템(202, 204, 206)을 포함한다. 각 참여자(예컨대, 사용자, 기업)는, 복수의 노드(214)를 포함하는 피어-투-피어 네트워크로서 제공되는 블록체인 네트워크(212)에 참여하며, 이들 중 적어도 일부는 정보를 블록체인(216) 내에 불변적으로 기록한다. 블록체인 네트워크(212) 내에 단일 블록체인(216)이 개략적으로 도시되었지만, 본 명세서에서 더 상세히 설명되는 바와 같이, 블록체인(216)의 다수의 사본이 제공되며, 블록체인 네트워크(212) 전체에 걸쳐서 유지된다.
도시된 예에서, 참여자 A, 참여자 B, 및 참여자 C에 각각 의해, 또는 이들 각각을 대신하여, 각 참여자 시스템(202, 204, 206)이 제공되며, 블록체인 네트워크 내의 각 노드(214)로서 기능한다. 본 명세서에서 사용되는 바와 같이, 노드는, 블록체인 네트워크(212)에 연결되고, 각 참여자가 블록체인 네트워크에 참여할 수 있게 하는, 개별 시스템(예컨대, 컴퓨터, 서버)을 일반적으로 지칭한다. 도 2의 예에서, 하나의 참여자는 각 노드(214)에 대응한다. 그러나, 하나의 참여자가 블록체인 네트워크(212) 내의 다수의 노드(214)를 운영할 수 있고 그리고/또는 다수의 사용자가 하나의 노드(214)를 공유할 수 있다는 것이 예상된다. 일부 예에서, 참여자 시스템(202, 204, 206)은 프로토콜(예컨대, HTTPS(hypertext transfer protocol secure))을 사용하여 그리고/또는 원격 프로시저 호출(RPC, remote procedure call)을 사용하여 블록체인 네트워크(212)와 통신하거나 블록체인 네트워크(212)를 통해 통신한다.
노드(214)는 블록체인 네트워크(212) 내에서 다양한 참여 수준을 가질 수 있다. 예컨대, 일부 노드(214)는 합의 프로세스에 (예컨대, 블록체인(216)에 블록을 추가하는 채굴자 노드(miner node)로서) 참여할 수 있고, 다른 노드(214)는 합의 프로세스에 참여하지 않을 수 있다. 또 다른 예로서, 일부 노드(214)는 블록체인(216)의 완전한 사본을 저장하고, 다른 노드(214)는 블록체인(216)의 부분의 사본만을 저장한다. 예컨대, 데이터 액세스 권한은, 각 참여자가 해당 참여자의 각 시스템 내에 저장하는 블록체인 데이터를 제한할 수 있다. 도 2의 예에서, 참여자 시스템(202, 204, 206)은 블록체인(216) 각 완전한 사본(216', 216'', 216''')을 저장한다.
블록체인(예컨대, 도 2의 블록체인(216))은 블록의 체인으로 구성되며, 각 블록은 데이터를 저장한다. 예시 데이터는, 둘 이상의 참여자 사이의 트랜잭션을 대표하는 트랜잭션 데이터를 포함한다. 본 명세서에서 트랜잭션은 비제한적인 예로서 사용되지만, 임의의 적절한 데이터(예컨대, 문서, 이미지, 비디오, 오디오)가 블록체인 내에 저장될 수 있으리라 예상된다. 예시 트랜잭션은, 가치가 있는 무언가(예컨대, 애셋, 제품, 서비스, 및 화폐)의 교환을, 제한 없이 포함할 수 있다. 트랜잭션 데이터는 블록체인 내에 불변적으로 저장된다. 즉, 트랜잭션 데이터는 변경될 수 없다.
블록 내에 저장하기 전에, 트랜잭션 데이터는 해싱된다. 해싱은, (스트링 데이터로서 제공되는) 트랜잭션 데이터를 (또한 스트링 데이터로서 제공되는) 고정 길이 해시 값으로 변환하는 프로세스이다. 트랜잭션 데이터를 획득하기 위해 해시 값을 언해싱하는 것은 가능하지 않다. 해싱은 트랜잭션 데이터 내의 작은 변화조차도 완전히 상이한 해시 값을 초래하도록 보장한다. 또한, 그리고 위에서 언급한 바와 같이, 해시 값은 고정 길이를 갖는다. 즉, 트랜잭션 데이터의 크기에 상관없이, 해시 값의 길이는 고정되어 있다. 해싱은, 해시 값을 생성하기 위해 해시 함수를 통해 트랜잭션 데이터를 프로세싱하는 것을 포함한다. 예시 해시 함수는, 256비트의 해시 값을 출력하는 SHA(secure hash algorithm)-256을, 제한 없이 포함한다.
다수의 트랜잭션의 트랜잭션 데이터가 해싱되어 블록 내에 저장된다. 예컨대, 두 트랜잭션의 해시 값이 제공되며, 그 해시 값 자체가 해싱되어 또 다른 해시를 제공한다. 이 프로세스는, 모든 트랜잭션이 블록 내에 저장되도록, 단일 해시 값이 제공될 때까지 반복된다. 이 해시 값은 머클 루트 해시로서 지칭되며, 블록의 헤더에 저장된다. 트랜잭션 중 임의의 트랜잭션의 변경은 그 해시 값의 변경을 초래할 것이며, 최종적으로, 머클 루트 해시의 변경을 초래할 것이다.
블록은 합의 프로토콜을 통해 블록체인에 추가된다. 블록체인 네트워크 내의 다수의 노드가 합의 프로토콜에 참여하며, 블록이 블록체인에 추가되도록 하기 위해 경쟁한다. 그러한 노드는 채굴자(또는 채굴자 노드)로서 지칭된다. 위에서 소개한 POW는 비제한적인 예로서 사용된다.
채굴자 노드는 트랜잭션을 블록체인에 추가하기 위해 합의 프로세스를 실행한다. 다수의 채굴자 노드가 합의 프로세스에 참여하지만, 오직 하나의 채굴자 노드만 블록체인에 블록을 기입할 수 있다. 즉, 채굴자 노드는 자신의 블록이 블록체인에 추가되도록 하기 위해 합의 프로세스 내에서 경쟁한다. 더 상세히는, 채굴자 노드는 계류 중인 트랜잭션을 트랜잭션 풀로부터 (예컨대, 존재하는 경우, 블록 내에 포함될 수 있는 트랜잭션의 수에 대한 미리 정의된 한계치까지) 주기적으로 수집한다. 트랜잭션 풀은 블록체인 네트워크 내의 참여자로부터의 트랜잭션 메시지를 포함한다. 채굴자 노드는 블록을 구성하고, 트랜잭션을 해당 블록에 추가한다. 트랜잭션을 블록에 추가하기 전에, 채굴자 노드는 트랜잭션 중 임의의 트랜잭션이 블록체인의 블록 내에 이미 포함되어 있는지의 여부를 검사한다. 트랜잭션이 이미 또 다른 블록 내에 포함되어 있다면, 해당 트랜잭션은 폐기된다.
채굴자 노드는 블록 헤더를 생성하고, 블록 내의 모든 트랜잭션을 해싱하고, 해시 값을 쌍으로 결합하여, 블록 내의 모든 트랜잭션에 대해 단일 해시 값(머클 루트 해시)이 제공될 때까지 또 다른 해시 값을 생성한다. 이 해시는 블록 헤더에 추가된다. 채굴자는 또한, 블록체인 내의 가장 최근의 블록(즉, 블록체인에 추가된 마지막 블록)의 해시 값을 결정한다. 채굴자 노드는 또한, 임시 값 및 타임스탬프를 블록 헤더에 추가한다. 채굴 프로세스에서, 채굴자 노드는, 요구되는 파라미터를 충족하는 해시 값을 찾으려고 시도한다. 채굴자 노드는, 요구되는 파라미터를 충족하는 해시 값을 찾을 때까지 임시 값을 지속적으로 변경한다.
블록체인 네트워크 내의 모든 채굴자는, 요구되는 파라미터를 충족하는 해시 값을 찾으려고 시도하며, 이러한 방식으로, 서로 경쟁한다. 결국, 채굴자 노드 중 하나가, 요구되는 파라미터를 충족하는 해시 값을 찾고, 블록체인 네트워크 내의 다른 모든 채굴자 노드에 이를 알린다. 다른 채굴자 노드는 해시 값을 검증하고, 올바르다고 결정된다면, 블록 내의 각 트랜잭션을 검증하고, 블록을 수락하고, 블록을 자신의 블록체인 사본에 첨부한다. 이러한 방식으로, 블록체인의 전역적인 상태는 블록체인 네트워크 내의 모든 채굴자 노드에 걸쳐 일관적이다. 전술한 프로세스는 POW 합의 프로토콜이다.
도 2를 참조하여 비제한적인 예가 제공된다. 이 예에서, 참여자 A는 참여자 B에게 일정 금액의 화폐를 전송하기 원한다. 참여자 A는 (예컨대 발신자, 수신자, 및 값 필드를 포함하는) 트랜잭션 메시지를 생성하고, 트랜잭션 메시지를 블록체인 네트워크에 전송하며, 블록체인 네트워크는 트랜잭션 메시지를 트랜잭션 풀에 추가한다. 블록체인 네트워크 내의 각 채굴자 노드는 블록을 생성하고, 모든 트랜잭션을 트랜잭션 풀로부터 (예컨대, 존재하는 경우, 블록에 추가될 수 있는 트랜잭션의 수에 대한 미리 정의된 한계치까지) 취하고, 트랜잭션을 블록에 추가한다. 이러한 방식으로, 참여자 A에 의해 공개된 트랜잭션이 채굴자 노드의 블록에 추가된다.
일부 블록체인 네트워크에서, 트랜잭션의 비공개성을 유지하기 위해 암호가 구현된다. 예컨대, 두 노드가 트랜잭션을 비공개로 유지하기 원하여, 블록체인 내의 다른 노드가 해당 트랜잭션의 세부사항을 파악하지 못하도록 한다면, 해당 노드는 해당 트랜잭션 데이터를 암호화할 수 있다. 예시 암호 방식은 대칭 암호화 및 비대칭 암호화를 제한 없이 포함한다. 대칭 암호화는, 암호화(평문으로부터 암호문을 생성) 및 복호화(암호문으로부터 평문을 생성) 둘 다에 대해 단일 키를 사용하는 암호화 프로세스를 지칭한다. 대칭 암호화에서, 동일한 키가 다수의 노드에 의해 사용가능하며, 따라서 각 노드가 트랜잭션 데이터를 암호화/복호화할 수 있다.
비대칭 암호화는, 비공개 키 및 공개 키를 각각 포함하는 키 쌍을 사용하며, 비공개 키는 각 하나의 노드에만 공지되고, 공개 키는 블록체인 네트워크 내의 임의의 또는 다른 모든 노드에 공지된다. 노드는 또 다른 노드의 공개 키를 사용하여 데이터를 암호화할 수 있으며, 암호화된 데이터는 다른 노드의 비공개 키를 사용하여 복호화될 수 있다. 예컨대, 그리고 다시 도 2를 참조하면, 참여자 A는 참여자 B의 공개 키를 사용하여 데이터를 암호화하고, 암호화된 데이터를 참여자 B에게 전송할 수 있다. 참여자 B는, 암호화된 데이터(암호문)를 복호화하고 원래의 데이터(평문)를 추출하기 위해 자신의 비공개 키를 사용할 수 있다. 한 노드의 공개 키를 사용하여 암호화된 메시지는 해당 노드의 비공개 키를 사용해서만 복호화될 수 있다.
비대칭 암호화는 디지털 서명을 제공하기 위해 사용되며, 이는 트랜잭션 내의 참여자가 트랜잭션 내의 다른 참여자 및 트랜잭션의 유효성을 확인할 수 있게 한다. 예컨대, 한 노드가 메시지에 디지털 서명을 할 수 있고, 참여자 A의 디지털 서명에 기초하여 또 다른 노드는 해당 메시지가 해당 노드로부터 전송되었다는 것을 확인할 수 있다. 디지털 서명은, 메시지가 전송 중에 위조되지 않는다는 것을 보장하기 위해서도 사용될 수 있다. 예컨대, 그리고 다시 도 2를 참조하면, 참여자 A는 참여자 B에게 메시지를 전송하려 한다. 참여자 A는 메시지의 해시를 생성한 후, 자신의 비공개 키를 사용해 해시를 암호화하여, 암호화된 해시로서의 디지털 서명을 제공한다. 참여자 A는 디지털 서명을 메시지에 첨부하고, 디지털 서명을 갖는 메시지를 참여자 B에게 전송한다. 참여자 B는 참여자 A의 공개 키를 사용하여 디지털 서명을 복호화하고, 해시를 추출한다. 참여자 B는 메시지를 해싱하고 해시를 비교한다. 해시가 동일하다면, 참여자 B는 메시지가 실제로 참여자 A로부터 전송되었으며 위조되지 않았다는 것을 확인할 수 있다.
일부 구현예에서, 예컨대, Node_A가 동일한 트랜잭션의 다수의 사본을 송신한다면, 블록체인 내의 노드 사이의 더 빠른 통신이 실현될 수 있다. 예컨대, Node_A가 Node_B(예컨대, 목적지 노드)에 트랜잭션을 전송하는 것에 더하여, Node_A는 적어도 하나의 다른 노드에도 해당 트랜잭션의 사본을 전송할 수 있다. 예컨대, 제3 노드가, 더 빠른 네트워크 송신을 제공(또는 초래)할 수도 있다. 예컨대, Node_A로부터 직접 오는 송신물 이전에, 제3 노드가 네트워크 Node_B로의 송신물의 전달의 최종적인 완료를 개시할 수 있다면, 더 빠른 네트워크 송신이 발생할 수 있다. 일반적으로, 제3 노드에 전송된 트랜잭션이 Node_B에 전달될 수 있지만, 추가적인 중간 노드가 가능하다. 이러한 방식의 트랜잭션의 중복은 블록체인 네트워크의 리플레이 및 전달 특징을 활용할 수 있다. 트랜잭션의 중복은 또한, 동일한 트랜잭션의 사본을 전파함으로써, 블록체인 네트워크에 대한 반복된 공격(예컨대, 멀웨어 또는 비인가 액세스)을 방지하도록 도울 수 있다. 블록체인 네트워크의 이들 특징의 결과로서, 트랜잭션은 목적지 노드에 최대한 빠르게 전달될 수 있다. 더 빠른 트랜잭션 전달의 결과적인 이익은, 목적지 노드에서의 더 빠른 트랜잭션 실행이다.
도 3a는, 블록체인 내의 2개의 노드 사이에서 직접 전송(또는 전달)되는 트랜잭션을 위한 경로(300)의 예를 도시하는 블록도이다. 예컨대, 경로(300)는, Node_B(304)에 의한 실행을 위하여 Node_A(302)에 의해 Node_B(304)에 전송되는 트랜잭션을 위해 사용될 수 있다. 일부 경우, 트랜잭션은 Node_A(302)와 Node_B(304) 사이의 직접 통신(306)을 사용하여 전송될 수 있다. 그러므로, 도 3a는, 하나의 노드로부터 블록체인 내의 또 다른 노드로 트랜잭션을 전송하기 위한 종래의 기법을 나타낼 수 있다. 그러나, 블록체인에 의해 사용되는 네트워크 내의 불확실성으로 인해, 블록체인 내의 노드 사이의 연결은 단점을 가질 수 있다. 예컨대, 노드들이 동일한 네트워크 상에 있지 않다면, 또는 블록체인 노드들이 상이한 국가 내에 배치되어 있다면, 네트워크의 직접 연결(예컨대, 직접 통신(306))은 트랜잭션의 가능한 가장 빠른 경로가 아닐 수도 있다.
도 3b는, 블록체인 트랜잭션 가속 시스템(320) 내에서 다수의 전달되는 트랜잭션의 전송 시 사용되는 경로의 예를 도시하는 블록도이다. 블록체인 트랜잭션 가속 시스템(320)은, 예컨대, (도 1 내지 도 2와 같은) 본 명세서 내의 다른 도면을 참조하여 설명되는 컴포넌트를 사용하여, 구현될 수 있다.
블록체인 트랜잭션 가속 시스템(320)은, (예컨대, 다중 트랜잭션 전달을 사용하지 않으며, 도 3a를 참조하여 설명된) 단일 통신 경로를 사용하는 시스템에 비해 개선점을 제공할 수 있다. 예컨대, 그리고 도 3b에 도시된 바와 같이, Node_A(302)와 Node_B(304) 사이의 직접 통신(306)은 트랜잭션을 위해 여전히 사용될 수 있다. 그러나, 직접 통신(306)의 사용에 더하여, 트랜잭션이 복제되어 추가적인 노드(308 내지 312)에 전송될 수 있다. 예컨대, Node_B(304)로의 트랜잭션의 전달을 가속하기 위하여, Node_A(302)는 통신 경로(314)를 통해 Node_X(308), Node_Y(310), 및 Node_Z(312)에도 트랜잭션을 전송할 수 있다. 이후, 트랜잭션은 통신 경로(316)를 통해 Node_X(308), Node_Y(310), 및 Node_Z(312)에 의해 전달될 수 있다. Node_A(302)가 동일한 트랜잭션의 다수의 사본(현재의 예에서는, 총 4개의 트랜잭션 인스턴스)을 이러한 방식으로 전송할 때, Node_A(302)는 어느 트랜잭션이 Node_B(304)에 도달할 첫 트랜잭션일지 알지 못한다. 수신된 첫 트랜잭션을 프로세싱한 후에 중복 트랜잭션을 무시하도록 Node_B(304)가 구성될 수 있으므로, 트랜잭션 도착 순서는 중요하지 않다.
수신자 노드(그리고 현재의 예에서는 트랜잭션의 목적지 노드)로서 소용되는 Node_B(304)는 다수의 동일한 트랜잭션을 수신할 수 있다. 첫 트랜잭션만 실행될 것이다. 중복 트랜잭션이라고 결정된 다른 트랜잭션은, 유효하지 않은 트랜잭션이라고 블록체인 시스템에 의해 자동으로 식별될 수 있다. 그러므로, 중복 트랜잭션은 실행되지 않을 것이다.
중복 트랜잭션은 다양한 방식으로 결정될 수 있다. 예컨대, 트랜잭션이 동일한 디지털 서명을 갖는다면, 해당 트랜잭션은 중복 트랜잭션이라고 결정될 수 있다. 트랜잭션이 수신될 때, 예컨대, 해당 트랜잭션의 디지털 서명이, 최근에 실행된(또는 가장 먼저 도착하는) 트랜잭션에 대해 비교될 수 있다. 중복 트랜잭션을 결정하는 다른 방식이 사용될 수도 있다(예컨대, 일반적인 블록체인 기술을 사용).
시간이 흐름에 따라서, 노드별로 발생하는 송신 속도를 기록하고 추적하기 위해 통계가 수집되어 유지될 수 있다. 예컨대, 여러 노드가 Node_X(308), Node_Y(310), 및 Node_Z(312)를 통해 트랜잭션을 라우팅할 수 있다. 예컨대, 시간이 흐름에 따라서 Node_Y(310)가 Node_X(308) 및 Node_Z(312)보다 더 빠르다고 결정된다면, Node_Y(310)는 선호 노드가 될 수 있다. 일부 구현예에서, 선호 노드의 목록이 유지될 수 있으며, 다수의 노드를 통해 트랜잭션이 전송될 때, 가장 빠른 노드(들)가 먼저 선택될 수 있다. 시간이 흐름에 따라서, 더 느린 노드는 블록체인 시스템에 의해 회피될 수 있다.
일부 구현예에서, 선택되는 노드는, 속도에 더하여, 다양한 요인에 기초하여 선택될 수 있다. 예컨대, 일부 노드는 하루 중 상이한 시각 또는 일주일 중 상이한 날에 더 빠를 수도 있다. 또 다른 예에서, 일부 노드는 해당 노드의 지리적 위치에 기초하여 회피될 수 있으며, 추적된 송신 속도에 더하여, 지리적 위치는 주어진 트랜잭션에 대해 예측되는 송신 속도의 지표일 수 있다.
일부 구현예에서, 몇 개의 중복 트랜잭션이 전송되는지 및 중복 트랜잭션을 전송하기 위해 어느 노드가 사용될지를 결정하기 위해 상이한 기법이 사용될 수 있다. 예컨대, 블록체인 시스템은, 전송 노드에 의해 액세스가능한 각 허브에 별도의 중복 트랜잭션을 전송할 수 있다. 각 허브는, 예컨대, 상이한 서비스 제공자에 대응할 수 있다. 시간이 흐름에 따라서, 블록체인 시스템은, 가장 우수하고 가장 빠른 제공자를 식별하는 데이터베이스를 구축할 수 있다. 일부 구현예에서, 서비스 제공자에게 점수가 할당될 수 있으며, 가장 높은 점수는, 중복 트랜잭션 라우팅 시 가장 빠른 서비스 제공자였던 이력을 갖는 서비스 제공자에게 할당된다. 일부 구현예에서, 너무 많은 트래픽으로 단일 서비스 제공자를 포화시키지 않기 위해, 더 높은 점수를 갖는 다수의 서비스 제공자에 걸쳐 트랜잭션이 분산될 수 있다.
도 4는, 블록체인 네트워크 내에서 중복 트랜잭션을 사용하기 위한 예시 프로세스(400)를 도시한다. 프로세스(400)는 본 명세서의 구현예에 따라서 실행될 수 있다. 일부 구현예에서, 예시 프로세스(400)는, 하나 이상의 컴퓨팅 디바이스를 사용하여 실행되는 하나 이상의 컴퓨터-실행가능 프로그램을 사용하여 수행될 수 있다.
프로세스(400)는, 블록체인 내의 하나 이상의 노드에서 또는 블록체인에 의해 액세스가능한 서버에서 구현되는 블록체인 트랜잭션 가속 시스템의 일부일 수 있다(그리고 블록체인 트랜잭션 가속 시스템 내에서 구현될 수 있다). 예컨대, 도 3b를 참조하여 설명된 블록체인 트랜잭션 가속 시스템(320)이 프로세스(400)를 구현할 수 있다.
단계(402)에서, 블록체인 내의 제1 노드를 통해 전송된 제1 트랜잭션이 블록체인 트랜잭션 가속 시스템에서 수신된다. 예를 들면, Node_A(302)와 Node_B(304) 사이에서 트랜잭션을 전송하기 위해 블록체인 트랜잭션 가속 시스템(320) 내에서 직접 통신(306)이 사용될 수 있다. 단계(402)로부터, 방법(400)은 단계(404)로 진행한다.
단계(404)에서, 제1 트랜잭션의 사본인 적어도 하나의 제2 트랜잭션이 블록체인 트랜잭션 가속 시스템에서 수신되며, 적어도 하나의 제2 트랜잭션은 제1 노드에 의해, 제1 노드와는 상이한, 블록체인 내의 적어도 하나의 제2 노드에 전송된다. 예를 들면, 블록체인 트랜잭션 가속 시스템(320)은 (이미 Node_B(304)에 전송된) 트랜잭션의 사본을 추가적인 노드(308 내지 312) 중 하나 이상에 전송할 수 있다. 트랜잭션의 사본은 통신 경로(314)를 사용하여 전송될 수 있다.
일부 구현예에서, 블록체인 내의 제1 노드 및 블록체인 내의 적어도 하나의 제2 노드는, 상이한 네트워크 서비스 제공자에 의해 제공되는 상이한 네트워크 허브 내에 있을 수 있다. 예컨대, Node_A(302) 및 Node_B(304)는, 예를 들면, 상이한 지역 또는 국가 내에 있거나 상이한 네트워크 서비스 제공자를 사용하는, 분리된 상이한 네트워크 허브 내에 있을 수 있다.
일부 구현예에서, 방법(400)은, 적어도 하나의 제2 트랜잭션을 전송하기 위해 사용할 복수의 제2 노드를 결정하는 단계를 더 포함할 수 있다. 예컨대, 블록체인 트랜잭션 가속 시스템(320)은, 추가적인 노드(308 내지 312) 중, 트랜잭션의 사본이 전송되는 특정 노드를 선택할 수 있다. 단계(404)로부터, 방법(400)은 단계(406)로 진행한다.
단계(406)에서, 제1 트랜잭션 및 적어도 하나의 제2 트랜잭션을 포함하는 수신된 트랜잭션 중 가장 먼저 수신된 트랜잭션이 블록체인 트랜잭션 가속 시스템에 의해 실행된다. 예컨대, Node_B(304)는, 통신 경로(306) 및 통신 경로(316)를 통해 도착하는 첫 트랜잭션을 실행할 수 있다. 가장 먼저 도착하는 트랜잭션은 어느 통신 경로가 가장 빠른지에 의존할 수 있다. 단계(406)로부터, 방법(400)은 단계(408)로 진행한다.
단계(408)에서, 블록체인 트랜잭션 가속 시스템에 의해, 수신된 트랜잭션 중 나머지 트랜잭션이, 가장 먼저 수신된 트랜잭션과 동일하다고 결정할 때, 나머지 트랜잭션은 폐기된다. 예컨대, Node_B(304)는, 가장 먼저 수신된 트랜잭션의 하나 이상의 사본을 수신할 수 있다. Node_B(304)는, 나머지(가장 먼저 수신되지 않은) 트랜잭션이 중복 트랜잭션이라고 결정할 수 있다. 이후, Node_B(304)는 중복 트랜잭션을 폐기할 수 있다.
일부 구현예에서, 수신된 트랜잭션 중 나머지 트랜잭션이, 가장 먼저 수신된 트랜잭션과 동일하다고 결정하는 것은, 가장 먼저 수신된 트랜잭션의 디지털 서명과 일치하는 나머지 트랜잭션 각각의 디지털 서명을 식별하는 것을 포함한다. 예컨대, Node_B(304)는, 트랜잭션의 디지털 서명을 비교하고, 일치하는 디지털 서명이 존재한다고 결정함으로써, 나머지(가장 먼저 수신되지 않은) 트랜잭션이 중복 트랜잭션이라고 결정할 수 있다. 단계(408) 이후, 방법(400)은 정지할 수 있다.
일부 구현예에서, 방법(400)은, 더 빠른 트랜잭션 송신 속도를 제공하는 블록체인 내의 노드를 결정하기 위해, 수신된 트랜잭션에 대한 송신 속도 통계를 수집하는 단계를 더 포함할 수 있다. 예컨대, 시간이 흐름에 따라서, 블록체인 트랜잭션 가속 시스템(320)은, 추가적인 노드(308 내지 312) 중 하나 이상이, 다른 노드보다 더 빠른 트랜잭션 전달 속도를 제공했다고 결정할 수 있다. 트랜잭션 전달 속도 정보는 시간이 흐름에 따라서 블록체인 트랜잭션 가속 시스템(320)에 의해 저장 및 추적될 수 있다.
일부 구현예에서, 방법(400)은, 주어진 송신물 전송 노드에 대해, 그리고 송신 속도 통계에 기초하여, 트랜잭션이 전송될 선호 노드 세트를 결정하는 단계를 더 포함할 수 있다. 예컨대, 블록체인 트랜잭션 가속 시스템(320)은, 중복 트랜잭션을 전송하기 위해 추가적인 노드(308 내지 312) 중 어느 노드를 사용지 선택할 때 가장 빠른 트랜잭션 전달 노드를 식별하는 통계를 사용할 수 있다.
일부 경우, 블록체인 네트워크 노드 사이의 직접 연결이 항상 블록체인 네트워크 노드 사이의 가장 빠른 트랜잭션 경로는 아닐 수도 있다. 예컨대, 노드 A는 한 국가 내에 위치지정될 수 있고 노드 B는 상이한 국가 내에 위치지정될 수 있다. 노드의 위치는, 상이한 국가(또는 다른 영역) 내에 위치지정됨으로써, 네트워크 불안정성을 발생시키거나 네트워크 불안정성에 기여할 수 있다. Node_A로부터 Node_B에 전송되는 트랜잭션은, 예컨대, 상이한 네트워크 제공자와 연관된 요인을 비롯한, 복잡한 요인을 수반할 수 있다. 결과적으로, Node_A와 Node_B 사이의 직접 연결은 느리거나 불안정할 수 있다. 트랜잭션 전달의 속도 및 신뢰성은, 예컨대, 네트워크 제공자에 의해 처리되는 대량의 트래픽에 의해 영향받을 수 있다. 예컨대, Node_A와 Node_B 사이의 직접 연결로서 동일한 네트워크를 사용하는 대량의 데이터가 송신된다면, 블록체인 네트워크의 트랜잭션 실행 효율은 불리하게 영향받을 수 있다. 도 3a 내지 도 4를 참조하여 전술한 바와 같이, 트랜잭션 실행 효율에 관한 몇몇 문제는, 다수의 트랜잭션을 전송함으로써 개선될 수 있다. 일부 구현예에서, 트랜잭션 실행 효율은, 블록체인 내의 네트워크 가속 노드를 사용함으로써 개선될 수 있다.
도 5는, 블록체인 내의 네트워크 가속 노드를 사용하여 전송되는 트랜잭션을 위해 블록체인 트랜잭션 가속 시스템(500) 내에서 사용되는 경로의 예를 도시하는 블록도이다. 경로 내의 화살표에 의해 표시된 바와 같이, Node_A(502)는 트랜잭션의 전송자이고, Node_B(504)는 트랜잭션의 의도된 수신자이다. Node_A(502) 및 Node_B(504)는, 예컨대, Local_Network_1(506) 및 Local_Network_2(508)와 같은, 상이한 네트워크 영역 내에 각각 있을 수 있다. Node_A(502) 및 Node_B(504)는, 예컨대, 블록체인 네트워크의 일부인 통신 채널(510)을 사용하여 직접 통신하는 능력을 지니고 있을 수 있다. 그러나, 트랜잭션의 더 빠른 송신이 가능할 수 있고, 고속 통신을 제공하는 통신 경로(512)를 사용하여 발생할 수 있다. 결과적으로, Node_A(502)로부터 Node_B(504)로의 트랜잭션의 송신은, 적어도 Transfer_Node_A'(514) 및 Transfer_Node_B'(516)을 포함하는 전달 노드를 사용할 수 있다. 일부 구현예에서, Transfer_Node_A'(514)은, Transfer_Node_B'(516)을 통해 트랜잭션을 전달하지 않고도, Node_B(504)에 직접 트랜잭션을 전달할 수 있다.
전달 노드는 네트워크 영역 내의 다수의 노드에 소용될 수 있다. 예컨대, Node_A(502) 및 Node_C(518)와 같은, 하나 이상의 일반 노드에 Transfer_Node_A'(514)이 할당될 수 있다. 각 일반 노드는, 동일한 네트워크 영역 또는 상이한 네트워크 영역 내에 있는 다수의 전달 노드에 대한 액세스를 가질 수 있다. 그러나, 현재의 예에서, 노드 A/A' 및 노드 B/B'은 각각 자신의 네트워크 영역에 속할 수 있다. 이러한 경우, 전달 노드의 사용에 기초하여 송신 속도가 더 빠를 수 있으며, A'과 B' 사이에 고속 네트워크 통신을 제공할 수 있다.
가속 노드의 사용은, 네트워크 가속 노드 사이에 고속 링크를 유효하게 생성함으로써, 트랜잭션의 네트워크 송신 레이트를 가속할 수 있다. 네트워크 가속 노드 사이의 고속 링크는 블록체인 시스템의 전체적인 트랜잭션 실행 효율 개선시킬 수 있다.
가속 노드는, 예컨대, 트랜잭션의 처리 또는 컨텐츠와 관련되지 않도록(또는 실질적으로 관련되지 않도록) 설계될 수 있다. 그러므로, 가속 노드 그룹은 전달 네트워크로서 소용될 수 있으며, 이는 국제적인 블록체인 네트워크 내에서 특히 유용할 수 있다. 일부 구현예에서, 가속 노드는, 공개 엔티티에 제공되는 제삼자 가속 네트워크와 같은, 서비스로서 제공될 수 있다. 가속 노드로 구성된 전달 네트워크를 사용하여 전송되는 임의의 주어진 트랜잭션은 네트워크의 부분을 사용할 수 있다. 예컨대, 주어진 트랜잭션은, 주어진 트랜잭션의 전달을 위한 최단 경로 또는 가장 빠른 경로를 제공하는 가속 노드를 비롯한, 소수의 가속 노드만 사용할 수 있다.
일부 구현예에서, 주어진 트랜잭션을 위해 사용될 가속 노드를 선택하기 위해 최단 경로 알고리즘이 사용될 수 있다. 최단 경로 알고리즘은, 송신 속도를 비롯한, 트랜잭션의 전송과 연관된 각 가속 노드의 통계 및 각 가속 노드에 관한 정보를 사용할 수 있다. 최단 경로 알고리즘에 의해 사용되는 정보 중 일부는 하루 중 시각의 정보 및 지리 정보를 포함하거나 이들 정보에 기초할 수 있다. 예컨대, 국가 C 내의 가속 노드는, 블록체인 네트워크 내의 낮 시간의 트래픽이 존재하지 않는 밤 시간 중에 더 빠를 수 있다.
도 6은, 블록체인 네트워크 내에서 트랜잭션을 전송하기 위해 가속 노드를 사용하기 위한 프로세스(600)의 예를 도시한다. 프로세스(600)는 본 명세서의 구현예에 따라서 실행될 수 있다. 일부 구현예에서, 예시 프로세스(600)는, 하나 이상의 컴퓨팅 디바이스를 사용하여 실행되는 하나 이상의 컴퓨터-실행가능 프로그램을 사용하여 수행될 수 있다.
프로세스(600)는, 블록체인 내의 하나 이상의 노드에서 또는 블록체인에 의해 액세스가능한 서버에서 구현되는 블록체인 트랜잭션 가속 시스템의 일부일 수 있다(그리고 블록체인 트랜잭션 가속 시스템 내에서 구현될 수 있다). 예컨대, 도 5를 참조하여 설명된 블록체인 트랜잭션 가속 시스템(500)이 프로세스(600)를 구현할 수 있다.
단계(602)에서, 제1 노드에 의해 생성된 제1 트랜잭션이, 블록체인 트랜잭션 가속 시스템을 사용하여, 블록체인 내의 가속 노드에 전송되며, 제1 트랜잭션은, 제1 트랜잭션의 의도된 수신자인 제2 노드에 직접 전송되는 대신, 가속 노드에 전송되고, 제1 노드, 제2 노드, 및 가속 노드는 상이한 노드이다. 예컨대, 블록체인 트랜잭션 가속 시스템(500)을 사용하여, Node_A(502)로부터, 가속 노드인 Transfer_Node_A'(514)에 트랜잭션이 전송될 수 있다. 블록체인 트랜잭션 가속 시스템(500)은, 예컨대, Node_B(504)에 직접 트랜잭션을 전송하는 대신, Transfer_Node_A'(514)을 선택할 수 있다. 선택 결정은, 예컨대, 통신 채널(512)이 통신 채널(510)보다 더 빠르다는(또는 더 빠를 가능성이 높다는) 지식에 기초할 수 있다.
일부 구현예에서, 블록체인 내의 제1 노드 및 블록체인 내의 제2 노드는 상이한 네트워크 내에 있다. 예컨대, Node_A(502) 및 Node_B(504)는, 상이한 네트워크 영역인 Local_Network_1(506) 및 Local_Network_2(508) 내에 각각 있을 수 있다.
일부 구현예에서, 가속 노드는, 상이한 네트워크 내의 하나 이상의 특정 가속 노드에 트랜잭션을 전달하도록 구성될 수 있다. 예를 들면, Transfer_Node_A'(514)은 블록체인 트랜잭션 가속 시스템(500) 내에 지정 가속 노드로서 구성될 수 있다.
일부 구현예에서, 방법(600)은, 제2 노드에 직접 트랜잭션을 전송함으로써 예상되는 트랜잭션 전달 시간보다, 가속 노드를 사용한 트랜잭션 전달 시간이 더 빠를 것으로 예상된다고 결정하는 것에 기초하여 가속 노드를 선택하는 단계를 더 포함할 수 있다. 예컨대, 블록체인 트랜잭션 가속 시스템(500)은, Node_B(504)에 직접 트랜잭션을 전송하는 것보다, Transfer_Node_A'(514)을 가속 노드로서 사용하는 것이 더 빠르다는(또는 더 빠를 가능성이 높다는) 지식에 기초하여, Transfer_Node_A'(514)을 선택할 수 있다. 단계(602)로부터, 방법(600)은 단계(604)로 진행한다.
단계(604)에서, 블록체인 트랜잭션 가속 시스템에 의해, 가속 노드로부터 제2 노드로 트랜잭션이 전달된다. 예컨대, Transfer_Node_A'(514)이 통신 경로(512)를 통해 Node_B(504)에 트랜잭션을 전달할 수 있다.
일부 구현예에서, 가속 노드로부터 제2 노드에 트랜잭션을 전달하는 것은, 수신자 측 가속 노드를 사용하는 것을 포함할 수 있다. 예컨대, Transfer_Node_A'(514)은 통신 경로(512)를 통해, Local_Network_2(508) 내의 가속 노드인 Transfer_Node_B'(516)과 같은, 수신자 측 가속 노드에 트랜잭션을 전달할 수 있다. 수신자 측 가속 노드(예컨대, Transfer_Node_B'(516))는 제2 노드(예컨대, Node_B(504))에 트랜잭션을 전달할 수 있다. 단계(604)로부터, 방법(600)은 단계(606)로 진행한다.
단계(606)에서, 제2 노드에 의해 트랜잭션이 실행된다. 예를 들면, 수신된 트랜잭션을 Node_B(504)가 실행할 수 있다. 단계(606) 이후, 방법(600)은 정지할 수 있다.
일부 구현예에서, 방법(600)은, 트랜잭션 전달 시간 통계를 사용하는 단계, 및 트랜잭션 전달 시간 통계에 기초하여 가속 노드를 선택하는 단계를 더 포함할 수 있다. 예컨대, 블록체인 트랜잭션 가속 시스템(500)은, 더 빠른 트랜잭션 전달 시간을 제공하는 블록체인 내의 가속 노드를 결정하기 위해, (예컨대, 통신 채널(512)을 사용하여) 전달된 트랜잭션에 대한 통계를 수집할 수 있다. 이후, 블록체인 트랜잭션 가속 시스템(500)은, 더 빠른 트랜잭션 전달 시간을 갖는 가속 노드, 예컨대, Transfer_Node_A'(514)을 선택할 수 있다.
일부 구현예에서, 동일한 트랜잭션의 다수의 사본의 전송 및 가속 노드의 사용을 비롯한, 전술한 기법의 조합을 사용하여 트랜잭션이 전송될 수 있다. 예컨대, 전송 노드는, 의도된 수신자 노드에 트랜잭션의 사본을 전송할 수 있다. 트랜잭션의 전달 시간을 단축하기 위해, 전송 노드는, 일반 노드(비-가속 노드) 및 가속 노드를 비롯한 하나 이상의 다른 노드에도 트랜잭션의 사본을 전송할 수 있다. 일부 구현예에서, 트랜잭션의 송신 시간을 개선시키기 위해, 제공되는 가속 노드 네트워크가 사용될 수도 있다.
도 7은, 블록체인 트랜잭션 가속 시스템(700)의 다중 블록체인 가속 네트워크(702)의 예의 블록도이다. 예컨대, 다중 블록체인 가속 네트워크(702)는, 블록체인(704)을 포함하는 상이한 블록체인 시스템을 위해 통일된 네트워크 가속 서비스를 제공하는 공개 노드 가속 네트워크로서 소용될 수 있다. 다중 블록체인 가속 네트워크(702)는, 각 블록체인 시스템을 위한 전용 가속 네트워크 확립의 비용을 절감하거나 없앨 수 있다.
블록체인(704) 중 주어진 블록체인 내의 노드(708)는 다중 블록체인 가속 네트워크(702) 내의 가속 노드(706)와 통신할 수 있다. 네트워크의 불확실성으로 인해, 가속 네트워크 내의 전송 노드로서 소용되는 가속 노드(706)의 사용은 노드 사이의 직접 통신보다 더 효율적일 수 있다. 따라서, 블록체인 시스템은, 다중 블록체인 가속 네트워크(702)에 의해 제공되는 정보 전달 고속 네트워크에 의존할 수 있다.
상이한 블록체인 시스템에 대해, 노드 사이의 통신을 위한 요건은 동일할 수 있으며, 따라서 다중 블록체인 시스템은 동일한 다중 블록체인 가속 네트워크(702)를 재사용할 수 있다. 이는 다중 블록체인 가속 네트워크(702)의 재사용가능성을 개선시키고, 블록체인 시스템 내의 네트워크 구성 비용을 절감하거나 없앨 수 있다. 블록체인 시스템은 다수의 통신 요건을 가질 수 있기 때문에 이러한 절약이 발생할 수 있다. 네트워크 불확실성으로 인해, 노드 사이의 직접 통신 효율은, 네트워크 가속 노드를 사용한 간접 통신보다 더 낮을 수 있다.
도 8은, 다중 블록체인 가속 네트워크를 사용하기 위한 프로세스(800)의 예를 도시한다. 프로세스(800)는 본 명세서의 구현예에 따라서 실행될 수 있다. 일부 구현예에서, 예시 프로세스(800)는, 하나 이상의 컴퓨팅 디바이스를 사용하여 실행되는 하나 이상의 컴퓨터-실행가능 프로그램을 사용하여 수행될 수 있다.
프로세스(800)는, 블록체인 내의 하나 이상의 노드에서 또는 블록체인에 의해 액세스가능한 서버에서 구현되는 블록체인 트랜잭션 가속 시스템의 일부일 수 있다(그리고 블록체인 트랜잭션 가속 시스템 내에서 구현될 수 있다). 예컨대, 도 7을 참조하여 설명된 블록체인 트랜잭션 가속 시스템(700)이 프로세스(800)를 구현할 수 있다.
단계(802)에서, 블록체인 트랜잭션 가속 시스템에서, 복수의 블록체인에 의해 액세스가능한 다중 블록체인 가속 네트워크에 대한 액세스가 제공된다. 블록체인은, 예컨대, 제1 블록체인(704a) 및 제2 블록체인(704b)을 포함할 수 있다. 다중 블록체인 가속 네트워크는 복수의 가속 노드를 포함한다. 각 가속 노드는 복수의 블록체인 중 적어도 하나의 블록체인 내의 적어도 하나의 노드에 의해 액세스가능하다. 예컨대, 블록체인 트랜잭션 가속 시스템(700) 내에서, 블록체인(704)에 의해 액세스가능한 다중 블록체인 가속 네트워크(702)에 대한 액세스가 제공된다. 다중 블록체인 가속 네트워크(702)는, 블록체인(704) 내의 적어도 하나의 노드(708)에 의해 각각 액세스가능한 가속 노드(706)를 포함한다. 단계(802)로부터, 방법(800)은 단계(804)로 진행한다.
단계(804)에서, 복수의 블록체인 중 제1 블록체인 내의 제1 노드로부터 전달될 트랜잭션이 제1 가속 노드에서 수신된다. 예를 들면, 제1 블록체인(704a) 내의 제1 노드(708a)로부터 전달될 트랜잭션(710)이 제1 가속 노드(706a)에서 수신된다. 단계(804)로부터, 방법(800)은 단계(806)로 진행한다.
단계(806)에서, 전달될 트랜잭션이 제1 가속 노드에 의해 제2 노드에 전달된다. 예컨대, 트랜잭션(710)은 제1 가속 노드(706a)에 의해 제2 노드에 전달될 수 있다. 제2 노드는, 예컨대, 제2 블록체인(704b) 내의 노드(708b)일 수 있다. 또 다른 예에서, 제2 노드는 제2 가속 노드(706b)일 수 있다. 제1 블록체인(704a) 내의 제1 노드(708a) 및 제2 블록체인(704b) 내의 제2 노드(708b)는 상이한 네트워크 내에 있을 수 있다. 단계(806) 이후, 방법(800)은 정지할 수 있다.
일부 구현예에서, 방법(800)은, 가속 노드를 선택하기 위해, 전달된 트랜잭션에 대한 통계를 사용하는 단계를 더 포함할 수 있다. 예컨대, 블록체인 시스템은, 다중 블록체인 가속 네트워크(702)를 사용하여 블록체인(704)에 의해 전송 및 수신된, 전달된 트랜잭션에 대한 통계를 수집할 수 있다. 통계는, 더 빠른 트랜잭션 전달 시간을 제공하는 다중 블록체인 가속 네트워크(702) 내의 가속 노드(706)를 결정하기 위해 사용될 수 있다. 예컨대, 가속 노드(706)가 가장 빠른 트랜잭션 전달 시간을 갖는다고 식별된 후, 블록체인 트랜잭션 가속 시스템(700)은 트랜잭션의 전달을 위해 가속 노드(706)를 선택할 수 있다.
일부 구현예에서, 방법(800)은, 블록체인이 다중 블록체인 가속 네트워크에 가입하도록 하는 단계를 더 포함할 수 있다. 예컨대, 다중 블록체인 가속 네트워크(702)에 가입하기 위한 요청이 제3 블록체인(704c)으로부터 수신될 수 있다. 이후, 다중 블록체인 가속 네트워크(702)에 대한 액세스가 제3 블록체인(704c)에 제공될 수 있다.
일부 구현예에서, 방법(400, 600, 및 800)의 부분이 조합되어 사용될 수 있다. 예컨대, 블록체인 트랜잭션 가속 시스템(320, 500, 700)은, 블록체인 내에서의 트랜잭션의 전달 속도를 높이기 위해 중복 트랜잭션과 가속 노드의 조합을 사용하는 하나의 집단적 블록체인 트랜잭션 가속 시스템일 수 있거나 그러한 집단적 블록체인 트랜잭션 가속 시스템으로서 소용될 수 있다. 집단적 블록체인 트랜잭션 가속 시스템에 의해 어느 기법이 사용될지의 결정은, 다른 요인들 중에서도, 네트워크 상태 및 트래픽의 지식과 같은, 실시간 정보에 기초할 수 있다.
도 9는, 본 명세서의 구현예에 따른 장치(900)의 모듈의 예를 도시한다. 장치(900)는, (예를 들면, 컨소시엄 또는 다른 블록체인 유형의 네트워크에서) 트랜잭션 재전송을 사용한 블록체인 네트워크에서의 트랜잭션 전달의 가속을 가능케 하도록 구성된 장치의 구현예일 수 있다. 장치(900)는 전술한 구현예에 대응할 수 있으며, 장치(900)는, 블록체인 트랜잭션 가속 시스템에서, 블록체인 내의 제1 노드를 통해 전송된 제1 트랜잭션을 수신하기 위한 제1 수신기 또는 제1 수신 유닛(902); 블록체인 트랜잭션 가속 시스템에서, 제1 트랜잭션의 사본인 적어도 하나의 제2 트랜잭션을 수신하기 위한 제2 수신기 또는 제2 수신 유닛(904) - 적어도 하나의 제2 트랜잭션은 제1 노드에 의해, 제1 노드와는 상이한, 블록체인 내의 적어도 하나의 제2 노드에 전송됨 -; 블록체인 트랜잭션 가속 시스템에 의해, 제1 트랜잭션 및 적어도 하나의 제2 트랜잭션을 포함하는 수신된 트랜잭션 중 가장 먼저 수신된 트랜잭션을 실행하기 위한 실행기 또는 실행 유닛(906); 및 블록체인 트랜잭션 가속 시스템에 의해, 수신된 트랜잭션 중 나머지 트랜잭션이, 가장 먼저 수신된 트랜잭션과 동일하다고 결정할 때, 나머지 트랜잭션을 폐기하기 위한 폐기기 또는 폐기 유닛(908)을 포함한다.
전술한 구현예에 예시된 시스템, 장치, 모듈, 또는 유닛은, 컴퓨터 칩 또는 엔티티를 사용함으로써 구현될 수 있거나, 특정한 기능을 갖는 제품을 사용함으로써 구현될 수 있다. 일반적인 구현 디바이스는 컴퓨터이며, 컴퓨터는, 개인용 컴퓨터, 랩톱 컴퓨터, 셀룰러 전화, 카메라 전화, 스마트폰, 개인용 디지털 보조기구, 미디어 플레이어, 내비게이션 디바이스, 이메일 수신 및 전송 디바이스, 게임 콘솔, 태블릿 컴퓨터, 웨어러블 디바이스, 또는 이들 디바이스의 임의의 조합일 수 있다.
본 장치 내의 각 유닛의 기능 및 역할의 구현 프로세스에 대해서는, 전술한 방법 내의 대응하는 단계의 구현 프로세스를 참조할 수 있다. 여기서는 간략화를 위해 세부사항을 생략한다.
장치 구현예는 기본적으로 방법 구현예에 대응하기 때문에, 관련 부분에 대해서는, 방법 구현예 내의 관련 설명을 참조할 수 있다. 전술한 장치 구현예는 단지 예시일 뿐이다. 분리되어 있는 부분들로서 설명된 유닛은, 물리적으로 분리되어 있을 수 있거나 물리적으로 분리되어 있지 않을 수 있고, 유닛으로서 디스플레이된 부분들은 물리적인 유닛일 수 있거나 물리적인 유닛이 아닐 수 있으며, 하나의 위치에 위치지정될 수 있거나, 다수의 네트워크 유닛 상에 분산될 수 있다. 본 명세서의 해결책의 목적을 달성하기 위해 실제 요구에 기초하여 모듈 중 일부 또는 전부가 선택될 수 있다. 당업자는 창의적 노력 없이도 본 출원의 구현예를 이해하고 구현할 수 있다.
다시 도 9를 참조하면, 트랜잭션 재전송을 사용한 블록체인 네트워크에서의 트랜잭션 전달의 가속을 가능케 하기 위한 장치의 내부 기능 모듈 및 구조를 도시하는 것으로 해석될 수 있다. 실행 장치는, 트랜잭션 재전송을 사용한 블록체인 네트워크에서의 트랜잭션 전달의 가속을 가능케 하도록 구성된 장치의 예일 수 있다.
도 10은, 본 명세서의 구현예에 따른 장치(1000)의 모듈의 예를 도시한다. 장치(1000)는, (예를 들면, 컨소시엄 또는 다른 블록체인 유형의 네트워크에서) 가속 노드를 사용한 블록체인 네트워크에서의 트랜잭션의 전달의 가속을 가능케 하도록 구성된 장치의 구현예일 수 있다. 장치(1000)는 전술한 구현예에 대응할 수 있으며, 장치(1000)는, 블록체인 트랜잭션 가속 시스템을 사용해, 제1 노드에 의해 생성된 제1 트랜잭션을 블록체인 내의 가속 노드에 전송하기 위한 전송기 또는 전송 유닛(1002) - 제1 트랜잭션은, 제1 트랜잭션의 의도된 수신자인 제2 노드에 직접 전송되는 대신, 가속 노드에 전송되고, 제1 노드, 제2 노드, 및 가속 노드는 상이한 노드임 -; 블록체인 트랜잭션 가속 시스템에 의해, 트랜잭션을 가속 노드로부터 제2 노드에 전달하기 위한 전달기 또는 전달 유닛(1004); 및 블록체인 트랜잭션 가속 시스템에 의해, 제2 노드에 의해 트랜잭션을 실행하기 위한 실행기 또는 실행 유닛(1006)을 포함한다.
전술한 구현예에 예시된 시스템, 장치, 모듈, 또는 유닛은, 컴퓨터 칩 또는 엔티티를 사용함으로써 구현될 수 있거나, 특정한 기능을 갖는 제품을 사용함으로써 구현될 수 있다. 일반적인 구현 디바이스는 컴퓨터이며, 컴퓨터는, 개인용 컴퓨터, 랩톱 컴퓨터, 셀룰러 전화, 카메라 전화, 스마트폰, 개인용 디지털 보조기구, 미디어 플레이어, 내비게이션 디바이스, 이메일 수신 및 전송 디바이스, 게임 콘솔, 태블릿 컴퓨터, 웨어러블 디바이스, 또는 이들 디바이스의 임의의 조합일 수 있다.
본 장치 내의 각 유닛의 기능 및 역할의 구현 프로세스에 대해서는, 전술한 방법 내의 대응하는 단계의 구현 프로세스를 참조할 수 있다. 여기서는 간략화를 위해 세부사항을 생략한다.
장치 구현예는 기본적으로 방법 구현예에 대응하기 때문에, 관련 부분에 대해서는, 방법 구현예 내의 관련 설명을 참조할 수 있다. 전술한 장치 구현예는 단지 예시일 뿐이다. 분리되어 있는 부분들로서 설명된 유닛은, 물리적으로 분리되어 있을 수 있거나 물리적으로 분리되어 있지 않을 수 있고, 유닛으로서 디스플레이된 부분들은 물리적인 유닛일 수 있거나 물리적인 유닛이 아닐 수 있으며, 하나의 위치에 위치지정될 수 있거나, 다수의 네트워크 유닛 상에 분산될 수 있다. 본 명세서의 해결책의 목적을 달성하기 위해 실제 요구에 기초하여 모듈 중 일부 또는 전부가 선택될 수 있다. 당업자는 창의적 노력 없이도 본 출원의 구현예를 이해하고 구현할 수 있다.
다시 도 10을 참조하면, 가속 노드를 사용한 블록체인 네트워크에서의 트랜잭션의 전달의 가속을 가능케 하기 위한 장치의 내부 기능 모듈 및 구조 도시하는 것으로 해석될 수 있다. 실행 장치는, 가속 노드를 사용한 블록체인 네트워크에서의 트랜잭션의 전달의 가속을 가능케 하도록 구성된 장치의 예일 수 있다.
도 11은, 본 명세서의 구현예에 따른 장치(1100)의 모듈의 예를 도시한다. 장치(1100)는, (예를 들면, 컨소시엄 또는 다른 블록체인 유형의 네트워크에서) 전역적 가속 노드를 사용해 블록체인 트랜잭션 속도를 개선시키도록 구성된 장치의 구현예일 수 있다. 장치(1100)는 전술한 구현예에 대응할 수 있으며, 장치(1100)는, 블록체인 트랜잭션 가속 시스템에서, 복수의 블록체인에 의해 액세스가능한 다중 블록체인 가속 네트워크에 대한 액세스를 제공하기 위한 제공기 또는 제공 유닛(1102) - 다중 블록체인 가속 네트워크는 복수의 가속 노드를 포함하고, 각 가속 노드는 복수의 블록체인 중 적어도 하나의 블록체인 내의 적어도 하나의 노드에 의해 액세스 가능함 -; 복수의 블록체인 중 제1 블록체인 내의 제1 노드로부터 전달될 트랜잭션을 제1 가속 노드에서 수신하기 위한 수신기 또는 수신 유닛(1104); 및 제1 가속 노드에 의해, 트랜잭션을 제2 노드에 전달하기 위한 전달기 또는 전달 유닛(1106)을 포함한다.
전술한 구현예에 예시된 시스템, 장치, 모듈, 또는 유닛은, 컴퓨터 칩 또는 엔티티를 사용함으로써 구현될 수 있거나, 특정한 기능을 갖는 제품을 사용함으로써 구현될 수 있다. 일반적인 구현 디바이스는 컴퓨터이며, 컴퓨터는, 개인용 컴퓨터, 랩톱 컴퓨터, 셀룰러 전화, 카메라 전화, 스마트폰, 개인용 디지털 보조기구, 미디어 플레이어, 내비게이션 디바이스, 이메일 수신 및 전송 디바이스, 게임 콘솔, 태블릿 컴퓨터, 웨어러블 디바이스, 또는 이들 디바이스의 임의의 조합일 수 있다.
본 장치 내의 각 유닛의 기능 및 역할의 구현 프로세스에 대해서는, 전술한 방법 내의 대응하는 단계의 구현 프로세스를 참조할 수 있다. 여기서는 간략화를 위해 세부사항을 생략한다.
장치 구현예는 기본적으로 방법 구현예에 대응하기 때문에, 관련 부분에 대해서는, 방법 구현예 내의 관련 설명을 참조할 수 있다. 전술한 장치 구현예는 단지 예시일 뿐이다. 분리되어 있는 부분들로서 설명된 유닛은, 물리적으로 분리되어 있을 수 있거나 물리적으로 분리되어 있지 않을 수 있고, 유닛으로서 디스플레이된 부분들은 물리적인 유닛일 수 있거나 물리적인 유닛이 아닐 수 있으며, 하나의 위치에 위치지정될 수 있거나, 다수의 네트워크 유닛 상에 분산될 수 있다. 본 명세서의 해결책의 목적을 달성하기 위해 실제 요구에 기초하여 모듈 중 일부 또는 전부가 선택될 수 있다. 당업자는 창의적 노력 없이도 본 출원의 구현예를 이해하고 구현할 수 있다.
다시 도 11을 참조하면, 전역적 가속 노드를 사용해 블록체인 트랜잭션 속도를 개선시키기 위한 장치의 내부 기능 모듈 및 구조를 도시하는 것으로 해석될 수 있다. 실행 장치는, 전역적 가속 노드를 사용해 블록체인 트랜잭션 속도를 개선시키도록 구성된 장치의 예일 수 있다.
본 명세서에 설명된 주제 및 행동과 동작의 구현예는, 디지털 전자 회로부로, 유형적으로(tangibly) 수록된 컴퓨터 소프트웨어 또는 펌웨어로, 본 명세서에 개시된 구조 및 그 구조적 등가물을 비롯한 컴퓨터 하드웨어로, 또는 이들 중 하나 이상의 조합으로 구현될 수 있다. 본 명세서에 설명된 주제의 구현예는, 하나 이상의 컴퓨터 프로그램으로서, 예컨대, 데이터 처리 장치에 의한 실행을 위해 또는 데이터 처리 장치의 동작을 제어하기 위해 컴퓨터 프로그램 캐리어 상에 인코딩된 하나 이상의 컴퓨터 프로그램 명령어 모듈로서 구현될 수 있다. 캐리어는 유형의 비일시적 컴퓨터 저장 매체일 수 있다. 대안적으로, 또는 추가적으로, 캐리어는, 인공적으로 생성되어 전파되는 신호, 예컨대, 데이터 처리 장치에 의한 실행을 위해 적합한 수신기 장치에 송신할 정보를 인코딩하기 위하여 생성된 기계-생성형 전기, 광학, 또는 전자기 신호일 수 있다. 컴퓨터 저장 매체는 기계-판독가능 저장 디바이스, 기계-판독가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 디바이스, 또는 이들 중 하나 이상의 조합이거나 그 일부일 수 있다. 컴퓨터 저장 매체는, 전파되는 신호가 아니다.
"데이터 처리 장치"라는 용어는, 예를 들어, 프로그래밍가능 프로세서, 컴퓨터, 또는 다수의 프로세서 또는 컴퓨터를 비롯한, 데이터를 처리하기 위한 모든 종류의 장치, 디바이스, 및 기계를 망라한다. 데이터 처리 장치는 특수-목적 논리 회로부, 예컨대, FPGA(field programmable gate array), ASIC (application-specific integrated circuit), 또는 GPU(graphics processing unit)를 포함할 수 있다. 이러한 장치는, 하드웨어에 더하여, 컴퓨터 프로그램을 위한 실행 환경을 생성하는 코드, 예컨대, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 이들 중 하나 이상의 조합을 구성하는 코드도 포함할 수 있다.
프로그램, 소프트웨어, 소프트웨어 애플리케이션, 앱, 모듈, 소프트웨어 모듈, 엔진, 스크립트, 또는 코드로서도 지칭되거나 설명될 수 있는 컴퓨터 프로그램은, 컴파일러형이나 인터프리터형 언어, 또는 선언형이나 절차형 언어를 비롯한 임의의 형태의 프로그래밍 언어로 작성될 수 있고; 독립형 프로그램, 또는, 컴퓨팅 환경에서 실행하기에 적합한, 모듈, 컴포넌트, 엔진, 서브루틴, 또는 다른 유닛을 비롯한 임의의 형태로 배치될 수 있으며, 컴퓨팅 환경은, 하나 이상의 위치에서 데이터 통신 네트워크에 의해 상호연결된 하나 이상의 컴퓨터를 포함할 수 있다.
컴퓨터 프로그램은 파일 시스템 내의 파일에 대응할 수 있으나, 그러할 필요는 없다. 컴퓨터 프로그램은, 다른 프로그램 또는 데이터를 보유한 파일의 일부, 예컨대, 마크업 언어 문서 내에 저장된 하나 이상의 스크립트 내에 저장되거나, 해당 프로그램 전용 단일 파일 내에 저장되거나, 다수의 조정된 파일, 예컨대, 하나 이상의 모듈, 서브프로그램, 또는 코드의 부분들을 저장한 파일들 내에 저장될 수 있다.
본 명세서에 설명된 프로세스 및 논리 흐름은, 입력 데이터에 대해 연산을 수행하고 출력을 생성함으로써 동작을 수행하기 위한 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 컴퓨터에 의해 수행될 수 있다. 프로세스 및 논리 흐름은, 특수 목적 논리 회로부, 예컨대, FPGA, ASIC, 또는 GPU나, 특수 목적 논리 회로부 및 하나 이상의 프로그래밍된 컴퓨터의 조합에 의해 수행될 수도 있다.
컴퓨터 프로그램의 실행에 적합한 컴퓨터는, 범용 마이크로프로세서나 특수 목적 마이크로프로세서, 또는 둘 다, 또는 임의의 다른 종류의 중앙 처리 장치를 기반으로 할 수 있다. 일반적으로, 중앙 처리 장치는 리드-온리 메모리나 랜덤-액세스 메모리, 또는 둘 다로부터 명령어 및 데이터를 수신할 것이다. 컴퓨터의 요소는, 명령어를 실행하기 위한 중앙 처리 장치, 그리고 명령어 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스를 포함할 수 있다. 중앙 처리 장치 및 메모리는 특수 목적 논리 회로부에 의해 보완되거나 특수 목적 논리 회로부에 포함될 수 있다.
일반적으로, 컴퓨터는 또한, 하나 이상의 대용량 저장 디바이스를 포함하거나, 이러한 대용량 저장 디바이스로부터 데이터를 수신하거나 이러한 대용량 저장 디바이스에 데이터를 전송하도록 이러한 대용량 저장 디바이스에 동작가능하게 커플링될 것이다. 대용량 저장 디바이스는, 예컨대, 자기 디스크, 자기-광학 디스크, 또는 광학 디스크이거나, 솔리드 스테이트 드라이브일 수 있다. 그러나, 컴퓨터가 그러한 디바이스를 가질 필요는 없다. 또한, 컴퓨터는, 또 다른 디바이스에, 예컨대, 모바일 전화기, PDA(personal digital assistant), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, GPS(global positioning system) 수신기, 또는 휴대용 저장 디바이스, 예컨대, USB(universal serial bus) 플래시 드라이브 등에 임베딩될 수 있다.
사용자와의 상호작용이 가능하도록 하기 위하여, 본 명세서에 설명된 주제의 구현예는, 사용자에게 정보를 디스플레이하기 위한 디스플레이 디바이스, 예컨대, LCD(liquid crystal display) 모니터, 및 사용자가 컴퓨터에 입력을 제공할 수 있도록 하는 입력 디바이스, 예컨대, 키보드 및 포인팅 디바이스, 예컨대, 마우스, 트랙볼, 또는 터치패드를 갖는 컴퓨터 상에 구현되거나 그러한 컴퓨터와 통신하도록 구성될 수 있다. 사용자와의 상호작용이 가능하도록 하기 위하여 다른 종류의 디바이스가 사용될 수도 있으며; 예컨대, 사용자에게 제공되는 피드백은 임의의 형태의 감각 피드백, 예컨대, 시각 피드백, 청각 피드백, 또는 촉각 피드백일 수 있고; 사용자로부터의 입력은 음향, 음성, 또는 촉각 입력을 비롯한 임의의 형태로 수신될 수 있다. 또한, 컴퓨터는, 사용자에 의해 사용되는 디바이스에 문서를 전송하고 해당 디바이스로부터 문서를 수신함으로써; 예컨대, 웹 브라우저로부터 수신되는 요청에 응답하여, 사용자의 디바이스 상의 웹 브라우저에 웹 페이지를 전송함으로써, 또는 사용자 디바이스, 예컨대, 스마트폰 또는 전자 태블릿 상에서 실행 중인 앱과 상호작용함으로써, 사용자와 상호작용할 수 있다. 또한, 컴퓨터는 문자 메시지 또는 다른 형태의 메시지를 개인용 디바이스, 예컨대 메시징 애플리케이션을 실행 중인 스마트폰에 전송하고, 그에 대한 반응으로, 사용자로부터 응답 메시지를 수신함으로써 사용자와 상호작용할 수 있다.
본 명세서는 시스템, 장치, 및 컴퓨터 프로그램 컴포넌트와 관련하여 "~(하)도록 구성된"이라는 용어를 사용한다. 하나 이상의 컴퓨터로 이루어진 시스템이, 특정 동작 또는 행동을 수행하도록 구성된다는 것은, 작동 중에 해당 시스템으로 하여금 동작 또는 행동을 수행하게 하는 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 조합이 해당 시스템에 설치되어 있다는 것을 의미한다. 하나 이상의 컴퓨터 프로그램이, 특정 동작 또는 행동을 수행하도록 구성된다는 것은, 데이터 처리 장치에 의해 실행될 때 해당 장치로 하여금 동작 또는 행동을 수행하게 하는 명령어를 해당 하나 이상의 프로그램이 포함한다는 것을 의미한다. 특수 목적 논리 회로부가, 특정 동작 또는 행동을 수행하도록 구성된다는 것은, 동작 또는 행동을 수행하는 전자 논리를 해당 회로부가 갖는다는 것을 의미한다.
본 명세서는 여러 특정 구현예 세부사항을 포함하고 있지만, 이들은, 청구범위 자체에 의해 정의되는 청구 대상의 범위에 대한 제한으로서 해석되어서는 안 되며, 오히려, 특정 구현예에 특유할 수 있는 특징의 설명으로서 해석되어야 한다. 분리된 구현예의 맥락에서 본 명세서에 설명된 특정 특징들은 단일 구현예에서 조합되어 실현될 수도 있다. 반대로, 단일 구현예의 맥락에서 설명된 다양한 특징은 다수 구현예에서 분리되어 또는 임의의 적합한 부분조합으로 실현될 수도 있다. 또한, 특징이 특정 조합으로 작동하는 것으로 전술되고 최초에 그와 같이 청구될 수도 있으나, 청구된 조합으로부터의 하나 이상의 특징은, 일부 경우, 조합으로부터 삭제될 수 있고, 해당 청구항은 부분조합 또는 부분조합의 변형예에 관한 것일 수 있다.
이와 유사하게, 동작들이 특정 순서로 도면에 묘사되어 있거나 청구범위에 언급되어 있으나, 이는 바람직한 결과를 달성하기 위하여 그러한 동작들이, 도시된 특정 순서 또는 순차적 순서로 수행될 것, 또는 예시된 모든 동작이 수행될 것을 요구하는 것으로 이해되어서는 안 된다. 특정 상황에서, 멀티태스킹 및 병렬 처리가 이로울 수 있다. 또한, 전술한 구현예에서의 다양한 시스템 모듈 및 컴포넌트의 분리는, 모든 구현예에서 그러한 분리를 요구하는 것으로 이해되어서는 안 되며, 설명된 프로그램 컴포넌트 및 시스템은 일반적으로 단일 소프트웨어 제품에 함께 통합되거나 다수의 소프트웨어 제품으로 패키징될 수 있다는 것이 이해되어야 한다.
지금까지 본 명세서의 주제의 특정 구현예가 설명되었다. 다른 구현예들은 다음의 청구범위 내에 있다. 예컨대, 청구항 내에 언급된 동작은 상이한 순서로 수행되면서도 여전히 바람직한 결과를 달성할 수 있다. 하나의 예를 들면, 첨부 도면 내에 도시된 프로세스는, 바람직한 결과를 달성하기 위해, 도시된 특정 순서 또는 순차적 순서를 필연적으로 요구하지는 않는다. 일부 경우, 멀티태스킹 및 병렬 처리가 이로울 수 있다.

Claims (20)

  1. 컴퓨터-구현 방법(computer-implemented method)에 있어서,
    블록체인 트랜잭션 가속 시스템에서, 블록체인 내의 제1 노드를 통해 전송된 제1 트랜잭션을 수신하는 단계;
    상기 블록체인 트랜잭션 가속 시스템에서, 상기 제1 트랜잭션의 사본인 적어도 하나의 제2 트랜잭션을 수신하는 단계 - 상기 적어도 하나의 제2 트랜잭션은, 상기 제1 노드에 의해, 상기 제1 노드와는 상이한 상기 블록체인 내의 적어도 하나의 제2 노드에 전송됨 -;
    상기 블록체인 트랜잭션 가속 시스템에 의해, 상기 제1 트랜잭션 및 상기 적어도 하나의 제2 트랜잭션을 포함하는 수신된 트랜잭션 중 가장 먼저 수신된 트랜잭션을 실행하는 단계; 및
    상기 블록체인 트랜잭션 가속 시스템에 의해, 상기 수신된 트랜잭션 중 나머지 트랜잭션이 상기 가장 먼저 수신된 트랜잭션과 동일하다고 결정할 때, 상기 나머지 트랜잭션을 폐기하는 단계
    를 포함하는, 컴퓨터-구현 방법.
  2. 제1항에 있어서, 상기 수신된 트랜잭션 중 나머지 트랜잭션이 상기 가장 먼저 수신된 트랜잭션과 동일하다고 결정하는 것은, 상기 가장 먼저 수신된 트랜잭션의 디지털 서명과 일치(match)하는 상기 나머지 트랜잭션 각각의 디지털 서명을 식별하는 것을 포함하는, 컴퓨터-구현 방법.
  3. 제1항에 있어서, 상기 블록체인 내의 상기 제1 노드 및 상기 블록체인 내의 상기 적어도 하나의 제2 노드는, 상이한 네트워크 서비스 제공자에 의해 제공되는 상이한 네트워크 허브 내에 있는, 컴퓨터 구현 방법.
  4. 제1항에 있어서, 더 빠른 트랜잭션 송신 속도를 제공하는 상기 블록체인 내의 노드를 결정하기 위해, 상기 수신된 트랜잭션에 대한 송신 속도 통계를 수집하는 단계를 더 포함하는, 컴퓨터-구현 방법.
  5. 제4항에 있어서, 주어진 송신물 전송(transmission-sending) 노드에 대해, 그리고 상기 송신 속도 통계에 기초하여, 트랜잭션이 전송될 선호 노드 세트를 결정하는 단계를 더 포함하는, 컴퓨터-구현 방법.
  6. 제1항에 있어서, 상기 블록체인 트랜잭션 가속 시스템은 상기 블록체인 내의 하나 이상의 노드에서 또는 상기 블록체인에 의해 액세스가능한 서버에서 구현되는, 컴퓨터-구현 방법.
  7. 제1항에 있어서, 상기 적어도 하나의 제2 트랜잭션을 전송하기 위해 사용할 복수의 제2 노드를 결정하는 단계를 더 포함하는, 컴퓨터-구현 방법.
  8. 명령어로 인코딩된 하나 이상의 컴퓨터-판독가능 저장 매체에 있어서, 상기 명령어는, 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서로 하여금,
    블록체인 트랜잭션 가속 시스템에서, 블록체인 내의 제1 노드를 통해 전송된 제1 트랜잭션을 수신하고;
    상기 블록체인 트랜잭션 가속 시스템에서, 상기 제1 트랜잭션의 사본인 적어도 하나의 제2 트랜잭션을 수신하고 - 상기 적어도 하나의 제2 트랜잭션은, 상기 제1 노드에 의해, 상기 제1 노드와는 상이한 상기 블록체인 내의 적어도 하나의 제2 노드에 전송됨 -;
    상기 블록체인 트랜잭션 가속 시스템에 의해, 상기 제1 트랜잭션 및 상기 적어도 하나의 제2 트랜잭션을 포함하는 수신된 트랜잭션 중 가장 먼저 수신된 트랜잭션을 실행하고;
    상기 블록체인 트랜잭션 가속 시스템에 의해, 상기 수신된 트랜잭션 중 나머지 트랜잭션이 상기 가장 먼저 수신된 트랜잭션과 동일하다고 결정할 때, 상기 나머지 트랜잭션을 폐기
    하게 하는, 하나 이상의 컴퓨터-판독가능 저장 매체.
  9. 제8항에 있어서, 상기 수신된 트랜잭션 중 나머지 트랜잭션이 상기 가장 먼저 수신된 트랜잭션과 동일하다고 결정하는 것은, 상기 가장 먼저 수신된 트랜잭션의 디지털 서명과 일치하는 상기 나머지 트랜잭션 각각의 디지털 서명을 식별하는 것을 포함하는, 하나 이상의 컴퓨터-판독가능 저장 매체.
  10. 제8항에 있어서, 상기 블록체인 내의 상기 제1 노드 및 상기 블록체인 내의 상기 적어도 하나의 제2 노드는, 상이한 네트워크 서비스 제공자에 의해 제공되는 상이한 네트워크 허브 내에 있는, 하나 이상의 컴퓨터-판독가능 저장 매체.
  11. 제8항에 있어서, 더 빠른 트랜잭션 송신 속도를 제공하는 상기 블록체인 내의 노드를 결정하기 위해, 상기 수신된 트랜잭션에 대한 송신 속도 통계를 수집하기 위하여 상기 하나 이상의 프로세서에 의해 실행가능한 명령어를 더 갖는, 하나 이상의 컴퓨터-판독가능 저장 매체.
  12. 제11항에 있어서, 주어진 송신물 전송 노드에 대해, 그리고 상기 송신 속도 통계에 기초하여, 트랜잭션이 전송될 선호 노드 세트를 결정하기 위하여 상기 하나 이상의 프로세서에 의해 실행가능한 명령어를 더 갖는, 하나 이상의 컴퓨터-판독가능 저장 매체.
  13. 제8항에 있어서, 상기 블록체인 트랜잭션 가속 시스템은 상기 블록체인 내의 하나 이상의 노드에서 또는 상기 블록체인에 의해 액세스가능한 서버에서 구현되는, 하나 이상의 컴퓨터-판독가능 저장 매체.
  14. 제8항에 있어서, 상기 적어도 하나의 제2 트랜잭션을 전송하기 위해 사용할 복수의 제2 노드를 결정하기 위하여 상기 하나 이상의 프로세서에 의해 실행가능한 명령어를 더 갖는, 하나 이상의 컴퓨터-판독가능 저장 매체.
  15. 시스템에 있어서,
    하나 이상의 프로세서; 및
    명령어로 인코딩된 하나 이상의 컴퓨터-판독가능 저장 매체를 포함하며, 상기 명령어는, 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서로 하여금,
    블록체인 트랜잭션 가속 시스템에서, 블록체인 내의 제1 노드를 통해 전송된 제1 트랜잭션을 수신하고;
    상기 블록체인 트랜잭션 가속 시스템에서, 상기 제1 트랜잭션의 사본인 적어도 하나의 제2 트랜잭션을 수신하고 - 상기 적어도 하나의 제2 트랜잭션은, 상기 제1 노드에 의해, 상기 제1 노드와는 상이한 상기 블록체인 내의 적어도 하나의 제2 노드에 전송됨 -;
    상기 블록체인 트랜잭션 가속 시스템에 의해, 상기 제1 트랜잭션 및 상기 적어도 하나의 제2 트랜잭션을 포함하는 수신된 트랜잭션 중 가장 먼저 수신된 트랜잭션을 실행하고;
    상기 블록체인 트랜잭션 가속 시스템에 의해, 상기 수신된 트랜잭션 중 나머지 트랜잭션이 상기 가장 먼저 수신된 트랜잭션과 동일하다고 결정할 때, 상기 나머지 트랜잭션을 폐기
    하게 하는, 시스템.
  16. 제15항에 있어서, 상기 수신된 트랜잭션 중 나머지 트랜잭션이 상기 가장 먼저 수신된 트랜잭션과 동일하다고 결정하는 것은, 상기 가장 먼저 수신된 트랜잭션의 디지털 서명과 일치하는 상기 나머지 트랜잭션 각각의 디지털 서명을 식별하는 것을 포함하는, 시스템.
  17. 제15항에 있어서, 상기 블록체인 내의 상기 제1 노드 및 상기 블록체인 내의 상기 적어도 하나의 제2 노드는, 상이한 네트워크 서비스 제공자에 의해 제공되는 상이한 네트워크 허브 내에 있는, 시스템.
  18. 제15항에 있어서,
    상기 하나 이상의 컴퓨터-판독가능 저장 매체는,
    더 빠른 트랜잭션 송신 속도를 제공하는 상기 블록체인 내의 노드를 결정하고;
    주어진 송신물 전송 노드에 대해, 그리고 상기 송신 속도 통계에 기초하여, 트랜잭션이 전송될 선호 노드 세트를 결정하기 위해,
    상기 수신된 트랜잭션에 대한 송신 속도 통계를 수집하기 위하여 상기 하나 이상의 프로세서에 의해 실행가능한 명령어를 더 갖는, 시스템.
  19. 제15항에 있어서, 상기 블록체인 트랜잭션 가속 시스템은 상기 블록체인 내의 하나 이상의 노드에서 또는 상기 블록체인에 의해 액세스가능한 서버에서 구현되는, 시스템.
  20. 제15항에 있어서, 상기 하나 이상의 컴퓨터-판독가능 저장 매체는, 상기 적어도 하나의 제2 트랜잭션을 전송하기 위해 사용할 복수의 제2 노드를 결정하기 위한 상기 하나 이상의 프로세서에 의해 실행가능한 명령어를 더 갖는, 시스템.
KR1020197023256A 2018-12-28 2018-12-28 트랜잭션 재전송을 사용한 블록체인 네트워크에서의 트랜잭션 전달의 가속 KR20200083940A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/124894 WO2019072306A2 (en) 2018-12-28 2018-12-28 ACCELERATION OF TRANSACTION DELIVERIES IN BLOCK CHAIN NETWORKS USING A TRANSACTION RETURN

Publications (1)

Publication Number Publication Date
KR20200083940A true KR20200083940A (ko) 2020-07-09

Family

ID=66100138

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197023256A KR20200083940A (ko) 2018-12-28 2018-12-28 트랜잭션 재전송을 사용한 블록체인 네트워크에서의 트랜잭션 전달의 가속

Country Status (9)

Country Link
US (2) US11082237B2 (ko)
EP (1) EP3566393B1 (ko)
JP (1) JP6892514B2 (ko)
KR (1) KR20200083940A (ko)
CN (1) CN109863522B (ko)
PH (1) PH12019501833A1 (ko)
SG (1) SG11201907245VA (ko)
TW (1) TWI712303B (ko)
WO (1) WO2019072306A2 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200151686A1 (en) * 2018-11-14 2020-05-14 Royal Bank Of Canada System and method for cross-border blockchain platform
SG11201907248QA (en) 2018-12-28 2019-09-27 Alibaba Group Holding Ltd Improving blockchain transaction speeds using global acceleration nodes
EP3571655B1 (en) 2018-12-28 2021-09-29 Advanced New Technologies Co., Ltd. Accelerating transaction deliveries in blockchain networks using acceleration nodes
SG11201907245VA (en) 2018-12-28 2019-09-27 Alibaba Group Holding Ltd Accelerating transaction deliveries in blockchain networks using transaction resending
SG11202002027TA (en) * 2019-09-12 2020-04-29 Alibaba Group Holding Ltd Log-structured storage systems
CN113222590B (zh) * 2020-01-21 2023-10-31 富联精密电子(天津)有限公司 预防双花攻击的方法、装置及计算机可读存储介质
WO2022006320A1 (en) * 2020-06-30 2022-01-06 Interdigital Patent Holdings, Inc. Methods, architectures, apparatuses and systems directed to transaction management in blockchain-enabled wireless systems
WO2022006361A1 (en) * 2020-06-30 2022-01-06 Interdigital Patent Holdings, Inc. Methods, architectures, apparatuses and systems directed to messaging through blockchain networks
JPWO2023012867A1 (ko) * 2021-08-02 2023-02-09

Family Cites Families (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5889943A (en) 1995-09-26 1999-03-30 Trend Micro Incorporated Apparatus and method for electronic mail virus detection and elimination
US7844729B1 (en) * 1999-05-03 2010-11-30 Digital Envoy, Inc. Geo-intelligent traffic manager
JP4377858B2 (ja) 2005-07-07 2009-12-02 日本電信電話株式会社 階層分散型ルーティング方法とその管理装置
JPWO2008126210A1 (ja) * 2007-03-27 2010-07-22 富士通株式会社 通信経路選択プログラム、通信経路選択方法および通信経路選択装置
US8588103B2 (en) * 2007-04-10 2013-11-19 Control4 Corporation System and method for distributing communications through a dense mesh network
US20090100128A1 (en) 2007-10-15 2009-04-16 General Electric Company Accelerating peer-to-peer content distribution
US8089869B2 (en) * 2008-03-09 2012-01-03 Fluke Corporation Method and apparatus of duplicate packet detection and discard
JP2012070293A (ja) * 2010-09-27 2012-04-05 Hitachi Ltd 二重化高信頼通信方法および装置
US8462781B2 (en) * 2011-04-06 2013-06-11 Anue Systems, Inc. Systems and methods for in-line removal of duplicate network packets
US8756217B2 (en) 2011-07-12 2014-06-17 Facebook, Inc. Speculative switch database
US8935533B2 (en) * 2011-12-20 2015-01-13 Alcatel Lucent Method and apparatus for a scalable and secure transport protocol for sensor data collection
US20150046558A1 (en) * 2013-03-15 2015-02-12 Google Inc. System and method for choosing lowest latency path
US20160086175A1 (en) 2014-09-22 2016-03-24 Qualcomm Incorporated Peer-to-peer transaction system
US9967334B2 (en) 2015-03-02 2018-05-08 Dell Products Lp Computing device configuration and management using a secure decentralized transaction ledger
US10051000B2 (en) * 2015-07-28 2018-08-14 Citrix Systems, Inc. Efficient use of IPsec tunnels in multi-path environment
US20170132626A1 (en) * 2015-11-05 2017-05-11 Mastercard International Incorporated Method and system for processing of a blockchain transaction in a transaction processing network
US20170132625A1 (en) 2015-11-05 2017-05-11 Mastercard International Incorporated Method and system for use of a blockchain in a transaction processing network
EP3181963A1 (en) 2015-12-16 2017-06-21 Sedal, S.L. Mixing cartridge
WO2017109140A1 (en) 2015-12-22 2017-06-29 Bigchaindb Gmbh Decentralized, tamper-resistant, asset-oriented database system and method of recording a transaction
US20170236120A1 (en) 2016-02-11 2017-08-17 Oracle International Corporation Accountability and Trust in Distributed Ledger Systems
US10693658B2 (en) 2016-02-12 2020-06-23 Visa International Service Association Methods and systems for using digital signatures to create trusted digital asset transfers
US10534913B2 (en) * 2016-03-30 2020-01-14 British Telecommunications Public Limited Company Blockchain state reliability determination
US20170345011A1 (en) 2016-05-26 2017-11-30 Hitfin, Inc. System and method executed on a blockchain network
US10417217B2 (en) * 2016-08-05 2019-09-17 Chicago Mercantile Exchange Inc. Systems and methods for blockchain rule synchronization
EP3285248B1 (en) * 2016-08-16 2019-07-03 Alcatel Lucent Blockchain-based security threat detection method and system
CN106385319B (zh) 2016-09-29 2020-11-27 江苏通付盾科技有限公司 区块链网络中信息的验证方法及系统
US11128603B2 (en) 2016-09-30 2021-09-21 Nec Corporation Method and system for providing a transaction forwarding service in blockchain implementations
US10387684B2 (en) * 2016-12-09 2019-08-20 International Business Machines Corporation Interlocked blockchains to increase blockchain security
WO2018127923A1 (en) 2017-01-08 2018-07-12 Eyal Hertzog Methods for exchanging and evaluating virtual currency
US20180225661A1 (en) 2017-02-07 2018-08-09 Microsoft Technology Licensing, Llc Consortium blockchain network with verified blockchain and consensus protocols
US20180254982A1 (en) 2017-03-01 2018-09-06 Cisco Technology, Inc. Communication Paths for Distributed Ledger Systems
US11095432B2 (en) 2017-04-05 2021-08-17 Samsung Sds Co., Ltd. System for processing data based on blockchain and operating method thereof
US10812270B2 (en) 2017-04-07 2020-10-20 Citizen Hex Inc. Techniques for increasing the probability that a transaction will be included in a target block of a blockchain
US10102265B1 (en) * 2017-04-12 2018-10-16 Vijay K. Madisetti Method and system for tuning blockchain scalability for fast and low-cost payment and transaction processing
CN108876361A (zh) * 2017-05-12 2018-11-23 李平 区块链系统、区块生成方法及计算机可读存储介质
US10740733B2 (en) 2017-05-25 2020-08-11 Oracle International Corporaton Sharded permissioned distributed ledgers
CN107231299A (zh) 2017-06-07 2017-10-03 众安信息技术服务有限公司 一种链路由及实现区块链跨链通信的系统
JP7053677B2 (ja) 2017-06-07 2022-04-12 エヌチェーン ホールディングス リミテッド ブロックチェーン・ネットワークにおいてトランザクションを管理するためのコンピュータ実装システム及び方法
CN107239954B (zh) 2017-06-07 2021-01-22 北京汇通金财信息科技有限公司 一种提高区块产生速度的方法及装置
GB201709219D0 (en) * 2017-06-09 2017-07-26 Nchain Holdings Ltd Computer-implemented system and method
CN107358420B (zh) 2017-06-09 2020-08-11 北京博晨技术有限公司 用于实现热点账户的区块链系统以及实现热点账户的方法
CN107332826B (zh) 2017-06-09 2019-12-03 中国联合网络通信集团有限公司 区块链代理节点的通信方法及装置
WO2018231255A1 (en) 2017-06-16 2018-12-20 Visa International Service Association Blockchain network interaction controller
GB201709848D0 (en) * 2017-06-20 2017-08-02 Nchain Holdings Ltd Computer-implemented system and method
CN107239910A (zh) 2017-06-27 2017-10-10 中国科学院城市环境研究所 耦合人口和poi点的城市内涝风险评估指标构建
JP6929725B2 (ja) 2017-07-14 2021-09-01 株式会社ジャパンディスプレイ バックライト装置、およびこれを備える液晶表示装置
US10984134B2 (en) * 2017-07-14 2021-04-20 Microsoft Technology Licensing, Llc Blockchain system for leveraging member nodes to achieve consensus
US10592979B2 (en) 2017-07-26 2020-03-17 International Business Machines Corporation Managing blockchain transactions
US20190080402A1 (en) 2017-09-11 2019-03-14 Templum, Llc System and method for providing a regulatory-compliant token
CN107862600A (zh) 2017-10-24 2018-03-30 深圳四方精创资讯股份有限公司 基于区块链的银行汇款方法及其系统
US11461777B2 (en) 2017-12-19 2022-10-04 Tbcasoft, Inc. Cross-ledger transfers between distributed ledgers
CN108154367B (zh) 2017-12-26 2021-07-02 成都质数斯达克科技有限公司 一种区块链业务校验方法及装置
US11257073B2 (en) 2018-01-31 2022-02-22 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing machine learning models for smart contracts using distributed ledger technologies in a cloud based computing environment
CN108200210B9 (zh) * 2018-02-12 2021-06-18 众安信息技术服务有限公司 基于区块链的链管理的方法、装置及计算机可读介质
CN108805702B (zh) 2018-04-19 2022-04-01 深圳市迅雷网络技术有限公司 基于区块链的交易缓冲/加速方法及区块链交易处理系统
CN108681965B (zh) * 2018-04-24 2021-01-29 全链通有限公司 离线节点的区块链网络交易处理方法和装置
US11194837B2 (en) 2018-05-01 2021-12-07 International Business Machines Corporation Blockchain implementing cross-chain transactions
CN108769141A (zh) * 2018-05-09 2018-11-06 深圳市深弈科技有限公司 一种多源实时交易行情数据接收与归并处理的方法
CN108764870B (zh) 2018-05-29 2020-07-07 阿里巴巴集团控股有限公司 基于区块链的交易处理方法及装置、电子设备
CN108876615A (zh) 2018-06-11 2018-11-23 腾讯科技(深圳)有限公司 债权数据存储方法、装置、设备及介质
CN109242484A (zh) * 2018-08-09 2019-01-18 玄章技术有限公司 一种区块链的共识激励方法
US11018851B2 (en) 2018-08-23 2021-05-25 Paypal, Inc. Multi-blockchain digital transaction information segregation system
CN109064337A (zh) 2018-10-18 2018-12-21 尚维斯 一种基于区块链的跨链记账方法
US20200143466A1 (en) 2018-11-06 2020-05-07 Jianxin Wu Blockchain-based lending systems and methods
US10325084B1 (en) * 2018-12-11 2019-06-18 block.one Systems and methods for creating a secure digital identity
US11127000B2 (en) 2018-12-17 2021-09-21 Intel Corporation Reducing blockchain transaction delay
US11474994B2 (en) * 2018-12-27 2022-10-18 Intel Corporation Distributed blockchain oracle
EP3571655B1 (en) 2018-12-28 2021-09-29 Advanced New Technologies Co., Ltd. Accelerating transaction deliveries in blockchain networks using acceleration nodes
SG11201907245VA (en) 2018-12-28 2019-09-27 Alibaba Group Holding Ltd Accelerating transaction deliveries in blockchain networks using transaction resending
SG11201907248QA (en) 2018-12-28 2019-09-27 Alibaba Group Holding Ltd Improving blockchain transaction speeds using global acceleration nodes

Also Published As

Publication number Publication date
US11082239B2 (en) 2021-08-03
CN109863522B (zh) 2023-09-26
CN109863522A (zh) 2019-06-07
EP3566393B1 (en) 2021-09-01
TW202027453A (zh) 2020-07-16
EP3566393A4 (en) 2020-03-18
EP3566393A2 (en) 2019-11-13
JP2020516109A (ja) 2020-05-28
US20190280878A1 (en) 2019-09-12
WO2019072306A3 (en) 2019-10-24
JP6892514B2 (ja) 2021-06-23
US11082237B2 (en) 2021-08-03
TWI712303B (zh) 2020-12-01
WO2019072306A2 (en) 2019-04-18
PH12019501833A1 (en) 2020-03-16
SG11201907245VA (en) 2019-09-27
US20200366502A1 (en) 2020-11-19

Similar Documents

Publication Publication Date Title
CN109863522B (zh) 使用交易重发加速区块链网络中的交易交付
CN109792382B (zh) 使用全局加速节点提高区块交易速度的方法、系统和存储介质
US11151127B2 (en) Accelerating transaction deliveries in blockchain networks using acceleration nodes
KR102157452B1 (ko) 분산 시스템 내의 네트워크 노드를 위한 복구 프로세스의 수행
KR20200074910A (ko) 신뢰할 수 있는 실행 환경을 기반으로 한 오프체인 스마트 계약 서비스
KR20200083936A (ko) 블록체인 네트워크에서의 트랜잭션의 병렬 실행
KR102222612B1 (ko) 스마트 계약 화이트리스트
CN111108734B (zh) 基于存储空间互换的改进的防重放设备
CN111047324A (zh) 用于更新区块链节点处的公钥集合的方法及装置
CN111183427A (zh) 管理基于区块链的中心化账本系统
CN111108526A (zh) 管理基于区块链的中心化账本系统

Legal Events

Date Code Title Description
N231 Notification of change of applicant
E902 Notification of reason for refusal
E601 Decision to refuse application