KR20230019648A - 트랜잭션 처리 속도 향상이 가능한 블록체인 합의 시스템 및 방법 - Google Patents

트랜잭션 처리 속도 향상이 가능한 블록체인 합의 시스템 및 방법 Download PDF

Info

Publication number
KR20230019648A
KR20230019648A KR1020210101418A KR20210101418A KR20230019648A KR 20230019648 A KR20230019648 A KR 20230019648A KR 1020210101418 A KR1020210101418 A KR 1020210101418A KR 20210101418 A KR20210101418 A KR 20210101418A KR 20230019648 A KR20230019648 A KR 20230019648A
Authority
KR
South Korea
Prior art keywords
transaction
block
node
leader node
random value
Prior art date
Application number
KR1020210101418A
Other languages
English (en)
Other versions
KR102518634B1 (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 KR1020210101418A priority Critical patent/KR102518634B1/ko
Publication of KR20230019648A publication Critical patent/KR20230019648A/ko
Application granted granted Critical
Publication of KR102518634B1 publication Critical patent/KR102518634B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1051Group master selection mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/30Decision processes by autonomous network management units using voting and bidding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

트랜잭션을 생성하고, 검증 가능한 랜덤 함수에 개인키를 입력하여 랜덤 값을 생성하며, 트랜잭션에 랜덤 값을 결합하고, 복수개의 노드 중 하나의 노드가 선출되어 랜덤 값이 결합된 트랜잭션을 전달받고, 복수개의 트랜잭션에 결합된 랜덤 값에 기초하여 다른 리더 노드를 선출하며, 선출된 다른 리더 노드를 나타내는 정보가 결합되도록 블록을 생성하는, 블록체인 합의 시스템을 제공한다.

Description

트랜잭션 처리 속도 향상이 가능한 블록체인 합의 시스템 및 방법{BLOCKCHAIN CONSENSUS SYSTEM AND METHOD TO IMPROVE TRANSACTION PROCESSING SPEED}
본 발명은 트랜잭션 처리 속도 향상이 가능한 블록체인 합의 시스템 및 방법에 관한 것으로, 보다 상세하게는, 트랜잭션 처리 속도가 향상된 블록체인 합의 시스템 및 방법에 관한 것이다.
블록체인은 블록에 거래내역 데이터를 담아 체인형태로 연결하여 수많은 컴퓨터에 동시에 이를 복제해 저장하는 분산형 데이터 저장 기술로써, 도 1에 도시된 바와 같이 중앙 집중형 서버에 거래내역을 보관하지 않고, 거래에 참여하는 모든 참여자에게 거래내역을 보내 주며, 거래 때마다 모든 거래 참여자들이 정보를 공유하고 이를 대조함으로써 임의의 사용자가 데이터 위조나 변조를 할 수 없도록 하여 거래의 무결성을 유지한다. 이때, 블록체인은 무결성 유지를 위해 블록체인 네트워크에 참여한 모든 참여자의 단말기에 블록체인을 저장해 놓고 있는데, 일부 참여자의 단말기가 해킹을 당해 기존 내용이 틀어져도 다수의 참여자 단말기에게 데이터가 남아 있어 계속적으로 데이터를 보존할 수 있게 된다.
여기에서, 블록(block)은 데이터를 저장하는 단위로, 바디(body)와 헤더(header)로 구분된다. 바디에는 거래내역이 담겨 있고, 헤더에는 머클해시(머클루트) 및 넌스(nonce, 암호화와 관련되는 임의의 수) 등의 암호코드가 담겨 있다. 블록은 일정한 주기로 생성되며, 거래 기록을 끌어 모아 블록을 만들어 신뢰성을 검증하면서 이전 블록에 연결하여 블록체인 형태가 된다.
이와 같은, 블록체인 네트워크에 참여한 모든 참여자 단말기들이 거래내역을 상호 검증하고, 절반 이상의 동의가 있는 경우에 새로운 블록이 생성된다. 이와 같이 검증을 수행하고 새로운 블록을 생성하는 과정을 합의 알고리즘이라 하는데, 합의 알고리즘 중 비트 코인에 적용된 방식이 작업증명(PoW, Proof of Work) 방식이다.
이러한 작업증명(PoW) 방식은 블록의 거래내역 검증을 진행함에 있어서, 컴퓨터 연산을 통해 특정 넌스(Nonce) 값을 먼저 찾는 사람이 새로운 블록을 생성(채굴)할 권리를 부여받는다. 따라서, 연결되는 블록이 많아질수록 해당 난이도는 점점 올라가게 된다. 이러한 값을 찾기 위해서는 무작위 숫자를 넣어보며 대입하여 푸는 방법 밖에는 없기 때문에 컴퓨팅 파워가 클수록 연산능력이 높아 채굴을 할 확률이 커진다는 의미이다.
결국, 작업증명(PoW) 방식은 컴퓨팅 자원 낭비가 심한 비효율적인 운영 구조를 갖고 있어서 엄청난 전력소비를 감당해내야 하는 문제를 안고 있다. 구체적으로, 비트코인의 경우에 거래내역의 무결성을 검증하기 위해 많은 시간이 소요되며, 이는 참여자의 수가 많을수록 속도가 저하되는 문제점이 있다
즉, 블록체인에 참여한 모든 참여자 단말기는 독립적으로 동일한 장부를 모두 저장하고 있어야 하고, 동일한 합의 알고리즘에 의한 검증 작업을 모두 수행해야 한다. 이러한 사유로 인해 블록체인은 전체 네트워크 관점에서 자원 효율성이 매우 떨어진다.
이에 따라, 작업증명(PoW) 방식의 문제점을 해결하기 위한 대안으로 지분증명(PoS, Proof of Stake) 방식이 제시되었다. 지분증명(PoS) 방식은, 해당 코인을 많이 가지고 있는 즉, 지분을 많이 보유한 만큼 블록에 대한 유효성을 검증 할 확률이 높아지는 구조이다. 그러나, 단순히 지분이 많은 사람만이 선택되는 것은 아니며, 무작위로 선택되는 'Randomized block selection' 방법과 코인의 보유기간이 코인 지분과 함께 영향을 끼치는 'Coin Age based selection' 방법이 사용된다.
이러한, 지분증명(PoS) 방식은 컴퓨팅 파워를 소비하지 않기에 하드웨어 인프라를 필요로 하지 않고 유지비용 또한 굉장히 저렴하며, 지분 및 보유기간에 따른 권한 부여를 통해 채굴 독점 문제에서 일정 부분 벗어날 수 있게 되었다. 또한 지분증명(PoS) 방식은 코인보유기간 조건에 따른 코인 장기 보유가 유도되며, 이러한 점은 해당 코인의 시장 가치 유지에 긍정적으로 작용할 수 있다.
그러나, 상기 지분증명(PoS) 방식은 'Nothing at Stake' 문제가 있다. 이는 적은 리소스 비용으로 인해 유효한 블록체인이 두 개 이상 존재하는 포크 상황에서, 참여자들이 보상 확률을 높이기 위해 두 개 이상의 블록체인 모두에 블록을 생성하는 행위를 할 수 있다는 것이다. 이러한 문제는 블록체인이 하나로 수렴되는 것을 어렵게 하며, 이 경우 악의적 공격에 대해 취약해지고 유효한 체인에 대한 합의를 빨리 이루지 못한다는 문제가 발생한다.
또한, 지분증명(PoS) 방식의 경우 보유한 지분(코인)에 해당하는 보상을 받게 되는 방식이므로 지분이 많을수록 더 많은 보상을 받게 되어 부익부 빈익빈 현상이 심화될 수 있는 문제점이 있다.
또한, 악의 노드 등의 약속된 행동을 하지 않는 비잔틴 장애(Byzantine Faulty) 노드가 존재하는 네트워크에서도 합의 보장이 가능한 PBFT(Practical Byzantine Fault Tolerance) 방식이 제시되었다.
여기에서, PBFT 방식은 일정 수 이상의 노드에서 합의가 완료되는 경우에 블록을 블록체인에 연결하는 방식이나, 이와 같은, 블록체인의 합의 방식들은 참여 노드의 개수에 따라 통신 요구량이 대폭 증가하는 단점이 존재한다.
본 발명이 해결하고자 하는 기술적 과제는 검증 가능한 랜덤 함수를 이용하여 리더 노드를 선출함으로써 트랜잭션 처리 속도 향상이 가능한 블록체인 합의 시스템 및 방법을 제공하는 것이다.
본 발명의 일측면은, 트랜잭션을 생성하고, 검증 가능한 랜덤 함수에 미리 설정된 개인키를 입력하여 랜덤 값을 생성하며, 상기 트랜잭션에 상기 랜덤 값을 결합하는 복수개의 노드; 및 상기 복수개의 노드 중 하나의 노드가 선출되어 상기 랜덤 값이 결합된 트랜잭션을 전달받고, 복수개의 트랜잭션을 결합하여 블록을 생성하는 리더 노드;를 포함하고, 상기 리더 노드는, 복수개의 트랜잭션에 결합된 랜덤 값에 기초하여 다른 리더 노드를 선출하며, 선출된 다른 리더 노드를 나타내는 정보가 결합되도록 상기 블록을 생성할 수 있다.
또한, 상기 리더 노드는, 상기 복수개의 트랜잭션에 결합된 랜덤 값 중 가장 큰 랜덤 값이 결합된 트랜잭션을 추출하고, 추출된 트랜잭션을 전달한 노드를 상기 다른 리더 노드로 선출할 수 있다.
또한, 상기 리더 노드는, 상기 다른 리더 노드로 선출된 노드의 랜덤 값을 상기 다른 리더 노드를 나타내는 정보로서 상기 블록에 결합할 수 있다.
또한, 상기 노드는, 상기 리더 노드로부터 상기 블록을 전달받는 경우 상기 블록에 결합된 트랜잭션을 검증하여 상기 블록의 검증을 수행하고, 상기 블록의 검증이 완료되는 경우 상기 리더 노드에 상기 트랜잭션에 대한 검증 완료 신호를 송신하며, 상기 리더 노드로부터 상기 블록에 대한 검증 완료 신호를 전달받는 경우 상기 블록을 블록체인에 연결할 수 있다.
또한, 상기 노드는, 상기 랜덤 값이 결합된 트랜잭션을 생성하는 경우 상기 리더 노드에 상기 블록을 전달하되, 상기 블록체인의 말단에 연결된 블록으로부터 상기 리더 노드를 나타내는 정보를 추출하여 추출된 정보에 따른 리더 노드에 상기 트랜잭션을 전달할 수 있다.
본 발명의 다른 일측면은, 트랜잭션 처리 속도 향상이 가능한 블록체인 합의 시스템에서의 블록체인 합의 방법에 있어서, 복수개의 노드가 트랜잭션을 생성하는 단계; 상기 복수개의 노드가 검증 가능한 랜덤 함수에 미리 설정된 개인키를 입력하여 랜덤 값을 생성하며, 상기 트랜잭션에 상기 랜덤 값을 결합하는 단계; 리더 노드로서 상기 복수개의 노드 중 하나의 노드가 선출되어 상기 랜덤 값이 결합된 트랜잭션을 전달받고, 복수개의 트랜잭션에 결합된 랜덤 값에 기초하여 다른 리더 노드를 선출하는 단계; 및 상기 리더 노드가 복수개의 트랜잭션을 결합하여 블록을 생성하되, 선출된 다른 리더 노드를 나타내는 정보가 결합되도록 상기 블록을 생성하는 단계;를 포함할 수 있다.
또한, 상기 리더 노드는, 상기 복수개의 트랜잭션에 결합된 랜덤 값 중 가장 큰 랜덤 값이 결합된 트랜잭션을 추출하고, 추출된 트랜잭션을 전달한 노드를 상기 다른 리더 노드로 선출할 수 있다.
또한, 상기 리더 노드는, 상기 다른 리더 노드로 선출된 노드의 랜덤 값을 상기 다른 리더 노드를 나타내는 정보로서 상기 블록에 결합할 수 있다.
또한, 상기 노드는, 상기 리더 노드로부터 상기 블록을 전달받는 경우 상기 블록에 결합된 트랜잭션을 검증하여 상기 블록의 검증을 수행하고, 상기 블록의 검증이 완료되는 경우 상기 리더 노드에 상기 트랜잭션에 대한 검증 완료 신호를 송신하며, 상기 리더 노드로부터 상기 블록에 대한 검증 완료 신호를 전달받는 경우 상기 블록을 블록체인에 연결할 수 있다.
또한, 상기 노드는, 상기 랜덤 값이 결합된 트랜잭션을 생성하는 경우 상기 리더 노드에 상기 블록을 전달하되, 상기 블록체인의 말단에 연결된 블록으로부터 상기 리더 노드를 나타내는 정보를 추출하여 추출된 정보에 따른 리더 노드에 상기 트랜잭션을 전달할 수 있다.
상술한 본 발명의 일측면에 따르면, 트랜잭션 처리 속도 향상이 가능한 블록체인 합의 시스템 및 방법을 제공함으로써, 검증 가능한 랜덤 함수를 이용하여 리더 노드를 선출함으로써 트랜잭션 처리 속도 향상이 가능할 수 있다.
도1은 본 발명의 일 실시예에 따른 블록체인 합의 시스템의 개략도이다.
도2는 도1의 리더 노드가 트랜잭션을 전달받는 과정을 나타낸 개략도이다.
도3 및 도4는 도1의 복수의 노드가 블록을 검증하는 과정을 나타낸 개략도이다.
도5는 도1의 복수의 노드가 블록체인에 블록을 연결하는 과정을 나타낸 개략도이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예와 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
이하, 도면들을 참조하여 본 발명의 바람직한 실시예들을 보다 상세하게 설명하기로 한다.
도1은 본 발명의 일 실시예에 따른 블록체인 합의 시스템의 개략도이다.
블록체인 합의 시스템(1)은 트랜잭션을 생성하는 복수개의 노드(20) 및 블록을 생성하는 리더 노드(10)를 포함할 수 있다.
여기에서, 노드(20) 또는 리더 노드(10)는 컴퓨터, 스마트폰, 서버 등의 단말 기기를 의미할 수 있으며, 이때, 노드(20) 또는 리더 노드(10)는 블록체인 네트워크에 연결되어 다른 노드(20)와의 통신을 수행할 수 있다.
이에 따라, 노드(20)는 사용자의 명령에 따라 트랜잭션을 생성할 수 있다. 이때, 노드(20)는 생성된 트랜잭션을 노드(20)에 마련되는 저장소에 저장할 수 있다.
이때, 사용자의 명령은 사용자 등록, 등록된 사용자 정보의 수정, 거래 요청, 입금 요청, 출금 요청 등 블록체인 합의 시스템(1)에서 발생할 수 있는 다양한 요청을 의미할 수 있다.
이에 따라, 트랜잭션은 사용자 등록에 요구되는 정보, 수정되도록 입력된 사용자 정보, 거래를 요청하는 거래자들의 정보, 거래 내용, 금액 등의 사용자 명령에 따라 요구되는 다양한 정보들을 포함할 수 있다.
이와 관련하여, 노드(20)는 사용자로부터 입력되는 사용자 정보를 블록체인 네트워크에 등록된 사용자 정보와 비교하여 인증을 수행할 수 있으며, 이를 통해, 노드(20)는 블록체인 네트워크에 연결되어 사용자의 명령에 따른 트랜잭션을 생성할 수 있다.
이때, 노드(20)는 검증 가능한 랜덤 함수(VRF, Verifable Randomness Function)에 미리 설정된 개인키를 입력하여 랜덤 값을 생성할 수 있으며, 노드(20)는 트랜잭션에 랜덤 값을 결합할 수 있다.
여기에서, 검증 가능한 랜덤 함수는 개인키를 통해 증명 가능한 의사난수(Pseudorandom)를 생성하도록 설정된 것일 수 있다. 이때, 검증 가능한 랜덤 함수는 개인키 외에도 트랜잭션 등의 정보를 더 이용할 수 있으며, 또한, 검증 가능한 랜덤 함수는 랜덤 값 외에도 인증서 등의 정보를 더 생성할 수 있다.
이에 따라, 노드(20)는 블록체인 네트워크에 연결된 리더 노드(10)에게 랜덤 값이 결합된 트랜잭션을 전달할 수 있다.
또한, 개인키는 공개키와 쌍을 이루도록 생성된 것일 수 있으며, 이때, 개인키와 공개키는 각각의 노드에 부여될 수 있다. 이에 따라, 노드는 리더 노드(10)에 트랜잭션을 전달하는 과정에서 개인키를 이용하여 트랜잭션을 암호화할 수 있으며, 이때, 리더 노드(10)는 트랜잭션이 전달된 노드(20)의 공개키를 이용하여 암호화된 트랜잭션을 복호화할 수 있다.
이와 관련하여, 개인키와 공개키는 노드가 블록체인 네트워크에 연결되는 시점에서 부여될 수 있다.
한편, 리더 노드(10)는 복수의 노드(20)들 중 하나 이상의 노드가 선출된 것일 수 있다.
이와 관련하여, 리더 노드(10)는 복수개의 노드(20)로부터 각각 트랜잭션을 전달받을 수 있고, 리더 노드(10)는 복수개의 트랜잭션에 결합된 랜덤 값에 기초하여 다른 리더 노드(10)를 선출할 수 있으며, 리더 노드(10)는 선출된 다른 리더 노드(10)를 나타내는 정보가 결합되도록 블록을 생성할 수 있다.
여기에서, 다른 리더 노드(10)는 트랜잭션을 전달받은 리더 노드(10)가 블록을 생성하여 블록체인에 연결한 이후에 리더 노드(10)의 자격이 부여되는 노드(20)일 수 있다.
예를 들어, 리더 노드(10)는 생성된 랜덤 값이 가장 큰 노드(20)가 선출될 수 있다. 이러한 경우에, 리더 노드(10)는 복수개의 트랜잭션에 결합된 랜덤 값 중 가장 큰 랜덤 값이 결합된 트랜잭션을 추출할 수 있고, 리더 노드(10)는 추출된 트랜잭션을 전달한 노드(20)를 다른 리더 노드(10)로 선출할 수 있다.
이때, 리더 노드(10)는 복수개의 노드(20) 중 핑(PING, Packet Internet Grouper)에 의한 응답 속도가 미리 설정된 범위를 만족하는 하나 이상의 노드(20)를 추출하여 추출된 하나 이상의 노드(20) 중 가장 큰 랜덤 값을 생성한 노드(20)를 다른 리더 노드(10)로 선출할 수도 있다.
이에 따라, 리더 노드(10)는 복수의 노드(20)로부터 트랜잭션을 전달받을 수 있으며, 리더 노드(10)는 복수개의 트랜잭션을 결합하여 블록을 생성할 수 있다.
여기에서, 블록은 미리 설정된 시간 간격 동안 수집된 트랜잭션 또는 미리 설정된 개수의 트랜잭션을 포함하도록 생성될 수 있으며, 이를 위해, 리더 노드(10)는 미리 설정된 시간 간격 동안 수집되거나, 또는 미리 설정된 개수의 트랜잭션이 수집되는 경우, 수집된 복수의 트랜잭션을 결합하여 블록을 생성할 수 있다.
이와 같은, 블록은 각각의 노드(20)에 저장된 블록체인에 연결되도록 마련될 수 있으며, 이를 위해, 노드(20)는 리더 노드(10)로부터 블록을 전달받는 경우에, 블록의 검증을 수행하여 블록체인에 연결할 수 있다.
이때, 리더 노드(10)는 이전에 생성된 블록을 미리 설정된 해시 함수에 입력하여 산출된 해시 값을 현재 생성되는 블록에 결합할 수 있다. 이를 통해, 노드(20) 또는 리더 노드(10)는 블록체인에 연결된 이전 블록에 대한 해시 값과 새롭게 생성된 블록에 결합된 이전 블록에 대한 해시 값을 비교하여 블록의 검증을 수행할 수 있다.
이를 위해, 리더 노드(10)는 미리 설정된 시간 간격 또는 미리 설정된 개수의 블록을 생성한 경우에 새롭게 선출되도록 설정될 수 있으며, 또한, 리더 노드(10)는 하나의 리더 노드(10)가 선출되어 블록을 생성하거나, 또는 복수의 리더 노드(10)가 선출되어 미리 설정된 순서에 따라 순차적으로 블록을 생성할 수도 있다.
이와 관련하여, 리더 노드(10)는 선출된 리더 노드(10)를 나타내는 정보가 결합되도록 블록을 생성할 수 있다. 이를 통해, 노드(20)는 블록으로부터 리더 노드(10)를 나타내는 정보를 추출하여 트랜잭션을 전달할 수 있다.
또한, 리더 노드(10)는 리더 노드(10)로 선출된 노드(20)의 랜덤 값을 리더 노드(10)를 나타내는 정보로서 블록에 결합할 수 있다.
리더 노드(10)는 복수개의 노드(20) 중 어느 하나의 노드(20)를 선택하여 블록에 결합된 트랜잭션의 검증을 수행하도록 블록을 전달할 수 있다.
이를 위해, 리더 노드(10)는 트랜잭션을 전달한 하나 이상의 노드(20)가 블록의 검증을 수행하도록 검증 순서를 설정할 수 있고, 리더 노드(10)는 블록의 검증을 수행하도록 검증 순서로부터 첫번째 순서로 나타나는 어느 하나의 노드(20)에 블록을 전달할 수 있다.
여기에서, 검증 순서는 블록체인 네트워크에 연결된 모든 노드(20)를 거치도록 설정되는 순서일 수 있으며, 또는, 검증 순서는 블록체인 네트워크에 연결된 일부 노드(20)를 거치도록 설정되는 순서일 수 있다.
이때, 검증 순서는 블록체인 네트워크에 연결된 복수의 노드(20) 중 네트워크 연결 속도 또는 응답 속도가 가장 빠른 노드(20)를 선택하도록 설정될 수 있으며, 이러한 경우에, 리더 노드(10) 또는 노드(20)는 트랜잭션의 검증을 수행하지 않은 다른 노드(20) 중 네트워크 연결 속도 또는 응답 속도가 가장 빠른 노드(20)에 블록을 전달하도록 설정될 수 있다.
또한, 검증 순서는 블록에 결합된 트랜잭션을 송신한 하나 이상의 노드(20)가 트랜잭션이 블록에 결합된 순서에 따라 트랜잭션의 검증을 수행하도록 설정될 수 있으며, 또는, 검증 순서는 블록에 결합된 트랜잭션을 송신한 하나 이상의 노드(20)가 네트워크 연결 속도 또는 응답 속도가 가장 빠른 순서에 따라 트랜잭션의 검증을 수행하도록 설정될 수도 있다.
이에 따라, 리더 노드(10)는 검증 순서에 따라 어느 하나의 노드(20)에 블록을 전달할 수 있으며, 복수의 노드(20)는 순차적으로 트랜잭션의 검증을 수행할 수 있다.
여기에서, 노드(20)가 트랜잭션의 검증을 수행하는 것은 블록에 결합된 하나 이상의 트랜잭션 중 노드(20)에 저장된 트랜잭션과 동일한 트랜잭션을 추출하여 비교하는 것일 수 있다.
구체적으로, 노드(20)는 사용자로부터 입력되는 명령에 따라 트랜잭션을 생성하여 저장할 수 있고, 노드(20)는 블록에 결합된 트랜잭션의 검증을 수행하도록 블록을 전달받는 경우, 블록으로부터 노드(20)에 저장된 트랜잭션과 동일한 트랜잭션을 추출하여 비교할 수 있으며, 노드(20)는 노드(20)에 저장된 트랜잭션과 블록에 결합된 트랜잭션이 동일한 경우 트랜잭션의 검증에 성공한 것으로 판단할 수 있다.
이때, 노드(20)는 노드(20)에 저장된 트랜잭션과 블록에 결합된 트랜잭션이 동일한 경우 검증 순서에 따라 다른 노드(20)에 블록을 전달할 수 있다.
다시 말해서, 노드(20)는 트랜잭션에 대한 검증이 완료된 경우 블록에 결합된 트랜잭션의 검증을 수행하도록 미리 설정된 검증 순서에 대응되는 어느 하나의 노드(20)에 블록을 전달할 수 있다.
이에 따라, 노드(20)는 검증 순서에 따른 복수의 노드(20)가 검증을 완료한 것으로 판단되는 경우, 리더 노드(10)에 블록을 전달할 수 있다.
이를 통해, 리더 노드(10)는 블록을 전달한 노드(20)와는 다른 하나의 노드(20)로부터 블록을 전달받는 경우 트랜잭션의 검증이 완료된 것으로 판단할 수 있다.
또는, 노드(20)는 노드(20)에 저장된 트랜잭션과 블록에 결합된 트랜잭션이 동일한 경우 검증 순서에 따라 다른 노드(20)에 블록을 전달할 수 있으며, 이때, 노드(20)는 리더 노드(10)에 트랜잭션에 대한 검증 완료 신호를 송신할 수 있다.
이러한 경우에, 리더 노드(10)는 검증 순서로부터 나타나는 하나 이상의 노드(20)로부터 검증 완료 신호를 모두 전달받는 경우, 블록의 검증이 완료된 것으로 판단할 수 있다.
한편, 노드(20)는 노드(20)에 저장된 트랜잭션과 블록에 결합된 트랜잭션이 다른 경우, 트랜잭션의 검증에 실패한 것으로 판단할 수 있으며, 이러한 경우에, 노드(20)는 리더 노드(10)에 검증 실패 신호를 전달할 수 있다.
이와 관련하여, 리더 노드(10)는 임의의 노드(20)로부터 검증 실패 신호를 전달받는 경우, 블록체인 네트워크에 연결된 복수의 노드(20)에 트랜잭션 요청 신호를 전달할 수 있으며, 이에 따라, 노드(20)는 미리 저장된 트랜잭션을 리더 노드(10)에 재 전송할 수 있다.
리더 노드(10)는 블록의 검증이 완료된 것으로 판단되는 경우 블록체인 네트워크에 연결된 복수개의 노드(20)에 블록을 전달할 수 있으며, 또는, 리더 노드(10)는 블록의 검증이 완료된 것으로 판단되는 경우 블록체인 네트워크에 연결된 복수개의 노드(20)에 블록에 대한 검증 완료 신호를 전달할 수 있다.
이에 따라, 블록을 전달받은 노드(20)는 블록의 검증을 수행하여 검증된 블록을 블록체인에 연결할 수 있으며, 이를 통해, 노드(20)는 랜덤 값이 결합된 트랜잭션을 생성하여 리더 노드(10)에 블록을 전달하는 과정에서, 블록체인의 말단에 연결된 블록으로부터 리더 노드(10)를 나타내는 정보를 추출하여 추출된 정보에 따른 리더 노드(10)에 트랜잭션을 전달할 수 있다.
이를 통해, 본 발명의 일 실시예에 따른 블록체인 합의 시스템(1)은 트랜잭션의 검증을 위해 블록체인 네트워크에 연결된 복수의 노드(20)가 한 번씩만 블록을 전달받게 되며, 이에 따라, 블록체인 합의 시스템(1)은 종래의 블록체인 합의 알고리즘과 비교하여 통신 요구량이 대폭 감소할 수 있다.
도2는 도1의 리더 노드가 트랜잭션을 전달받는 과정을 나타낸 개략도이다.
도2를 참조하면, 노드(20)는 사용자의 명령에 따라 트랜잭션을 생성할 수 있다. 이때, 노드(20)는 생성된 트랜잭션을 노드(20)에 마련되는 저장소에 저장할 수 있다.
이때, 노드(20)는 검증 가능한 랜덤 함수(VRF, Verifable Randomness Function)에 미리 설정된 개인키를 입력하여 랜덤 값을 생성할 수 있으며, 노드(20)는 트랜잭션에 랜덤 값을 결합할 수 있다.
이에 따라, 노드(20)는 블록체인 네트워크에 연결된 리더 노드(10)에게 랜덤 값이 결합된 트랜잭션을 전달할 수 있다.
도3 및 도4는 도1의 복수의 노드가 블록을 검증하는 과정을 나타낸 개략도이다.
도3을 참조하면, 리더 노드(10)는 복수의 노드(20)들 중 하나 이상의 노드가 선출된 것일 수 있다.
예를 들어, 리더 노드(10)는 생성된 랜덤 값이 가장 큰 노드(20)가 선출될 수 있다. 이러한 경우에, 리더 노드(10)는 복수개의 트랜잭션에 결합된 랜덤 값 중 가장 큰 랜덤 값이 결합된 트랜잭션을 추출할 수 있고, 리더 노드(10)는 추출된 트랜잭션을 전달한 노드(20)를 리더 노드(10)로 선출할 수 있다.
이에 따라, 리더 노드(10)는 복수의 노드(20)로부터 트랜잭션을 전달받을 수 있으며, 리더 노드(10)는 복수개의 트랜잭션을 결합하여 블록을 생성할 수 있다.
이때, 리더 노드(10)는 선출된 리더 노드(10)를 나타내는 정보가 결합되도록 블록을 생성할 수 있다.
이와 관련하여, 리더 노드(10)는 복수개의 노드(20) 중 어느 하나의 노드(20)를 선택하여 블록에 결합된 트랜잭션의 검증을 수행하도록 블록을 전달할 수 있다.
이를 위해, 리더 노드(10)는 트랜잭션을 전달한 하나 이상의 노드(20)가 블록의 검증을 수행하도록 검증 순서를 설정할 수 있고, 리더 노드(10)는 블록의 검증을 수행하도록 검증 순서로부터 첫번째 순서로 나타나는 어느 하나의 노드(20)에 블록을 전달할 수 있다.
이때, 노드(20)는 노드(20)에 저장된 트랜잭션과 블록에 결합된 트랜잭션이 동일한 경우 검증 순서에 따라 다른 노드(20)에 블록을 전달할 수 있다.
이에 따라, 노드(20)는 검증 순서에 따른 복수의 노드(20)가 검증을 완료한 것으로 판단되는 경우, 리더 노드(10)에 블록을 전달할 수 있으며, 이때, 노드(20)는 블록체인의 말단에 연결된 블록으로부터 리더 노드(10)를 나타내는 정보를 추출하여 추출된 정보에 따른 리더 노드(10)에 트랜잭션을 전달할 수 있다.
이와 같이, 노드(20)는 사용자로부터 입력되는 명령에 따라 트랜잭션을 생성하여 저장할 수 있고, 노드(20)는 블록에 결합된 트랜잭션의 검증을 수행하도록 블록을 전달받는 경우, 블록으로부터 노드(20)에 저장된 트랜잭션과 동일한 트랜잭션을 추출하여 비교할 수 있으며, 노드(20)는 노드(20)에 저장된 트랜잭션과 블록에 결합된 트랜잭션이 동일한 경우 트랜잭션의 검증에 성공한 것으로 판단할 수 있다.
도4를 참조하면, 노드(20)는 노드(20)에 저장된 트랜잭션과 블록에 결합된 트랜잭션이 동일한 경우 검증 순서에 따라 다른 노드(20)에 블록을 전달할 수 있으며, 이때, 노드(20)는 리더 노드(10)에 트랜잭션에 대한 검증 완료 신호를 송신할 수 있다.
한편, 노드(20)는 노드(20)에 저장된 트랜잭션과 블록에 결합된 트랜잭션이 다른 경우, 트랜잭션의 검증에 실패한 것으로 판단할 수 있으며, 이러한 경우에, 노드(20)는 리더 노드(10)에 검증 실패 신호를 전달할 수 있다.
이와 관련하여, 리더 노드(10)는 임의의 노드(20)로부터 검증 실패 신호를 전달받는 경우, 블록체인 네트워크에 연결된 복수의 노드(20)에 트랜잭션 요청 신호를 전달할 수 있으며, 이에 따라, 노드(20)는 미리 저장된 트랜잭션을 리더 노드(10)에 재 전송할 수 있다.
도5는 도1의 복수의 노드가 블록체인에 블록을 연결하는 과정을 나타낸 개략도이다.
도5를 참조하면, 리더 노드(10)는 블록의 검증이 완료된 것으로 판단되는 경우 블록체인 네트워크에 연결된 복수개의 노드(20)에 블록을 전달할 수 있다.
이에 따라, 블록을 전달받은 노드(20)는 블록의 검증을 수행하여 검증된 블록을 블록체인에 연결할 수 있다.
도6은 본 발명의 일 실시예에 따른 블록체인 합의 방법의 순서도이다.
본 발명의 일 실시예에 따른 블록체인 합의 방법은 도 1에 도시된 블록체인 합의 시스템(1)과 실질적으로 동일한 구성 상에서 진행되므로, 도 1의 블록체인 합의 시스템(1)과 동일한 구성요소에 대해 동일한 도면 부호를 부여하고, 반복되는 설명은 생략하기로 한다.
블록체인 합의 방법은 복수개의 노드가 트랜잭션을 생성하는 단계(600), 검증 가능한 랜덤 함수에 개인키를 입력하여 랜덤 값을 생성하며, 트랜잭션에 랜덤 값을 결합하는 단계(610), 랜덤 값이 결합된 트랜잭션을 전달받고, 복수개의 트랜잭션에 결합된 랜덤 값에 기초하여 리더 노드를 선출하는 단계(620) 및 선출된 리더 노드를 나타내는 정보가 결합되도록 블록을 생성하는 단계(630)를 포함할 수 있다.
복수개의 노드가 트랜잭션을 생성하는 단계(600)는 복수개의 노드(20)가 트랜잭션을 생성하는 단계일 수 있다.
검증 가능한 랜덤 함수에 개인키를 입력하여 랜덤 값을 생성하며, 트랜잭션에 랜덤 값을 결합하는 단계(610)는 복수개의 노드(20)가 검증 가능한 랜덤 함수에 미리 설정된 개인키를 입력하여 랜덤 값을 생성하며, 트랜잭션에 랜덤 값을 결합하는 단계일 수 있다.
랜덤 값이 결합된 트랜잭션을 전달받고, 복수개의 트랜잭션에 결합된 랜덤 값에 기초하여 리더 노드를 선출하는 단계(620)는 리더 노드(10)로서 복수개의 노드(20) 중 하나의 노드(20)가 선출되어 랜덤 값이 결합된 트랜잭션을 전달받고, 복수개의 트랜잭션에 결합된 랜덤 값에 기초하여 다른 리더 노드(10)를 선출하는 단계일 수 있다.
선출된 리더 노드를 나타내는 정보가 결합되도록 블록을 생성하는 단계(630)는 리더 노드(10)가 복수개의 트랜잭션을 결합하여 블록을 생성하되, 선출된 다른 리더 노드(10)를 나타내는 정보가 결합되도록 블록을 생성하는 단계일 수 있다.
이상에서는 실시예들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
1: 블록체인 합의 시스템
10: 리더 노드
20: 노드

Claims (10)

  1. 트랜잭션을 생성하고, 검증 가능한 랜덤 함수에 미리 설정된 개인키를 입력하여 랜덤 값을 생성하며, 상기 트랜잭션에 상기 랜덤 값을 결합하는 복수개의 노드; 및
    상기 복수개의 노드 중 하나의 노드가 선출되어 상기 랜덤 값이 결합된 트랜잭션을 전달받고, 복수개의 트랜잭션을 결합하여 블록을 생성하는 리더 노드;를 포함하고,
    상기 리더 노드는,
    복수개의 트랜잭션에 결합된 랜덤 값에 기초하여 다른 리더 노드를 선출하며, 선출된 다른 리더 노드를 나타내는 정보가 결합되도록 상기 블록을 생성하는, 블록체인 합의 시스템.
  2. 제1항에 있어서, 상기 리더 노드는,
    상기 복수개의 트랜잭션에 결합된 랜덤 값 중 가장 큰 랜덤 값이 결합된 트랜잭션을 추출하고, 추출된 트랜잭션을 전달한 노드를 상기 다른 리더 노드로 선출하는, 블록체인 합의 시스템.
  3. 제1항에 있어서, 상기 리더 노드는,
    상기 다른 리더 노드로 선출된 노드의 랜덤 값을 상기 다른 리더 노드를 나타내는 정보로서 상기 블록에 결합하는, 블록체인 합의 시스템.
  4. 제1항에 있어서, 상기 노드는,
    상기 리더 노드로부터 상기 블록을 전달받는 경우 상기 블록에 결합된 트랜잭션을 검증하여 상기 블록의 검증을 수행하고, 상기 블록의 검증이 완료되는 경우 상기 리더 노드에 상기 트랜잭션에 대한 검증 완료 신호를 송신하며, 상기 리더 노드로부터 상기 블록에 대한 검증 완료 신호를 전달받는 경우 상기 블록을 블록체인에 연결하는, 블록체인 합의 시스템.
  5. 제4항에 있어서, 상기 노드는,
    상기 랜덤 값이 결합된 트랜잭션을 생성하는 경우 상기 리더 노드에 상기 블록을 전달하되, 상기 블록체인의 말단에 연결된 블록으로부터 상기 리더 노드를 나타내는 정보를 추출하여 추출된 정보에 따른 리더 노드에 상기 트랜잭션을 전달하는, 블록체인 합의 시스템.
  6. 트랜잭션 처리 속도 향상이 가능한 블록체인 합의 시스템에서의 블록체인 합의 방법에 있어서,
    복수개의 노드가 트랜잭션을 생성하는 단계;
    상기 복수개의 노드가 검증 가능한 랜덤 함수에 미리 설정된 개인키를 입력하여 랜덤 값을 생성하며, 상기 트랜잭션에 상기 랜덤 값을 결합하는 단계;
    리더 노드로서 상기 복수개의 노드 중 하나의 노드가 선출되어 상기 랜덤 값이 결합된 트랜잭션을 전달받고, 복수개의 트랜잭션에 결합된 랜덤 값에 기초하여 다른 리더 노드를 선출하는 단계; 및
    상기 리더 노드가 복수개의 트랜잭션을 결합하여 블록을 생성하되, 선출된 다른 리더 노드를 나타내는 정보가 결합되도록 상기 블록을 생성하는 단계;를 포함하는, 블록체인 합의 방법.
  7. 제6항에 있어서, 상기 리더 노드는,
    상기 복수개의 트랜잭션에 결합된 랜덤 값 중 가장 큰 랜덤 값이 결합된 트랜잭션을 추출하고, 추출된 트랜잭션을 전달한 노드를 상기 다른 리더 노드로 선출하는, 블록체인 합의 방법.
  8. 제6항에 있어서, 상기 리더 노드는,
    상기 다른 리더 노드로 선출된 노드의 랜덤 값을 상기 다른 리더 노드를 나타내는 정보로서 상기 블록에 결합하는, 블록체인 합의 방법.
  9. 제6항에 있어서, 상기 노드는,
    상기 리더 노드로부터 상기 블록을 전달받는 경우 상기 블록에 결합된 트랜잭션을 검증하여 상기 블록의 검증을 수행하고, 상기 블록의 검증이 완료되는 경우 상기 리더 노드에 상기 트랜잭션에 대한 검증 완료 신호를 송신하며, 상기 리더 노드로부터 상기 블록에 대한 검증 완료 신호를 전달받는 경우 상기 블록을 블록체인에 연결하는, 블록체인 합의 방법.
  10. 제9항에 있어서, 상기 노드는,
    상기 랜덤 값이 결합된 트랜잭션을 생성하는 경우 상기 리더 노드에 상기 블록을 전달하되, 상기 블록체인의 말단에 연결된 블록으로부터 상기 리더 노드를 나타내는 정보를 추출하여 추출된 정보에 따른 리더 노드에 상기 트랜잭션을 전달하는, 블록체인 합의 방법.

KR1020210101418A 2021-08-02 2021-08-02 트랜잭션 처리 속도 향상이 가능한 블록체인 합의 시스템 및 방법 KR102518634B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210101418A KR102518634B1 (ko) 2021-08-02 2021-08-02 트랜잭션 처리 속도 향상이 가능한 블록체인 합의 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210101418A KR102518634B1 (ko) 2021-08-02 2021-08-02 트랜잭션 처리 속도 향상이 가능한 블록체인 합의 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20230019648A true KR20230019648A (ko) 2023-02-09
KR102518634B1 KR102518634B1 (ko) 2023-04-05

Family

ID=85224826

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210101418A KR102518634B1 (ko) 2021-08-02 2021-08-02 트랜잭션 처리 속도 향상이 가능한 블록체인 합의 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR102518634B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117670330A (zh) * 2024-02-01 2024-03-08 中国信息通信研究院 基于区块链的交易处理方法和装置、电子设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190093012A (ko) * 2018-01-31 2019-08-08 지송학 블록 체인 시스템에서의 블록 생성 및 검증 방법
KR20190134296A (ko) * 2018-05-25 2019-12-04 서강대학교산학협력단 블록체인을 기반으로 한 공급망 관리 및 추적 시스템 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190093012A (ko) * 2018-01-31 2019-08-08 지송학 블록 체인 시스템에서의 블록 생성 및 검증 방법
KR20190134296A (ko) * 2018-05-25 2019-12-04 서강대학교산학협력단 블록체인을 기반으로 한 공급망 관리 및 추적 시스템 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117670330A (zh) * 2024-02-01 2024-03-08 中国信息通信研究院 基于区块链的交易处理方法和装置、电子设备和存储介质

Also Published As

Publication number Publication date
KR102518634B1 (ko) 2023-04-05

Similar Documents

Publication Publication Date Title
TWI740423B (zh) 在基於區塊鏈的私有交易中提供隱私和安全保護的系統和方法
EP3610405B1 (en) Program execution and data proof scheme using multiple key pair signatures
US11979493B2 (en) Methods and systems to establish trusted peer-to-peer communications between nodes in a blockchain network
KR101727525B1 (ko) 블록체인 기반 분산 저장 방법 및 이를 이용한 장치
US11196573B2 (en) Secure de-centralized domain name system
KR102580509B1 (ko) 복수의 스토리지 노드를 통해 대규모 블록체인의 안전한 저장을 가능하게 하는 컴퓨터 구현 시스템 및 방법
CN110177124A (zh) 基于区块链的身份认证方法及相关设备
He et al. A novel cryptocurrency wallet management scheme based on decentralized multi-constrained derangement
CN110737915A (zh) 基于联盟链和隐式证书的抗量子计算匿名身份识别方法及系统
KR102518634B1 (ko) 트랜잭션 처리 속도 향상이 가능한 블록체인 합의 시스템 및 방법
WO2022115559A1 (en) Cryptographic key storage system and method
Liou et al. T-auth: A novel authentication mechanism for the IoT based on smart contracts and PUFs
CN112039837A (zh) 一种基于区块链和秘密共享的电子证据保全方法
KR102534411B1 (ko) 네트워크 확장성을 고려한 블록체인 합의 시스템 및 방법
da Costa et al. DLCP: A protocol for securing light client operation in blockchains
CN115796861A (zh) 一种区块链上跨链交易方法、系统、设备及存储介质
US20200267133A1 (en) First communication device, second communication device, method, and computer program
Yang et al. A High Security Signature Algorithm Based on Kerberos for REST-style Cloud Storage Service
Nguyen Understanding scalability issues in sharded blockchains
Zima P2P Cryptocurrency Exchange and Blockchain Size Reduction
Tsang et al. Anonymous IP-address Blocking in Tor with Trusted Computing (Short Paper: Work in Progress)
KR20200106605A (ko) 블록체인 기반의 합의 알고리즘에서 이중 합의방법
CN116244709A (zh) 区块链网络中出块节点的确定方法及相关装置

Legal Events

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