KR102228214B1 - 블록체인 네트워크에서 블록을 생성하기 이전에 트랜잭션을 전파함으로써 트랜잭션 처리 속도를 향상시킬 수 있는 노드 장치 및 그 동작 방법 - Google Patents

블록체인 네트워크에서 블록을 생성하기 이전에 트랜잭션을 전파함으로써 트랜잭션 처리 속도를 향상시킬 수 있는 노드 장치 및 그 동작 방법 Download PDF

Info

Publication number
KR102228214B1
KR102228214B1 KR1020190088152A KR20190088152A KR102228214B1 KR 102228214 B1 KR102228214 B1 KR 102228214B1 KR 1020190088152 A KR1020190088152 A KR 1020190088152A KR 20190088152 A KR20190088152 A KR 20190088152A KR 102228214 B1 KR102228214 B1 KR 102228214B1
Authority
KR
South Korea
Prior art keywords
transaction
node
node device
block
array
Prior art date
Application number
KR1020190088152A
Other languages
English (en)
Other versions
KR20210011139A (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 KR1020190088152A priority Critical patent/KR102228214B1/ko
Publication of KR20210011139A publication Critical patent/KR20210011139A/ko
Application granted granted Critical
Publication of KR102228214B1 publication Critical patent/KR102228214B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24568Data stream processing; Continuous queries
    • 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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

블록체인 네트워크에서 블록을 생성하기 이전에 트랜잭션을 전파함으로써 트랜잭션 처리 속도를 향상시킬 수 있는 노드 장치 및 그 동작 방법이 개시된다. 본 발명은 특정 노드 장치에서 블록체인 네트워크에 제1 거래 데이터를 저장하라는 저장 이벤트가 발생한 경우, 상기 특정 노드 장치가 상기 제1 거래 데이터가 포함된 제1 트랜잭션을 생성한 후 상기 제1 트랜잭션을 나머지 노드 장치들에 순차적으로 전파함으로써, 각 노드 장치가 상기 제1 트랜잭션을 기초로 자신의 원장 데이터베이스를 갱신하도록 하여 각 노드 장치에서 상기 제1 트랜잭션의 처리가 우선적으로 완료되도록 한 후 각 노드 장치에서 상기 제1 트랜잭션의 처리가 완료되면, 소정의 앵커 노드 장치를 통해 상기 제1 트랜잭션이 포함된 블록이 상기 블록체인 네트워크에 등록되도록 함으로써, 블록체인에서 트랜잭션의 처리 속도를 향상시킬 수 있다.

Description

블록체인 네트워크에서 블록을 생성하기 이전에 트랜잭션을 전파함으로써 트랜잭션 처리 속도를 향상시킬 수 있는 노드 장치 및 그 동작 방법{NODE DEVICE THAT CAN IMPROVE TRANSACTION PROCESSING SPEED BY PROPAGATING TRANSACTIONS BEFORE GENERATING BLOCKS IN A BLOCK-CHAIN NETWORK AND OPERATING METHOD THEREOF}
본 발명은 블록체인 네트워크에서 블록을 생성하기 이전에 트랜잭션을 전파함으로써 트랜잭션 처리 속도를 향상시킬 수 있는 노드 장치 및 그 동작 방법에 대한 것이다.
블록체인 기술이란, 기존의 중앙 집중형 데이터 보관 방식에서 벗어나, 소정의 데이터를 체인화된 블록으로 구성하여 다수의 노드 장치들에 분산 보관함으로써 해당 데이터에 대한 무결성을 보장할 수 있는 기술을 의미한다.
이러한 블록체인 기술은 블록체인 네트워크를 구성하는 복수의 노드 장치들 중 어느 하나의 노드 장치가 일정 시간 동안 생성된 트랜잭션들을 모아서 상기 트랜잭션들을 포함하는 블록을 생성하고, 해당 블록을 복수의 노드 장치들 중 상기 노드 장치를 제외한 나머지 노드 장치들로 전파함에 따라 다수의 노드 장치들에 분산 저장되도록 한다.
관련해서, TPS(Transaction Per Seconds)는 초당 처리할 수 있는 트랜잭션으로, 트랜잭션의 처리 속도를 나타내는 단위이고, 하나의 블록에 저장되는 거래량을 블록 생성 주기로 나눈 값을 의미한다. 그러나, 1세대 블록체인인 비트코인의 처리속도는 7TPS, 2세대 블록체인인 이더리움의 처리속도는 15~20TPS, 3세대 블록체인인 이오스의 처리 속도는 500~1000TPS 정도로, 점차 트랜잭션의 처리 속도가 개선되고 있음에도 불구하고 계속하여 트랜잭션의 처리 속도의 개선이 필요한 상태이다.
하지만, 트랜잭션의 처리 속도는 트랜잭션 유효성 검증 프로세스 및 트랜잭션 전달 프로세스, 블록 생성 주기, 블록당 트랜잭션 수, 과거 거래 내역 등에 의해 영향을 받으므로 속도의 개선이 쉽지 않다.
기존에 트랜잭션의 처리 속도의 개선을 위해, 라이트닝 네트워크(Lightning Network), 샤딩(Sharding), 플라즈마(Plasma)와 같은 속도 개선을 위한 스케일링 솔루션들이 제시되고 있지만, 동기화 시점에 시간을 지연시키는 문제, 안정적이지 않은 문제, 실제 구현이나 유지가 지나치게 복잡한 문제가 있어 새로운 대안이 필요하다.
특히, 기존의 블록체인 시스템에서는 하나의 블록에 복수의 트랜잭션들이 삽입된 후 상기 블록이 블록체인 네트워크의 노드 장치들로 배포되기 때문에, 블록체인 네트워크의 각 노드 장치들이 블록에 포함된 복수의 트랜잭션들에 따른 거래 데이터를 자신의 원장 데이터베이스에 반영하기 위해, 블록에 포함된 상기 복수의 트랜잭션들의 유효성을 하나씩 검증하고, 각 트랜잭션의 발생 순서를 확인하여 발생 순서에 따른 거래 데이터를 기초로 원장 데이터베이스의 갱신 작업을 수행한다는 점에서 트랜잭션에 포함된 거래 데이터를 기초로 각 노드 장치의 원장 데이터베이스를 갱신하는 것과 관련된 트랜잭션 처리 속도가 느리다는 단점이 존재하였다.
따라서, 블록체인에서 트랜잭션 처리 속도를 향상시킬 수 있도록 하는 기법에 대한 연구가 필요하다.
본 발명은 특정 노드 장치에서 블록체인 네트워크에 제1 거래 데이터를 저장하라는 저장 이벤트가 발생한 경우, 상기 특정 노드 장치가 상기 제1 거래 데이터가 포함된 제1 트랜잭션을 생성한 후 상기 제1 트랜잭션을 나머지 노드 장치들에 순차적으로 전파함으로써, 각 노드 장치가 상기 제1 트랜잭션을 기초로 자신의 원장 데이터베이스를 갱신하도록 하여 각 노드 장치에서 상기 제1 트랜잭션의 처리가 우선적으로 완료되도록 한 후 각 노드 장치에서 상기 제1 트랜잭션의 처리가 완료되면, 소정의 앵커 노드 장치를 통해 상기 제1 트랜잭션이 포함된 블록이 상기 블록체인 네트워크에 등록되도록 함으로써, 블록체인에서 트랜잭션의 처리 속도를 향상시킬 수 있도록 한다.
본 발명의 일실시예에 따른 블록체인 네트워크에서 블록을 생성하기 이전에 트랜잭션을 전파함으로써 트랜잭션 처리 속도를 향상시킬 수 있는 노드 장치는 상기 블록체인 네트워크에 제1 거래 데이터를 저장하라는 저장 이벤트가 발생한 경우, 상기 제1 거래 데이터가 포함된 제1 트랜잭션을 생성하는 제1 트랜잭션 생성부, 상기 제1 트랜잭션이 생성되면, 상기 제1 트랜잭션에 포함된 상기 제1 거래 데이터를 기초로 상기 노드 장치에 구비되어 있는 제1 원장 데이터베이스 - 상기 제1 원장 데이터베이스에는 기존에 발생한 복수의 거래 정보들이 기록되어 있음 - 를 갱신하는 원장 갱신부, 상기 제1 트랜잭션을 전파할 다음 노드 장치를 선택하기 위해, 상기 복수의 노드 장치들 중 상기 노드 장치를 제외한 나머지 노드 장치들에 대응되는 복수의 노드 식별자들을 어레이(array)에 삽입함으로써 제1 어레이를 생성하는 제1 어레이 생성부, 미리 지정한 자연수인 랜덤 값을 상기 제1 어레이의 크기로 나눈 나머지인 제1 연산 값을 생성하고, 상기 제1 어레이에서 상기 제1 연산 값에 해당하는 순서에 삽입되어 있는 노드 식별자를 제1 노드 식별자로 선택하는 제1 노드 식별자 선택부, 상기 제1 노드 식별자에 대응되는 노드 장치인 제1 노드 장치에 상기 제1 트랜잭션을 전파하는 트랜잭션 전파부 및 상기 제1 트랜잭션이 전파된 후, 상기 복수의 노드 장치들 중 상기 나머지 노드 장치들이 상기 제1 트랜잭션을 다음 노드 장치로 순차적으로 전파함에 따라, 마지막으로 상기 제1 트랜잭션을 전파받은 마지막 노드 장치로부터 상기 제1 트랜잭션의 전파 완료 메시지가 수신되면, 상기 복수의 노드 장치들 중 블록을 생성하기 위해 미리 지정된 앵커 노드 장치로 상기 제1 트랜잭션이 포함된 블록의 생성 요청을 전송하는 블록 생성 요청부를 포함한다.
또한, 본 발명의 일실시예에 따른 블록체인 네트워크에서 블록을 생성하기 이전에 트랜잭션을 전파함으로써 트랜잭션 처리 속도를 향상시킬 수 있는 노드 장치의 동작 방법은 상기 블록체인 네트워크에 제1 거래 데이터를 저장하라는 저장 이벤트가 발생한 경우, 상기 제1 거래 데이터가 포함된 제1 트랜잭션을 생성하는 단계, 상기 제1 트랜잭션이 생성되면, 상기 제1 트랜잭션에 포함된 상기 제1 거래 데이터를 기초로 상기 노드 장치에 구비되어 있는 제1 원장 데이터베이스 - 상기 제1 원장 데이터베이스에는 기존에 발생한 복수의 거래 정보들이 기록되어 있음 - 를 갱신하는 단계, 상기 제1 트랜잭션을 전파할 다음 노드 장치를 선택하기 위해, 상기 복수의 노드 장치들 중 상기 노드 장치를 제외한 나머지 노드 장치들에 대응되는 복수의 노드 식별자들을 어레이에 삽입함으로써 제1 어레이를 생성하는 단계, 미리 지정한 자연수인 랜덤 값을 상기 제1 어레이의 크기로 나눈 나머지인 제1 연산 값을 생성하고, 상기 제1 어레이에서 상기 제1 연산 값에 해당하는 순서에 삽입되어 있는 노드 식별자를 제1 노드 식별자로 선택하는 단계, 상기 제1 노드 식별자에 대응되는 노드 장치인 제1 노드 장치에 상기 제1 트랜잭션을 전파하는 단계 및 상기 제1 트랜잭션이 전파된 후, 상기 복수의 노드 장치들 중 상기 나머지 노드 장치들이 상기 제1 트랜잭션을 다음 노드 장치로 순차적으로 전파함에 따라, 마지막으로 상기 제1 트랜잭션을 전파받은 마지막 노드 장치로부터 상기 제1 트랜잭션의 전파 완료 메시지가 수신되면, 상기 복수의 노드 장치들 중 블록을 생성하기 위해 미리 지정된 앵커 노드 장치로 상기 제1 트랜잭션이 포함된 블록의 생성 요청을 전송하는 단계를 포함한다.
본 발명은 특정 노드 장치에서 블록체인 네트워크에 제1 거래 데이터를 저장하라는 저장 이벤트가 발생한 경우, 상기 특정 노드 장치가 상기 제1 거래 데이터가 포함된 제1 트랜잭션을 생성한 후 상기 제1 트랜잭션을 나머지 노드 장치들에 순차적으로 전파함으로써, 각 노드 장치가 상기 제1 트랜잭션을 기초로 자신의 원장 데이터베이스를 갱신하도록 하여 각 노드 장치에서 상기 제1 트랜잭션의 처리가 우선적으로 완료되도록 한 후 각 노드 장치에서 상기 제1 트랜잭션의 처리가 완료되면, 소정의 앵커 노드 장치를 통해 상기 제1 트랜잭션이 포함된 블록이 상기 블록체인 네트워크에 등록되도록 함으로써, 블록체인에서 트랜잭션의 처리 속도를 향상시킬 수 있다.
도 1은 본 발명의 일실시예에 따른 블록체인 네트워크에서 블록을 생성하기 이전에 트랜잭션을 전파함으로써 트랜잭션 처리 속도를 향상시킬 수 있는 노드 장치의 구조를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 블록체인 네트워크에서 블록을 생성하기 이전에 트랜잭션을 전파함으로써 트랜잭션 처리 속도를 향상시킬 수 있는 노드 장치를 설명하기 위한 도면이다.
도 3은 본 발명의 일실시예에 따른 블록체인 네트워크에서 블록을 생성하기 이전에 트랜잭션을 전파함으로써 트랜잭션 처리 속도를 향상시킬 수 있는 노드 장치 의 동작 방법을 도시한 순서도이다.
이하에서는 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명하기로 한다. 이러한 설명은 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였으며, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 본 명세서 상에서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 사람에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.
본 문서에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다. 또한, 본 발명의 다양한 실시예들에 있어서, 각 구성요소들, 기능 블록들 또는 수단들은 하나 또는 그 이상의 하부 구성요소로 구성될 수 있고, 각 구성요소들이 수행하는 전기, 전자, 기계적 기능들은 전자회로, 집적회로, ASIC(Application Specific Integrated Circuit) 등 공지된 다양한 소자들 또는 기계적 요소들로 구현될 수 있으며, 각각 별개로 구현되거나 2 이상이 하나로 통합되어 구현될 수도 있다.
한편, 첨부된 블록도의 블록들이나 흐름도의 단계들은 범용 컴퓨터, 특수용 컴퓨터, 휴대용 노트북 컴퓨터, 네트워크 컴퓨터 등 데이터 프로세싱이 가능한 장비의 프로세서나 메모리에 탑재되어 지정된 기능들을 수행하는 컴퓨터 프로그램 명령들(instructions)을 의미하는 것으로 해석될 수 있다. 이들 컴퓨터 프로그램 명령들은 컴퓨터 장치에 구비된 메모리 또는 컴퓨터에서 판독 가능한 메모리에 저장될 수 있기 때문에, 블록도의 블록들 또는 흐름도의 단계들에서 설명된 기능들은 이를 수행하는 명령 수단을 내포하는 제조물로 생산될 수도 있다. 아울러, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 명령들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 가능한 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 정해진 순서와 달리 실행되는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 실질적으로 동시에 수행되거나, 역순으로 수행될 수 있으며, 경우에 따라 일부 블록들 또는 단계들이 생략된 채로 수행될 수도 있다.
도 1은 본 발명의 일실시예에 따른 블록체인 네트워크에서 블록을 생성하기 이전에 트랜잭션을 전파함으로써 트랜잭션 처리 속도를 향상시킬 수 있는 노드 장치 의 구조를 도시한 도면이다.
여기서, 블록체인 네트워크에서 블록을 생성하기 이전에 트랜잭션을 전파함으로써 트랜잭션 처리 속도를 향상시킬 수 있는 노드 장치(110)는 블록체인 네트워크를 구성하는 복수의 노드 장치들(110, 117, 118, 119, 120) 중 하나인 장치이고, 복수의 노드 장치들(110, 117, 118, 119, 120) 각각은 복수의 노드 장치들(110, 117, 118, 119, 120) 각각의 메모리 상에 거래 데이터에 대한 트랜잭션이 포함된 복수의 블록들이 체인으로 연결되어 있는 블록체인 데이터를 저장하고 있으며, 네트워크 기능을 갖는 마이크로 프로세서 기반의 컴퓨팅 장치에 해당한다. 또한, 복수의 노드 장치들(110, 117, 118, 119, 120) 각각에는 서로 다른 고유의 노드 식별자가 할당되어 있다.
도 1을 참조하면, 본 발명의 일실시예에 따른 블록체인 네트워크에서 블록을 생성하기 이전에 트랜잭션을 전파함으로써 트랜잭션 처리 속도를 향상시킬 수 있는 노드 장치(110)는 제1 트랜잭션 생성부(111), 원장 갱신부(112), 제1 어레이 생성부(113), 제1 노드 식별자 선택부(114), 트랜잭션 전파부(115), 블록 생성 요청부(116)를 포함한다.
제1 트랜잭션 생성부(111)는 상기 블록체인 네트워크에 제1 거래 데이터를 저장하라는 저장 이벤트가 발생한 경우, 상기 제1 거래 데이터가 포함된 제1 트랜잭션을 생성한다.
원장 갱신부(112)는 상기 제1 트랜잭션에 포함된 상기 제1 거래 데이터를 기초로 노드 장치(110)에 구비되어 있는 제1 원장 데이터베이스를 갱신한다. 여기서, 상기 제1 원장 데이터베이스에는 기존에 발생한 복수의 거래 정보들이 기록되어 있다.
이때, 본 발명의 일실시예에 따르면, 제1 트랜잭션 생성부(111)는 상기 블록체인 네트워크에 상기 제1 거래 데이터를 저장하라는 상기 저장 이벤트가 발생한 경우, 상기 블록체인 네트워크에서 상기 저장 이벤트가 발생한 순서를 지시하는 시퀀스 값을 생성하여 상기 제1 거래 데이터와 상기 시퀀스 값이 포함된 상기 제1 트랜잭션을 생성할 수 있다.
여기서, 상기 시퀀스 값은 트랜잭션의 생성 순서를 결정하는 일련 번호에 해당한다.
또한, 본 발명의 일실시예에 따르면, 제1 트랜잭션 생성부(111)는 상기 블록체인 네트워크에 상기 제1 거래 데이터를 저장하라는 상기 저장 이벤트가 발생한 경우, 상기 제1 거래 데이터를 노드 장치(110)의 메모리 상에 저장되어 있는 기설정된(predetermined) 개인키로 암호화하여 전자 서명 값을 생성한 후 상기 제1 거래 데이터와 상기 전자 서명 값이 포함된 상기 제1 트랜잭션을 생성할 수 있다.
상기 전자 서명 값은 상기 노드 장치가 다른 노드 장치로 상기 제1 트랜잭션을 전파할 경우, 상기 노드 장치의 인증에 사용하기 위한 값이다.
제1 어레이 생성부(113)는 상기 제1 트랜잭션을 전파할 다음 노드 장치를 선택하기 위해, 복수의 노드 장치들(110, 117, 118, 119, 120) 중 노드 장치(110)를 제외한 나머지 노드 장치들(117, 118, 119, 120)에 대응되는 복수의 노드 식별자들을 어레이(array)에 삽입함으로써 제1 어레이를 생성한다.
여기서, 상기 어레이란, 같은 데이터형의 요소들이 순서를 갖고 나열되어 있는 배열로서, 상기 배열 안에서 순서에 따라 복수의 요소들을 서로 구분할 수 있는 집단적인 데이터 저장 영역을 의미한다.
예컨대, 크기가 n(n은 2이상의 자연수)인 어레이인 ar이 존재한다고 가정하면, 상기 ar의 첫 번째 요소는 ar[0]로 표현되고, 상기 ar[0]은 0에 해당하는 순서에 삽입되어 있는 데이터를 의미할 수 있다. 또한, 상기 ar의 두 번째 요소는 ar[1]로 표현되고, 상기 ar[1]은 1에 해당하는 순서에 삽입되어 있는 데이터를 의미할 수 있으며, 상기 ar의 마지막 n번째 요소는 ar[n-1]로 표현되고, 상기 ar[n-1]은 n-1에 해당하는 순서에 삽입되어 있는 데이터를 의미할 수 있다.
제1 어레이 생성부(113)에 의해 상기 제1 어레이가 생성된 이후, 제1 노드 식별자 선택부(114)는 미리 지정한 자연수인 랜덤 값을 상기 제1 어레이의 크기로 나눈 나머지인 제1 연산 값을 생성하고, 상기 제1 어레이에서 상기 제1 연산 값에 해당하는 순서에 삽입되어 있는 노드 식별자를 제1 노드 식별자로 선택한다.
이때, 본 발명의 일실시예에 따르면, 상기 랜덤 값은 상기 제1 트랜잭션에 포함된 상기 시퀀스 값이 미리 정해진 난수 생성 함수에 입력으로 인가되어 연산되는 출력 값으로 지정될 수 있다.
제1 노드 식별자 선택부(114)에 의해 상기 제1 노드 식별자가 선택되면, 트랜잭션 전파부(115)는 상기 제1 노드 식별자에 대응되는 노드 장치인 제1 노드 장치에 상기 제1 트랜잭션을 전파한다.
본 설명에서는 설명의 편의를 위해 상기 제1 노드 장치를 도면부호 117로 표시한 노드 장치 1인 것으로 가정하여 설명하기로 한다.
이때, 본 발명의 일실시예에 따르면, 제1 노드 장치(117)는 노드 장치(110)로부터 상기 제1 트랜잭션이 수신되면, 제1 노드 장치(117)에 구비되어 있는, 상기 개인키에 대응되는 공개키를 기초로 상기 전자 서명 값을 복호화하여 복호화 값을 생성할 수 있고, 상기 복호화 값이 상기 제1 거래 데이터와 일치하면, 노드 장치(110)에 대한 인증을 완료한 후, 상기 제1 트랜잭션에 포함된 상기 제1 거래 데이터를 기초로 제1 노드 장치(117)에 구비되어 있는 상기 제2 원장 데이터베이스를 갱신할 수 있다.
그리고, 제1 노드 장치(117)는 상기 제2 원장 데이터베이스를 갱신한 이후, 상기 제1 트랜잭션을 전파할 다음 노드 장치를 지정하기 위해, 나머지 노드 장치들(117, 118, 119, 120)에 대응되는 복수의 노드 식별자들을 어레이에 삽입함으로써 제2 어레이를 생성할 수 있고, 상기 랜덤 값을 상기 제2 어레이의 크기로 나눈 나머지인 제2 연산 값을 생성한 후, 상기 제2 어레이에서 상기 제2 연산 값에 대응하는 순서에 삽입되어 있는 노드 식별자인 제2 노드 식별자를 제거할 수 있다.
상기 제2 어레이에서 상기 제2 노드 식별자를 제거하는 동작은 상기 제1 트랜잭션을 전파할 다음 노드 장치를 지정하는 과정에서 이미 제1 트랜잭션이 수신된 노드 장치는 제외하고 지정하기 위한 과정이다.
이후, 상기 제2 노드 식별자가 상기 제1 노드 식별자와 일치하는지 여부를 확인하여, 상기 제2 노드 식별자가 상기 제1 노드 식별자와 일치하는 것으로 확인되면, 상기 랜덤 값을 상기 제2 노드 식별자가 제거된 상기 제2 어레이의 크기로 나눈 나머지인 제3 연산 값을 생성한 후, 상기 제2 노드 식별자가 제거된 상기 제2 어레이에서 상기 제3 연산 값에 대응하는 순서에 삽입되어 있는 노드 식별자인 제3 노드 식별자를 추출한 후 상기 제3 노드 식별자에 대응되는 노드 장치인 제2 노드 장치에 상기 제1 트랜잭션을 전파할 수 있다.
본 설명에서는 설명의 편의를 위해 상기 제2 노드 장치를 도면부호 118로 표시한 노드 장치 2인 것으로 가정하여 설명하기로 한다.
또한, 본 발명의 일실시예에 따르면, 제2 노드 장치(118)는 제1 노드 장치(117)로부터 상기 제1 트랜잭션이 수신되면, 상기 제1 트랜잭션에 포함된 제1 거래 데이터를 기초로 제2 노드 장치(118)에 구비되어 있는 제3 원장 데이터베이스를 갱신할 수 있다.
그리고, 제2 노드 장치(118)는 상기 제3 원장 데이터베이스를 갱신한 이후, 상기 제1 트랜잭션을 전파할 다음 노드 장치를 지정하기 위해, 나머지 노드 장치들(117, 118, 119, 120)에 대응되는 복수의 노드 식별자들을 어레이에 삽입함으로써 제3 어레이를 생성할 수 있고, 상기 랜덤 값을 상기 제3 어레이의 크기로 나눈 나머지인 제4 연산 값을 생성한 후, 상기 제3 어레이에서 상기 제4 연산 값에 대응하는 순서에 삽입되어 있는 노드 식별자인 제4 노드 식별자를 제거할 수 있다.
그리고, 상기 제4 노드 식별자가 상기 제3 노드 식별자와 일치하는지 여부를 확인하여 일치하지 않는 경우, 상기 제3 어레이 상에 이미 상기 제1 트랜잭션이 수신된 노드 장치가 아직 존재하고 있는 것을 의미하므로, 상기 랜덤 값을 상기 제4 노드 식별자가 제거된 상기 제3 어레이의 크기로 나눈 나머지인 제5 연산 값을 생성하고, 상기 제4 노드 식별자가 제거된 상기 제3 어레이에서 상기 제5 연산 값에 대응하는 순서에 삽입되어 있는 노드 식별자인 제5 노드 식별자를 추가로 제거할 수 있다.
마찬가지로, 상기 제3 어레이에서 상기 제4 노드 식별자와 상기 제5 노드 식별자를 제거하는 동작은 상기 제1 트랜잭션을 전파할 다음 노드 장치를 지정하는 과정에서 이미 제1 트랜잭션이 수신된 노드 장치는 제외하고 지정하기 위한 과정이다.
이후, 상기 제5 노드 식별자가 상기 제3 노드 식별자와 일치하는 것으로 확인되면, 상기 랜덤 값을 상기 제4 노드 식별자와 상기 제5 노드 식별자가 제거된 상기 제3 어레이의 크기로 나눈 나머지인 제6 연산 값을 생성한 후, 상기 제4 노드 식별자와 상기 제5 노드 식별자가 제거된 상기 제3 어레이에서 상기 제6 연산 값에 대응하는 순서에 삽입되어 있는 노드 식별자인 제6 노드 식별자를 추출한 후 상기 제6 노드 식별자에 대응되는 노드 장치인 제3 노드 장치에 상기 제1 트랜잭션을 전파할 수 있다.
본 설명에서는 설명의 편의를 위해 상기 제3 노드 장치를 도면부호 119로 표시한 노드 장치 3인 것으로 가정하여 설명하기로 한다.
제3 노드 장치(119)는 제2 노드 장치(118)로부터 상기 제1 트랜잭션이 수신되면, 앞에서 제1 노드 장치(117)와 제2 노드 장치(118)에 상기 제1 트랜잭션이 수신되었을 때와 마찬가지로, 제3 노드 장치(119)에 구비되어 있는 원장 데이터베이스를 갱신할 수 있고, 나머지 노드 장치들(117, 118, 119, 120)에 대응되는 복수의 노드 식별자들을 어레이에 삽입함으로써 제4 어레이를 생성하며, 상기 제4 어레이에서 이미 상기 제1 트랜잭션이 수신된 노드 장치들에 대응하는 노드 식별자들을 제거한 후, 다음으로 상기 제1 트랜잭션을 전파할 노드 장치를 지정하여 상기 제1 트랜잭션을 전파할 수 있다.
이때, 복수의 노드 장치들(110, 117, 118, 119, 120) 중 나머지 노드 장치들(117, 118, 119, 120)이 상기 제1 트랜잭션을 다음 노드 장치로 순차적으로 전파함에 따라, 마지막으로 상기 제1 트랜잭션을 전파받은 마지막 노드 장치를 설명의 편의를 위해 도면부호 120으로 표시한 노드 장치 4라고 가정하자.
마지막 노드 장치는(120)는 상기 제1 트랜잭션이 수신되면, 마찬가지로 마지막 노드 장치(120)에 구비되어 있는 원장 데이터베이스를 갱신할 수 있고, 나머지 노드 장치들(117, 118, 119, 120)에 대응되는 복수의 노드 식별자들을 어레이에 삽입함으로써 제5 어레이를 생성하며, 상기 제5 어레이에서 이미 상기 제1 트랜잭션이 수신된 노드 장치들에 대응하는 노드 식별자들을 제거한 후, 더 이상 어레이에 노드 식별자가 남아있지 않은 경우, 마지막 노드 장치(120)로 판단하고 노드 장치(110)로 상기 제1 트랜잭션의 전파 완료 메시지를 전송한다.
이때, 블록 생성 요청부(116)는 상기 제1 트랜잭션이 전파된 후, 복수의 노드 장치들(110, 117, 118, 119, 120) 중 나머지 노드 장치들(117, 118, 119, 120)이 상기 제1 트랜잭션을 다음 노드 장치로 순차적으로 전파함에 따라, 마지막으로 상기 제1 트랜잭션을 전파받은 마지막 노드 장치(120)로부터 상기 제1 트랜잭션의 전파 완료 메시지가 수신되면, 복수의 노드 장치들(110, 117, 118, 119, 120) 중 블록을 생성하기 위해 미리 지정된 앵커 노드 장치로 상기 제1 트랜잭션이 포함된 블록의 생성 요청을 전송한다.
이때, 본 발명의 일실시예에 따르면, 상기 앵커 노드 장치는 노드 장치(110)로부터 상기 블록의 생성 요청이 수신되면, 상기 블록의 생성 요청에 대응하여, 상기 앵커 노드 장치의 메모리 상에 저장되어 있는 블록체인 데이터를 기초로 상기 제1 트랜잭션을 포함하는 제1 블록을 생성하고, 상기 제1 블록을 상기 앵커 노드 장치의 메모리 상에 저장되어 있는 상기 블록체인 데이터에 체인으로 연결하여 상기 제1 블록의 저장을 완료한 후, 상기 제1 블록을 상기 블록체인 네트워크를 통해 상기 복수의 노드 장치들(110, 117, 118, 119, 120) 중 상기 앵커 노드 장치를 제외한 나머지 노드 장치들로 배포할 수 있다.
이하에서는 도 2를 참조하여 블록체인 네트워크에서 블록을 생성하기 이전에 트랜잭션을 전파함으로써 트랜잭션 처리 속도를 향상시킬 수 있는 노드 장치(110)의 동작을 예를 들어 상세히 설명하기로 한다.
우선, 도 2에 도시된 그림과 같이 4개의 노드 장치들(110, 220, 230, 240)이 블록체인 네트워크를 구성하고 있다고 가정하고, 도면부호 110으로 표시한 노드 장치(110)가 본 발명에 따른 노드 장치(110)인 것으로 가정하자.
그리고, 노드 장치(110)의 노드 식별자를 '1', 노드 장치(220)의 노드 식별자를 '2', 노드 장치(230)의 노드 식별자를 '3', 노드 장치(240)의 노드 식별자를 '4'인 것으로 가정하자.
노드 장치(110)에서 블록체인 네트워크에 제1 거래 데이터를 저장하라는 저장 이벤트가 발생하는 경우, 제1 트랜잭션 생성부(111)는 상기 제1 거래 데이터가 포함된 제1 트랜잭션을 생성할 수 있다.
이때, 원장 갱신부(112)는 상기 제1 트랜잭션이 생성되면, 상기 제1 트랜잭션에 포함된 상기 제1 거래 데이터를 기초로 노드 장치(110)에 구비되어 있는 제1 원장 데이터베이스를 갱신할 수 있다.
그리고, 제1 어레이 생성부(113)는 상기 제1 트랜잭션을 전파할 다음 노드 장치를 선택하기 위해, 복수의 노드 장치들(110, 220, 230, 240) 중 노드 장치(110)를 제외한 나머지 노드 장치들(220, 230, 240)에 대응되는 복수의 노드 식별자들 '2', '3', '4'를 어레이에 삽입함으로써 제1 어레이('2', '3', '4')를 생성할 수 있다.
이후, 제1 노드 식별자 선택부(114)는 미리 지정한 랜덤 값을 상기 제1 어레이의 크기인 '3'으로 나눈 나머지인 제1 연산 값을 생성할 수 있다. 관련해서, 상기 랜덤 값을 '4'라고 하는 경우, 제1 노드 식별자 선택부(114)는 상기 랜덤 값인 '4'를 상기 제1 어레이의 크기인 '3'으로 나눈 나머지인 '1'을 생성할 수 있고, 상기 제1 어레이('2', '3', '4')에서 '1'의 순서에 삽입되어 있는 '3'을 제1 노드 식별자로 선택할 수 있다.
그리고, 제1 노드 식별자 선택부(114)에 의해 상기 '3'이 선택되면, 트랜잭션 전파부(115)는 노드 식별자가 '3'인 노드 장치(230)에 상기 제1 트랜잭션을 전파할 수 있다.
그리고, 노드 식별자가 '3'인 노드 장치(230)는 노드 장치(110)로부터 상기 제1 트랜잭션이 수신되면, 노드 장치(230)에 구비되어 있는 제2 원장 데이터베이스를 갱신한 이후, 상기 제1 트랜잭션을 전파할 다음 노드 장치를 지정하기 위해, 나머지 노드 장치들(220, 230, 240)에 대응되는 복수의 노드 식별자들 '2', '3', '4'를 어레이에 삽입함으로써 제2 어레이('2', '3', '4')를 생성할 수 있고, 상기 랜덤 값 '4'를 상기 제2 어레이('2', '3', '4')의 크기인 '3'으로 나눈 나머지인 '1'을 생성한 후, 상기 제2 어레이('2', '3', '4')에서 '1'의 순서에 삽입되어 있는 '3'인 제2 노드 식별자를 제거할 수 있다.
이후, 상기 제2 노드 식별자인 '3'이 상기 제1 노드 식별자인 '3'과 일치하는지 여부를 확인하여, 상기 제2 노드 식별자 '3'과 상기 제1 노드 식별자 '3'이 일치하는 것으로 확인되면, 상기 랜덤 값 '4'를 상기 제2 노드 식별자인 '3'이 제거된 상기 제2 어레이('2', '4')의 크기인 '2'로 나눈 나머지인 '0'을 생성한 후, '3'이 제거된 상기 제2 어레이('2', '4')에서 상기 '0'의 순서에 삽입되어 있는 '2'를 제3 노드 식별자로 추출한 후 노드 식별자가 '2'인 노드 장치(220)에 상기 제1 트랜잭션을 전파할 수 있다.
그리고, 노드 식별자가 '2'인 노드 장치(220)는 노드 장치(230)으로부터 상기 제1 트랜잭션이 수신되면, 상기 제1 트랜잭션에 포함된 제1 거래 데이터를 기초로 노드 장치(220)에 구비되어 있는 제3 원장 데이터베이스를 갱신한 이후, 상기 제1 트랜잭션을 전파할 다음 노드 장치를 지정하기 위해, 나머지 노드 장치들(220, 230, 240)에 대응되는 복수의 노드 식별자들 '2', '3', '4'를 어레이에 삽입함으로써 제3 어레이('2', '3', '4')를 생성할 수 있고, 상기 랜덤 값인 '4'를 상기 제3 어레이('2', '3', '4')의 크기인 '3'으로 나눈 나머지인 '1'을 생성한 후, 상기 제3 어레이('2', '3', '4')에서 '1'의 순서에 삽입되어 있는 '3'인 제4 노드 식별자를 제거할 수 있다.
그리고, 상기 제4 노드 식별자인 '3'이 상기 제3 노드 식별자인 '2'와 일치하는지 여부를 확인하여 일치하지 않는 경우, 상기 제4 노드 식별자인 '3'이 제거된 상기 제3 어레이('2', '4')에 이미 상기 제1 트랜잭션이 수신된 노드 장치가 아직 존재하고 있다고 해석할 수 있으므로, 상기 랜덤 값인 '4'를 상기 제4 노드 식별자인 '3'이 제거된 상기 제3 어레이('2', '4')의 크기인 '2'로 나눈 나머지인 '0'을 생성하고, '3'이 제거된 상기 제3 어레이('2', '4')에서 상기 '0'의 순서에 삽입되어 있는 '2'를 제5 노드 식별자로서 추가로 제거할 수 있다.
이후, 상기 제5 노드 식별자인 '2'가 상기 제3 노드 식별자인 '2'와 일치하는 것으로 확인되면, 상기 랜덤 값인 '4'를 상기 제4 노드 식별자인 '3'과 상기 제5 노드 식별자인 '2'가 제거된 상기 제3 어레이('4')의 크기인 '1'로 나눈 나머지인 '0'을 생성한 후, '3'과 '2'가 제거된 상기 제3 어레이('4')에서 상기 '0'의 순서에 삽입되어 있는 '4'를 제6 노드 식별자로 추출한 후 노드 식별자가 '4'인 노드 장치(240)에 상기 제1 트랜잭션을 전파할 수 있다.
그리고, 노드 식별자가 '4'인 노드 장치(240)는 노드 장치(220)으로부터 상기 제1 트랜잭션이 수신되면, 상기 제1 트랜잭션에 포함된 제1 거래 데이터를 기초로 노드 장치(240)에 구비되어 있는 제4 원장 데이터베이스를 갱신한 이후, 상기 제1 트랜잭션을 전파할 다음 노드 장치를 지정하기 위해, 나머지 노드 장치들(220, 230, 240)에 대응되는 복수의 노드 식별자들 '2', '3', '4'를 어레이에 삽입함으로써 제4 어레이('2', '3', '4')를 생성할 수 있고, 상기 랜덤 값인 '4'를 상기 제4 어레이('2', '3', '4')의 크기인 '3'으로 나눈 나머지인 '1'을 생성한 후, 상기 제4 어레이('2', '3', '4')에서 '1'의 순서에 삽입되어 있는 '3'인 제7 노드 식별자를 제거할 수 있다.
그리고, 상기 제7 노드 식별자인 노드 식별자 '3'이 상기 제6 노드 식별자인 '4'와 일치하는지 여부를 확인하여 일치하지 않는 경우, 상기 제7 노드 식별자인 '3'이 제거된 상기 제4 어레이('2', '4')에 이미 상기 제1 트랜잭션이 수신된 노드 장치가 아직 존재하고 있다고 해석할 수 있으므로, 상기 랜덤 값인 '4'를 상기 제7 노드 식별자인 '3'이 제거된 상기 제4 어레이('2', '4')의 크기인 '2'로 나눈 나머지인 '0'을 생성하고, '3'이 제거된 상기 제4 어레이('2', '4')에서 상기 '0'의 순서에 삽입되어 있는 '2'를 제8 노드 식별자로서 추가로 제거할 수 있다.
그리고, 상기 제8 노드 식별자인 '2'가 상기 제6 노드 식별자인 '4'와 일치하는지 여부를 확인하여 일치하지 않는 경우, 상기 제7 노드 식별자인 '3'과 상기 제8 노드 식별자인 '2'가 제거된 상기 제4 어레이('4')에 이미 상기 제1 트랜잭션이 수신된 노드 장치가 아직 존재하고 있다고 해석할 수 있으므로, 상기 랜덤 값인 '4'를 상기 제8 노드 식별자인 노드 식별자 '2'가 제거된 상기 제4 어레이('4')의 크기인 '1'로 나눈 나머지인 '0'을 생성하고, 노드 식별자 '2'가 제거된 상기 제4 어레이('4')에서 상기 '0'의 순서에 삽입되어 있는 '4'인 제9 노드 식별자를 추가로 제거할 수 있다.
이후, 상기 제9 노드 식별자인 '4'가 상기 제6 노드 식별자인 '4'와 일치하는 것으로 확인되면, 상기 랜덤 값인 '4'를 상기 제7 노드 식별자, 상기 제8 노드 식별자 및 상기 제9 노드 식별자가 제거된 상기 제4 어레이(empty)의 크기로 나누는 연산을 수행해야 하나, 어레이가 비어있어 상기 연산을 수행할 수 없다면, 노드 장치(240)는 자기 자신을 상기 제1 트랜잭션을 수신한 마지막 노드 장치로 판단한 후 상기 제1 트랜잭션의 발행 노드인 노드 장치(110)로 상기 제1 트랜잭션의 전파 완료 메시지를 전송할 수 있다.
즉, 상기 제1 트랜잭션의 전파 경로는 노드 식별자가 '1'인 노드 장치(110) - 노드 식별자가 '3'인 노드 장치(230) - 노드 식별자가 '2'인 노드 장치(220) - 노드 식별자가 '4'인 노드 장치(240)가 될 수 있다.
이때, 블록 생성 요청부(116)는 상기 마지막 노드 장치인 노드 장치(240)로부터 상기 제1 트랜잭션의 전파 완료 메시지가 수신되면, 복수의 노드 장치들(110, 220, 230, 240) 중 블록을 생성하기 위해 미리 지정된 앵커 노드 장치로 상기 제1 트랜잭션이 포함된 블록의 생성 요청을 전송할 수 있다.
여기서, 상기 앵커 노드 장치를 노드 식별자가 '2'인 노드 장치(220)라고 가정하는 경우, 앵커 노드 장치(220)는 노드 장치(110)로부터 상기 블록의 생성 요청이 수신되면, 상기 블록의 생성 요청에 대응하여, 앵커 노드 장치(220)의 메모리 상에 저장되어 있는 블록체인 데이터를 기초로, 상기 제1 트랜잭션을 포함하는 제1 블록을 생성할 수 있고, 상기 제1 블록을 앵커 노드 장치(220)의 메모리 상에 저장되어 있는 상기 블록체인 데이터에 체인으로 연결하여 상기 제1 블록의 저장을 완료한 후, 상기 제1 블록을 상기 블록체인 네트워크를 통해 상기 복수의 노드 장치들(110, 220, 230, 240) 중 앵커 노드 장치(220)를 제외한 나머지 노드 장치들(110, 230, 240)로 배포할 수 있다.
이때, 본 발명의 일실시예에 따르면, 앵커 노드 장치(220)는 전술한 바와 같이, 상기 제1 트랜잭션이 포함된 상기 제1 블록을 생성하여 나머지 노드 장치들(110, 230, 240)로 배포할 수도 있지만, 앵커 노드 장치(220)는 소정의 블록 생성 주기 동안 상기 제1 트랜잭션 이외에 복수의 노드 장치들(110, 220, 230, 240)로 배포 완료되는 다른 트랜잭션들을 모은 후 복수의 노드 장치들(110, 220, 230, 240)로 배포 완료된 복수의 트랜잭션들이 포함된 상기 제1 블록을 생성하여 나머지 노드 장치들(110, 230, 240)로 배포할 수 있다.
예컨대, 소정의 블록 생성 주기 동안 노드 장치(110)에서 상기 제1 트랜잭션이 생성되어 복수의 노드 장치들(110, 220, 230, 240)로 배포 완료되었을 뿐 아니라, 노드 장치(220)에서 제2 트랜잭션이 추가로 생성되어 앞서 설명한 트랜잭션 배포 방식에 따라 복수의 노드 장치들(110, 220, 230, 240)로 배포 완료되었고, 노드 장치(230)에서 제3 트랜잭션이 추가로 생성되어 앞서 설명한 트랜잭션 배포 방식에 따라 복수의 노드 장치들(110, 220, 230, 240)로 배포 완료되었다고 하는 경우, 앵커 노드 장치(220)는 상기 제1 트랜잭션, 상기 제2 트랜잭션, 상기 제3 트랜잭션을 모두 포함하는 제1 블록을 생성하여 나머지 노드 장치들(110, 230, 240)로 배포할 수 있다.
이렇게, 상기 제1 블록이 상기 블록체인 네트워크를 통해 앵커 노드 장치(220)로부터 나머지 노드 장치들(110, 230, 240)로 배포되면, 나머지 노드 장치들(110, 230, 240)은 나머지 노드 장치들(110, 230, 240) 각각의 메모리 상에 저장되어 있는 블록체인 데이터에 상기 제1 블록을 체인으로 연결하여 상기 제1 블록을 블록체인 데이터로 저장할 수 있다.
본 발명의 일실시예에 따르면, 블록체인 네트워크에서 블록을 생성하기 이전에 트랜잭션을 전파함으로써 트랜잭션 처리 속도를 향상시킬 수 있는 노드 장치(110)는 트랜잭션을 처리할 경우, 오류 발생을 방지하기 위한 기능을 추가로 구비할 수 있다.
예컨대, 제2 트랜잭션이 제3 트랜잭션보다 먼저 생성되었음에도, 복수의 노드 장치들 중 어느 하나의 노드 장치에서 트랜잭션 처리에 오류가 발생하여 상기 제3 트랜잭션을 먼저 수신하였다면, 상기 제3 트랜잭션을 상기 어느 하나의 노드 장치의 메모리 상에 임시로 저장해두고, 상기 제3 트랜잭션을 수신한 시점으로부터 일정 시간 대기한 후에 상기 제2 트랜잭션이 도착되면, 상기 어느 하나의 노드 장치에서 상기 제2 트랜잭션과 상기 제3 트랜잭션을 순서대로 정렬하여 저장함으로써, 트랜잭션의 처리를 완료할 수 있다.
도 3은 본 발명의 일실시예에 따른 블록체인 네트워크에서 블록을 생성하기 이전에 트랜잭션을 전파함으로써 트랜잭션 처리 속도를 향상시킬 수 있는 노드 장치의 동작 방법을 도시한 순서도이다.
여기서, 상기 노드 장치는 블록체인 네트워크를 구성하는 복수의 노드 장치들 중 하나인 장치이고, 상기 복수의 노드 장치들 각각에는 서로 다른 고유의 노드 식별자가 할당되어 있다.
단계(S310)에서는 상기 블록체인 네트워크에 제1 거래 데이터를 저장하라는 저장 이벤트가 발생한 경우, 상기 제1 거래 데이터가 포함된 제1 트랜잭션을 생성한다.
단계(S320)에서는 상기 제1 트랜잭션이 생성되면, 상기 제1 트랜잭션에 포함된 상기 제1 거래 데이터를 기초로 상기 노드 장치에 구비되어 있는 제1 원장 데이터베이스(상기 제1 원장 데이터베이스에는 기존에 발생한 복수의 거래 정보들이 기록되어 있음)를 갱신한다.
단계(S330)에서는 상기 제1 트랜잭션을 전파할 다음 노드 장치를 선택하기 위해, 상기 복수의 노드 장치들 중 상기 노드 장치를 제외한 나머지 노드 장치들에 대응되는 복수의 노드 식별자들을 어레이에 삽입함으로써 제1 어레이를 생성한다.
단계(S340)에서는 미리 지정한 자연수인 랜덤 값을 상기 제1 어레이의 크기로 나눈 나머지인 제1 연산 값을 생성하고, 상기 제1 어레이에서 상기 제1 연산 값에 해당하는 순서에 삽입되어 있는 노드 식별자를 제1 노드 식별자로 선택한다.
단계(S350)에서는 상기 제1 노드 식별자에 대응되는 노드 장치인 제1 노드 장치에 상기 제1 트랜잭션을 전파한다.
단계(S360)에서는 상기 제1 트랜잭션이 전파된 후, 상기 복수의 노드 장치들 중 상기 나머지 노드 장치들이 상기 제1 트랜잭션을 다음 노드 장치로 순차적으로 전파함에 따라, 마지막으로 상기 제1 트랜잭션을 전파받은 마지막 노드 장치로부터 상기 제1 트랜잭션의 전파 완료 메시지가 수신되면, 상기 복수의 노드 장치들 중 블록을 생성하기 위해 미리 지정된 앵커 노드 장치로 상기 제1 트랜잭션이 포함된 블록의 생성 요청을 전송한다.
이때, 본 발명의 일실시예에 따르면, 상기 제1 노드 장치는 상기 노드 장치로부터 상기 제1 트랜잭션이 수신되면, 상기 제1 트랜잭션에 포함된 상기 제1 거래 데이터를 기초로 상기 제1 노드 장치에 구비되어 있는 제2 원장 데이터베이스를 갱신할 수 있다. 그리고, 상기 제1 노드 장치는 상기 제1 트랜잭션을 전파할 다음 노드 장치를 지정하기 위해, 상기 나머지 노드 장치들에 대응되는 복수의 노드 식별자들을 어레이에 삽입함으로써 제2 어레이를 생성할 수 있고, 상기 랜덤 값을 상기 제2 어레이의 크기로 나눈 나머지인 제2 연산 값을 생성한 후, 상기 제2 어레이에서 상기 제2 연산 값에 대응하는 순서에 삽입되어 있는 노드 식별자인 제2 노드 식별자를 제거할 수 있다. 이후, 상기 제1 노드 장치는 상기 제2 노드 식별자가 상기 제1 노드 식별자와 일치하는지 여부를 확인하여, 상기 제2 노드 식별자가 상기 제1 노드 식별자와 일치하는 것으로 확인되면, 상기 랜덤 값을 상기 제2 노드 식별자가 제거된 상기 제2 어레이의 크기로 나눈 나머지인 제3 연산 값을 생성한 후, 상기 제2 노드 식별자가 제거된 상기 제2 어레이에서 상기 제3 연산 값에 대응하는 순서에 삽입되어 있는 노드 식별자인 제3 노드 식별자를 추출한 후 상기 제3 노드 식별자에 대응되는 노드 장치인 제2 노드 장치에 상기 제1 트랜잭션을 전파할 수 있다.
또한, 본 발명의 일실시예에 따르면, 상기 앵커 노드 장치는 상기 노드 장치로부터 상기 블록의 생성 요청이 수신되면, 상기 블록의 생성 요청에 대응하여, 상기 앵커 노드 장치의 메모리 상에 저장되어 있는 블록체인 데이터를 기초로 상기 제1 트랜잭션을 포함하는 제1 블록을 생성할 수 있고, 상기 제1 블록을 상기 앵커 노드 장치의 메모리 상에 저장되어 있는 상기 블록체인 데이터에 체인으로 연결하여 상기 제1 블록의 저장을 완료한 후, 상기 제1 블록을 상기 블록체인 네트워크를 통해 상기 복수의 노드 장치들 중 상기 앵커 노드 장치를 제외한 나머지 노드 장치들로 배포할 수 있다.
또한, 본 발명의 일실시예에 따르면, 단계(S310)에서는 상기 블록체인 네트워크에 상기 제1 거래 데이터를 저장하라는 상기 저장 이벤트가 발생한 경우, 상기 블록체인 네트워크에서 상기 저장 이벤트가 발생한 순서를 지시하는 시퀀스 값을 생성하여 상기 제1 거래 데이터와 상기 시퀀스 값이 포함된 상기 제1 트랜잭션을 생성하는 단계를 포함할 수 있고, 상기 랜덤 값은 상기 제1 트랜잭션에 포함된 상기 시퀀스 값이 미리 정해진 난수 생성 함수에 입력으로 인가되어 연산되는 출력 값으로 지정될 수 있다.
또한, 본 발명의 일실시예에 따르면, 단계(S310)에서는 상기 블록체인 네트워크에 상기 제1 거래 데이터를 저장하라는 상기 저장 이벤트가 발생한 경우, 상기 제1 거래 데이터를 상기 노드 장치의 메모리 상에 저장되어 있는 기설정된 개인키로 암호화하여 전자 서명 값을 생성한 후 상기 제1 거래 데이터와 상기 전자 서명 값이 포함된 상기 제1 트랜잭션을 생성하는 단계를 더 포함할 수 있다.
이때, 상기 제1 노드 장치는 상기 노드 장치로부터 상기 제1 트랜잭션이 수신되면, 상기 제1 노드 장치의 메모리 상에 저장되어 있는, 상기 개인키에 대응되는 공개키를 기초로 상기 전자 서명 값을 복호화하여 복호화 값을 생성하고, 상기 복호화 값이 상기 제1 거래 데이터와 일치하면, 상기 노드 장치에 대한 인증을 완료한 후, 상기 제1 트랜잭션에 포함된 상기 제1 거래 데이터를 기초로 상기 제1 노드 장치에 구비되어 있는 상기 제2 원장 데이터베이스를 갱신할 수 있다.
이상, 도 3을 참조하여 본 발명의 일실시예에 따른 블록체인 네트워크에서 블록을 생성하기 이전에 트랜잭션을 전파함으로써 트랜잭션 처리 속도를 향상시킬 수 있는 노드 장치의 동작 방법에 대해 설명하였다. 여기서, 본 발명의 일실시예에 따른 블록체인 네트워크에서 블록을 생성하기 이전에 트랜잭션을 전파함으로써 트랜잭션 처리 속도를 향상시킬 수 있는 노드 장치의 동작 방법은 도 1과 도 2를 이용하여 설명한 블록체인 네트워크에서 블록을 생성하기 이전에 트랜잭션을 전파함으로써 트랜잭션 처리 속도를 향상시킬 수 있는 노드 장치(110)의 동작에 대한 구성과 대응될 수 있으므로, 이에 대한 보다 상세한 설명은 생략하기로 한다.
본 발명의 일실시예에 따른 블록체인 네트워크에서 블록을 생성하기 이전에 트랜잭션을 전파함으로써 트랜잭션 처리 속도를 향상시킬 수 있는 노드 장치의 동작 방법은 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다.
또한, 본 발명의 일실시예에 따른 블록체인 네트워크에서 블록을 생성하기 이전에 트랜잭션을 전파함으로써 트랜잭션 처리 속도를 향상시킬 수 있는 노드 장치의 동작 방법은 컴퓨터와의 결합을 통해 실행시키기 위한 컴퓨터 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
110: 블록체인 네트워크에서 블록을 생성하기 이전에 트랜잭션을 전파함으로써 트랜잭션 처리 속도를 향상시킬 수 있는 노드 장치
111: 제1 트랜잭션 생성부 112: 원장 갱신부
113: 제1 어레이 생성부 114: 제1 노드 식별자 선택부
115: 트랜잭션 전파부 116: 블록 생성 요청부
117, 118, 119, 120: 나머지 노드 장치들

Claims (12)

  1. 블록체인 네트워크를 구성하는 복수의 노드 장치들 - 상기 복수의 노드 장치들 각각에는 서로 다른 고유의 노드 식별자가 할당되어 있음 - 중 하나인 장치로, 상기 블록체인 네트워크에서 블록을 생성하기 이전에 트랜잭션을 전파함으로써 트랜잭션 처리 속도를 향상시킬 수 있는 노드 장치에 있어서,
    상기 블록체인 네트워크에 제1 거래 데이터를 저장하라는 저장 이벤트가 발생한 경우, 상기 제1 거래 데이터가 포함된 제1 트랜잭션을 생성하는 제1 트랜잭션 생성부;
    상기 제1 트랜잭션이 생성되면, 상기 제1 트랜잭션에 포함된 상기 제1 거래 데이터를 기초로 상기 노드 장치에 구비되어 있는 제1 원장 데이터베이스 - 상기 제1 원장 데이터베이스에는 기존에 발생한 복수의 거래 정보들이 기록되어 있음 - 를 갱신하는 원장 갱신부;
    상기 제1 트랜잭션을 전파할 다음 노드 장치를 선택하기 위해, 상기 복수의 노드 장치들 중 상기 노드 장치를 제외한 나머지 노드 장치들에 대응되는 복수의 노드 식별자들을 어레이(array)에 삽입함으로써 제1 어레이를 생성하는 제1 어레이 생성부;
    미리 지정한 자연수인 랜덤 값을 상기 제1 어레이의 크기로 나눈 나머지인 제1 연산 값을 생성하고, 상기 제1 어레이에서 상기 제1 연산 값에 해당하는 순서에 삽입되어 있는 노드 식별자를 제1 노드 식별자로 선택하는 제1 노드 식별자 선택부;
    상기 제1 노드 식별자에 대응되는 노드 장치인 제1 노드 장치에 상기 제1 트랜잭션을 전파하는 트랜잭션 전파부; 및
    상기 제1 트랜잭션이 전파된 후, 상기 복수의 노드 장치들 중 상기 나머지 노드 장치들이 상기 제1 트랜잭션을 다음 노드 장치로 순차적으로 전파함에 따라, 마지막으로 상기 제1 트랜잭션을 전파받은 마지막 노드 장치로부터 상기 제1 트랜잭션의 전파 완료 메시지가 수신되면, 상기 복수의 노드 장치들 중 블록을 생성하기 위해 미리 지정된 앵커 노드 장치로 상기 제1 트랜잭션이 포함된 블록의 생성 요청을 전송하는 블록 생성 요청부
    를 포함하고,
    상기 앵커 노드 장치는
    상기 노드 장치로부터 상기 블록의 생성 요청이 수신되면, 상기 블록의 생성 요청에 대응하여, 상기 앵커 노드 장치의 메모리 상에 저장되어 있는 블록체인 데이터를 기초로 상기 제1 트랜잭션을 포함하는 제1 블록을 생성하고, 상기 제1 블록을 상기 앵커 노드 장치의 메모리 상에 저장되어 있는 상기 블록체인 데이터에 체인으로 연결하여 상기 제1 블록의 저장을 완료한 후, 상기 제1 블록을 상기 블록체인 네트워크를 통해 상기 복수의 노드 장치들 중 상기 앵커 노드 장치를 제외한 나머지 노드 장치들로 배포하는 블록체인 네트워크에서 블록을 생성하기 이전에 트랜잭션을 전파함으로써 트랜잭션 처리 속도를 향상시킬 수 있는 노드 장치.
  2. 제1항에 있어서,
    상기 제1 노드 장치는
    상기 노드 장치로부터 상기 제1 트랜잭션이 수신되면, 상기 제1 트랜잭션에 포함된 상기 제1 거래 데이터를 기초로 상기 제1 노드 장치에 구비되어 있는 제2 원장 데이터베이스를 갱신하고,
    상기 제1 트랜잭션을 전파할 다음 노드 장치를 지정하기 위해, 상기 나머지 노드 장치들에 대응되는 복수의 노드 식별자들을 어레이에 삽입함으로써 제2 어레이를 생성하고, 상기 랜덤 값을 상기 제2 어레이의 크기로 나눈 나머지인 제2 연산 값을 생성한 후, 상기 제2 어레이에서 상기 제2 연산 값에 대응하는 순서에 삽입되어 있는 노드 식별자인 제2 노드 식별자를 제거하며,
    상기 제2 노드 식별자가 상기 제1 노드 식별자와 일치하는지 여부를 확인하여, 상기 제2 노드 식별자가 상기 제1 노드 식별자와 일치하는 것으로 확인되면, 상기 랜덤 값을 상기 제2 노드 식별자가 제거된 상기 제2 어레이의 크기로 나눈 나머지인 제3 연산 값을 생성한 후, 상기 제2 노드 식별자가 제거된 상기 제2 어레이에서 상기 제3 연산 값에 대응하는 순서에 삽입되어 있는 노드 식별자인 제3 노드 식별자를 추출한 후 상기 제3 노드 식별자에 대응되는 노드 장치인 제2 노드 장치에 상기 제1 트랜잭션을 전파하는 블록체인 네트워크에서 블록을 생성하기 이전에 트랜잭션을 전파함으로써 트랜잭션 처리 속도를 향상시킬 수 있는 노드 장치.
  3. 삭제
  4. 제2항에 있어서,
    상기 제1 트랜잭션 생성부는
    상기 블록체인 네트워크에 상기 제1 거래 데이터를 저장하라는 상기 저장 이벤트가 발생한 경우, 상기 블록체인 네트워크에서 상기 저장 이벤트가 발생한 순서를 지시하는 시퀀스 값을 생성하여 상기 제1 거래 데이터와 상기 시퀀스 값이 포함된 상기 제1 트랜잭션을 생성하고,
    상기 랜덤 값은 상기 제1 트랜잭션에 포함된 상기 시퀀스 값이 미리 정해진 난수 생성 함수에 입력으로 인가되어 연산되는 출력 값으로 지정되는 블록체인 네트워크에서 생성하기 이전에 트랜잭션을 전파함으로써 트랜잭션 처리 속도를 향상시킬 수 있는 노드 장치.
  5. 제2항에 있어서,
    상기 제1 트랜잭션 생성부는
    상기 블록체인 네트워크에 상기 제1 거래 데이터를 저장하라는 상기 저장 이벤트가 발생한 경우, 상기 제1 거래 데이터를 상기 노드 장치의 메모리 상에 저장되어 있는 기설정된(predetermined) 개인키로 암호화하여 전자 서명 값을 생성한 후 상기 제1 거래 데이터와 상기 전자 서명 값이 포함된 상기 제1 트랜잭션을 생성하고,
    상기 제1 노드 장치는
    상기 노드 장치로부터 상기 제1 트랜잭션이 수신되면, 상기 제1 노드 장치의 메모리 상에 저장되어 있는, 상기 개인키에 대응되는 공개키를 기초로 상기 전자 서명 값을 복호화하여 복호화 값을 생성하고, 상기 복호화 값이 상기 제1 거래 데이터와 일치하면, 상기 노드 장치에 대한 인증을 완료한 후, 상기 제1 트랜잭션에 포함된 상기 제1 거래 데이터를 기초로 상기 제1 노드 장치에 구비되어 있는 상기 제2 원장 데이터베이스를 갱신하는 블록체인 네트워크에서 생성하기 이전에 트랜잭션을 전파함으로써 트랜잭션 처리 속도를 향상시킬 수 있는 노드 장치.
  6. 블록체인 네트워크를 구성하는 복수의 노드 장치들 - 상기 복수의 노드 장치들 각각에는 서로 다른 고유의 노드 식별자가 할당되어 있음 - 중 하나인 장치로, 상기 블록체인 네트워크에서 블록을 생성하기 이전에 트랜잭션을 전파함으로써 트랜잭션 처리 속도를 향상시킬 수 있는 노드 장치의 동작 방법에 있어서,
    상기 블록체인 네트워크에 제1 거래 데이터를 저장하라는 저장 이벤트가 발생한 경우, 상기 제1 거래 데이터가 포함된 제1 트랜잭션을 생성하는 단계;
    상기 제1 트랜잭션이 생성되면, 상기 제1 트랜잭션에 포함된 상기 제1 거래 데이터를 기초로 상기 노드 장치에 구비되어 있는 제1 원장 데이터베이스 - 상기 제1 원장 데이터베이스에는 기존에 발생한 복수의 거래 정보들이 기록되어 있음 - 를 갱신하는 단계;
    상기 제1 트랜잭션을 전파할 다음 노드 장치를 선택하기 위해, 상기 복수의 노드 장치들 중 상기 노드 장치를 제외한 나머지 노드 장치들에 대응되는 복수의 노드 식별자들을 어레이(array)에 삽입함으로써 제1 어레이를 생성하는 단계;
    미리 지정한 자연수인 랜덤 값을 상기 제1 어레이의 크기로 나눈 나머지인 제1 연산 값을 생성하고, 상기 제1 어레이에서 상기 제1 연산 값에 해당하는 순서에 삽입되어 있는 노드 식별자를 제1 노드 식별자로 선택하는 단계;
    상기 제1 노드 식별자에 대응되는 노드 장치인 제1 노드 장치에 상기 제1 트랜잭션을 전파하는 단계; 및
    상기 제1 트랜잭션이 전파된 후, 상기 복수의 노드 장치들 중 상기 나머지 노드 장치들이 상기 제1 트랜잭션을 다음 노드 장치로 순차적으로 전파함에 따라, 마지막으로 상기 제1 트랜잭션을 전파받은 마지막 노드 장치로부터 상기 제1 트랜잭션의 전파 완료 메시지가 수신되면, 상기 복수의 노드 장치들 중 블록을 생성하기 위해 미리 지정된 앵커 노드 장치로 상기 제1 트랜잭션이 포함된 블록의 생성 요청을 전송하는 단계
    를 포함하고,
    상기 앵커 노드 장치는
    상기 노드 장치로부터 상기 블록의 생성 요청이 수신되면, 상기 블록의 생성 요청에 대응하여, 상기 앵커 노드 장치의 메모리 상에 저장되어 있는 블록체인 데이터를 기초로 상기 제1 트랜잭션을 포함하는 제1 블록을 생성하고, 상기 제1 블록을 상기 앵커 노드 장치의 메모리 상에 저장되어 있는 상기 블록체인 데이터에 체인으로 연결하여 상기 제1 블록의 저장을 완료한 후, 상기 제1 블록을 상기 블록체인 네트워크를 통해 상기 복수의 노드 장치들 중 상기 앵커 노드 장치를 제외한 나머지 노드 장치들로 배포하는 블록체인 네트워크에서 블록을 생성하기 이전에 트랜잭션을 전파함으로써 트랜잭션 처리 속도를 향상시킬 수 있는 노드 장치의 동작 방법.
  7. 제6항에 있어서,
    상기 제1 노드 장치는
    상기 노드 장치로부터 상기 제1 트랜잭션이 수신되면, 상기 제1 트랜잭션에 포함된 상기 제1 거래 데이터를 기초로 상기 제1 노드 장치에 구비되어 있는 제2 원장 데이터베이스를 갱신하고,
    상기 제1 트랜잭션을 전파할 다음 노드 장치를 지정하기 위해, 상기 나머지 노드 장치들에 대응되는 복수의 노드 식별자들을 어레이에 삽입함으로써 제2 어레이를 생성하고, 상기 랜덤 값을 상기 제2 어레이의 크기로 나눈 나머지인 제2 연산 값을 생성한 후, 상기 제2 어레이에서 상기 제2 연산 값에 대응하는 순서에 삽입되어 있는 노드 식별자인 제2 노드 식별자를 제거하며,
    상기 제2 노드 식별자가 상기 제1 노드 식별자와 일치하는지 여부를 확인하여, 상기 제2 노드 식별자가 상기 제1 노드 식별자와 일치하는 것으로 확인되면, 상기 랜덤 값을 상기 제2 노드 식별자가 제거된 상기 제2 어레이의 크기로 나눈 나머지인 제3 연산 값을 생성한 후, 상기 제2 노드 식별자가 제거된 상기 제2 어레이에서 상기 제3 연산 값에 대응하는 순서에 삽입되어 있는 노드 식별자인 제3 노드 식별자를 추출한 후 상기 제3 노드 식별자에 대응되는 노드 장치인 제2 노드 장치에 상기 제1 트랜잭션을 전파하는 블록체인 네트워크에서 블록을 생성하기 이전에 트랜잭션을 전파함으로써 트랜잭션 처리 속도를 향상시킬 수 있는 노드 장치의 동작 방법.
  8. 삭제
  9. 제7항에 있어서,
    상기 제1 트랜잭션을 생성하는 단계는
    상기 블록체인 네트워크에 상기 제1 거래 데이터를 저장하라는 상기 저장 이벤트가 발생한 경우, 상기 블록체인 네트워크에서 상기 저장 이벤트가 발생한 순서를 지시하는 시퀀스 값을 생성하여 상기 제1 거래 데이터와 상기 시퀀스 값이 포함된 상기 제1 트랜잭션을 생성하는 단계를 포함하고,
    상기 랜덤 값은 상기 제1 트랜잭션에 포함된 상기 시퀀스 값이 미리 정해진 난수 생성 함수에 입력으로 인가되어 연산되는 출력 값으로 지정되는 블록체인 네트워크에서 생성하기 이전에 트랜잭션을 전파함으로써 트랜잭션 처리 속도를 향상시킬 수 있는 노드 장치의 동작 방법.
  10. 제7항에 있어서,
    상기 제1 트랜잭션을 생성하는 단계는
    상기 블록체인 네트워크에 상기 제1 거래 데이터를 저장하라는 상기 저장 이벤트가 발생한 경우, 상기 제1 거래 데이터를 상기 노드 장치의 메모리 상에 저장되어 있는 기설정된 개인키로 암호화하여 전자 서명 값을 생성한 후 상기 제1 거래 데이터와 상기 전자 서명 값이 포함된 상기 제1 트랜잭션을 생성하는 단계를 더 포함하고,
    상기 제1 노드 장치는
    상기 노드 장치로부터 상기 제1 트랜잭션이 수신되면, 상기 제1 노드 장치의 메모리 상에 저장되어 있는, 상기 개인키에 대응되는 공개키를 기초로 상기 전자 서명 값을 복호화하여 복호화 값을 생성하고, 상기 복호화 값이 상기 제1 거래 데이터와 일치하면, 상기 노드 장치에 대한 인증을 완료한 후, 상기 제1 트랜잭션에 포함된 상기 제1 거래 데이터를 기초로 상기 제1 노드 장치에 구비되어 있는 상기 제2 원장 데이터베이스를 갱신하는 블록체인 네트워크에서 생성하기 이전에 트랜잭션을 전파함으로써 트랜잭션 처리 속도를 향상시킬 수 있는 노드 장치의 동작 방법.
  11. 제6항, 제7항, 제9항 또는 제10항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
  12. 제6항, 제7항, 제9항 또는 제10항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램.
KR1020190088152A 2019-07-22 2019-07-22 블록체인 네트워크에서 블록을 생성하기 이전에 트랜잭션을 전파함으로써 트랜잭션 처리 속도를 향상시킬 수 있는 노드 장치 및 그 동작 방법 KR102228214B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190088152A KR102228214B1 (ko) 2019-07-22 2019-07-22 블록체인 네트워크에서 블록을 생성하기 이전에 트랜잭션을 전파함으로써 트랜잭션 처리 속도를 향상시킬 수 있는 노드 장치 및 그 동작 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190088152A KR102228214B1 (ko) 2019-07-22 2019-07-22 블록체인 네트워크에서 블록을 생성하기 이전에 트랜잭션을 전파함으로써 트랜잭션 처리 속도를 향상시킬 수 있는 노드 장치 및 그 동작 방법

Publications (2)

Publication Number Publication Date
KR20210011139A KR20210011139A (ko) 2021-02-01
KR102228214B1 true KR102228214B1 (ko) 2021-03-16

Family

ID=74571358

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190088152A KR102228214B1 (ko) 2019-07-22 2019-07-22 블록체인 네트워크에서 블록을 생성하기 이전에 트랜잭션을 전파함으로써 트랜잭션 처리 속도를 향상시킬 수 있는 노드 장치 및 그 동작 방법

Country Status (1)

Country Link
KR (1) KR102228214B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230004216A (ko) 2021-06-30 2023-01-06 주식회사 아티프렌즈 블록체인 기반의 미디어 콘텐츠용 토큰 발행 서비스 제공 장치 및 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018183148A1 (en) 2017-03-29 2018-10-04 Alibaba Group Holding Limited Method, apparatus, and system for blockchain consensus
WO2019072307A2 (en) * 2018-12-28 2019-04-18 Alibaba Group Holding Limited ACCELERATION OF TRANSACTION DELIVERIES IN BLOCK CHAIN NETWORKS USING ACCELERATION NODES

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190079324A (ko) * 2017-12-27 2019-07-05 에이치닥테크놀로지 주식회사 한국영업소 블록체인 시스템을 이용한 데이터베이스의 무결성 강화 방법 및 시스템

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018183148A1 (en) 2017-03-29 2018-10-04 Alibaba Group Holding Limited Method, apparatus, and system for blockchain consensus
WO2019072307A2 (en) * 2018-12-28 2019-04-18 Alibaba Group Holding Limited ACCELERATION OF TRANSACTION DELIVERIES IN BLOCK CHAIN NETWORKS USING ACCELERATION NODES

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Amool Sudhan et al., Peer Selection Techniques for Enhanced Transaction Propagation in Bitcoin Peer-to-Peer Network, 2018.06.15. 2018 ICICCS. pp.679-684. 1부.*
코스모스 코리아, 코스모스 블록체인 #3-텐더민트(Tendermint) (1), 2018.12.27. 1부.*

Also Published As

Publication number Publication date
KR20210011139A (ko) 2021-02-01

Similar Documents

Publication Publication Date Title
US10630463B2 (en) Meta block chain
CN109313654B (zh) 使用布隆过滤器对被许可的区块链进行去同步恢复的方法和系统
CN109313752B (zh) 使用审计保证形成用于被许可的区块链的高效共识机制的方法和系统
JP5989183B2 (ja) データの署名生成方法、データの署名検証方法及び管理計算機
EP3678346A1 (en) Blockchain smart contract verification method and apparatus, and storage medium
EP3785204A1 (en) Maintaining blocks of a blockchain in a partitioned blockchain network
Zheng et al. Fair and dynamic proofs of retrievability
EP3779760B1 (en) Blockchain-based data processing method and apparatus, and electronic device
TW201901482A (zh) 區塊鏈系統及區塊鏈生成方法
KR102228210B1 (ko) 블록체인 네트워크에서의 트랜잭션의 삭제를 가능하게 하는 노드 장치 및 그 동작 방법
CN110187831B (zh) 区块链联盟链的区块数据存储系统及方法
CN110647759B (zh) 数据记录方法、节点、设备、存储介质及区块链系统
CN106547648A (zh) 一种备份数据处理方法及装置
CN112862490A (zh) 一种异步网络下的输出共识方法
KR102228214B1 (ko) 블록체인 네트워크에서 블록을 생성하기 이전에 트랜잭션을 전파함으로써 트랜잭션 처리 속도를 향상시킬 수 있는 노드 장치 및 그 동작 방법
CN113362068B (zh) 一种轻节点验证区块链状态转移的方法
CN107171808A (zh) 一种电子档案真实性的验证方法及装置
CN108876378A (zh) 公有链数据加密备份方法
CN109067849A (zh) 基于区块的数据同步方法
US20230129227A1 (en) System and method for generating a table-driven mutable blockchain
CN113810185B (zh) 一种抗陷门泄露的链上数据修复系统及方法
CN114372799A (zh) 一种平行链系统及其共识方法、设备及储存介质
CN113139209A (zh) 一种基于原子性签名的可验证凭据实现方法和系统
CN113468549A (zh) 基于区块链的加密信息存证的检索方法、系统及电子设备
CN110457954A (zh) 合同管理装置与方法

Legal Events

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