KR102675958B1 - 암호화폐 전송과 스마트 계약의 병렬 계산을 위한 계층적 다중 블록체인 방법과 그 시스템 - Google Patents

암호화폐 전송과 스마트 계약의 병렬 계산을 위한 계층적 다중 블록체인 방법과 그 시스템 Download PDF

Info

Publication number
KR102675958B1
KR102675958B1 KR1020210178494A KR20210178494A KR102675958B1 KR 102675958 B1 KR102675958 B1 KR 102675958B1 KR 1020210178494 A KR1020210178494 A KR 1020210178494A KR 20210178494 A KR20210178494 A KR 20210178494A KR 102675958 B1 KR102675958 B1 KR 102675958B1
Authority
KR
South Korea
Prior art keywords
cryptocurrency
sidechain
segment
smart contract
state
Prior art date
Application number
KR1020210178494A
Other languages
English (en)
Other versions
KR20230089798A (ko
Inventor
이남용
김철수
양진홍
Original Assignee
인제대학교 산학협력단
Filing date
Publication date
Application filed by 인제대학교 산학협력단 filed Critical 인제대학교 산학협력단
Priority to KR1020210178494A priority Critical patent/KR102675958B1/ko
Publication of KR20230089798A publication Critical patent/KR20230089798A/ko
Application granted granted Critical
Publication of KR102675958B1 publication Critical patent/KR102675958B1/ko

Links

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/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/02Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
    • 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
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Abstract

본 발명의 실시예들에 따른 “암호화폐 전송과 스마트 계약의 병렬 계산을 위한 계층적 다중 블록체인 방법과 그 시스템”은 기존의 블록체인 시스템에서 암호화폐의 전송과 스마트 계약의 실행이 순차적으로 진행되는 과정에서 등장하는 중복계산과 병목현상의 문제를 해결하기 위해 제안되었다. 이를 위해, 본 발명의 실시예들에서는 암호화폐의 전송과 스마트 계약의 실행을 독립적으로 처리하는 샤드(Shard)를 사이드체인(Sidechain)과 쌍대 사이드체인(Dual Sidechain)을 이용하여 구성하였고, 각 샤드에서의 계산을 통제하고 공유하는 통로로써 메인체인(Mainchain)을 사용하였다. 또한, 스마트 계약의 상태 데이터를 안전히 저장하고 필요에 따라 그 내용을 업데이트 할 수 있도록 수정 가능한 블록체인 형태의 계정체인(Accountchain)를 구성하여 그곳에 기록하게 설계하였다. 사이드체인과 쌍대 사이드체인의 분절들이 미리 정해진 규칙에 따라 특정 메인체인의 블록들에서 분기하거나 연결하게 하여 전체 네트워크의 모든 참여자들이 암호화폐의 전송과 스마트 계약의 실행결과를 투명하고 안전하게 업데이트하거나 공유할 수 있도록 설계하였다.

Description

암호화폐 전송과 스마트 계약의 병렬 계산을 위한 계층적 다중 블록체인 방법과 그 시스템{A HIERARCHICAL MULTI-BLOCKCHAIN METHOD FOR PARALLEL COMPUTATION IN CRYTOCURRENCY TRANSFERS AND SMART CONTRACTS AND ITS SYSTEM}
본 발명의 실시예들은 계층적 다중 블록체인을 이용하여 암호화폐의 전송과 스마트 계약의 실행을 위한 계산을 다중 블록체인을 구성하는 하위 블록체인에 분산 할당하여 병렬계산을 가능하게 하는 방법과 그 시스템에 관한 것이다. 본 발명의 실시예들에서 병렬 계산은 블록체인 네트워크가 여러 스마트 계약을 동시에 실행한다는 의미로 제한한다. 즉, 여러 노드에 의해 하나의 스마트 계약을 병렬 계산하는 것은 제외한다.
본 발명의 일부는 본 발명의 발명자의 한명이 저자인 다음 논문에 기초하고 있다
Nam-Yong Lee, “Hierarchical Multi-Blockchain System for Parallel Computation in Cryptocurrency Transfers and Smart Contracts,” Applied Sciences, 2021, 11, 10173. https://doi.org/10.3390/app112110173
본 명세서의 내용을 설명하는데 필요한 배경지식은 다음과 같다.
스마트 계약의 사용이 증가함에 따라 처리량 및 효율성에 대한 우려도 증가하고 있다. 현재 블록체인 모델에서 스마트 계약은 요청 순서에 따라 순차적으로 실행된다. 이러한 직렬 실행은 많은 스마트 계약을 신속하게 실행해야 하는 비즈니스 환경에서 스마트 계약의 사용을 억제하는 요인이 되고 있다. 또한 블록체인을 최신 상태로 유지하려는 모든 사용자는 스마트 계약을 실행해야 한다. 즉, 일부 사용자의 스마트 계약 실행 결과가 모든 사용자 간에 실제 결과에 대한 충분한 신뢰가 형성되어 있더라도 다른 사용자가 스마트 계약을 직접 실행하지 않고 실행 결과를 수락하기 어렵다. 이것 또한 일부 비즈니스 환경에서 스마트 계약의 사용을 제한하는 원인이 되기도 한다[1].
블록체인 분야에서 샤딩(Sharding)은 전체 블록체인 시스템을 유지하는 데 필요한 작업을 노드 그룹(블록체인 네트워크에 참여하여 전체 블록체인 시스템을 유지하는 컴퓨터)에 나누어 할당하여 전체 블록체인의 작업처리 속도를 향상시키는 기술이다[2]. 이 노드 그룹에 할당된 서브 블록체인 네트워크를 샤드(Shard)라고 한다. 보통의 경우 한 샤드의 스마트 계약 실행 결과가 다른 샤드의 스마트 계약 실행에 영향을 줄 수 있기 때문에 샤딩을 통해 스마트 계약 실행을 분할하는 것은 어려운 일이다. 또한 대부분의 스마트 계약 지원 암호화폐에서 사용하는 계정 기반 원장 모델은 샤딩을 더 어렵게 만든다. 이에 반해, 비트코인에서 사용하는 UTXO(Unspent Transaction Output) 기반 원장 모델은 샤딩을 통해 암호화폐 전송을 쉽게 확장할 수 있다[3]. 그러나 UTXO 모델은 스마트 계약을 적용하기에는 계정 모델보다는 여러 불편한 점들이 있다[4].
1) 블록체인
블록체인은 이전 상태 또는 사용자와의 상호 작용을 기록하는 일종의 상태 머신이다. 구체적으로, 블록체인 네트워크의 채굴자(새로운 블록을 계산하고 보상을 위해 기존 블록체인에 연결하려고 시도하는 노드를 지칭)는 트랜잭션들을 수집하여 블록 을 형성한다. 채굴자는 ()번째 상태까지 모든 상태 및 사용자와의 상호 작용을 기록하는 블록체인 에 연결할 수 있는 권한 증명을 찾으려고 노력한다. 여기에서 블록 -번째 상태로 만들어질 상태 변경을 결정한다. 이 절차는 다음의 수식으로 표현할 수 있다.
여기서, ‘’은 접합(concatenation)을 의미한다.
이제,
을 블록 에 기록하기 위해 수집한 거래들의 접합이라고 하자. 여기서, 는 블록 에 기록될 거래의 수를 의미한다. 거래들 는 암호화폐 전송 또는 스마트 계약의 실행/생성 등을 위한 것이다.
블록체인에 연결된 후 블록이 임의로 수정되거나 생성된 블록이 특정 채굴자에게 독점되는 것을 방지하기 위해 블록체인에 해시값이 포함된다. 새 블록의 해시값이 미리 지정된 조건을 충족하는 경우에만 채굴자가 자신의 블록을 연결할 수 있다. 이는 다음 방정식으로 설명된다.
여기서 는 암호화 해시함수이고 는 블록 의 해시값 이 충족해야 하는 조건을 나타내는 집합이며 는 해당 증명입니다. 예를 들어, 는 SHA256[5]이고 는 매우 작은 수보다 작은 256비트 스트림의 집합이 될 수 있다.
2) UTXO 기반 블록체인
비트코인은 UTXO 원장 모델을 따른다. 비트코인 블록에 포함된 거래는 암호화폐 전송과 관련이 있으며, 그 주요 내용은 입력 필드의 주소에 할당된 암호화폐를 출력 필드의 주소로 재할당하는 것이다. 여기서 주소라는 용어는 암호화폐를 수신하기 위해 사용되는 공개정보로, 해당 주소로 전송된 암호화폐를 사용하기 위해 필요한 개인키와 연계된 공개키의 해시값에 의해 결정된다. 이 과정을 통해 입력 필드의 주소에 할당된 암호화폐가 소모되어 더 이상 사용할 수 없게 되며, 출력 필드의 주소에 할당된 암호화폐가 새로 생성된다. 이것은 일상생활에서 수표를 사용하는 것과 유사하다. 이를 고려하여 본 명세서에서는 UTXO 기반 블록체인의 주소에 할당된 암호화폐를 UTXO-Check 또는 간략히 UC로 표현한다. 각 UC는 송금 주소 와 거래가 기록된 블록체인의 위치 에 의해 결정된다. 이러한 관계를 나타내기 위해 다음 표현을 사용한다.
UC = UC().
거래가 기록된 블록체인의 송금 주소 와 위치 에 대한 UC의 완전한 의존성은 UTXO 모델에서 암호화폐의 샤딩이 쉽게 수행될 수 있음을 보여준다. 예를 들어, 다음 두 거래
은 가치가 인 암화화폐를 UC 로부터 주소 로 전송하는 것인데, 인 경우에는 아무런 문제를 일으키지 않는다. 따라서 두 거래 의 처리는 충돌 없이 다른 샤드에서 수행될 수 있다.
3) 계정 기반 블록체인
이더리움(Ethereum)은 계정 기반 원장 모델을 사용한다. 이더리움은 외부 소유 계정(Externally Owned Account: EOA)을 사용하여 이더(Ether: 이더리움에서 사용하는 암호화폐 명칭)를 저장한다. 이 EOA는 은행 계좌처럼 작동한다. 예를 들어 EOA 에서 EOA 으로 이더를 전송하는 거래
는 이더리움 네트워크의 모든 노드에게 EOA 의 이더 잔고에서 이더를 빼고 EOA 의 이더 잔고에 이더를 추가하도록 지시한다.
이더리움의 스마트 계약은 이더 잔액과 저장해야 하는 내부 변수 값을 저장하기 위해 계약 계정(이를 간단히 Contract Account 또는 간략히 CA라고 하자)을 가지고 있다. 스마트 계약은 자체적으로 시작할 수 없고 EOA에서 이더를 소비함으로써 발동되어야 한다. 예를 들어, 거래
는 이더리움 네트워크의 모든 노드에게 EOA 에서 CA 이더를 전송하고 입력 데이터 를 가지고 CA 이 지칭하는 스마트 계약을 실행하도록 지시하는 것이다. 이러한 지시는 EOA 를 제어할 권한이 있는 사용자만이 요청할 수 있다. 스마트 계약이 시작되면 해당 스마트 계약은 이더와 입력 데이터를 전송하여 다른 스마트 계약을 호출할 수 있다.
이더리움 블록체인은 이더리움 네트워크의 모든 노드에 EOA 및 CA의 이더 잔고 변경 또는 스마트 계약의 내부 변수값과 같은 계산을 지시하는 거래들을 기록한다. 계산 결과는 각 노드들이 독립적으로 관리한다. 이것이 샤딩을 이더리움에 적용을 어렵게 하는 원인이다. 예를 들어, 두 거래
는 이더리움 네트워크의 모든 노드에 이더를 EOA 로부터 EOA 로 전송하도록 지시하는 경우를 살펴보자. 만약, 이 두 거래 이 각기 다른 샤드에서 처리된다면 각 샤드에서의 EOA 의 이더 잔고를 일치시키기 힘들다. 일부 스마트 계약은 다음 실행에서 사용할 내부 변수에 대한 값 생성을 생성하는데 이는 샤딩을 어렵게 하는 요인이 된다. 또한 스마트 계약 간 호출에 의한 이더 잔고 및 내부 변수값의 변화는 샤딩을 더욱 어렵게 만든다.
참고문헌:
[1] Muchhala, Y.; Singhania, H.; Sheth, S.; Devadkar, K. Enabling MapReduce based parallel computation in smart contracts. In Proceedings of the 6th International Conference on Inventive Computation Technologies (ICICT), Coimbatore, India, 20-22 January 2021.
[2] Tao, Y.; Li, B.; Jiang, J.; Ng, H.C.; Wang, C.; Li, B. On sharding open blockchains with smart contracts. In Proceedings of the IEEE 36th International Conference on Data Engineering (ICDE), Dallas, TX, USA, 20-24 April 2020.
[3] Yu, G.;Wang, X.; Yu, K.; Ni,W.; Zhang, J.A.; Liu, R.P. Survey: Sharding in blockchains. IEEE Access 2020, 8, 14155-14181.
[4] Brunjes, L.; Gabbay, M.J. UTxO- vs. account-based smart contract blockchain programming paradigms. In Lecture Notes in Computer Science, Proceedings of the Leveraging Applications of Formal Methods, Verification and Validation: Applications, ISoLA 2020, Rhodes, Greece, 20-30 October 2020; Margaria, T., Steffen, B., Eds.; Springer: Cham, Switzerland, 2020.
[5] NIST. Descriptions of SHA-256, SHA-384, and SHA-512. https://web.archive.org/web/20130526224224/http://csrc.nist.gov/groups/STM/cavp/documents/shs/sha256-384-512.pdf
[6] NIST. Descriptions of Digital Signature Standard. Available online: https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf
본 발명의 실시예들에 따른 “암호화폐 전송과 스마트 계약의 병렬 계산을 위한 계층적 다중 블록체인 방법과 그 시스템”은 기존의 블록체인 시스템에서 암호화폐의 전송과 스마트 계약의 실행을 순차적으로 처리하는 과정에서 등장하는 중복계산(모든 노드들이 동일한 작업을 해야 한다)과 병목현상(특정 작업이 완료되기 전에는 다음 작업을 처리할 수 없다)의 문제를 해결하기 위해,
암호화폐의 전송과 스마트 계약의 실행을 위한 계산들을 계층적 다중 블록체인을 이용하여 다수의 샤드들에 분산 할당하여 계산하는 병렬화 방법을 제공한다.
본 발명의 실시예들에 따른 “암호화폐 전송과 스마트 계약의 병렬 계산을 위한 계층적 다중 블록체인 방법과 그 시스템”은 순차적으로 실행되는 암호화폐의 전송과 스마트 계약의 실행을 여러 샤드에 배분하여 각 샤드에서 독립적으로 실행하게 하고 그 계산결과를 전체 네트워크에서 공유하는 방법과 그 시스템에 관한 것이다.
계층적 다중 블록체인 시스템의 동작 방법에 있어서, 상기 계층적 다중 블록체인 시스템이 포함하는 적어도 하나의 컴퓨터의 적어도 하나의 프로세서에 의해, 상기 계층적 다중 블록체인 시스템의 작동조정과 순서를 결정하는 정보를 제공하는 블록체인 구조의 메인체인(Mainchain: MC)을 구성하는 단계; 스마트 계약의 상태 데이터를 저장하는 수정 가능한 블록체인 구조를 갖는 계정체인(Accountchain: AC)을 구성하는 단계; 암호화폐의 전송과 스마트 계약의 실행을 위한 사이드체인(Sidechain: SC)과 쌍대 사이드체인(Dual Sidechain: dSC)의 쌍으로 구성된 샤드(Shard)를 다수 구성하는 단계; 상기 사이드체인의 분절에서 발생한 암호화폐의 전송 결과를 상기 사이드체인의 분절이 상기 메인체인에 연결될 때 전체 네트워크에 전파하는 단계; 및 상기 사이드체인의 분절에서 실행된 스마트 계약에 의한 상태변화를 상기 쌍대 사이드체인의 분절에서 정리하고, 상기 쌍대 사이드체인의 분절이 상기 메인체인에 연결될 때 상기 계정체인에 저장된 스마트 계약의 상태 데이터를 업데이트하는 단계를 포함하는 계층적 다중 블록체인 시스템의 동작 방법을 제공한다.
일측에 따르면, 상기 사이드체인과 상기 쌍대 사이드체인의 분절들이 미리 정해진 규칙에 따라 상기 메인체인의 특정 블록들에서 분기하거나 연결되는 것을 특징으로 할 수 있다.
다른 측면에 따르면, 상기 샤드는 수정 불가능한 블록체인 형태의 상기 사이드체인 및 상기 쌍대 사이드체인을 이용하여 암호화폐의 전송과 상태 독립적 유상태 스마트 계약(State-independent stateful smart contract)의 실행을 독립적으로 처리하는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 암호화폐는 공개키 및 넌스값의 접합(concatenation)에 대한 해시값에 기반한 주소를 갖고, 상기 암호화폐를 소비 가능한 샤드가 상기 주소의 비트패턴을 조정하는 상기 해시값의 n-테일 비트스트림에 기반하여 결정되는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 스마트 계약은 상태 독립적 입력을 사용하여 상태 독립적인 결과를 반환하는 무상태 스마트 계약(stateless smart contract), 상태 독립적인 입력을 사용하여 상태 종속적인 결과를 반환하는 상태 독립적 유상태 스마트 계약(state-independent stateful smart contract) 및 상태 종속적인 입력을 사용하여 상태 종속적인 결과를 반환하는 상태 종속적 유상태 스마트 계약(state-dependent stateful smart contract) 중 어느 하나를 나타내는 식별자를 포함하는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 스마트 계약은 거래를 상기 계층적 다중 블록체인 시스템에 등록하여 생성되고, 상기 거래는 거스름 코인을 받을 다른 암호화폐의 주소를 포함하도록 상기 계층적 다중 블록체인 시스템에 등록되고, 상기 거스름 코인은 상기 암호화폐에 저장된 코인의 양에서 상기 거래를 계층적 다중 블록체인 시스템에 등록하는 채굴자에 대한 보상 수수료를 제외한 코인을 포함하는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 스마트 계약은 거래에 대응하는 암호화폐를 사용 가능한 샤드에 등록하여 실행되고, 상기 거래는 거스름 코인을 받을 다른 암호화폐의 주소를 포함하도록 상기 샤드에 등록되고, 상기 거스름 코인은 상기 암호화폐에 저장된 코인의 양에서, 상기 스마트 계약을 실행하는데 요구되는 코인과 상기 거래를 상기 샤드에 등록하는 채굴자에 대한 보상 수수료를 제외한 코인을 포함하는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 메인체인의 임의의 블록에서 분기되어 시작된 상기 사이드체인의 분절 및 상기 쌍대 사이드체인의 분절을 기설정된 규칙에 의해 정해진 상기 메인체인의 다른 블록에 연결함으로써 상기 사이드체인의 분절 및 상기 쌍대 사이드체인의 분절이 종료되는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 사이드체인의 분절 및 상기 쌍대 사이드체인의 분절이 연결된 상기 다른 블록의 해시값이, 상기 다른 블록의 이전 블록의 해시값, 상기 사이드체인의 분절의 마지막 블록의 해시값 및 상기 쌍대 사이드체인의 분절의 마지막 블록의 해시값의 접합으로 업데이트되는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 상태 데이터는 상기 스마트 계약의 코인 잔고 및 상기 스마트 계약의 상태에 의존하는 내부 변수값을 저장하는 내부 메모리로 구성되는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 계정체인에 저장된 스마트 계약의 상태 데이터를 업데이트하는 단계는, 상기 상태 데이터의 업데이트를 위한 특별 거래를 상기 쌍대 사이드체인의 분절이 포함하는 블록에 등록하는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 특별 거래는 상기 계정체인에 저장된 스마트 계약의 제1 상태 데이터와 제1 입력값을 상기 특별 거래가 포함하는 제2 상태 데이터와 제2 입력값으로 교체하기 위한 지시를 포함하는 것을 특징으로 할 수 있다.
컴퓨터 장치와 결합되어 상기 방법을 컴퓨터 장치에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램을 제공한다.
상기 방법을 컴퓨터 장치에 실행시키기 위한 프로그램이 기록되어 있는 컴퓨터 판독 가능한 기록매체를 제공한다.
계층적 다중 블록체인 시스템에 있어서, 컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서; 상기 계층적 다중 블록체인 시스템의 작동조정과 순서를 결정하는 정보를 제공하는 블록체인 구조의 메인체인(Mainchain: MC); 스마트 계약의 상태 데이터를 저장하는 수정 가능한 블록체인 구조를 갖는 계정체인(Accountchain: AC); 및 암호화폐의 전송과 스마트 계약의 실행을 위한 사이드체인(Sidechain: SC)과 쌍대 사이드체인(Dual Sidechain: dSC)의 쌍으로 구성된 적어도 하나의 샤드(Shard)를 포함하고, 상기 적어도 하나의 프로세서에 의해, 상기 사이드체인의 분절에서 발생한 암호화폐의 전송 결과를 상기 사이드체인의 분절이 상기 메인체인에 연결될 때 전체 네트워크에 전파하고, 상기 사이드체인의 분절에서 실행된 스마트 계약에 의한 상태변화를 상기 쌍대 사이드체인의 분절에서 정리하고, 상기 쌍대 사이드체인의 분절이 상기 메인체인에 연결될 때 상기 계정체인에 저장된 스마트 계약의 상태 데이터를 업데이트하는 것을 특징으로 하는 계층적 다중 블록체인 시스템을 제공한다.
본 발명의 실시예들에 따른 “암호화폐 전송과 스마트 계약의 병렬 계산을 위한 계층적 다중 블록체인 방법과 그 시스템”은 기존의 블록체인 시스템에서 순차적으로 진행되는 암호화폐의 전송과 스마트 계약의 실행을 여러 샤드에 분배하여 수행하고 그 결과를 전체 네트워크에서 공유하는 방법에 관한 것으로 기존의 블록체인 시스템에서의 암호화폐의 전송과 스마트 계약의 실행하는 과정에서 등장하는 중복계산과 병목현상을 해결하는 효과가 있다.
도 1: 상태 독립적 유상태 스마트 계약(state-independent stateful smart contract) 의 상태 데이터를 업데이트 하는 과정
도 2는 본 발명의 일실시예에 따른 계층적 다중 블록체인 시스템의 동작 방법의 예를 도시한 흐름도이다.
도 3은 본 발명의 일실시예에 따른 컴퓨터 장치의 예를 도시한 블록도이다.
본 발명의 실시예들에 따른 “암호화폐 전송과 스마트 계약의 병렬 계산을 위한 계층적 다중 블록체인 방법과 그 시스템”은 암호화폐의 전송과 스마트 계약의 실행을 위한 계산들을 계층적 다중 블록체인을 이용하여 여러 샤드에 배분하여 계산하는 병렬화 방법에 관한 것이다.
1) 전체구조
본 발명의 실시예들에서 제안하는 HMBS(Hierarchical Multi-Blockchain System)는 여러 쌍의 사이드체인(Sidechain: SC)과 쌍대 사이드체인(Dual Sidechain: dSC)이 하나의 메인체인(Mainchain: MC)에 부착된 구조로 계정체인(Accountchain: AC)을 이용하여 전체 블록체인의 상태를 관리한다. HMBS에서는 하나의 사이드체인과 쌍대 사이드체인 쌍이 하나의 샤드를 형성한다. 각 샤드에서는 UC(UTXO-Check)라고 하는 특정 형태의 UTXO 모델 기반 암호화폐가 사용된다. 이 암호화폐를 코인(Coin)이라고 지칭하자. 또한 MC에서만 사용할 수 있는 특정 형태의 UTXO 모델 기반 암호화폐를 사용한다. 사용자는 HMBS에서 UC를 사용하여 (1) UC의 코인을 이전하거나, (2) 새로운 스마트 계약을 생성하거나, (3) 스마트 계약을 실행할 수 있다.
2) UTXO-Check
비트코인의 경우와 마찬가지로 UC도 블록 채굴의 결과로 생성된다. UC는 암호화폐를 받는데 필요한 주소를 가지고 있어야 한다. 본 발명의 일실시예에 따른 HMBS에서는 UC 의 주소는 다음 수학식 1과 같이 정의될 수 있다.
여기서 는 SHA-256의 암호화 해시함수이고 는 UC 를 소비하는데 필요한 개인키 와 쌍을 이루는 공개키이다. 여기, 공개키-개인키 쌍 는 타원 곡선 디지털 서명 알고리즘(ECDSA: Elliptic Curve Digital Signature Algorithm)[6]에 의해 생성할 수 있다.
본 발명의 일실시예에 따른 HMBS는 -테일 비트스트림을 사용하여 UC 를 소비할 수 있는 샤드 를 다음 수학식 2와 같이 결정할 수 있다.
여기서 를 사용할 수 있는 샤드이다.
-테일 비트스트림이 모두 0인 UC 는 스마트 계약을 시동하고 잔돈을 받는 용도로 사용한다. 또한, 이러한 UC 는 MC에서만 사용가능 하도록 한다. 이러한 관점에서 HMBS는 MC를 하나의 샤드로 간주한다. HMBS에서는 사이드체인과 이에 대응하는 쌍대 사이드체인 쌍이 하나의 샤드를 구성되므로, HMBS는 개의 사이드체인과 쌍대 사이드체인 쌍으로 이루어진 샤드들을 가진다.
UC의 주소를 생성할 때 넌스 을 사용하는 이유는 UC 를 사용할 수 있는 원하는 샤드를 쉽게 결정하기 위함이다. 이제부터 아래 수학식 3은 UC x가 샤드 Shi에서 사용가능함을 의미할 수 있다.
HMBS의 사용자는 HMBS 코인을 전송할 수 있다. 예를 들어, 거래는 아래 수학식 4와 같이 나타낼 수 있다.
이때, 수학식 4의 거래는 코인의 양이 인 UC 를 소비하여 코인의 양이 인 UC를 주소 에, 코인을 거스름돈을 받는 방식으로 주소 에 생성하는 과정을 보여준다. 여기서, 은 채굴자가 자신의 블록에 거래 를 포함시킨 행위에 대한 보상 수수료이다.
3) 스마트 계약 (Smart Contract)
본 발명의 실시예들에서 스마트 계약(Smart Contract)은 블록체인 상태에 대한 실행 결과가 주는 효과의 범위에 따라 다음 세 가지 유형으로 분류한다.
·무상태 스마트 계약(stateless smart contract): 상태 독립적 입력을 사용하여 상태 독립적인 결과를 반환한다.
·상태 독립적 유상태 스마트 계약(state-independent stateful smart contract): 상태 독립적인 입력을 사용하여 상태 종속적인 결과를 반환한다.
·상태 종속적 유상태 스마트 계약(state-dependent stateful smart contract): 상태 종속적인 입력을 사용하여 상태 종속적인 결과를 반환한다.
HMBS에서 무상태 스마트 계약은 다른 스마트 계약과는 상관없이 독립적으로 실행할 수 있다. 그래서, 어느 샤드에서 실행되어도 상관없다. 반면에, 상태 독립적 유상태 스마트 계약은 어느 샤드에서도 실행 가능하지만 해당 스마트 계약의 실행 완료된 후에 실행되기로 예정된 다른 상태 상태 종속적 유상태 스마트 계약을 실행하기에 앞서 그 실행결과를 전체 블록체인 네트워크의 모든 참여자들이 인지할 수 있게 해야 한다. 마지막으로, 상태 종속적 유상태 스마트 계약는 반드시 순차적으로 실행해야 한다. 그래서 상태 종속적 유상태 스마트 계약의 실행은 MC에서 실행한다.
새로운 스마트 계약 의 생성은 다음 수학식 5의 거래 를 HMBS에 등록함으로써 달성한다.
여기서 는 UC를, 는 비트가 모두 0인 특수 주소를, 는 스마트 계약 가 무상태 스마트 계약, 상태 독립적 유상태 스마트 계약, 상태 종속적 유상태 스마트 계약 중에서 어느 부류에 속하는지를 보여준다. 또한, 는 거래 를 HMBS에 등록해준 채굴자에 대한 보상 수수료이고, 는 UC 에 저장된 코인의 양을 나타내고, 은 거스름 코인 을 받을 UC의 주소이다. 여기서, 수학식 5의 거래 는 UC 를 사용할 수 있는 샤드에서 등록되어야 한다.
수학식 5에 의해 스마트 컨트랙트 가 생성될 때 의 계약 계정(Contract Account: CA)도 생성된다. 스마트 컨트랙트 의 CA에는 의 주소 , 코인 잔고 , 상태 종속적인 내부 변수값을 저장하기 위한 내부 메모리 등이 포함된다. 여기서, 주소 는 스마트 계약 를 생성할 때 소비한 UC 의 주소 와 위치 의 결합이다.
본 발명의 일실시예에 따른 HMBS에서 무상태 스마트 계약과 상태 독립적 유상태 스마트 계약의 실행은 UC 를 사용할 수 있는 샤드에서 다음 수학식 6에 나타난 거래를 등록함으로써 이루어질 수 있다.
여기서, 는 UC 의 암호화폐의 양(일를 이제부터 코인이라 하자)를 나타내고, 은 거래 를 등록해 준 채굴자에 대한 보상 수수료이고, 는 스마트 계약 를 실행하는데 필요한 코인이고, 는 스마트 계약 를 실행하고 남은 거스름 코인을 받기 위한 UC의 주소이다. 여기서 는 종종 스마트 계약 를 실행하는 데 필요한 것보다 높게 설정하는데, 그 이유는 대부분의 경우 스마트 계약 를 실행하는데 필요한 코인을 정확히 예측하는 것이 힘들기 때문이다. 이것이 수학식 6에서 거스름 코인을 받기 위한 주소 가 필요한 이유이다.
스마트 계약의 병렬화를 위해서는 사용자는 병렬화에 적합하게 프로그래된 스마트 계약을 실행해야 한다. 그러나 일부 작업은 상태 종속적 유상태 스마트 계약으로만 작성될 수 있다. 그러한 스마트 계약은 MC에서만 실행해야 한다.
본 발명 HMBS에서는 노드들에 대해 병렬화를 얻기 위한 별도의 작업을 요구하지 않는다. 스마트 계약 프로그래머들이 자신들이 작성하는 스마트 계약 실행의 병렬화에 적합하게 작성하는 것을 유도하기 위해 상태 종속적 유상 스마트 계약의 실행에 좀 더 높은 수수료를 요구하는 것도 스마트 계약 실행의 병렬화를 촉진하는 하나의 방법이 될 것이다.
4) 메인체인 (Mainchain)
본 발명 HMBS의 MC는 다음의 구조를 갖는다:
Figure 112021144662796-pat00132
MC 네트워크의 채굴자들은 -번째의 상태에서의 MC 블록체인 -번째 상태에서 취합한 거래들로 이루어진 MC 블록 을 연결하여 -번째의 상태에서의 MC 블록체인 으로 업데이트 한다.
Figure 112021144662796-pat00140
MC block 로 구성되어 있는데, 여기서, 은 바로 전 MC 블록 의 해시값이고, 은 MC 블록 에 기록될 거래들()의 접합 이고, 넌스 은 아래 수학식 8을 만족한다는 증명이다.
수학식 8에서 는 MC 블록이 되기 위한 자격 조건을 표현한 것이다.
Figure 112021144662796-pat00152
MC 블록의 해시값은 아래 수학식 9와 같이 정의될 수 있다.
여기서, 은 수학식 8을 만족하는 넌스값이다.
본 발명 HMBS는 MC를 이용하여
Figure 112021144662796-pat00155
각 샤드에서 계산된 상태변화를 전체 블록체인에 적용하거나,
Figure 112021144662796-pat00156
현재의 블록체인의 상태를 각 샤드에 적용하거나,
Figure 112021144662796-pat00157
UC에 저장된 코인을 다른 UC로 전송하거나, 또는,
Figure 112021144662796-pat00158
상태 종속적 유상 스마트 계약을 실행한다.
5) 사이드 체인과 쌍대 사이드체인 쌍에 의해 구성된 샤드
본 발명의 일실시예에 따른 HMBS는 다수의 사이드체인(SC)와 쌍대 사이드체인(dSC) 쌍으로 이루어진 샤드들을 이용하여, 수학식 4에서와 같이 코인을 전송하거나, 수학식 5에서와 같이 스마트 계약을 생성하거나, 수학식 6에서와 같이 기존 스마트 계약을 UC를 실행한다.
이제, 를 SC 와 dSC 에 의해 구성된 샤드라고 하자. HMBS에서는 각 SC 는 일련의 분절(segment) 으로 구성되어 있고 각 분절 은 여러 개의 SC 블록 으로 이루어져 있고, 각 SC 블록 은 여러 개의 거래들 들이 기록되어 있다.
본 발명의 일실시예에 따른 HMBS는 MC 블록 에 따라 주어진 MC 블록에서 어떤 SC 분절이 분기되어 시작되고 또한 연결되어 끝나는지를 미리 정해둔다. 미리 정해진 규칙에 따라, MC 블록 에서 SC 분절 가 분기되어 시작하고 해당 SC 분절은 MC 블록 에 연결되어 끝난다고 가정해보자. 또한, 아래 수학식 10과 같이 가 MC 블록 이 채굴된 이후에서 MC 블록 이 채굴되는 동안에 SC 네트워크에서 채굴한 SC 블록들이라고 하자.
SC와 같이 dSC 는 일련의 분절(segment) 으로 구성되어 있고 각 분절 은 여러 개의 dSC 블록 으로 이루어져 있고, 각 dSC 블록 은 여러 개의 거래들 들이 기록되어 있다. 또한, 아래 수학식 11과 같이 가 MC 블록 이 채굴된 이후에서 MC 블록 이 채굴되는 동안에 dSC 네트워크에서 채굴한 dSC 블록들이라고 하자.
SC의 블록체인은 MC와 동일한 구조를 가지고 있다. SC 블록 의 채굴은 아래 수학식 12를 만족하는 넌스값 을 찾는 것이다.
여기서, 는 직전 SC 블록 의 해시값이고, 는 SC 블록 에 기록될 거래들의 접합이고, SC 네트워크에서의 블록채굴의 합의 조건이다. SC 블록 의 해시값은 아래 수학식 13과 같이 나타낼 수 있다.
여기서 는 수학식 12를 만족하는 넌스값이다.
dSC 블록체인의 구조는 SC 블록체인의 구조와 동일하다. 차이점은 dSC 블록에는 단 하나의 특별 스마트 계약을 실행을 지시하는 거래가 기록된다는 점이다. 이 특별 스마트 계약은 이전 SC 분절에 기록된 거래들에 의해 발생한 상태 변화를 HMBS 전체에 적용할 수 있게 한다.
HMBS는 MC 블록 에서 분기되어 시작된 SC 분절 과 dSC 분절 을 정해진 규칙에 의해 정해진 MC 블록 에 연결하면서 분절들을 종료시킨다. 이 때, SC 분절 과 dSC 분절 의 첫 SC 블록과 dSC 블록을 아래 수학식 14와 같이 분절의 분기가 시작되는 MC 블록으로 하고, 분절이 끝나는 지점의 MC 블록 의 해시값 을 아래 수학식 15로 업데이트할 수 있다.
여기서, 는 각각 MC 블록 에 연결되는 SC 분절 과 dSC 분절 의 마지막 SC 블록과 dSC 블록의 해시값들이다.
6) 계정체인 (Accountchain)
HMBS는 상태 독립적 유상태 스마트 계약들의 실행결과를 수정 가능한 블록체인 형태를 갖는 AC에 기록한다. 이는 상태 독립적 유상태 스마트 계약들의 실행을 여러 샤드들에 분배하여 실행하고 그 결과를 전체 노드들이 공유하기 위해서 필요한 절차이다. 즉, 하나의 샤드에서 계산된 상태 독립적 유상태 스마트 계약 의 실행결과를 AC에 안전하게 저장함으로써 해당 샤드 외의 노드들은 의 계산결과를 직접 실행하지 않고도 바로 사용할 수 있게 한다.
HMBS에서 상태 독립적 유상태 스마트 계약 가 SC 분절 내의 SC 블록에 기록되는 거래에서 생성되는 경우, 스마트 계약 을 지칭하는 계약 계정 는 SC 분절 이 MC에 연결되는 직후에 생성된다. 이 계약 계정 에 포함되는 정보들은 표 1에 정리하였다. 표 1은 스마트 계약 sc의 CA에 포함되는 정보들의 예를 나타내고 있다.
표 1에서 의 상태 데이터를 지칭하는 의 코인 잔고 의 상태에 의존하는 내부 변수값을 저장하는 로 구성되어 있다. 한편, 목표값 의 실행결과를 AC에서 안전하게 수정하기 위해 필요한 것으로 가 처음 생성될 때 아래 수학식 16과 같이 정의될 수 있다.
여기서, 는 해시함수 의 처음 -비트열만 남기고 나머지는 제거하는 함수이고, 은 길이가 512인 0으로만 이루어진 비트열이다. 한편, 입력값 는 아래 수학식 17과 같이 목표값 에 대해 성립하게 하는 길이가 256인 비트열이다.
여기서, 가 계산될 dSC 블록의 바로 직전 dSC 블록의 해시값이다.
AC 블록에는 상태 독립적 유상태 스마트 계약들의 계약계정에 관한 정보들이 기록된다. 자, 을 AC 블록 에 기록될 스마트 계약들 의 계약계정들을 지칭하는 비트정보로 아래 수학식 18과 같이 정의될 수 있다.
여기서, 은 AC 블록 에 기록될 계약계정의 수이다. HMBS에서 AC 블록의 채굴과정은 MC 블록의 채굴과정과 동일하다. AC 블록 의 채굴은 아래 수학식 19를 만족하는 넌스값 를 찾는 것이다.
여기서, 은 바로 직전 AC 블록 의 해시값이고, 는 AC 블록 채굴에 대한 합의 조건을 의미한다. AC 블록 의 해시값은 아래 수학식 20과 같이 정의될 수 있다.
여기서, 은 수학식 19를 만족하는 넌스값이다,
AC 블록에 기록된 내용에 대한 수정 가능성은 수학식 18, 19, 20에 의해 보장된다. 만약, 스마트 계약 의 상태 데이터를 에서 로 업데이트하고자 하는 경우에 수학식 17에서 의 자리에 를 두고 수학식 17을 만족하는 를 찾은 후에 에서 로 교체하면 수학식 20에 의한 AC 블록간의 해시값을 통한 연결구조는 유지하면서 AC 블록에 기록된 로 업데이트 할 수 있다.
7) 쌍대 사이드체인에서의 특별 거래
dSC 분절 의 블록에는 단 하나의 거래만이 등록된다. 해당 거래는 바로 직전 SC 분절 분절에 기록된 상태 독립적 유상태 스마트 계약들의 실행에 의해 변화되어야 할 상태변화를 SC 분절 분절에서 실행된 상태 독립적 유상태 스마트 계약별로 정리하고 그 결과를 가 MC에 연결될 때 네트워크의 모든 노드들이 알아볼 수 있도록 AC에 기록된 내용을 수정하는 것이다.
구체적으로, dSC 네트워크의 채굴자들은 SC 분절 에서 한번이라도 실행되는 상태 독립적 유상태 스마트 계약들 각각에 대해 SC 분절 이 시작될 때의 상태가 SC 분절 이 끝날 때에 어떻게 변화하는지 계산한다. 예를 들어, SC 분절 에서 실행된 적이 있는 상태 독립적 유상태 스마트 계약 의 SC 분절 이 시작될 때의 상태가 이고 끝날 때의 상태가 인 경우에 그 변화를 AC에서의 블록연결을 훼손시키지 않으면서 AC하기 위해 수학식 17에서 의 자리에 를 두고 수학식 17을 만족하는 를 계산한다. 이러한 계산을 완료한 후에 dSC 분절 이 확장되는 동안 다음 수학식 21의 특별 거래를 dSC 분절 의 블록 하나에 등록하려고 시도한다.
이 특별 거래를 포한하는 블록은 이 특별 거래 하나만을 포함한다. 여기서, 는 스마트 계약의 실행 과정에서 거스름 코인()을 받을 UC들의 주소들이다. 수학식 21의 특별 거래 로 거스름 코인 를 송금하고 AC의 블록에 기록되어 있던 의 계약계정 로 교체하라는 지시하고 있다.
도 1이 이 과정을 설명하고 있다. 단계 1에서는 SC 분절 이 확장되는 동안 상태 독립적 유상태 스마트 계약 의 실행이 어떤 상태 변화를 가져오는지 추적한다. 단계 2는 dSC 분절 이 확장되는 동안 진행되고 이 단계에서는 에 대해 수학식 21의 특별 거래를 계산한다. 단계 3은 dSC 분절 이 MC에 연결된 직후에 진행되는데 이 단계에서는 의 실행에서 발생하는 거스름돈을 송금하고 에 의한 상태 변화를 AC에 반영한다.
HMBS는 SC 분절 에서 실행한 상태 독립적 유상태 스마트 계약의 실행결과를 dSC 분절 가 MC에 연결된 직후에 업데이트한다. 이점을 고려하여 상태 독립적 유상태 스마트 계약은 해당 스마트 계약의 계약계정의 주소의 -테일 비트스트림을 이용하여 해당 스마트 계약이 실행될 샤드를 결정한다 (수학식 2 참조). 또한, 해당 스마트 계약의 계약계정의 주소의 패리티(Parity)를 이용하여 분절의 번호 이 짝수인 경우에 또는 이 홀수인 경우에 실행할지를 결정한다.
도 2는 본 발명의 일실시예에 따른 계층적 다중 블록체인 시스템의 동작 방법의 예를 도시한 흐름도이다. 본 실시예에 따른 동작 방법이 포함하는 단계들(210 내지 250)은 계층적 다중 블록체인 시스템에 포함되는 적어도 하나의 컴퓨터 장치에 의해 수행될 수 있다. 이때, 컴퓨터 장치의 프로세서는 메모리가 포함하는 운영체제의 코드나 적어도 하나의 컴퓨터 프로그램의 코드에 따른 제어 명령(instruction)을 실행하도록 구현될 수 있다. 여기서, 프로세서는 컴퓨터 장치에 저장된 코드가 제공하는 제어 명령에 따라 컴퓨터 장치가 도 2의 방법이 포함하는 단계들(210 내지 250)을 수행하도록 컴퓨터 장치를 제어할 수 있다.
단계(210)에서 컴퓨터 장치는 계층적 다중 블록체인 시스템의 작동조정과 순서를 결정하는 정보를 제공하는 블록체인 구조의 메인체인(Mainchain: MC)을 구성할 수 있다.
단계(220)에서 컴퓨터 장치는 스마트 계약의 상태 데이터를 저장하는 수정 가능한 블록체인 구조를 갖는 계정체인(Accountchain: AC)을 구성할 수 있다.
단계(230)에서 컴퓨터 장치는 암호화폐의 전송과 스마트 계약의 실행을 위한 사이드체인(Sidechain: SC)과 쌍대 사이드체인(Dual Sidechain: dSC)의 쌍으로 구성된 샤드(Shard)를 다수 구성할 수 있다. 이때, 사이드체인과 쌍대 사이드체인의 분절들이 미리 정해진 규칙에 따라 메인체인의 특정 블록들에서 분기하거나 연결될 수 있다.
스마트 계약은 상태 독립적 입력을 사용하여 상태 독립적인 결과를 반환하는 무상태 스마트 계약, 상태 독립적인 입력을 사용하여 상태 종속적인 결과를 반환하는 상태 독립적 유상태 스마트 계약 및 상태 종속적인 입력을 사용하여 상태 종속적인 결과를 반환하는 상태 종속적 유상태 스마트 계약 중 어느 하나를 나타내는 식별자를 포함할 수 있다. 일례로, 앞서 수학식 5와 관련하여, id가 스마트 계약 sc가 무상태 스마트 계약, 상태 독립적 유상태 스마트 계약, 상태 종속적 유상태 스마트 계약 중에서 어느 부류에 속하는지를 보여줌을 설명한 바 있다.
이때, 샤드는 수정 불가능한 블록체인 형태의 상기 사이드체인 및 상기 쌍대 사이드체인을 이용하여 암호화폐의 전송과 상태 독립적 유상태 스마트 계약의 실행을 독립적으로 처리할 수 있다.
한편, 암호화폐는 공개키 및 넌스값의 접합(concatenation)에 대한 해시값에 기반한 주소를 가질 수 있으며, 암호화폐를 소비 가능한 샤드가 주소의 비트패턴을 조정하는 해시값의 n-테일 비트스크림에 기반하여 결정될 수 있다.
단계(240)에서 컴퓨터 장치는 사이드체인의 분절에서 발생한 암호화폐의 전송 결과를 사이드체인의 분절이 상기 메인체인에 연결될 때 전체 네트워크에 전파할 수 있다. 스마트 계약은 거래를 상기 계층적 다중 블록체인 시스템에 등록하여 생성될 수 있다. 이때, 스마트 계약의 생성을 위해 등록되는 거래는 거스름 코인을 받을 다른 암호화폐의 주소를 포함하도록 계층적 다중 블록체인 시스템에 등록될 수 있다. 여기서, 거스름 코인은 암호화폐에 저장된 코인의 양에서 거래를 계층적 다중 블록체인 시스템에 등록하는 채굴자에 대한 보상 수수료를 제외한 코인을 포함할 수 있다.
또한, 스마트 계약은 거래에 대응하는 암호화폐를 사용 가능한 샤드에 등록하여 실행될 수 있다. 이 경우, 거래는 거스름 코인을 받을 다른 암호화폐의 주소를 포함하도록 샤드에 등록될 수 있다. 여기서, 거스름 코인은 상기 암호화폐에 저장된 코인의 양에서, 스마트 계약을 실행하는데 요구되는 코인과 거래를 샤드에 등록하는 채굴자에 대한 보상 수수료를 제외한 코인을 포함할 수 있다.
단계(250)에서 컴퓨터 장치는 사이드체인의 분절에서 실행된 스마트 계약에 의한 상태변화를 쌍대 사이드체인의 분절에서 정리하고, 쌍대 사이드체인의 분절이 메인체인에 연결될 때 계정체인에 저장된 스마트 계약의 상태 데이터를 업데이트할 수 있다.
일례로, 메인체인의 임의의 블록에서 분기되어 시작된 사이드체인의 분절 및 쌍대 사이드체인의 분절을 기설정된 규칙에 의해 정해진 상기 메인체인의 다른 블록에 연결함으로써 사이드체인의 분절 및 쌍대 사이드체인의 분절이 종료될 수 있다. 이때, 사이드체인의 분절 및 쌍대 사이드체인의 분절이 연결된 다른 블록의 해시값이, 다른 블록의 이전 블록의 해시값, 사이드체인의 분절의 마지막 블록의 해시값 및 쌍대 사이드체인의 분절의 마지막 블록의 해시값의 접합으로 업데이트될 수 있다.
상태 데이터는 상기 스마트 계약의 코인 잔고 및 상기 스마트 계약의 상태에 의존하는 내부 변수값을 저장하는 내부 메모리로 구성될 수 있다. 이때, 컴퓨터 장치는 단계(250)에서 상태 데이터의 업데이트를 위한 특별 거래를 쌍대 사이드체인의 분절이 포함하는 블록에 등록할 수 있다. 특별 거래는 계정체인에 저장된 스마트 계약의 제1 상태 데이터와 제1 입력값을 특별 거래가 포함하는 제2 상태 데이터와 제2 입력값으로 교체하기 위한 지시를 포함할 수 있다. 이러한 특별 거래에 대해서는 앞서 도 21을 통해 자세히 설명한 바 있다.
도 3은 본 발명의 일실시예에 따른 컴퓨터 장치의 예를 도시한 블록도이다. 컴퓨터 장치(Computer device, 300)는 도 2를 통해 설명한 컴퓨터 장치에 대응할 수 있으며, 도 3에 도시된 바와 같이, 메모리(Memory, 310), 프로세서(Processor, 320), 통신 인터페이스(Communication interface, 330) 그리고 입출력 인터페이스(I/O interface, 340)를 포함할 수 있다. 메모리(310)는 컴퓨터에서 판독 가능한 기록매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 여기서 ROM과 디스크 드라이브와 같은 비소멸성 대용량 기록장치는 메모리(310)와는 구분되는 별도의 영구 저장 장치로서 컴퓨터 장치(300)에 포함될 수도 있다. 또한, 메모리(310)에는 운영체제와 적어도 하나의 프로그램 코드가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 메모리(310)와는 별도의 컴퓨터에서 판독 가능한 기록매체로부터 메모리(310)로 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록 매체가 아닌 통신 인터페이스(330)를 통해 메모리(310)에 로딩될 수도 있다. 예를 들어, 소프트웨어 구성요소들은 네트워크(Network, 360)를 통해 수신되는 파일들에 의해 설치되는 컴퓨터 프로그램에 기반하여 컴퓨터 장치(300)의 메모리(310)에 로딩될 수 있다.
프로세서(320)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(310) 또는 통신 인터페이스(330)에 의해 프로세서(320)로 제공될 수 있다. 예를 들어 프로세서(320)는 메모리(310)와 같은 기록 장치에 저장된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다.
통신 인터페이스(330)는 네트워크(360)를 통해 컴퓨터 장치(300)가 다른 장치와 서로 통신하기 위한 기능을 제공할 수 있다. 일례로, 컴퓨터 장치(300)의 프로세서(320)가 메모리(310)와 같은 기록 장치에 저장된 프로그램 코드에 따라 생성한 요청이나 명령, 데이터, 파일 등이 통신 인터페이스(330)의 제어에 따라 네트워크(360)를 통해 다른 장치들로 전달될 수 있다. 역으로, 다른 장치로부터의 신호나 명령, 데이터, 파일 등이 네트워크(360)를 거쳐 컴퓨터 장치(300)의 통신 인터페이스(330)를 통해 컴퓨터 장치(300)로 수신될 수 있다. 통신 인터페이스(330)를 통해 수신된 신호나 명령, 데이터 등은 프로세서(320)나 메모리(310)로 전달될 수 있고, 파일 등은 컴퓨터 장치(300)가 더 포함할 수 있는 저장 매체(상술한 영구 저장 장치)로 저장될 수 있다.
입출력 인터페이스(340)는 입출력 장치(I/O device, 350)와의 인터페이스를 위한 수단일 수 있다. 예를 들어, 입력 장치는 마이크, 키보드 또는 마우스 등의 장치를, 그리고 출력 장치는 디스플레이, 스피커와 같은 장치를 포함할 수 있다. 다른 예로 입출력 인터페이스(340)는 터치스크린과 같이 입력과 출력을 위한 기능이 하나로 통합된 장치와의 인터페이스를 위한 수단일 수도 있다. 입출력 장치(350)는 컴퓨터 장치(300)와 하나의 장치로 구성될 수도 있다.
또한, 다른 실시예들에서 컴퓨터 장치(300)는 도 3의 구성요소들보다 더 적은 혹은 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, 컴퓨터 장치(300)는 상술한 입출력 장치(350) 중 적어도 일부를 포함하도록 구현되거나 또는 트랜시버(transceiver), 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수도 있다.
이처럼, 본 발명의 실시예들에 따르면, 기존의 블록체인 시스템에서 순차적으로 진행되는 암호화폐의 전송과 스마트 계약의 실행을 여러 샤드에 분배하여 수행하고 그 결과를 전체 네트워크에서 공유함으로써, 기존의 블록체인 시스템에서의 암호화폐의 전송과 스마트 계약의 실행하는 과정에서 등장하는 중복계산과 병목현상을 해결할 수 있다.
본 발명의 구체적인 구성 요소 등과 같은 특정 사항들은 한정된 실시예를 이용하여 설명하였다. 그러나, 이는 본 발명의 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니다. 본 발명이 속하는 분야에서 통상적인 지식을 바탕으로 이러한 기재로부터 다양한 수정 및 변형이 가능하므로, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허 청구범위뿐 아니라 이 특허 청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.

Claims (19)

  1. 계층적 다중 블록체인 시스템의 동작 방법에 있어서,
    상기 계층적 다중 블록체인 시스템이 포함하는 적어도 하나의 컴퓨터의 적어도 하나의 프로세서에 의해,
    상기 계측적 다중 블록체인 시스템의 작동조정과 순서를 결정하는 정보를 제공하는 블록체인 구조의 메인체인(Mainchain: MC)을 구성하는 단계;
    스마트 계약의 상태 데이터를 저장하는 수정 가능한 블록체인 구조를 갖는 계정체인(Accountchain: AC)을 구성하는 단계;
    암호화폐의 전송과 스마트 계약의 실행을 위한 사이드체인(Sidechain: SC)과 쌍대 사이드체인(Dual Sidechain: dSC)의 쌍으로 구성된 샤드(Shard)를 다수 구성하는 단계;
    상기 사이드체인의 분절에서 발생한 암호화폐의 전송 결과를 상기 사이드체인의 분절이 상기 메인체인에 연결될 때 전체 네트워크에 전파하는 단계; 및
    상기 사이드체인의 분절에서 실행된 스마트 계약에 의한 상태변화를 상기 쌍대 사이드체인의 분절에서 정리하고, 상기 쌍대 사이드체인의 분절이 상기 메인체인에 연결될 때 상기 계정체인에 저장된 스마트 계약의 상태 데이터를 업데이트하는 단계
    를 포함하고,
    상기 샤드는 수정 불가능한 블록체인 형태의 상기 사이드체인 및 상기 쌍대 사이드체인을 이용하여 암호화폐의 전송과 상태 독립적인 입력을 사용하여 상태 종속적인 결과를 반환하는 상태 독립적 유상태 스마트 계약(State-independent stateful smart contract)의 실행을 독립적으로 처리하는 것을 특징으로 하는 계층적 다중 블록체인 시스템의 동작 방법.
  2. 제1항에 있어서,
    상기 사이드체인과 상기 쌍대 사이드체인의 분절들이 미리 정해진 규칙에 따라 상기 메인체인의 특정 블록들에서 분기하거나 연결되는 것을 특징으로 하는 계층적 다중 블록체인 시스템의 동작 방법.
  3. 삭제
  4. 제1항에 있어서,
    상기 암호화폐는 공개키 및 넌스값의 접합(concatenation)에 대한 해시값에 기반한 주소를 갖고,
    상기 암호화폐를 소비 가능한 샤드가 상기 주소의 비트패턴을 조정하는 상기 해시값의 n-테일 비트스크림에 기반하여 결정되는 것
    을 특징으로 하는 계층적 다중 블록체인 시스템의 동작 방법.
  5. 제1항에 있어서,
    상기 스마트 계약은 상태 독립적 입력을 사용하여 상태 독립적인 결과를 반환하는 무상태 스마트 계약(stateless smart contract), 상기 상태 독립적 유상태 스마트 계약 및 상태 종속적인 입력을 사용하여 상태 종속적인 결과를 반환하는 상태 종속적 유상태 스마트 계약(state-dependent stateful smart contract) 중 어느 하나를 나타내는 식별자를 포함하는 것을 특징으로 하는 계층적 다중 블록체인 시스템의 동작 방법.
  6. 제1항에 있어서,
    상기 스마트 계약은 거래를 상기 계층적 다중 블록체인 시스템에 등록하여 생성되고,
    상기 거래는 거스름 코인을 받을 다른 암호화폐의 주소를 포함하도록 상기 계층적 다중 블록체인 시스템에 등록되고,
    상기 거스름 코인은 상기 암호화폐에 저장된 코인의 양에서 상기 거래를 계층적 다중 블록체인 시스템에 등록하는 채굴자에 대한 보상 수수료를 제외한 코인을 포함하는 것
    을 특징으로 하는 계층적 다중 블록체인 시스템의 동작 방법.
  7. 제1항에 있어서,
    상기 스마트 계약은 거래에 대응하는 암호화폐를 사용 가능한 샤드에 등록하여 실행되고,
    상기 거래는 거스름 코인을 받을 다른 암호화폐의 주소를 포함하도록 상기 샤드에 등록되고, 상기 암호화폐에 저장된 코인의 양에서, 상기 스마트 계약을 실행하는데 요구되는 코인과 상기 거래를 상기 샤드에 등록하는 채굴자에 대한 보상 수수료를 제외한 코인을 포함하는 것
    을 특징으로 하는 계층적 다중 블록체인 시스템의 동작 방법.
  8. 제1항에 있어서,
    상기 메인체인의 임의의 블록에서 분기되어 시작된 상기 사이드체인의 분절 및 상기 쌍대 사이드체인의 분절을 기설정된 규칙에 의해 정해진 상기 메인체인의 다른 블록에 연결함으로써 상기 사이드체인의 분절 및 상기 쌍대 사이드체인의 분절이 종료되는 것을 특징으로 하는 계층적 다중 블록체인 시스템의 동작 방법.
  9. 제8항에 있어서,
    상기 사이드체인의 분절 및 상기 쌍대 사이드체인의 분절이 연결된 상기 다른 블록의 해시값이, 상기 다른 블록의 이전 블록의 해시값, 상기 사이드체인의 분절의 마지막 블록의 해시값 및 상기 쌍대 사이드체인의 분절의 마지막 블록의 해시값의 접합으로 업데이트되는 것을 특징으로 하는 계층적 다중 블록체인 시스템의 동작 방법.
  10. 제1항에 있어서,
    상기 상태 데이터는 상기 스마트 계약의 코인 잔고 및 상기 스마트 계약의 상태에 의존하는 내부 변수값을 저장하는 내부 메모리로 구성되는 것을 특징으로 하는 계층적 다중 블록체인 시스템의 동작 방법.
  11. 제1항에 있어서,
    상기 계정체인에 저장된 스마트 계약의 상태 데이터를 업데이트하는 단계는,
    상기 상태 데이터의 업데이트를 위한 특별 거래를 상기 쌍대 사이드체인의 분절이 포함하는 블록에 등록하는 것을 특징으로 하는 계층적 다중 블록체인 시스템의 동작 방법.
  12. 제11항에 있어서,
    상기 특별 거래는 상기 계정체인에 저장된 스마트 계약의 제1 상태 데이터와 제1 입력값을 상기 특별 거래가 포함하는 제2 상태 데이터와 제2 입력값으로 교체하기 위한 지시를 포함하는 것을 특징으로 하는 계층적 다중 블록체인 시스템의 동작 방법.
  13. 제1항, 제2항 또는 제4항 내지 제12항 중 어느 한 항의 방법을 컴퓨터 장치에 실행시키기 위한 컴퓨터 프로그램이 기록되어 있는 컴퓨터 판독 가능한 기록매체.
  14. 계층적 다중 블록체인 시스템에 있어서,
    컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서;
    상기 계층적 다중 블록체인 시스템의 작동조정과 순서를 결정하는 정보를 제공하는 블록체인 구조의 메인체인(Mainchain: MC);
    스마트 계약의 상태 데이터를 저장하는 수정 가능한 블록체인 구조를 갖는 계정체인(Accountchain: AC); 및
    암호화폐의 전송과 스마트 계약의 실행을 위한 사이드체인(Sidechain: SC)과 쌍대 사이드체인(Dual Sidechain: dSC)의 쌍으로 구성된 적어도 하나의 샤드(Shard)
    를 포함하고,
    상기 적어도 하나의 프로세서에 의해,
    상기 사이드체인의 분절에서 발생한 암호화폐의 전송 결과를 상기 사이드체인의 분절이 상기 메인체인에 연결될 때 전체 네트워크에 전파하고,
    상기 사이드체인의 분절에서 실행된 스마트 계약에 의한 상태변화를 상기 쌍대 사이드체인의 분절에서 정리하고, 상기 쌍대 사이드체인의 분절이 상기 메인체인에 연결될 때 상기 계정체인에 저장된 스마트 계약의 상태 데이터를 업데이트하고,
    상기 샤드는 수정 불가능한 블록체인 형태의 상기 사이드체인 및 상기 쌍대 사이드체인을 이용하여 암호화폐의 전송과 상태 독립적인 입력을 사용하여 상태 종속적인 결과를 반환하는 상태 독립적 유상태 스마트 계약(State-independent stateful smart contract)의 실행을 독립적으로 처리하는 것
    을 특징으로 하는 계측적 다중 블록체인 시스템.
  15. 제14항에 있어서,
    상기 사이드체인과 상기 쌍대 사이드체인의 분절들이 미리 정해진 규칙에 따라 상기 메인체인의 특정 블록들에서 분기하거나 연결되는 것
    을 특징으로 하는 계층적 다중 블록체인 시스템.
  16. 삭제
  17. 제14항에 있어서,
    상기 암호화폐는 공개키 및 넌스값의 접합(concatenation)에 대한 해시값에 기반한 주소를 갖고,
    상기 암호화폐를 소비 가능한 샤드가 상기 주소의 비트패턴을 조정하는 상기 해시값의 n-테일 비트스크림에 기반하여 결정되는 것
    을 특징으로 하는 계층적 다중 블록체인 시스템.
  18. 제14항에 있어서,
    상기 스마트 계약은 거래를 상기 계층적 다중 블록체인 시스템에 등록하여 생성되고,
    상기 거래는 거스름 코인을 받을 다른 암호화폐의 주소를 포함하도록 상기 계층적 다중 블록체인 시스템에 등록되고,
    상기 거스름 코인은 상기 암호화폐에 저장된 코인의 양에서 상기 거래를 계층적 다중 블록체인 시스템에 등록하는 채굴자에 대한 보상 수수료를 제외한 코인을 포함하는 것
    을 특징으로 하는 계층적 다중 블록체인 시스템.
  19. 제14항에 있어서,
    상기 스마트 계약은 거래에 대응하는 암호화폐를 사용 가능한 샤드에 등록하여 실행되고,
    상기 거래는 거스름 코인을 받을 다른 암호화폐의 주소를 포함하도록 상기 샤드에 등록되고, 상기 암호화폐에 저장된 코인의 양에서, 상기 스마트 계약을 실행하는데 요구되는 코인과 상기 거래를 상기 샤드에 등록하는 채굴자에 대한 보상 수수료를 제외한 코인을 포함하는 것
    을 특징으로 하는 계층적 다중 블록체인 시스템.
KR1020210178494A 2021-12-14 암호화폐 전송과 스마트 계약의 병렬 계산을 위한 계층적 다중 블록체인 방법과 그 시스템 KR102675958B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210178494A KR102675958B1 (ko) 2021-12-14 암호화폐 전송과 스마트 계약의 병렬 계산을 위한 계층적 다중 블록체인 방법과 그 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210178494A KR102675958B1 (ko) 2021-12-14 암호화폐 전송과 스마트 계약의 병렬 계산을 위한 계층적 다중 블록체인 방법과 그 시스템

Publications (2)

Publication Number Publication Date
KR20230089798A KR20230089798A (ko) 2023-06-21
KR102675958B1 true KR102675958B1 (ko) 2024-06-17

Family

ID=

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102321204B1 (ko) * 2020-04-27 2021-11-03 인제대학교 산학협력단 스마트 재산화를 이용한 디지털 콘텐츠의 지적재산권 보호 방법 및 그 시스템
JP2021177267A (ja) * 2020-05-05 2021-11-11 豊 仲宗根 取引システム、取引システムの制御方法及び取引システムの制御プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102321204B1 (ko) * 2020-04-27 2021-11-03 인제대학교 산학협력단 스마트 재산화를 이용한 디지털 콘텐츠의 지적재산권 보호 방법 및 그 시스템
JP2021177267A (ja) * 2020-05-05 2021-11-11 豊 仲宗根 取引システム、取引システムの制御方法及び取引システムの制御プログラム

Similar Documents

Publication Publication Date Title
JP6955026B2 (ja) 並列処理ブロックチェーントランザクションのためのシステムおよび方法
KR102322729B1 (ko) 블록체인 월드 스테이트 머클 패트리샤 트라이 서브트리의 업데이트
EP3837652B1 (en) Distributed blockchain data storage under account model
WO2020143853A2 (en) Distributed blockchain data storage under account model
KR102289612B1 (ko) 분산 원장 시스템에서 트랜잭션들의 병렬 실행 수행
KR20210003234A (ko) 분할된 블록체인 네트워크에서 블록체인의 블록을 유지하는 것
US11108555B2 (en) Performing map iterations in a blockchain-based system
CN113168652B (zh) 区块链交易处理系统和方法
EP3769233B1 (en) Performing map iterations in a blockchain-based system
JP7432443B2 (ja) 移行支援システム、移行支援方法、およびノード
CN113994324B (zh) 具有高效世界状态数据结构的区块链系统
US20210311925A1 (en) Blockchain transaction processing systems and methods
JP2020204898A (ja) 分散台帳システムの運用管理方法、分散台帳システムの運用管理システム、および分散台帳システムの運用管理プログラム
WO2022087834A1 (en) Blockchain system having efficient world state data structures
KR102675958B1 (ko) 암호화폐 전송과 스마트 계약의 병렬 계산을 위한 계층적 다중 블록체인 방법과 그 시스템
KR102416336B1 (ko) 블록체인을 관리하기 위한 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체
KR20230089798A (ko) 암호화폐 전송과 스마트 계약의 병렬 계산을 위한 계층적 다중 블록체인 방법과 그 시스템
CN115398397A (zh) 区块链交易处理系统和方法
Nguyen Understanding scalability issues in sharded blockchains
Choi et al. LMPT: A Novel Authenticated Data Structure to Eliminate Storage Bottlenecks for High Performance Blockchains
KR20210114818A (ko) 하이브리드 블록체인 생성 방법 및 장치
Alsubaie A NOVEL QUAD DIRECTION BLOCKS BLOCKCHAIN TO IMPROVE BLOCKCHAIN SCALABILITY