KR20210097560A - 블록체인 트랜잭션 처리 방법 - Google Patents

블록체인 트랜잭션 처리 방법 Download PDF

Info

Publication number
KR20210097560A
KR20210097560A KR1020200011404A KR20200011404A KR20210097560A KR 20210097560 A KR20210097560 A KR 20210097560A KR 1020200011404 A KR1020200011404 A KR 1020200011404A KR 20200011404 A KR20200011404 A KR 20200011404A KR 20210097560 A KR20210097560 A KR 20210097560A
Authority
KR
South Korea
Prior art keywords
transaction
shard
processing method
execution
client node
Prior art date
Application number
KR1020200011404A
Other languages
English (en)
Inventor
하수진
Original Assignee
에스케이텔레콤 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이텔레콤 주식회사 filed Critical 에스케이텔레콤 주식회사
Priority to KR1020200011404A priority Critical patent/KR20210097560A/ko
Publication of KR20210097560A publication Critical patent/KR20210097560A/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
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • 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/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • 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
    • 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/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • H04L2209/38

Landscapes

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

Abstract

개시된 블록체인 네트워크를 구성하는 노드에 의해 수행되는 트랜잭션(Transaction) 처리 방법은, 클라이언트 노드에 의한 트랜잭션의 실행 요청에 따라 트랜잭션의 실행 여부를 블록체인 네트워크를 구성하는 샤드(Shard) 내에서 투표하여 기설정된 합의(consensus) 알고리즘을 수행하는 단계와, 샤드 내에서 트랜잭션에 대한 합의의 성립이 확인되면 트랜잭션을 실행한 후에 트랜잭션의 실행에 대한 성공 또는 실패 여부를 응답하는 단계와, 클라이언트 노드에 의하여 커밋(commit)이 요청되면, 트랜잭션을 실행한 결과값을 원장(Ledger)에 반영하는 단계를 포함한다.

Description

블록체인 트랜잭션 처리 방법{BLOCK CHAIN TRANSACTION PROCESSING METHOD}
본 발명은 블록체인(Block chain) 네트워크를 구성하는 노드(Node)가 블록체인 트랜잭션(Transaction)을 처리하는 방법에 관한 것이다.
주지하고 있는 바와 같이, 블록체인 네트워크는 수많은 블록체인 노드가 P2P(Peer to Peer) 네트워크로 연결되고, 탈중앙 애플리케이션들이 전송하는 트랜잭션을 블록체인 노드들이 수신하며, 블록체인 노드들은 해당 트랜잭션들을 처리하여 그 결과를 블록에 저장하는 일종의 분산 원장 시스템(Distributed Ledger System)이라고 볼 수 있다. 이러한 분산 원장에 한 번 기록된 내용은 변경이 거의 불가능하다는 특징을 가진다.
이처럼, 블록체인은 P2P 네트워크를 기반으로 트랜잭션을 분산 저장하는데, 트랜잭션이 증가할수록 개별 노드들은 저장 용량뿐만 아니라 트랜잭션 처리 속도에서 한계를 가질 수 있고, 블록체인의 대용량 데이터를 처리하기 위하여 샤딩(sharding)이 제안되었다. 샤딩은 데이터베이스에서 데이터를 파티션하여 샤드에 분산 저장함으로써 확장성을 확보한다. 샤딩을 통해 샤드 개수만큼 동시에 블록을 생성하여 관리할 수 있고, 블록체인의 크기를 샤드별로 작게 유지할 수 있다.
공개특허공보 제10-2019-0067581호, 공개일자 2019년 06월 17일.
일 실시예에 따르면, 복수의 샤드에 저장된 데이터에 접근해야 하는 트랜잭션, 즉 크로스-샤드 트랜잭션(Cross-shard transaction)을 효율적으로 처리할 수 있는 블록체인 트랜잭션 처리 방법을 제공한다.
본 발명의 해결하고자 하는 과제는 이상에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또 다른 해결하고자 하는 과제는 아래의 기재로부터 본 발명이 속하는 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
제 1 관점에 따라 블록체인 네트워크를 구성하는 샤드에 포함된 노드에 의해 수행되는 트랜잭션 처리 방법은, 클라이언트 노드에 의한 트랜잭션의 실행 요청에 따라 상기 트랜잭션의 실행 여부를 투표하여 기설정된 합의 알고리즘을 수행하는 단계와, 상기 트랜잭션에 대한 합의의 성립이 확인되면 상기 트랜잭션을 실행한 후에 상기 트랜잭션의 실행에 대한 성공 또는 실패 여부를 응답하는 단계와, 상기 클라이언트 노드에 의하여 커밋이 요청되면, 상기 트랜잭션을 실행한 결과값을 원장(Ledger)에 반영하는 단계를 포함한다.
제 2 관점에 따라 컴퓨터 프로그램을 저장하고 있는 컴퓨터 판독 가능 기록매체의 상기 컴퓨터 프로그램은, 상기 블록체인 트랜잭션 처리 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함한다.
본 발명의 실시예에 의하면, 복수의 샤드에 저장된 데이터에 접근해야 하는 트랜잭션, 즉 크로스-샤드 트랜잭션을 처리함에 있어서 오브젝트 버저닝(Object Versioning)을 이용하여 잠금(Lock) 처리 없이 처리할 수 있다. 그러므로, 잠금 처리로 인한 오버헤드(overhead)를 유발하지 않고 효율적으로 처리할 수 있다.
도 1은 본 발명의 실시예에 따른 트랜잭션 처리 방법을 수행할 수 있는 블록체인 노드를 포함하는 블록체인 네트워크의 구성도이다.
도 2는 도 1에 도시된 클라이언트 노드에서 수행하는 트랜잭션 처리 방법을 설명하기 위한 흐름도이다.
도 3은 도 1에 도시된 샤드들에서 수행하는 트랜잭션 처리 방법을 설명하기 위한 흐름도이다.
도 4는 본 발명의 실시예에 따라 트랜잭션 실행이 성공일 때의 분산 원장의 기록 과정을 예시한 도면이다.
도 5는 본 발명의 실시예에 따라 트랜잭션 실행이 실패일 때의 분산 원장의 기록 과정을 예시한 도면이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명의 범주는 청구항에 의해 정의될 뿐이다.
본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명은 본 발명의 실시예들을 설명함에 있어 실제로 필요한 경우 외에는 생략될 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
본 명세서에서 단수의 표현은 문맥상 명백하게 다름을 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, '포함하다' 또는 '구성하다' 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 본 발명의 실시 예에서, 어떤 부분이 다른 부분과 연결되어 있다고 할 때, 이는 직접적인 연결뿐 아니라, 다른 매체를 통한 간접적인 연결의 경우도 포함한다. 또한 어떤 부분이 어떤 구성 요소를 포함한다는 의미는, 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있다는 것을 의미한다.
도 1은 본 발명의 실시예에 따른 트랜잭션 처리 방법을 수행할 수 있는 블록체인 노드를 포함하는 블록체인 네트워크의 구성도이다.
도 1을 참조하면, 실시예에 따른 블록체인 네트워크(100)는 클라이언트 노드(110)에 의하여 생성된 트랜잭션을 처리할 수 있는 복수의 샤드(120, 130)를 포함할 수 있다. 예를 들어, 샤드1(120)과 샤드2(130)는 도메인 등을 기초로 구분하여 지역별로 운용될 수 있다. 도 1에는 샤드1(120)과 샤드2(130)를 포함하는 경우를 예시하였으나 샤드의 개수는 한정되지 않는다. 샤드1(120)과 샤드2(130)는 P2P 분산 네트워크를 구성하는 복수의 블록체인 노드를 포함할 수 있다. 도 1에는 샤드1(120)에 포함된 블록체인 노드(121)를 대표적으로 나타내었으며, 샤드2(130)에 포함된 블록체인 노드(131)를 대표적으로 나타내었다. 클라이언트 노드(110) 및 블록체인 노드(121, 131)는 블록체인 네트워크(100)에 연결된 모든 컴퓨팅 장치를 의미할 수 있다.
클라이언트 노드(110)는 통신부(111) 및 제어부(112)를 포함할 수 있다. 예를 들어, 제어부(112)는 마이크로프로세서(Microprocessor)를 포함하여 구현될 수 있다.
클라이언트 노드(110)의 통신부(111)는 트랜잭션의 처리에 연관된 복수의 샤드(120, 130) 내의 블록체인 노드들(121, 131)에 대하여 제어부(112)의 제어에 따라 통신을 수행할 수 있다.
클라이언트 노드(110)의 제어부(112)는 통신부(111)를 제어할 수 있다. 제어부(112)는 통신부(111)를 통하여 복수의 샤드(120, 130)에게 각각 트랜잭션의 실행을 요청할 수 있고, 복수의 샤드(120, 130)로부터 통신부(111)를 통하여 트랜잭션의 실행 결과를 응답으로 받을 수 있다. 제어부(112)는 응답에 기초하여 복수의 샤드(120, 130)에 의한 트랜잭션에 대한 합의(consensus)의 성립 여부와 트랜잭션의 실행에 대한 성공 또는 실패 여부를 확인할 수 있다. 예를 들어, 제어부(112)는 복수의 샤드(120, 130)에 의한 사인(signature)을 체크하여 합의의 성립을 확인할 수 있다. 제어부(112)는 복수의 샤드(120, 130)에 의한 합의의 성립 및 트랜잭션의 실행 성공이 확인되면, 복수의 샤드(120, 130)에게 통신부(111)를 통하여 커밋(commit)을 요청할 수 있다.
샤드1(120)에 포함된 블록체인 노드(121)는 통신부(121a) 및 제어부(121b)를 포함할 수 있고, 샤드2(130)에 포함된 블록체인 노드(131)는 통신부(131a) 및 제어부(131b)를 포함할 수 있다. 예를 들어, 제어부들(121b, 131b)은 마이크로프로세서를 포함하여 구현될 수 있다.
통신부(121a)와 통신부(131a)는 동일한 기능을 수행할 수 있고, 제어부(121b)와 제어부(131b)는 동일한 기능을 수행할 수 있다. 이에, 샤드1(120)에 포함된 블록체인 노드(121)에 포함되는 통신부(121a) 및 제어부(121b)의 기능을 대표적으로 살펴보기로 한다.
블록체인 노드(121)의 통신부(121a)는 블록체인 네트워크(100)를 구성하는 클라이언트 노드(110)에 대하여 제어부(121b)의 제어에 따라 통신을 수행할 수 있다.
블록체인 노드(121)의 제어부(121b)는 통신부(121a)를 제어할 수 있다. 제어부(121b)는 클라이언트 노드(110)에 의한 트랜잭션의 실행 요청에 따라 트랜잭션의 실행 여부를 샤드1(120) 내에서 투표하여 기설정된 합의 알고리즘을 수행할 수 있다. 제어부(121b)는 기설정된 합의 알고리즘에 따라 샤드1(120) 내에서 트랜잭션에 대한 합의의 성립이 확인되면 트랜잭션을 실행한 후에 트랜잭션의 실행에 대한 성공 또는 실패 여부를 통신부(121a)를 통하여 응답할 수 있다. 제어부(121b)는 클라이언트 노드(110)에 의하여 통신부(121a)를 통하여 커밋이 요청되면, 트랜잭션을 실행한 결과값을 원장(Ledger)에 반영할 수 있다. 예를 들어, 제어부(121b)는 해당 오브젝트(Object)의 버전(Version)을 확인한 후 현재 버전을 이전 버전과 함께 원장에 보관할 수 있다.
도 2는 도 1에 도시된 클라이언트 노드에서 수행하는 트랜잭션 처리 방법을 설명하기 위한 흐름도이다.
도 2를 참조하면, 클라이언트 노드에서 수행하는 트랜잭션 처리 방법은 트랜잭션의 처리에 연관된 복수의 샤드에게 각각 트랜잭션의 실행을 요청하는 단계(S210)를 포함할 수 있다. 그리고, 클라이언트 노드에서 수행하는 트랜잭션 처리 방법은 복수의 샤드로부터 트랜잭션의 실행 결과를 응답으로 받는 단계(S220)를 더 포함할 수 있다. 그리고, 클라이언트 노드에서 수행하는 트랜잭션 처리 방법은 응답에 기초하여 복수의 샤드에 의한 트랜잭션에 대한 합의의 성립 여부와 트랜잭션의 실행에 대한 성공 또는 실패 여부를 확인하는 단계(S230, S240)를 더 포함할 수 있다. 그리고, 클라이언트 노드에서 수행하는 트랜잭션 처리 방법은 복수의 샤드에 의한 합의의 성립 및 트랜잭션의 실행 성공이 확인되면, 복수의 샤드에게 커밋(commit)을 요청하는 단계(S250)를 더 포함할 수 있다.
도 3은 도 1에 도시된 샤드들에서 수행하는 트랜잭션 처리 방법을 설명하기 위한 흐름도이다.
도 3을 참조하면, 샤드에 포함되는 블록체인 노드에서 수행하는 트랜잭션 처리 방법은 클라이언트 노드에 의한 트랜잭션의 실행 요청에 따라 트랜잭션의 실행 여부를 블록체인 네트워크를 구성하는 샤드 내에서 투표하여 기설정된 합의 알고리즘을 수행하는 단계(S310)를 포함할 수 있다. 그리고, 샤드에 포함되는 블록체인 노드에서 수행하는 트랜잭션 처리 방법은 샤드 내에서 트랜잭션에 대한 합의의 성립이 확인되면 트랜잭션을 실행한 후에 트랜잭션의 실행에 대한 성공 또는 실패 여부를 응답하는 단계(S320, S330)를 더 포함할 수 있다. 그리고, 샤드에 포함되는 블록체인 노드에서 수행하는 트랜잭션 처리 방법은 샤드 내에서 트랜잭션에 대한 합의가 성립되지 않은 것이 확인되면 합의 미성립을 응답하는 단계(S340)를 더 포함할 수 있다. 그리고, 샤드에 포함되는 블록체인 노드에서 수행하는 트랜잭션 처리 방법은 클라이언트 노드에 의하여 커밋이 요청되면, 트랜잭션을 실행한 결과값을 원장에 반영하는 단계(S350, S360)를 더 포함할 수 있다.
도 4는 본 발명의 실시예에 따라 트랜잭션 실행이 성공일 때의 분산 원장의 기록 과정을 예시한 도면이고, 도 5는 본 발명의 실시예에 따라 트랜잭션 실행이 실패일 때의 분산 원장의 기록 과정을 예시한 도면이다.
이하, 도 1 내지 도 5를 참조하여 블록체인 네트워크(100)에서 클라이언트 노드(110)에 의하여 생성된 트랜잭션을 복수의 샤드(120, 130)가 처리하는 과정에 대해 자세히 살펴보기로 한다.
먼저, 도 4에 나타낸 바와 같이 A가 B에게 4코인을 전송할 때, 트랙잭션에 대한 합의가 성립하였고 트랜잭션 실행에 성공한 경우를 예시적으로 설명하기로 한다.
A가 B에게 코인을 전송하는 경우, 도 4에 나타낸 바와 같이 A는 샤드1(120)의 오브젝트 저장소에 저장되어 있고, B는 샤드2(130)의 오브젝트 저장소에 저장되어 있기 때문에, 샤드1(120)의 데이터 및 샤드2(130)의 데이터에 접근해야 하는 크로스-샤드 트랜잭션(Cross-shard transaction)이 클라이언트 노드(110)에서 생성된다. 즉, 클라이언트 노드(110)는 샤드1(120)에게 A의 값에서 4를 감산할 것을 요청(①)함과 아울러 샤드2(130)에게 B의 값에 4를 가산할 것을 요청(①)할 수 있다(S210).
그러면, 샤드1(120)에 포함된 블록체인 노드(121)들은 A의 값에서 4를 감산할 것을 요청한 트랜잭션에 대하여 기설정된 합의 알고리즘을 수행하여 실행 여부에 대한 투표를 수행(②)한다(S310). 아울러, 샤드2(130)에 포함된 블록체인 노드(131)들은 B의 값에 4를 가산할 것을 요청한 트랜잭션에 대하여 기설정된 합의 알고리즘을 수행하여 실행 여부에 대한 투표를 수행(②)한다(S310).
블록체인 노드(121)는 기설정된 합의 알고리즘을 통하여 샤드1(120)에 저장된 A의 값에서 4를 감산할 것을 요청한 트랜잭션에 대한 합의의 성립이 확인(S320)되면, 해당 트랜잭션을 실행한 후에 트랜잭션의 실행에 대한 성공 또는 실패 여부를 응답한다. 예를 들어, 블록체인 노드(121)는 인메모리(in-memory)에서 오브젝트 A의 버전을 확인한 후에 확인된 버전의 값에서 4를 감산하여 새로운 버전의 값을 생성할 수 있다. 즉, 확인된 버전 ver1의 값인 10에서 4를 감산한 결과인 6을 새로운 버전 ver2의 값으로 생성(③)할 수 있다. 그리고, 블록체인 노드(121)는 요청된 트랜잭션에 대한 실행에 성공하였음을 응답(④)을 통하여 알려줄 수 있다(S330). 아울러, 블록체인 노드(131)은 기설정된 합의 알고리즘을 통하여 샤드2(130)에 저장된 B의 값에 4를 가산할 것을 요청한 트랜잭션에 대한 합의의 성립이 확인(S320)되면, 해당 트랜잭션을 실행한 후에 트랜잭션의 실행에 대한 성공 또는 실패 여부를 응답한다. 예를 들어, 블록체인 노드(131)는 인메모리에서 오브젝트 B의 버전을 확인한 후에 확인된 버전의 값에 4를 가산하여 새로운 버전의 값을 생성할 수 있다. 즉, 확인된 버전 ver1의 값인 20에 4를 가산한 결과인 24를 새로운 버전 ver2의 값으로 생성(③)할 수 있다. 그리고, 블록체인 노드(131)는 요청된 트랜잭션에 대한 실행에 성공하였음을 응답(④)을 통하여 알려줄 수 있다(S330).
그러면, 클라이언트 노드(110)는 샤드1(120)과 샤드2(130)로부터 트랜잭션 의 실행 결과를 응답으로 받게 된다(S220).
그리고, 클라이언트 노드(110)는 단계 S330의 응답에 기초하여 샤드1(120)과 샤드2(130)에 의한 트랜잭션에 대한 합의의 성립 여부와 트랜잭션의 실행에 대한 성공 또는 실패 여부를 확인한다. 여기서, 클라이언트 노드(110)는 샤드1(120)과 샤드2(130)에 의한 사인을 체크하여 합의의 성립을 확인(⑤)할 수 있다. 예컨대, 서명은 각 샤드가 해당 트랜잭션에 대해 합의를 이루었다는 증거로 이용될 수 있다(S230).
여기서, 클라이언트 노드(110)는 샤드1(120)과 샤드2(130)에 의한 합의의 성립 및 트랜잭션의 실행 성공이 확인되면(S240), 샤드1(120)과 샤드2(130)에게 커밋을 요청(⑥)한다(S250).
한편, 단계 S330의 수행 후에 클라이언트 노드(110)에 의하여 커밋이 요청되기를 대기하고 있던 샤드1(120)의 블록체인 노드(121) 및 샤드2(130)의 블록체인 노드(131)는 단계 S250을 통하여 클라이언트 노드(110)에 의하여 요청된 커밋이 확인되면(S350), 단계 S330의 트랜잭션을 실행한 결과값을 원장에 반영한다. 예를 들어, 블록체인 노드(121)는 단계 S330에서 생성한 새로운 버전, 즉 현재 버전의 값을 이전 버전과 함께 원장에 보관할 수 있다. 즉, 오브젝트 A에 대하여 현재 버전 ver2의 값으로 6을 저장(⑦)할 수 있다(S360). 그리고, 블록체인 노드(131)는 단계 S330에서 생성한 새로운 버전, 즉 현재 버전의 값을 이전 버전과 함께 원장에 보관할 수 있다. 즉, 오브젝트 B에 대하여 현재 버전 ver2의 값으로 24를 저장(⑦)할 수 있다(S360).
다음으로, 도 5에 나타낸 바와 같이 A가 B에게 4코인을 전송할 때, 트랙잭션에 대한 합의가 비성립하였거나 트랜잭션 실행에 실패한 경우를 예시적으로 설명하기로 한다.
A가 B에게 코인을 전송하는 경우, 도 5에 나타낸 바와 같이 A는 샤드1(120)의 오브젝트 저장소에 저장되어 있고, B는 샤드2(130)의 오브젝트 저장소에 저장되어 있기 때문에, 샤드1(120)의 데이터 및 샤드2(130)의 데이터에 접근해야 하는 크로스-샤드 트랜잭션이 클라이언트 노드(110)에서 생성된다. 즉, 클라이언트 노드(110)는 샤드1(120)에게 A의 값에서 4를 감산할 것을 요청(①)함과 아울러 샤드2(130)에게 B의 값에 4를 가산할 것을 요청(①)할 수 있다(S210).
그러면, 샤드1(120)에 포함된 블록체인 노드(121)들은 A의 값에서 4를 감산할 것을 요청한 트랜잭션에 대하여 기설정된 합의 알고리즘을 수행하여 실행 여부에 대한 투표를 수행(②)한다(S310). 아울러, 샤드2(130)에 포함된 블록체인 노드(131)들은 B의 값에 4를 가산할 것을 요청한 트랜잭션에 대하여 기설정된 합의 알고리즘을 수행하여 실행 여부에 대한 투표를 수행(②)한다(S310).
블록체인 노드(121)는 기설정된 합의 알고리즘을 통하여 샤드1(120)에 저장된 A의 값에서 4를 감산할 것을 요청한 트랜잭션에 대한 합의의 성립이 확인(S320)되면, 해당 트랜잭션을 실행한 후에 트랜잭션의 실행에 대한 성공 또는 실패 여부를 응답한다. 예를 들어, 블록체인 노드(121)는 인메모리에서 오브젝트 A의 버전을 확인한 후에 확인된 버전의 값에서 4를 감산하여 새로운 버전의 값을 생성할 수 있다. 즉, 확인된 버전 ver1의 값인 10에서 4를 감산한 결과인 6을 새로운 버전 ver2의 값으로 생성(③)할 수 있다. 그리고, 블록체인 노드(121)는 요청된 트랜잭션에 대한 실행에 성공하였음을 응답(④)을 통하여 알려줄 수 있다(S330). 반면에, 샤드2(130)에서 단계 S210을 통하여 요청된 트랜잭션에 대한 합의가 실패(③')할 수 있다. 그러면, 블록체인 노드(131)은 합의가 실패하였음을 확인(S330)할 수 있고, 해당 트랜잭션에 대한 합의가 비성립하였음을 응답(④')을 통하여 클라이언트 노드(110)에게 알려줄 수 있다(S340).
그러면, 클라이언트 노드(110)는 샤드1(120)과 샤드2(130)로부터 트랜잭션 의 실행 결과를 응답으로 받게 된다(S220).
그리고, 클라이언트 노드(110)는 단계 S330 및 단계 S340의 응답에 기초하여 샤드1(120)과 샤드2(130)에 의한 트랜잭션에 대한 합의의 성립 여부와 트랜잭션의 실행에 대한 성공 또는 실패 여부를 확인한다. 여기서, 클라이언트 노드(110)는 샤드1(120)과 샤드2(130)에 의한 사인을 체크하여 샤드2(130)에서 합의가 비성립하였음을 확인(⑤)할 수 있다. 예컨대, 서명은 각 샤드가 해당 트랜잭션에 대해 합의를 이루었다는 증거로 이용될 수 있다(S230).
여기서, 클라이언트 노드(110)는 샤드1(120)과 샤드2(130)에 의한 합의의 비성립이 확인되거나 트랜잭션의 실행 실패가 확인되면(S240), 샤드1(120)과 샤드2(130)에게 커밋을 요청하지 않는다(⑥).
그러면, 샤드2(130)의 블록체인 노드(131)는 트랜잭션을 실행하지 않았기에 원장을 갱신하지 않음은 물론이고, 샤드1(120)의 블록체인 노드(121) 또한 단계 S330의 수행에 따른 결과 값을 원장에 반영하지 않는다. 예를 들어, 샤드1(120)의 블록체인 노드(121)는 단계 S330의 수행 이후에 기설정된 시간 이내에 클라이언트 노드(110)에 의한 커밋 요청이 없으면 단계 S330의 수행에 따른 결과 값을 인메모리에서 삭제(⑦)할 수 있다.
지금까지 설명한 바와 같이 본 발명의 실시예들에 의하면, 복수의 샤드에 저장된 데이터에 접근해야 하는 트랜잭션, 즉 크로스-샤드 트랜잭션을 처리함에 있어서 오브젝트 버저닝(Object Versioning)을 이용하여 잠금(Lock) 처리 없이 처리할 수 있다. 그러므로, 잠금 처리로 인한 오버헤드(overhead)를 유발하지 않고 효율적으로 처리할 수 있다.
본 발명에 첨부된 각 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 기록매체에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 기록매체에 저장된 인스트럭션들은 흐름도의 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시예들에서는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
본 발명의 실시예에 의하면, 복수의 샤드에 저장된 데이터에 접근해야 하는 트랜잭션, 즉 크로스-샤드 트랜잭션을 효율적으로 처리할 수 있다. 이러한 본 발명은 블록체인 기반의 분산 원장 관리 기술을 포함하여 각종 블록체인 네트워크 기술분야에 이용할 수 있다.
100: 블록체인 네트워크
110: 클라이언트 노드
120: 샤드1
130: 샤드2

Claims (3)

  1. 블록체인 네트워크를 구성하는 노드에 의해 수행되는 트랜잭션(Transaction) 처리 방법으로서,
    클라이언트 노드에 의한 트랜잭션의 실행 요청에 따라 상기 트랜잭션의 실행 여부를 상기 블록체인 네트워크를 구성하는 샤드(Shard) 내에서 투표하여 기설정된 합의(consensus) 알고리즘을 수행하는 단계와,
    상기 샤드 내에서 상기 트랜잭션에 대한 합의의 성립이 확인되면 상기 트랜잭션을 실행한 후에 상기 트랜잭션의 실행에 대한 성공 또는 실패 여부를 응답하는 단계와,
    상기 클라이언트 노드에 의하여 커밋(commit)이 요청되면, 상기 트랜잭션을 실행한 결과값을 원장(Ledger)에 반영하는 단계를 포함하는
    블록체인 트랜잭션 처리 방법.
  2. 제 1 항에 있어서,
    상기 결과값을 원장에 반영하는 단계는, 해당 오브젝트(Object)의 버전(Version)을 확인한 후 현재 버전을 이전 버전과 함께 상기 원장에 보관하는
    블록체인 트랜잭션 처리 방법.
  3. 컴퓨터 프로그램을 저장하고 있는 컴퓨터 판독 가능 기록매체로서,
    상기 컴퓨터 프로그램은,
    제 1 항 또는 제 2 항의 블록체인 트랜잭션 처리 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 판독가능 기록매체.
KR1020200011404A 2020-01-30 2020-01-30 블록체인 트랜잭션 처리 방법 KR20210097560A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200011404A KR20210097560A (ko) 2020-01-30 2020-01-30 블록체인 트랜잭션 처리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200011404A KR20210097560A (ko) 2020-01-30 2020-01-30 블록체인 트랜잭션 처리 방법

Publications (1)

Publication Number Publication Date
KR20210097560A true KR20210097560A (ko) 2021-08-09

Family

ID=77313330

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200011404A KR20210097560A (ko) 2020-01-30 2020-01-30 블록체인 트랜잭션 처리 방법

Country Status (1)

Country Link
KR (1) KR20210097560A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023234526A1 (ko) * 2022-06-03 2023-12-07 주식회사 블룸테크놀로지 블록체인 네트워크에서 인터샤드 트랜잭션 시스템 및 방법
WO2023243881A1 (ko) * 2022-06-14 2023-12-21 주식회사 블룸테크놀로지 블록체인 네트워크에서 어카운트의 워킹샤드 변경 시스템 및 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190067581A (ko) 2017-12-07 2019-06-17 한국전자통신연구원 블록체인 트랜잭션 분산 처리 장치 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190067581A (ko) 2017-12-07 2019-06-17 한국전자통신연구원 블록체인 트랜잭션 분산 처리 장치 및 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023234526A1 (ko) * 2022-06-03 2023-12-07 주식회사 블룸테크놀로지 블록체인 네트워크에서 인터샤드 트랜잭션 시스템 및 방법
WO2023243881A1 (ko) * 2022-06-14 2023-12-21 주식회사 블룸테크놀로지 블록체인 네트워크에서 어카운트의 워킹샤드 변경 시스템 및 방법

Similar Documents

Publication Publication Date Title
JP6775086B2 (ja) ブロックチェーン監視及び管理
EP3559874B1 (en) Event-driven blockchain workflow processing
CN109791591B (zh) 经由区块链进行身份和凭证保护及核实的方法和系统
KR20190104793A (ko) 스마트 계약 시스템에서 블록체인을 생성하고 무결성을 검증하는 방법
US20120197959A1 (en) Processing pattern framework for dispatching and executing tasks in a distributed computing grid
JP2022500738A (ja) 演算および信用できる確認のための分散型プラットフォーム
US12105735B2 (en) Asynchronous accounting method and apparatus for blockchain, medium and electronic device
CN111930489B (zh) 一种任务调度方法、装置、设备及存储介质
CN111931220B (zh) 区块链网络的共识处理方法、装置、介质及电子设备
JP2023532959A (ja) 許可制ブロックチェーンのためのプライバシー保護アーキテクチャ
CN110784331A (zh) 一种共识流程恢复方法及相关节点
KR20210097560A (ko) 블록체인 트랜잭션 처리 방법
CN114239060A (zh) 数据获取方法、装置、电子设备及存储介质
US11483158B2 (en) Distributed ledger device, distributed ledger system, and distributed ledger management method
JP6868728B2 (ja) パーミッションドブロックチェーンアプリケーションの継続的デリバリのための方法及び装置
CN113254424A (zh) 数据服务迁移方法、装置及设备
CN114422331A (zh) 容灾切换方法、装置及系统
Qi et al. SChain: Scalable Concurrency over Flexible Permissioned Blockchain
CN112199441A (zh) 基于大数据平台的数据同步处理方法、装置、设备及介质
KR102304954B1 (ko) 피어 노드, 피어 노드에서 수행되는 처리 방법 및 블록체인 플랫폼 시스템
CN107203594B (zh) 一种数据处理设备、方法和计算机可读存储介质
KR20240100440A (ko) 공유된 컴파일 캐시 검증 시스템
CN115705256A (zh) 就服务事务达成共识的请求促进
WO2022200891A1 (en) Reducing transaction aborts in execute-order-validate blockchain models
CN114221971A (zh) 数据同步方法、装置、服务器、存储介质及产品