KR102392980B1 - 블록 체인 분산 시스템 및 블록 체인의 트랜잭션 처리 방법 - Google Patents

블록 체인 분산 시스템 및 블록 체인의 트랜잭션 처리 방법 Download PDF

Info

Publication number
KR102392980B1
KR102392980B1 KR1020200029368A KR20200029368A KR102392980B1 KR 102392980 B1 KR102392980 B1 KR 102392980B1 KR 1020200029368 A KR1020200029368 A KR 1020200029368A KR 20200029368 A KR20200029368 A KR 20200029368A KR 102392980 B1 KR102392980 B1 KR 102392980B1
Authority
KR
South Korea
Prior art keywords
transaction
block
node
time slot
time
Prior art date
Application number
KR1020200029368A
Other languages
English (en)
Other versions
KR20210114127A (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 KR1020200029368A priority Critical patent/KR102392980B1/ko
Publication of KR20210114127A publication Critical patent/KR20210114127A/ko
Application granted granted Critical
Publication of KR102392980B1 publication Critical patent/KR102392980B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/22Payment schemes or models
    • G06Q20/223Payment schemes or models based on the use of peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0869Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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

Abstract

본 발명은 블록 체인 분산 시스템 및 블록 체인의 트랜잭션 처리 방법을 제공한다. 본 발명의 몇몇 실시예에 따른 블록 체인의 트랜잭션 처리 방법은 트랜잭션을 수신하되, 상기 트랜잭션은 어카운트 정보, 상기 트랜잭션이 생성된 시각이 표시된 트랜잭션 타임스탬프 및 트랜잭션 고유값을 포함하고, 상기 어카운트 정보를 통해서 상기 트랜잭션이 현재 처리 어카운트 트랜잭션인지 확인하고, 상기 트랜잭션이 상기 현재 처리 어카운트 트랜잭션인 경우, 상기 트랜잭션 타임스탬프와 현재 시간을 통해서 상기 트랜잭션이 현재 처리 대상 트랜잭션인지를 확인하고, 상기 트랜잭션이 상기 현재 처리 대상 트랜잭션인 경우, 상기 트랜잭션 고유값을 통해서 상기 트랜잭션이 중복 처리 트랜잭션인지를 확인하고, 상기 트랜잭션이 상기 중복 처리 트랜잭션이 아닌 경우, 상기 트랜잭션을 블록에 기록하고, 상기 블록을 분산 시스템에 저장하는 것을 포함한다.

Description

블록 체인 분산 시스템 및 블록 체인의 트랜잭션 처리 방법{Blockchain Distributed System and Method for Processing Blockchain Transaction}
본 발명은 블록 체인 분산 시스템 및 블록 체인의 트랜잭션 처리 방법에 관한 것이다. 구체적으로는, 타임 슬롯(time slot)을 기반으로 하여 트랜잭션을 관리하는 방법 및 시스템에 관한 것이다.
블록 체인은 비트코인 등과 같은 분산형 가상화폐 거래 시스템에서 노드들간 서로 주고받는 가상화폐의 거래(트랜잭션)를 지속적으로 기록하는 거래기록장부의 기능을 가지고 있다. 이와 같이 거래기록장부의 기능을 하는 블록체인이 분산형 가상화폐 거래 시스템에서 필요한 이유는 가상화폐가 실물의 물리적 화폐로 존재하는 것이 아니라 가상에서만 존재하기 때문이다.
기존의 어카운트(account)형 블록 체인에서는 넌스(nonce)나 시퀀스(sequence; seq)와 같이 트랜잭션의 처리에 따라 증가하는 값을 포함한다. 이를 통해, 기존의 어카운트형 블록 체인은 동일한 어카운트 내에서 트랜잭션을 넌스 또는 시퀀스를 통해서 순차적으로 처리할 수 있다.
그러나, 이러한 시퀀스를 통한 트랜잭션 처리는 중간에 하나의 트랜잭션이 분실(missing)되는 경우 다음 시퀀스의 트랜잭션이 처리되지 못하고 무한정 대기하는 상태가 되는 문제가 있다.
시퀀스를 아예 제거하는 경우에는 중간에 분실된 트랜잭션이 있어도 다음 트랜잭션을 처리할 수 있지만, 동일한 트랜잭션이 중복되서 들어오는 경우에 이를 필터링할 수 없어 중복 처리되는 문제(replay attack)가 있다.
따라서, 분실시 무한정 대기하는 문제와 중복 처리의 문제를 모두 해결할 수 있는 트랜잭션 처리 방식이 필요한 실정이다.
등록특허 제10-2053630호
본 발명이 해결하려는 과제는, 트랜잭션의 분실과 중복 처리를 모두 적절하게 해결할 수 있는 블록 체인의 트랜잭션 처리 방법을 제공하는 것이다.
본 발명이 해결하려는 다른 과제는, 트랜잭션의 분실과 중복 처리를 모두 적절하게 해결할 수 있는 블록 체인 분산 시스템을 제공하는 것이다.
본 발명이 해결하려는 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 과제를 해결하기 위한 본 발명의 몇몇 실시예에 따른 블록 체인의 트랜잭션 처리 방법은 트랜잭션을 수신하되, 상기 트랜잭션은 어카운트 정보, 상기 트랜잭션이 생성된 시각이 표시된 트랜잭션 타임스탬프 및 트랜잭션 고유값을 포함하고, 상기 어카운트 정보를 통해서 상기 트랜잭션이 현재 처리 어카운트 트랜잭션인지 확인하고, 상기 트랜잭션이 상기 현재 처리 어카운트 트랜잭션인 경우, 상기 트랜잭션 타임스탬프와 현재 시간을 통해서 상기 트랜잭션이 현재 처리 대상 트랜잭션인지를 확인하고, 상기 트랜잭션이 상기 현재 처리 대상 트랜잭션인 경우, 상기 트랜잭션 고유값을 통해서 상기 트랜잭션이 중복 처리 트랜잭션인지를 확인하고, 상기 트랜잭션이 상기 중복 처리 트랜잭션이 아닌 경우, 상기 트랜잭션을 블록에 기록하고, 상기 블록을 분산 시스템에 저장하는 것을 포함한다.
또한, 상기 트랜잭션이 현재 처리 대상 트랜잭션인지를 확인하는 것은, 상기 트랜잭션 타임 스탬프와 상기 현재 시간을 통해서 상기 트랜잭션의 해당 타임 슬롯을 도출하되, 상기 해당 타임 슬롯은 시간을 미리 설정된 간격으로 나누어 형성되는 복수의 타임 슬롯 중 상기 현재 시간이 해당되는 타임 슬롯이고, 가장 최근의 타임 슬롯부터 순차적으로 N개의 타임 슬롯만을 현재 처리 대상 타임 슬롯으로 선정하되, 상기 N은 1 이상의 자연수이고, 상기 트랜잭션이 해당되는 타임 슬롯이 상기 현재 처리 대상 타임 슬롯인지를 확인하는 것을 포함할 수 있다.
또한, 상기 미리 설정된 간격은 일정할 수 있다.
또한, 상기 분산 시스템은 복수의 노드를 포함하고, 상기 블록은 상기 복수의 노드 모두에 저장될 수 있다.
또한, 상기 블록은 블록 헤더 및 바디를 포함하고, 상기 블록 헤더는 이전 블록의 해시를 포함하고, 상기 바디는 상기 트랜잭션을 포함할 수 있다.
또한, 상기 블록 헤더는 상기 트랜잭션 고유값의 해시값으로 도출된 루트 해시를 포함할 수 있다.
상기 과제를 해결하기 위한 본 발명의 몇몇 실시예에 따른 블록 체인 분산 시스템은 트랜잭션을 생성하고, 상기 트랜잭션을 전파하는 제1 노드로서, 상기 트랜잭션은 어카운트 정보, 상기 트랜잭션이 생성된 시각이 표시된 트랜잭션 타임스탬프 및 트랜잭션 고유값을 포함하는 제1 노드; 및 상기 제1 노드로부터 상기 트랜잭션을 수신하는 제2 노드로서, 상기 제2 노드는 상기 어카운트 정보를 통해서 상기 트랜잭션이 현재 처리 어카운트 트랜잭션인지 확인하고, 상기 트랜잭션이 상기 현재 처리 어카운트 트랜잭션인 경우, 상기 트랜잭션 타임스탬프와 현재 시간을 통해서 상기 트랜잭션이 현재 처리 대상 트랜잭션인지를 확인하고, 상기 트랜잭션이 상기 현재 처리 대상 트랜잭션인 경우, 상기 트랜잭션 고유값을 통해서 상기 트랜잭션이 중복 처리 트랜잭션인지를 확인하고, 상기 트랜잭션이 상기 중복 처리 트랜잭션이 아닌 경우, 상기 트랜잭션을 블록에 추가하고, 상기 블록을 상기 제1 및 제2 노드에 저장하는 제2 노드를 포함한다.
또한, 상기 제1 노드로부터 상기 트랜잭션을 수신하고, 상기 블록을 저장하는 제3 노드를 더 포함할 수 있다.
또한, 상기 제2 노드가 상기 트랜잭션이 현재 처리 대상 트랜잭션인지를 확인하는 것은, 상기 트랜잭션 타임 스탬프와 상기 현재 시간을 통해서 상기 트랜잭션이 어느 타임 슬롯에 해당되는지를 판단하되, 상기 타임 슬롯은 시간을 미리 설정된 간격으로 나누어 형성되고, 가장 최근의 타임 슬롯부터 순차적으로 N개의 타임 슬롯만을 현재 처리 대상 타임 슬롯으로 선정하되, 상기 N은 1개 이상의 자연수이고, 상기 트랜잭션이 해당되는 타임 슬롯이 상기 현재 처리 대상 타임 슬롯인지를 확인하는 것을 포함할 수 있다.
또한, 상기 블록은 블록 헤더 및 바디를 포함하고, 상기 블록 헤더는 이전 블록의 해시를 포함하고, 상기 바디는 상기 트랜잭션을 포함할 수 있다.
본 발명은, 타임 슬롯 내에서 트랜잭션 고유값을 확인함으로써, 트랜잭션의 중복 처리에 의한 문제를 방지할 수 있다.
또한, 본 발명은, 타임 슬롯 내에서 트랜잭션을 독립적으로 처리하여 트랜잭션이 분실되는 경우에도 다음 트랜잭션이 대기 없이 처리될 수 있다.
본 발명의 효과는 전술한 효과에 한정되지 않으며, 본 발명의 당업자들은 본 발명의 구성에서 본 발명의 다양한 효과를 쉽게 도출할 수 있다.
도 1은 본 발명의 몇몇 실시예들에 따른 블록 체인 분산 시스템을 설명하기 위한 블록도이다.
도 2는 본 발명의 몇몇 실시예들에 따른 블록 체인 분산 시스템에 적용되는 블록 체인의 트랜잭션 처리 방법을 설명하기 위한 순서도이다.
도 3은 본 발명의 몇몇 실시예들에 따른 블록 체인 분산 시스템의 트랜잭션을 설명하기 위한 개념도이다.
도 4는 본 발명의 몇몇 실시예들에 따른 블록 체인 분산 시스템의 어카운트 정보에 따른 트랜잭션 처리 방법을 설명하기 위한 개념도이다.
도 5는 본 발명의 몇몇 실시예들에 따른 블록 체인 분산 시스템의 어카운트 정보에 따른 트랜잭션 처리 방법을 설명하기 위한 개념도이다.
도 6은 도 2의 현재 처리 대상 트랙잭션인지를 확인하는 단계를 세부적으로 설명하기 위한 순서도이다.
도 7은 타임 슬롯을 설명하기 위한 개념도이다.
도 8은 트랜잭션에서 트랜잭션 타임스탬프를 이용하여 타임 슬롯을 도출하는 것을 설명하기 위한 개념도이다.
도 9는 본 발명의 몇몇 실시예들에 따른 블록 체인 분산 시스템에서 트랜잭션이 분실된 경우의 처리를 설명하기 위한 개념도이다.
도 10은 본 발명의 몇몇 실시예들에 따른 블록 체인 분산 시스템에서 트랜잭션의 타임 슬롯에 따른 처리를 설명하기 위한 개념도이다.
도 11은 본 발명의 몇몇 실시예들에 따른 블록 체인 분산 시스템에서 트랜잭션이 중복되는 경우의 처리를 설명하기 위한 개념도이다.
도 12는 본 발명의 몇몇 실시예들에 따른 블록 체인 분산 시스템의 블록 체인의 구조를 설명하기 위한 개념도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 따라서, 본 명세서의 예 및 실시 예는 본 개시의 범위를 제한하는 것으로 해석되어서는 안된다.
본 명세서에서 사용된 "컴퓨터"는 다음에 따라 데이터를 조작할 수 있는 임의의 기계, 장치, 회로, 구성 요소 또는 모듈, 또는 임의의 기계, 장치, 회로, 구성 요소, 모듈 등의 시스템을 의미한다. 예를 들어, 프로세서, 마이크로 프로세서, 중앙 처리 장치, 범용 컴퓨터, 클라우드, 슈퍼 컴퓨터, 개인용 컴퓨터, 랩톱 컴퓨터, 팜탑 컴퓨터, 모바일 장치, 태블릿 컴퓨터, 노트북 컴퓨터, 데스크탑 컴퓨터, 워크 스테이션 컴퓨터, 서버 등, 또는 프로세서, 마이크로 프로세서, 중앙 처리 장치, 범용 컴퓨터, 슈퍼 컴퓨터, 개인용 컴퓨터, 랩톱 컴퓨터, 팜탑 컴퓨터, 모바일 장치, 태블릿 컴퓨터, 노트북 컴퓨터, 데스크탑 컴퓨터, 워크 스테이션 컴퓨터, 서버 등 을 포함할 수 있다.
본 개시에서 사용되는 "서버"는 클라이언트-서버 아키텍처의 일부로서 연결된 클라이언트들에 대한 서비스를 수행하기위한 적어도 하나의 애플리케이션 및/또는 적어도 하나의 컴퓨터를 포함하는 소프트웨어 및/또는 하드웨어의 임의의 조합을 의미한다. 적어도 하나의 서버 애플리케이션은 예를 들어, 클라이언트로 응답을 다시 전송함으로써 클라이언트로부터의 서비스 요청에 대한 연결을 수락할 수 있는 애플리케이션 프로그램을 포함할 수 있지만, 이에 제한되지는 않는다. 서버는 최소한의 사람의 지시로 장시간 동안 무인 워크로드 하에서 적어도 하나의 애플리케이션을 실행하도록 구성될 수 있습니다. 서버는 복수의 컴퓨터를 포함할 수 있으며, 적어도 하나의 애플리케이션은 워크로드에 따라 컴퓨터들 간에 분할된다. 예를 들어 간단한 로드 중 하나 이상의 응용 프로그램이 단일 컴퓨터에서 실행될 수 있다. 그러나, 로드량이 많은 경우 하나 이상의 응용 프로그램을 실행하려면 여러 대의 컴퓨터가 필요할 수 있다. 서버 또는 해당 컴퓨터가 있는 경우 워크 스테이션으로도 이용할 수 있다.
본 명세서에서 사용되는 "데이터베이스"는 적어도 하나의 애플리케이션 및/또는 적어도 하나의 컴퓨터를 포함하는 소프트웨어 및/또는 하드웨어의 임의의 조합을 의미한다. 데이터베이스는 구조화된 기록 모음 또는 데이터 모델에 따라 구성된 데이터를 포함할 수 있다. 데이터 모델은 예를 들어, 관계형 모델, 계층적 모델, 네트워크 모델 등이 포함될 수 있으며, 위에 적힌 모델들로 제한되지 않는다. 데이터베이스는 기술에서 알려진 대로 데이터베이스 관리 시스템 애플리케이션(DBMS)을 포함할 수 있다. 최소한 하나의 애플리케이션은, 예를 들어, 클라이언트로부터의 서비스 요청에 대한 연결을 수신할 수 있는 애플리케이션 프로그램을 포함할 수 있지만, 이에 한정되는 것은 아니다. 데이터베이스는 최소한의 사람 지시에 의해 장시간 무인으로, 종종 많은 업무량 하에서 적어도 하나의 애플리케이션을 실행하도록 구성될 수 있다.
본 개시에서 사용되는 "통신 링크"는 적어도 2개의 지점들 사이에서 데이터 또는 정보를 전달하는 유무선 매체를 의미한다. 유선 또는 무선 매체는 예를 들어, 금속 도체 링크, 무선 주파수(RF) 통신 링크, 적외선 (IR) 통신 링크, 또는 광 통신 링크 등을 제한없이 포함할 수 있다. RF 통신 링크는 예를 들어 WiFi, WiMAX, IEEE 802.11, DECT, 0G, 1G, 2G, 3G, 4G 또는 5G 셀룰러 표준, 블루투스 등을 포함할 수 있다.
본 개시에서 사용되는 "네트워크"는, 예를 들어, 근거리 통신망 (LAN), 광역 통신망 (WAN), 대도시 통신망 (MAN), 및 개인 영역 네트워크(PAN), 캠퍼스 영역 네트워크, 회사 영역 네트워크, 글로벌 영역 네트워크(GAN), 광대역 영역 네트워크(BAN), 셀룰러 네트워크, 인터넷, 클라우드 네트워크 등, 또는 전술 한 것의 임의의 조합으로써, 무선 및/또는 유선 통신 매체. 이러한 네트워크는 TCP/IP, IRC로 제한되지 않는 다양한 프로토콜을 실행할 수 있다.
본 명세서에서 사용되는 용어 "포함하는", "포함하는" 및 그 변형은, 달리 명시되지 않는 한 "포함하지만 이에 제한되지 않는"을 의미한다.
명시적으로 달리 명시되지 않는 한, 서로 통신하는 장치는 서로 지속적으로 통신할 필요는 없다. 또한, 서로 통신하는 장치는 하나 이상의 중개자를 통해 직접 또는 간접적으로 통신할 수 있다.
프로세스 단계, 방법 단계, 알고리즘 등이 순차적으로 설명될 수 있지만, 이러한 프로세스, 방법 및 알고리즘은 교대 순서대로 동작하도록 구성될 수 있다. 다시 말해서, 설명될 수 있는 임의의 순서 또는 단계 순서는 반드시 단계들이 그 순서로 수행되어야 한다는 요구사항을 나타내는 것은 아니다. 반드시 단계를 순서대로 수행할 요구 사항을 표시하지 않습니다. 본 명세서에 기술된 프로세스, 방법 및 알고리즘의 단계는 임의의 순서로 수행될 수 있다. 또한, 일부 단계들이 동시에 수행될 수 있다.
단일 장치 또는 물품이 본 명세서에 기술될 때, 하나 이상의 장치 또는 물품이 단일 장치 또는 물품 대신 사용될 수 있다. 유사하게, 하나의 장치 또는 물품이 본 명세서에 기술되는 경우, 하나 이상의 장치 또는 물품이 하나의 장치 또는 물품 대신 사용될 수 있다. 장치의 기능 또는 특징은 대안적으로 그러한 기능 또는 특징을 갖는 것으로 명시되지 않은 하나 이상의 다른 장치에 의해 구현될 수 있다.
본 명세서에서 사용되는 "컴퓨터 판독 가능 저장 매체"는 컴퓨터에 의해 판독될 수 있는 데이터 (예를 들어, 명령)를 제공하는데 참여하는 임의의 매체를 의미한다. 이러한 매체는 비휘발성 매체, 휘발성 매체 및 전송 매체를 포함하여 많은 형태를 취할 수 있다. 비휘발성 매체는 예를 들어, 광학 또는 자기 디스크 및 기타 영구 메모리. 휘발성 매체는 동적 랜덤 액세스 메모리 (DRAM)를 포함할 수 있다. 전송 매체는 시스템 버스를 구성하는 와이어를 포함하여 동축 케이블, 구리 와이어 및 광섬유를 포함할 수 있다. 전송 매체는 무선 주파수 (RF) 및 적외선 (IR) 데이터 통신 동안 발생된 것과 같은 음향 파, 광파 및 전자기 방출을 포함하거나 전달할 수 있다. 컴퓨터 판독가능 매체의 일반적인 형태는, 예를 들어 플로피 디스크, 플렉시블 디스크, 하드 디스크, 자기 테이프, 임의의 다른 자기 매체, CD-ROM, DVD, 임의의 다른 광학 매체, 펀치 카드, 종이 테이프, 구멍 패턴을 갖는 임의의 다른 물리적 매체, RAM, PROM, EPROM, FLASH-EEPROM, 기타 메모리 칩 또는 카트리지, 여기에 기술된 반송파 또는 컴퓨터가 읽을 수 있는 기타 매체 등을 포함할 수 있다. 컴퓨터 판독가능 매체에는 "클라우드"가 포함될 수 있으며, 여기에는 여러 대의(예: 수천 대의) 컴퓨터 상에서 여러 대의(예: 수천 대의) 메모리 캐시에 걸쳐 파일을 배포하는 것이 포함된다.
컴퓨터에 명령 시퀀스를 전달하는데 다양한 형태의 컴퓨터 판독 가능 매체가 포함될 수 있다. 예를 들어, 명령 시퀀스 (i)는 RAM에서 프로세서로 전달될 수 있고, (ii) 무선 전송 매체를 통해 전달될 수 있으며, (iii) WiFi, WiMAX, IEEE 802.11, DECT, 0G, 1G, 2G, 3G, 4G 및 5G 셀룰러 표준, 블루투스 등을 포함하여 기타 다양한 형식, 기준 또는 프로토콜에 따라 형식화 될 수 있다.
이하, 도 1 내지 도 12를 참조하여 본 발명의 몇몇 실시예들에 따른 블록 체인 시스템 및 블록 체인의 트랜잭션 처리 방법을 설명한다.
도 1은 본 발명의 몇몇 실시예들에 따른 블록 체인 분산 시스템을 설명하기 위한 블록도이고, 도 2는 본 발명의 몇몇 실시예들에 따른 블록 체인 분산 시스템에 적용되는 블록 체인의 트랜잭션 처리 방법을 설명하기 위한 순서도이다. 도 3은 본 발명의 몇몇 실시예들에 따른 블록 체인 분산 시스템의 트랜잭션을 설명하기 위한 개념도이고, 도 4는 본 발명의 몇몇 실시예들에 따른 블록 체인 분산 시스템의 어카운트 정보에 따른 트랜잭션 처리 방법을 설명하기 위한 개념도이다. 도 5는 본 발명의 몇몇 실시예들에 따른 블록 체인 분산 시스템의 어카운트 정보에 따른 트랜잭션 처리 방법을 설명하기 위한 개념도이고, 도 6은 도 2의 현재 처리 대상 트랙잭션인지를 확인하는 단계를 세부적으로 설명하기 위한 순서도이다. 도 7은 타임 슬롯을 설명하기 위한 개념도이고, 도 8은 트랜잭션에서 트랜잭션 타임스탬프를 이용하여 타임 슬롯을 도출하는 것을 설명하기 위한 개념도이다. 도 9는 본 발명의 몇몇 실시예들에 따른 블록 체인 분산 시스템에서 트랜잭션이 분실된 경우의 처리를 설명하기 위한 개념도이고, 도 10은 본 발명의 몇몇 실시예들에 따른 블록 체인 분산 시스템에서 트랜잭션의 타임 슬롯에 따른 처리를 설명하기 위한 개념도이다. 도 11은 본 발명의 몇몇 실시예들에 따른 블록 체인 분산 시스템에서 트랜잭션이 중복되는 경우의 처리를 설명하기 위한 개념도이고, 도 12는 본 발명의 몇몇 실시예들에 따른 블록 체인 분산 시스템의 블록 체인의 구조를 설명하기 위한 개념도이다.
도 1을 참조하면, 본 발명의 몇몇 실시예들에 따른 블록 체인 분산 시스템(10)은 복수의 노드를 포함할 수 있다. 복수의 노드는 제1 노드(N1), 제2 노드(N2) 및 제3 노드(N3)를 포함할 수 있다. 도 1에서는 총 10개의 노드를 도시하였지만, 이는 예시에 불과할 뿐 노드의 개수가 이에 제한되는 것은 아니다.
각각의 노드는 트랜잭션을 생성하고, 서로 전파할 수 있다. 구체적으로, 제1 노드(N1)가 트랜잭션을 생성한 경우, 제1 노드(N1)는 제2 노드(N2) 및 제3 노드(N3)에 생성한 트랜잭션을 전파할 수 있다. 제1 노드(N1)는 제2 노드(N2) 및 제3 노드(N3) 외에 블록 체인 분산 시스템(10)의 모든 노드로 전송할 수 있다.
제2 노드(N2)는 제1 노드(N1)가 전송한 트랜잭션에 대해서 검증하여 블록에 기록할 수 있다. 제2 노드(N2)는 트랜잭션이 검증되는 경우에는 블록에 기록하여 블록을 생성할 수 있다. 블록은 후보 블록 상태에서 검증된 트랜잭션이 기록되어 블록으로 생성될 수 있다. 제2 노드(N2)는 생성된 블록을 제1 노드(N1) 및 제3 노드(N3)가 포함된 블록 체인 분산 시스템(10)의 모든 노드에 전송할 수 있다. 생성된 블록은 이전 블록의 해시를 포함하여 블록 체인을 형성할 수 있다.
상술한 설명에서는 제1 노드(N1), 제2 노드(N2) 및 제3 노드(N3)가 서로 다른 기능을 수행하는 것으로 설명되었으나, 본 실시예가 이에 제한되는 것은 아니다. 제1 노드(N1)가 트랜잭션을 생성하였듯이, 제2 노드(N2) 및 제3 노드(N3)도 트랜잭션을 생성할 수 있고, 그 외 노드도 당연히 트랜잭션을 생성할 수 있다.
또한, 제2 노드(N2)와 같이 제1 노드(N1) 및 제3 노드(N3)도 트랜잭션을 검증하여 블록에 기록할 수 있다. 즉, 본 발명의 몇몇 실시예들에 따른 블록 체인 분산 시스템(10)의 모든 노드는 각각 언제든지 제1 노드(N1) 및 제2 노드(N2)의 역할을 수행할 수 있되, 개별적인 경우에 서로 다른 특정 노드가 각각의 역할을 수행할 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.
도 2를 참조하면, 트랜잭션을 수신한다(S100).
구체적으로, 도 1 및 도 3을 참조하면, 제1 노드(N1)로부터 제2 노드(N2)는 트랜잭션(Tx)을 수신할 수 있다. 트랜잭션(Tx)은 어카운트 정보(AI), 트랜잭션 타임스탬프(TS) 및 트랜잭션 고유값(HS)을 포함할 수 있다.
어카운트 정보(AI)는 트랜잭션(Tx)이 이루어진 어카운트 즉, 계정에 대한 정보일 수 있다. 트랜잭션(Tx)은 동일한 어카운트에 대해서 순차적으로 처리되어야 하므로, 트랜잭션(Tx)이 어떠한 어카운트에 대한 것인지가 필요할 수 있다.
트랜잭션 타임스탬프(TS)는 트랜잭션(Tx)이 생성된 시점을 포함할 수 있다. 즉, 트랜잭션(Tx)이 t1 시점에 생성된 경우 트랜잭션 타임스탬프(TS)는 t1이 될 수 있다. 트랜잭션 타임스탬프(TS)는 추후에 트랜잭션(Tx)의 타임 슬롯을 결정하는데 필요한 정보일 수 있다.
트랜잭션 고유값(HS)은 각각의 트랜잭션별로 가지는 고유한 값일 수 있다. 예를 들어, 트랜잭션 고유값(HS)은 트랜잭션(Tx)의 데이터에 대한 해시값일 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다. 해시값은 해시함수를 통해서 일정한 크기의 데이터로 도출된 값일 수 있다. 이에 따라서, 트랜잭션 고유값(HS)은 모든 트랜잭션에서 동일한 크기를 가질 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.
다시, 도 2를 참조하면, 트랜잭션이 현재 처리 어카운트 트랜잭션인지를 확인한다(S200). 만일 트랜잭션이 현재 처리 어카운트 트랜잭션이 아닌 경우에는 트랜잭션을 폐기한다(S250).
구체적으로, 도 1 및 도 4를 참조하면, 제2 노드(N2)는 제1 트랜잭션(Tx1), 제2 트랜잭션(Tx2) 및 제3 트랜잭션(Tx3)을 순차적으로 검증하여 처리할 수 있다. 제2 노드(N2)는 트랜잭션이 검증되면 블록에 트랜잭션 고유값을 기록할 수 있다. 도 4에서는 트랜잭션 고유값을 편의상 해시값으로 표시하였다.
제1 트랜잭션(Tx1) 및 제2 트랜잭션(Tx2)은 어카운트 정보가 모두 동일한 A로서 현재 처리 어카운트 트랜잭션에 해당할 수 있다. 이에 반해서, 제3 트랜잭션(Tx3)은 어카운트 정보가 B로서 현재 처리 어카운트 트랜잭션에 해당하지 않을 수 있다.
즉, 블록에 기록되는 트랜잭션은 모두 동일한 어카운트 정보를 가지고 있어야 하므로, 미리 지정된 A의 어카운트 정보를 가진 제1 트랜잭션(Tx1) 및 제2 트랜잭션(Tx2)이 처리되어 그 트랜잭션 고유값이 기록될 수 있다. 이때, 제1 트랜잭션(Tx1) 및 제2 트랜잭션(Tx2)은 제5 타임 슬롯에 해당되므로 제5 타임 슬롯의 고유값 기록(TH_T5)에 제1 트랜잭션(Tx1) 및 제2 트랜잭션(Tx2)의 트랜잭션 고유값이 기록될 수 있다. 제3 트랜잭션(Tx3)은 B의 어카운트 정보를 가지고 있으므로 만일 B의 어카운트 정보가 현재 처리 어카운트로 정의되지 않는 경우에는 현재 처리 어카운트 트랜잭션에 해당되지 않는 경우 처리되지 않고 폐기될 수 있다(S150). 이때, 만일 B의 어카운트 정보가 현재 처리 어카운트로 이미 정의된 경우 당연히 제3 트랜잭션(Tx3)은 폐기되지 않고 처리될 수 있다.
반면, 도 5를 참조하면, 제1 트랜잭션(Tx1), 제2 트랜잭션(Tx2) 및 제3 트랜잭션(Tx3)의 어카운트 정보가 모두 A로 동일하여 제1 트랜잭션(Tx1), 제2 트랜잭션(Tx2) 및 제3 트랜잭션(Tx3)이 모두 현재 처리 어카운트 트랜잭션에 해당할 수 있다. 이러한 경우, 제5 타임 슬롯의 고유값 기록(TH_T5)에 제1 트랜잭션(Tx1) 및 제2 트랜잭션(Tx2)의 트랜잭션 고유값이 기록되고, 제6 타임 슬롯의 고유값 기록(TH_T6)에 제3 트랜잭션(Tx3)의 트랜잭션 고유값이 기록될 수 있다.
타임 슬롯은 최근 N개의 타임 슬롯 만을 현재 처리 대상 타임 슬롯으로 지정할 수 있다. 이때, N은 1이상의 자연수일 수 있다. 도 5에서는, 편의상 N=2인 경우를 도시하였다. 즉, 도 5에서는 현재 시각 기준으로 제5 타임 슬롯 및 제6 타임 슬롯만이 현재 처리 대상 타임 슬롯일 수 있다. 타임 슬롯에 대해서는 추후 더 자세히 설명한다.
다시, 도 2를 참조하면, S200 단계에서 트랜잭션이 현재 처리 어카운트 트랜잭션인 경우, 트랜잭션이 현재 처리 대상 트랜잭션인지를 확인한다(S300). 만일, 트랜잭션이 현재 처리 대상 트랜잭션이 아닌 경우에는 트랜잭션을 폐기한다(S250).
세부적으로, 도 6을 참조하면, 먼저 트랜잭션의 해당 타임 슬롯을 판단한다(S310).
구체적으로, 도 7 및 도 8을 참조하면, 트랜잭션(Tx)은 어카운트 정보(AI), 트랜잭션 타임스탬프(TS) 및 트랜잭션 고유값(HS)을 포함할 수 있다. 이때, 트랜잭션 타임스탬프(TS)는 트랜잭션(Tx)이 생성된 시점을 의미할 수 있다.
타임 슬롯은 시점부터 종점까지의 시간을 특정한 간격으로 나눈 것일 수 있다. 예를 들어, 타임 슬롯은 제1 내지 제9 타임 슬롯(T1~T9)를 포함할 수 있다. 단, 이는 하나의 예시에 불과할 뿐, 본 실시예가 이에 제한되는 것은 아니다.
제1 내지 제9 타임 슬롯(T1~T9)은 시점부터 종점까지의 시간을 제1 간격(a)으로 나눈 것일 수 있다. 이때, 제1 간격(a)은 예를 들어, 5초 내지 10초일 수 있으나, 본 실시예가 이에 제한되는 것은 아니다.
또는, 제1 내지 제9 타임 슬롯(T1~T9)은 시점부터 종점까지의 시간을 미리 설정된 동일하지 않은 간격으로 나눈 것일 수도 있다.
트랜잭션(Tx)의 해당 타임 슬롯은 트랜잭션(Tx)의 트랜잭션 타임스탬프(TS)에 해당되는 타임 슬롯을 의미할 수 있다. 도 7에서는 트랜잭션 타임스탬프(TS)가 t1이므로 제5 타임 슬롯(T5)이 트랜잭션(Tx)의 해당 타임 슬롯일 수 있다. 따라서, 트랜잭션(Tx)은 도 8과 같이 트랜잭션 타임스탬프(TS)를 통해서 트랜잭션(Tx)의 해당 타임 슬롯(TSL)을 도출할 수 있다.
다시, 도 6을 참조하면, 현재 처리 대상 타임 슬롯을 선정한다(S320).
구체적으로, 도 7 및 도 8을 참조하면, 현재 처리 대상 타임 슬롯(TTS)은 현재 시점으로부터 가장 최근의 타임 슬롯부터 N개의 타임 슬롯을 의미할 수 있다. 이때, N은 미리 지정된 값으로 1이상의 자연수일 수 있다.
도 7에서는 편의상 N=2인 경우를 예시로 하였다. 따라서, 현재 시점이 제6 타임 슬롯(T6)의 마지막 부분인 경우 현재 처리 대상 타임 슬롯(TTS)은 제5 타임 슬롯(T5) 및 제6 타임 슬롯(T6)일 수 있다.
다시, 도 6을 참조하면, 해당 타임 슬롯이 현재 처리 대상 타임 슬롯에 포함되는지를 판단한다(S330). 만일, 해당 타임 슬롯이 현재 처리 대상 타임 슬롯에 포함되지 않는 경우 트랜잭션을 폐기한다(S250).
구체적으로, 도 5를 참조하면, N=2인 경우에는 현재 처리 대상 타임 슬롯(TTS)이 제5 타임 슬롯(T5)과 제6 타임 슬롯(T6)이므로 제1 트랜잭션(Tx1), 제2 트랜잭션(Tx2) 및 제3 트랜잭션(Tx3)이 모두 폐기되지 않고 처리될 수 있다. 구체적으로, 제1 트랜잭션(Tx1) 및 제2 트랜잭션(Tx2)은 제5 타임 슬롯(T5)에 해당되고, 제3 트랜잭션(Tx3)은 제6 타임 슬롯(T6)에 해당되므로 각각의 트랜잭션 고유값이 제5 타임 슬롯의 고유값 기록(TH_T5)과 제6 타임 슬롯의 고유값 기록(TH_T6)에 각각 기재될 수 있다. 이때, 제6 타임 슬롯(T6)의 트랜잭션이 먼저 처리되고, 그 이후에 제5 타임 슬롯(T5)의 트랜잭션이 처리되어도 무방하다. 즉, 현재 처리 대상 타임 슬롯(TTS)에만 해당된다면 트랜잭션의 처리에서 타임 슬롯간의 선후는 중요하지 않을 수 있다. 단, 본 실시예는 이에 제한되지 않는다.
도 9를 참조하면, 제2 트랜잭션(Tx2)이 분실되는 경우를 가정할 수 있다. 기존의 블록 체인 시스템의 경우 트랜잭션에 넌스(nonce)나 시퀀스(sequence; seq)와 같은 값이 포함되어 있어, 트랜잭션의 처리에 따라 증가하였다. 이를 통해서, 기존의 블록 체인 시스템은 각 트랜잭션의 처리 순서를 확정할 수 있었다. 다만, 기존의 블록 체인 시스템은 어느 하나의 트랜잭션이 분실되는 경우에는 그 다음 순서의 트랜잭션이 처리되지 못하고 무한정 대기하는 문제가 발생할 수 있었다. 이는 처리 순서가 시퀀스 순서에 종속된 것에 기인할 수 있다. 즉, 도 9와 같이 제2 트랜잭션(Tx2)이 분실되는 경우에는 기존의 블록 체인 시스템은 시퀀스와 같은 값에 의해서 제3 트랜잭션(Tx3)은 처리되지 못할 수 있었다.
이에 반해서, 본 발명의 몇몇 실시예들에 따른 블록 체인 분산 시스템은 제2 트랜잭션(Tx2)이 분실되는 경우에도 시퀀스 또는 넌스와 같은 값이 따로 존재하지 않으므로, 제3 트랜잭션(Tx3)이 대기하지 않고 바로 처리될 수 있다. 즉, 제3 트랜잭션(Tx3)은 타임 슬롯이 제6 타임 슬롯(T6)에 해당되므로, 제6 타임 슬롯의 고유값 기록(TH_T6)에 제3 트랜잭션(Tx3)의 트랜잭션 고유값을 기록할 수 있다.
도 10을 참조하면, 제4 트랜잭션(Tx4)이 제4 타임 슬롯(T4)에 해당하는 경우를 가정할 수 있다. 제4 타임 슬롯의 고유값 기록(TH_T4)은 이미 yz로 기록된 상태에서 제1 트랜잭션(Tx1) 및 제2 트랜잭션(Tx2)에 의해서 제5 타임 슬롯의 고유값 기록(TH_T5)이 ab, bc로 기록되고, 제6 타임 슬롯의 고유값 기록(TH_T6)이 cd로 기록될 수 있다.
이때, 제4 트랜잭션(Tx4)은 제4 타임 슬롯(T4)에 해당하므로 현재 처리 대상 타임 슬롯(TTS)에 포함되지 않을 수 있다. 즉, N=2이면, 현재 처리 대상 타임 슬롯(TTS)은 제5 타임 슬롯(T5) 및 제6 타임 슬롯(T6)뿐일 수 있다. 따라서, 제4 트랜잭션(Tx4)은 처리되지 않고 폐기될 수 있다.
이를 통해서, 본 발명의 몇몇 실시예들에 따른 블록 체인 분산 시스템은 제2 노드(N2)가 독립적으로 다른 노드의 판정과 상관없이 타임아웃된 트랜잭션을 판단할 수 있다. 즉, 기존의 블록 체인 시스템에서는 트랜잭션이 순차적으로 처리됨에 따라서 트랜잭션의 검증이 모든 노드에서 끝난 이후에 그 다음 트랜잭션을 판단할 수 있었지만, 본 실시예의 경우 해당 타임 슬롯(TSL)이 현재 처리 대상 타임 슬롯(TTS)에 포함되지만 않으면 확정적으로 트랜잭션(Tx)이 폐기처리될 수 있다. 이를 통해서, 블록 체인 분산 시스템(10)의 리소스를 최소화한 상태로 트랜잭션을 판단할 수 있다.
다시, 도 2를 참조하면, S300 단계에서 트랜잭션이 현재 처리 대상 트랜잭션인 경우, 트랜잭션이 중복 처리 트랜잭션인지를 확인한다(S400). 즉, 도 6의 S330 단계에서 해당 타임 슬롯이 현재 처리 대상 타임 슬롯에 포함되는 경우, 트랜잭션이 중복 처리 트랜잭션인지를 확인한다(S400). 만일, 트랜잭션이 중복 처리 트랜잭션에 해당되는 경우 트랜잭션을 폐기한다(S250).
구체적으로, 도 11을 참조하면, 제4 트랜잭션(Tx4)은 어카운트 정보도 A라서 현재 처리 어카운트 트랜잭션이고, 타임 슬롯도 제6 타임 슬롯(T6)이어서 현재 처리 대상 트랜잭션일 수 있다. 다만, 제6 타임 슬롯의 고유값 기록(TH_T6)에 기록된 트랜잭션 고유값이 cd로 이미 기록되어 있는데, 동일한 cd가 제4 트랜잭션(Tx4)의 트랜잭션 고유값이므로 제4 트랜잭션(Tx4)은 중복 처리 트랜잭션에 해당할 수 있다. 중복 처리 트랜잭션에 해당되는지는 동일한 타임 슬롯 내에서만 판단하고, 다른 타임 슬롯 간에는 판단하지 않을 수 있다. 이를 통해서, 서로 동일 시점에 생성되지 않고 트랜잭션 고유값이 우연히 같은 경우는 트랜잭션을 폐기하지 않을 수 있다.
기존의 블록 체인 시스템 중에는 시퀀스가 있어서 트랜잭션이 분실되는 경우 무한정 대기하는 문제를 방지하기 위해서 시퀀스가 없어 트랜잭션 분실에도 다음 트랜잭션이 바로 처리될 수 있는 시스템이 존재하였다. 그러나, 이러한 기존의 블록 체인 시스템은 동일한 트랜잭션이 중복해서 처리될 수 있었다.
이에 반해서, 본 발명의 몇몇 실시예들에 따른 블록 체인 분산 시스템은 타임 슬롯을 이용하여 시퀀스가 없더라도 일정한 순서대로 트랜잭션이 처리될 수 있고, 중간에 트랜잭션이 분실되어도 다음 트랜잭션이 대기하지 않을 수 있음과 동시에, 타임 슬롯 별로 트랜잭션 고유값의 동일성을 판단해서 중복된 트랜잭션이 처리되는 것을 방지할 수 있다.
따라서, 본 실시예는 트랜잭션의 분실에 의한 문제와, 중복 처리 문제를 동시에 방지할 수 있다. 나아가, 본 실시예는 각각의 노드에서 타임 아웃된 트랜잭션을 외부의 검증 판단 없이 확정적으로 알 수 있어 리소스를 절약할 수 있다. 또한, 본 실시예는 시퀀스 및 넌스의 연산 자체가 필요없어 이에 대한 리소스도 절약할 수 있다.
다시, 도 2를 참조하면, S500 단계에서 트랜잭션이 중복 처리 트랜잭션이 아닌 경우, 트랜잭션을 블록에 기록한다(S500).
구체적으로, 도 12를 참조하면, 블록은 이전의 블록과 연결되어 블록 체인을 형성할 수 있다. 예를 들어, 블록 체인은 제1 블록(B1), 제2 블록(B2) 및 제3 블록(B3)을 포함할 수 있다. 도 12에는 3개의 블록만이 도시되었지만, 본 실시예가 이에 제한되는 것은 아니다. 즉, 본 실시예의 블록의 개수는 얼마든지 달라질 수 있다.
이때, 제1 블록(B1), 제2 블록(B2) 및 제3 블록(B3)의 구조는 서로 동일할 수 있다. 편의상, 이하 제1 블록(B1)의 구조를 설명한다.
제1 블록(B1)은 제1 블록 헤더(B1_H) 및 제1 바디를 포함할 수 있다. 제1 블록 헤더(B1_H)는 제1 이전 블록 해시(Prev_H1) 및 제1 루트 해시(Root_H1)를 포함할 수 있다. 제1 바디는 제1_1 내지 제1_4 트랜잭션(TX1_1~TX1_4)을 포함할 수 있다. 제1_1 내지 제1_4 트랜잭션(TX1_1~TX1_4) 각각은 상기 블록에 기록되는 트랜잭션에 대응할 수 있다.
제1 이전 블록 해시(Prev_H1)는 이전의 블록에 대한 해시값일 수 있다. 이를 통해서 제1 블록(B1)이 이전의 블록과 연관되어 블록 체인을 형성할 수 있다. 유사하게 제2 블록(B2)도 제1 블록(B1)을 포함한 이전 블록의 해시를 제2 블록 헤더(B2_H)에 포함하고, 제3 블록(B3)도 제1 블록(B1) 및 제2 블록(B2)을 포함한 이전 블록의 해시를 제3 블록 헤더(B3_H)에 포함할 수 있다.
제1 루트 해시(Root_H1)는 제1 블록(B1)의 제1 바디에 기록된 제1_1 내지 제1_4 트랜잭션(TX1_1~TX1_4)의 고유값의 해시값으로 도출될 수 있다. 즉, 제1_1 내지 제1_4 트랜잭션(TX1_1~TX1_4)은 각각 해시값으로 제1_1 내지 제1_4 트랜잭션 고유값(HS1_1~HS1_4)을 도출할 수 있다. 도 12에서는 하나의 블록 당 4개의 트랜잭션만을 도시하였지만, 이는 예시에 불과하고, 본 실시예가 이에 제한되는 것은 아니다.
제1_1 내지 제1_4 트랜잭션 고유값(HS1_1~HS1_4)을 통해서 제1_12 및 제1_34 트랜잭션 해시(HS1_12, HS1_34)가 도출될 수 있다. 제1_12 및 제1_34 트랜잭션 해시(HS1_12, HS1_34)를 통해서 최종적으로 제1 루트 해시(Root_H1)를 도출할 수 있다.
도 12에서는 제1 루트 해시(Root_H1)가 머클 트리 방식으로 2개씩 짝지어 해시값을 도출시키지만, 본 실시예가 이에 제한되는 것은 아니다. 즉, 본 실시예는 2개 이상의 해시값이 짝지어져 상위 해시값을 도출하는 방식도 가능할 수 있다.
제2 블록(B2)도 제1 블록(B1)과 유사하게 제2 블록 헤더(B2_H) 및 제2 바디를 포함하고, 제2 바디는 제2_1 내지 제2_4 트랜잭션(TX2_1~TX2_4)를 포함할 수 있다. 제2 블록 헤더(B2_H)는 제2 이전 블록 해시(Prev_H2)와 제2 루트 해시(Root_H2)를 포함할 수 있다. 제2 루트 해시(Root_H2)는 제2_1 내지 제2_4 트랜잭션 고유값(HS2_1~HS2_4)을 이용하여 도출된 제2_12 및 제2_34 트랜잭션 해시(HS2_12, HS2_34)를 통해 도출될 수 있다.
제3 블록(B3)도 제1 블록(B1) 및 제2 블록(B2)과 유사하게 제3 블록 헤더(B3_H) 및 제3 바디를 포함하고, 제3 바디는 제3_1 내지 제3_4 트랜잭션(TX3_1~TX3_4)를 포함할 수 있다. 제3 블록 헤더(B3_H)는 제3 이전 블록 해시(Prev_H3)와 제3 루트 해시(Root_H3)를 포함할 수 있다. 제3 루트 해시(Root_H3)는 제3_1 내지 제3_4 트랜잭션 고유값(HS3_1~HS3_4)을 이용하여 도출된 제3_12 및 제3_34 트랜잭션 해시(HS3_12, HS3_34)를 통해 도출될 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
10: 블록 체인 분산 시스템
N1, N2, N3: 노드

Claims (10)

  1. 제1 노드가 제2 노드로부터 트랜잭션을 수신하되, 상기 트랜잭션은 어카운트 정보, 상기 트랜잭션이 생성된 시각이 표시된 트랜잭션 타임스탬프 및 트랜잭션 고유값을 포함하고, 상기 트랜잭션은 트랜잭션의 처리에 따라 증가하는 값을 포함하지 않고, 블록체인 분산 시스템은 상기 제1 노드 및 제2 노드를 포함하고,
    상기 제1 노드가 상기 제2 노드의 판정과 상관 없이,
    상기 어카운트 정보를 통해서 상기 트랜잭션이 현재 처리 어카운트 트랜잭션인지 확인하고,
    상기 트랜잭션이 상기 현재 처리 어카운트 트랜잭션인 경우, 상기 트랜잭션 타임스탬프와 현재 시간을 통해서 상기 트랜잭션이 현재 처리 대상 트랜잭션인지를 확인하되, 상기 트랜잭션 고유값은 상기 트랜잭션의 데이터에 대한 해시값이고,
    상기 트랜잭션이 상기 현재 처리 대상 트랜잭션인 경우, 상기 트랜잭션 고유값을 통해서 상기 트랜잭션이 중복 처리 트랜잭션인지를 확인하고,
    상기 트랜잭션이 상기 중복 처리 트랜잭션이 아닌 경우, 상기 트랜잭션을 블록에 기록하고,
    상기 제1 및 제2 노드가 상기 블록을 저장하는 것을 포함하고,
    상기 제1 노드가 상기 트랜잭션이 현재 처리 대상 트랜잭션인지를 확인하는 것은,
    상기 트랜잭션의 이전 트랜잭션의 트랜잭션 타임스탬프는 고려하지 않고,
    상기 트랜잭션 타임스탬프와 상기 현재 시간을 통해서 상기 트랜잭션의 해당 타임 슬롯을 도출하되, 상기 해당 타임 슬롯은 시간을 미리 설정된 간격으로 나누어 형성되는 복수의 타임 슬롯 중 상기 현재 시간이 해당되는 타임 슬롯이고,
    가장 최근의 타임 슬롯부터 순차적으로 N개의 타임 슬롯만을 현재 처리 대상 타임 슬롯으로 선정하되, 상기 N은 1 이상의 자연수이고,
    상기 트랜잭션이 해당되는 타임 슬롯이 상기 현재 처리 대상 타임 슬롯인지를 확인하는 것을 포함하는 블록 체인의 트랜잭션 처리 방법.
  2. 삭제
  3. 제1 항에 있어서,
    상기 미리 설정된 간격은 일정한 블록 체인의 트랜잭션 처리 방법.
  4. 삭제
  5. 제1 항에 있어서,
    상기 블록은 블록 헤더 및 바디를 포함하고,
    상기 블록 헤더는 이전 블록의 해시를 포함하고,
    상기 바디는 상기 트랜잭션을 포함하는 블록 체인의 트랜잭션 처리 방법.
  6. 제5 항에 있어서,
    상기 블록 헤더는 상기 트랜잭션 고유값의 해시값으로 도출된 루트 해시를 포함하는 블록 체인의 트랜잭션 처리 방법.
  7. 트랜잭션의 처리에 따라 증가하는 값을 포함하지 않는 트랜잭션을 생성하고, 상기 트랜잭션을 전파하는 제1 노드로서, 상기 트랜잭션은 어카운트 정보, 상기 트랜잭션이 생성된 시각이 표시된 트랜잭션 타임스탬프 및 트랜잭션 고유값을 포함하는 제1 노드; 및
    상기 제1 노드로부터 상기 트랜잭션을 수신하는 제2 노드로서,
    상기 제2 노드는 상기 어카운트 정보를 통해서 상기 트랜잭션이 현재 처리 어카운트 트랜잭션인지 확인하고,
    상기 트랜잭션이 상기 현재 처리 어카운트 트랜잭션인 경우, 상기 트랜잭션 타임스탬프와 현재 시간을 통해서 상기 트랜잭션이 현재 처리 대상 트랜잭션인지를 확인하고,
    상기 트랜잭션이 상기 현재 처리 대상 트랜잭션인 경우, 상기 트랜잭션 고유값을 통해서 상기 트랜잭션이 중복 처리 트랜잭션인지를 확인하되, 상기 트랜잭션 고유값은 상기 트랜잭션의 데이터에 대한 해시값이고,
    상기 트랜잭션이 상기 중복 처리 트랜잭션이 아닌 경우, 상기 트랜잭션을 블록에 추가하고,
    상기 제1 및 제2 노드가 상기 블록을 저장하는 것을 포함하고,
    상기 제2 노드가 상기 트랜잭션이 현재 처리 대상 트랜잭션인지를 확인하는 것은,
    상기 트랜잭션의 이전 트랜잭션의 트랜잭션 타임스탬프는 고려하지 않고,
    상기 트랜잭션 타임스탬프와 상기 현재 시간을 통해서 상기 트랜잭션이 어느 타임 슬롯에 해당되는지를 판단하되, 상기 타임 슬롯은 시간을 미리 설정된 간격으로 나누어 형성되고,
    가장 최근의 타임 슬롯부터 순차적으로 N개의 타임 슬롯만을 현재 처리 대상 타임 슬롯으로 선정하되, 상기 N은 1개 이상의 자연수이고,
    상기 트랜잭션이 해당되는 타임 슬롯이 상기 현재 처리 대상 타임 슬롯인지를 확인하는 것을 포함하는 블록 체인 분산 시스템.
  8. 제7 항에 있어서,
    상기 제1 노드로부터 상기 트랜잭션을 수신하고, 상기 블록을 저장하는 제3 노드를 더 포함하는 블록 체인 분산 시스템.
  9. 삭제
  10. 제7 항에 있어서,
    상기 블록은 블록 헤더 및 바디를 포함하고,
    상기 블록 헤더는 이전 블록의 해시를 포함하고,
    상기 바디는 상기 트랜잭션을 포함하는 블록 체인 분산 시스템.

KR1020200029368A 2020-03-10 2020-03-10 블록 체인 분산 시스템 및 블록 체인의 트랜잭션 처리 방법 KR102392980B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200029368A KR102392980B1 (ko) 2020-03-10 2020-03-10 블록 체인 분산 시스템 및 블록 체인의 트랜잭션 처리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200029368A KR102392980B1 (ko) 2020-03-10 2020-03-10 블록 체인 분산 시스템 및 블록 체인의 트랜잭션 처리 방법

Publications (2)

Publication Number Publication Date
KR20210114127A KR20210114127A (ko) 2021-09-23
KR102392980B1 true KR102392980B1 (ko) 2022-05-03

Family

ID=77926336

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200029368A KR102392980B1 (ko) 2020-03-10 2020-03-10 블록 체인 분산 시스템 및 블록 체인의 트랜잭션 처리 방법

Country Status (1)

Country Link
KR (1) KR102392980B1 (ko)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101962686B1 (ko) * 2017-08-30 2019-03-27 세종대학교산학협력단 전자 투표 시스템 및 방법
KR102053630B1 (ko) * 2018-03-13 2020-01-22 주식회사 웨이투빗 블록체인을 이용한 트랜잭션 처리 방법 및 이를 이용한 트랜잭션 관리 서버

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
‘이더리움 2.0’, Medium(2019.11.18. 게재)*
‘차세대 스마트 컨트랙트와 탈중앙화된 어플리케이션 플랫폼’, Btrade(2018.05.04. 게재)*

Also Published As

Publication number Publication date
KR20210114127A (ko) 2021-09-23

Similar Documents

Publication Publication Date Title
CN105247529B (zh) 在目录服务之间同步凭证散列
JP2022529967A (ja) ブロックチェーン・ネットワークからのデータの抽出
KR20210002574A (ko) 데이터 백업 방법, 저장 매체 및 컴퓨팅 기기
US7693882B2 (en) Replicating data across the nodes in a cluster environment
EP0992901B1 (en) Enhanced two phase commit protocol
KR20180055952A (ko) 데이터베이스 관리 시스템에서의 데이터 복제 기법
US20120278429A1 (en) Cluster system, synchronization controlling method, server, and synchronization controlling program
US20230052935A1 (en) Asynchronous accounting method and apparatus for blockchain, medium and electronic device
CN115186304B (zh) 一种基于区块链的交易数据校验方法和系统
CN109144785A (zh) 用于备份数据的方法和装置
CN109951546A (zh) 基于智能合约的事务请求处理方法、装置、设备和介质
CN112084206A (zh) 数据库的事务请求处理方法、相关设备及存储介质
WO2021008400A1 (zh) 基于区块链的数据批量处理方法、装置、设备及存储介质
CN111338834B (zh) 数据存储方法和装置
CN113792885A (zh) 一种深度学习训练的执行方法及相关装置
US8141103B2 (en) Solution for modifying a queue manager to support smart aliasing which permits extensible software to execute against queued data without application modifications
KR102392980B1 (ko) 블록 체인 분산 시스템 및 블록 체인의 트랜잭션 처리 방법
EP3349416B1 (en) Relationship chain processing method and system, and storage medium
CN114006946B (zh) 同质资源请求的处理方法、装置、设备及存储介质
KR102386922B1 (ko) 블록 체인 시스템
CN113645309A (zh) 多客户端数据差异化二次缓存及同步的处理方法及系统
CN113987062A (zh) 一种数据上链存储方法、系统、装置以及存储介质
CN102368268B (zh) 一种实现多元数据一致性的方法
KR102390060B1 (ko) 긴급한 데이터 전송을 위한 경량화 블록체인 제공 방법 및 장치
US11729162B2 (en) Data center cable security

Legal Events

Date Code Title Description
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant