KR20200059136A - 이더리움 샤딩 환경에서 샤드 간 트랜잭션 로드 분배 방법 - Google Patents

이더리움 샤딩 환경에서 샤드 간 트랜잭션 로드 분배 방법 Download PDF

Info

Publication number
KR20200059136A
KR20200059136A KR1020190106843A KR20190106843A KR20200059136A KR 20200059136 A KR20200059136 A KR 20200059136A KR 1020190106843 A KR1020190106843 A KR 1020190106843A KR 20190106843 A KR20190106843 A KR 20190106843A KR 20200059136 A KR20200059136 A KR 20200059136A
Authority
KR
South Korea
Prior art keywords
transaction
shard
transaction load
account
shards
Prior art date
Application number
KR1020190106843A
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 서강대학교산학협력단
Publication of KR20200059136A publication Critical patent/KR20200059136A/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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • 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/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3678Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes e-cash details, e.g. blinded, divisible or detecting double spending
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1002

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Technology Law (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

이더리움 샤딩 환경에서 적어도 하나의 프로세서에 의해 동작하는 검증 노드가 샤드 간 트랜잭션 로드를 분배하는 방법으로서, 이더리움을 구성하는 계정 그룹들을 복수의 샤드들에 초기 배치하는 단계, 로드 재배치 주기가 되면, 샤드에 배치된 각 계정 그룹의 이전 트랜잭션에 의한 가스 소모량을 바탕으로 각 계정 그룹에 요청될 트랜잭션 로드를 예측하는 단계, 그리고 각 샤드에서 예측된 트랜잭션 로드를 바탕으로 상기 복수의 샤드들 각각에 상기 계정 그룹들을 재배치하는 단계를 포함하는 트랜잭션 로드 분배 방법이다.

Description

이더리움 샤딩 환경에서 샤드 간 트랜잭션 로드 분배 방법{METHOD FOR DISTRIBUTING TRANSACTION LOAD BETWEEN SHARD BASED ON ETHEREUM SHARDING ENVIRIONMENT}
본 발명은 이더리움 샤딩 환경에서 각 샤드의 트랜잭션 로드를 분배하는 기술에 관한 것이다.
블록체인은 비트코인에서 처음으로 등장한 기술로써, 제3자의 개입 없이도 무결성 및 신뢰성을 확보하는 동등 계층간 통신망(Peer-to-Peer Network, P2P) 기반 분산원장 기술이다. 블록체인은 네트워크에서 발생한 입력과 출력, 즉 트랜잭션(Transaction)들을 블록체인 네트워크의 모든 구성원이 저장하며, 저장한 트랜잭션 내용을 바탕으로, 발생한 트랜잭션에 대한 유효성을 검증하는 구조를 가진다. 이때 트랜잭션은 블록(Block)이라는 단위로 검증되고 저장된다. 또한, 각 블록은 이전 블록의 해시 값을 포함함으로써 생성된 블록 사이의 체인 관계가 형성되도록 한다. 이러한 블록체인의 구조를 사용하여, 제3자의 개입 없이 온라인상에서 개인간의 자산 이동이 가능하도록 하는 기술이 비트코인이다.
한편, 이더리움은 분산 응용 프로그램(Decentralized Application)을 위한 블록체인 플랫폼으로써, 튜링 완전 언어(Turing-Complete Programming Language)와 이더리움 가상머신(Ethereum Virtual Machine, EVM)을 내장하고 있다. 또한, 이더리움은 비트코인과 달리 사용되지 않은 트랜잭션(Unspent Transaction Output, UTXO) 기반이 아닌 상태(State) 기반의 블록체인으로, 다양한 상태를 이더리움 네트워크상에서 표현할 수 있다. 이러한 이더리움의 특징은 사용자가 손쉽게 이더리움 기반의 분산 애플리케이션을 작성할 수 있도록 한다.
이더리움에서 트랜잭션 처리를 위해 사용되는 연산 자원(Computing Resource)에 대해 트랜잭션 생성자가 지불하는 수수료 단위를 가스(Gas)라고 한다. 트랜잭션의 가스 소모량을 통해 트랜잭션이 요청한 수행의 복잡도를 알 수 있다.
한편, 블록체인 네트워크가 처리할 수 있는 트랜잭션 양에는 한계가 있다. 이를 블록체인 확장성 문제라고 하고, 이를 해결하기 위해 이더리움 재단에서 이더리움 샤딩(Sharding)이라는 방법을 제안하였다. 이더리움 샤딩은 이더리움 네트워크를 샤드(Shard)라는 여러 개의 조각으로 나눈 것을 의미한다. 각 샤드에는 이더리움의 계정들이 나누어서 배정되고, 각 샤드는 자신이 관리하는 계정들에 요청된 트랜잭션 로드들을 처리한다.
이더리움 샤딩은 이더리움 네트워크에서 발생한 트랜잭션 로드를 각 샤드가 나누어서 병렬적으로 처리하는 구조를 통해 이더리움 네트워크의 트랜잭션 처리량을 상승시킨다.
이때, 특정 샤드에 트랜잭션 로드가 과부하 될 경우, 이더리움 네트워크의 트랜잭션 처리량이 감소하거나 가장 늦게 처리된 트랜잭션의 완료시간(Makespan, 이하 ‘메이크스팬’이라 호칭함)이 상승하는 문제가 발생할 수 있다. 따라서 이더리움 샤딩에서 트랜잭션 로드를 각 샤드에 골고루 분산시키는 방법에 대한 필요성이 증대되고 있다.
해결하고자 하는 과제는 트랜잭션 로드를 각 샤드에 균형적으로 분배하기 위해, 트랜잭션들의 가스 소모량을 바탕으로 계정 그룹들의 트랜잭션 로드를 예측하고, 이를 이용하여 각 샤드에 계정 그룹들을 재배치하는 방법을 제공하는 것이다.
한 실시예에 따른 이더리움 샤딩 환경에서 적어도 하나의 프로세서에 의해 동작하는 검증 노드가 샤드 간 트랜잭션 로드를 분배하는 방법으로서, 이더리움을 구성하는 계정 그룹들을 복수의 샤드들에 초기 배치하는 단계, 로드 재배치 주기가 되면, 샤드에 배치된 각 계정 그룹의 이전 트랜잭션에 의한 가스 소모량을 바탕으로 각 계정 그룹에 요청될 트랜잭션 로드를 예측하는 단계, 그리고 각 샤드에서 예측된 트랜잭션 로드를 바탕으로 상기 복수의 샤드들 각각에 상기 계정 그룹들을 재배치하는 단계를 포함한다.
상기 계정 그룹들은 샤딩 네트워크를 구성하는 계정들을 일정 개수로 나눈 것이고, 상기 초기 배치하는 단계는 샤딩 네트워크를 구성하는 각 샤드마다 적어도 하나의 계정 그룹을 배치하고, 상기 각 샤드마다 배치된 계정 그룹의 개수는 동일할 수 있다.
상기 트랜잭션 로드를 예측하는 단계는 각 샤드에 배치된 계정 그룹의 전전주기의 트랜잭션에 의한 가스 소모량을 기초로 다음 주기의 트랜잭션 로드를 예측하고, 상기 로드 재배치 주기는 상기 복수의 샤드들 각각에서 미리 정한 개수만큼 콜레이션들이 생성될 때까지 걸리는 시간을 1 주기로 할 수 있다.
상기 트랜잭션 로드를 예측하는 단계는 상기 각 계정 그룹의 전전주기의 트랜잭션에 의한 가스 소모량에 가중치를 곱하여 다음 주기의 트랜잭션 로드를 예측하며, 상기 가중치는 콜레이션이 생성된 시간이 최근에 가까울수록 더 큰 값을 갖을 수 있다.
상기 계정 그룹들을 재배치하는 단계는 상기 각 계정 그룹에 요청될 트랜잭션 로드를 바탕으로 각 샤드의 트랜잭션 로드를 예측하는 단계, 그리고 각 샤드에서 예측된 트랜잭션 로드를 바탕으로, 상기 복수의 샤드들의 예측된 트랜잭션 로드가 최소 편차를 갖도록 상기 복수의 샤드들 각각에 상기 계정 그룹들을 재배치하는 단계를 포함할 수 있다.
상기 최소 편차를 갖도록 상기 복수의 샤드들 각각에 상기 계정 그룹들을 재배치하는 단계는 휴리스틱 알고리즘을 이용할 수 있다.
한 실시예에 따른 이더리움 샤딩 환경에서 적어도 하나의 프로세서에 의해 동작하는 검증 노드가 복수의 샤드들 각각에 계정 그룹들을 재배치 하는 방법에 있어서, 각 계정 그룹의 트랜잭션 로드 예측값을 바탕으로 모든 계정 그룹들을 정렬하는 단계, 정렬된 계정 그룹을, 상기 각 계정 그룹의 트랜잭션 로드 예측값이 큰 순서대로 선택하여, 트랜잭션 로드 예측값이 작은 샤드에 재배치하는 단계를 포함한다.
상기 각 샤드의 트랜잭션 로드 예측값은 각 샤드에 속한 계정 그룹들의 트랜잭션 로드 예측값의 합일 수 있다.
상기 트랜잭션 로드 예측값이 작은 샤드에 재배치하는 단계는 각 샤드의 트랜잭션 로드 예측값의 편차가 최소화 되도록 할 수 있다.
상기 트랜잭션 로드 예측값이 작은 샤드에 재배치하는 단계는 휴리스틱 알고리즘을 이용할 수 있다.
본 발명에 따르면, 트랜잭션 로드를 각 샤드에 고르게 분배하고, 특정 샤드에 트랜잭션 로드가 과부하 되는 것을 방지하여, 이더리움 샤딩 네트워크의 트랜잭션 처리량을 향상시킬 수 있다.
또한 본 발명에 따르면, 가장 늦게 처리된 트랜잭션의 완료시간(Makespan)을 최소화하여 샤드 간의 트랜잭션 로드 불균형에 의한 이더리움 네트워크의 성능 저하를 방지할 수 있다.
도 1은 한 실시예에 따른 이더리움 샤딩 환경의 구성도이다.
도 2는 한 실시예에 따른 샤드 간 트랜잭션 로드 분배 방법의 흐름도이다.
도 3는 한 실시예에 따른 계정 그룹별 트랜잭션 로드를 예측하는 방법의 흐름도이다.
도 4는 한 실시예에 따른 계정 그룹들을 샤드에 재배치하는 방법의 흐름도이다.
도 5는 한 실시예에 따른 가장 늦게 처리된 트랜잭션의 완료시간을 비교 측정한 그래프이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이더리움 샤딩 환경은 다양한 샤딩 구조를 가질 수 있으며, 샤딩 구조는 지금도 계속 개발되고 있다. 본 명세서는 비특허문헌 3에 개시된 이더리움 샤딩 구조를 바탕으로 하며, 자세한 내용은 도 1을 통해 설명한다.
블록체인의 안정성과 분산성을 위해, 기존 이더리움의 블록 가스 한도(Block Gas Limit)와 마찬가지로, 콜레이션의 크기는 가스 소모량에 따라 제한될 수 있다. 블록 가스 제한은 하나의 블록에 포함될 수 있는 트랜잭션들의 가스 소모량을 의미한다. 예를 들어 블록 가스 한도가 10인 블록에는 가스 소모량이 2인 트랜잭션이 5개 포함될 수 있고, 가스 소모량이 3인 트랜잭션은 3개 포함될 수 있다.
한편 보안을 위해, 검증 노드는 각 샤드 별로 무작위로 배정된다. 본 명세서가 제안하는 방법에서, 이더리움 샤딩 환경은 은 지분 증명 방식(Proof of Stake, PoS)을 사용하므로 각 샤드가 같은 콜레이션 생성 및 검증 주기를 가지는 경우에 대해 적용될 수 있다. 또한 샤드 별 검증 노드 배치 방법은 고려하지 않는다고 가정한다.
이하, 도면을 참고하여 본 발명의 실시예에 따른 구성 및 작용에 대해 설명한다.
도 1은 한 실시예에 따른 이더리움 샤딩 환경의 구성도이다.
도 1을 참고하면, 이더리움 샤딩 환경(1000)은 메인 체인(100), 샤드(200), 콜레이션 체인(210), 계정 그룹(220)과, 각 샤드(200)에서의 트랜잭션을 처리하고, 검증하는 검증 노드(300)를 포함한다.
메인 체인(100)은 블록체인 네트워크에 존재하는 하나의 공통된 체인을 의미하며 샤드(200) 체인의 헤더 값들을 포함한다.
샤드(200)는 이더리움 네트워크가 분할되는 단위를 의미한다. 즉 이더리움 샤딩 환경에서는 기존 이더리움 네트워크를 샤드(200) 단위로 나누고, 계정 그룹(220)을 각 샤드(200)에 배정하는 방식으로 네트워크를 분리한다. 각 샤드(200)는 콜레이션(collation) 체인(210)을 포함하고, 자신이 관리하는 계정 그룹(220)에 요청된 트랜잭션을 처리한다.
콜레이션 체인(210)은 복수개의 콜레이션(211)으로 구성된다.
콜레이션(211)이란 블록의 개념으로, 각 샤드(200)에서 트랜잭션을 처리하고 저장하는 데이터 구조를 의미한다. 기존 이더리움 환경에서 메인 체인(100)의 역할이 처리된 트랜잭션들의 내용을 저장하는 것이었다면, 샤딩에서의 메인 체인(100)의 역할은 각 샤드(200)에서 생성된 콜레이션(211)의 헤더를 저장하는 것이다.
계정 그룹(220)은 블록체인 네트워크에 참여하는 모든 주소를 일정한 개수로 나눠놓은 그룹을 의미한다. 샤딩 환경에서, 각 샤드(200)는 계정 그룹(220)별로 트랜잭션을 나누어 처리하게 된다.
검증 노드(Validator)(300)란 콜레이션(211) 생성에 관여하는 노드를 의미한다. 검증 노드는 검증인이라고도 표현될 수 있다. 기존 이더리움 환경에서는 작업 증명 방식(Proof of Work, PoW)을 사용하며 채굴자(Miner)가 블록 생성에 관여했으나, 이더리움 샤딩 환경에서는 지분 증명 방식을 사용하며, 검증 노드(300)가 콜레이션(211) 생성에 관여한다.
한편, 본 발명에서 설명하는 동작은 각 샤드(200)에 배치된 검증 노드(300)의 역할을 하는 이더리움 네트워크 구성원들이 수행할 수 있다. 검증 노드(300)는 각 계정 그룹(220)에 전전주기에 요청된 트랜잭션들의 가스 소모량을 바탕으로 각 계정 그룹(220)의 트랜잭션 로드를 예측하고, 트랜잭션 로드 예측값을 바탕으로 휴리스틱 알고리즘을 이용하여 계정 그룹(220)을 각 샤드(200)에 재배치한다. 이후 검증 노드(300)는 콜레이션(211)을 생성하고 검증한다. 이하 트랜잭션 로드 분배 방법에 대해 도면을 통해 자세히 설명한다.
도 2는 한 실시예에 따른 샤드 간 트랜잭션 로드 분배 방법의 흐름도이다.
도 2를 참고하면, 검증 노드(300)는 각 샤드(200)에 복수의 계정 그룹(220)들을 초기 배치한다(S110). 이더리움에서 계정이란, 이더리움 네트워크를 구성하는 단위로서 각 계정은 주소를 가지고 있다.
이더리움 네트워크에 존재할 수 있는 계정들은, 중앙화된 서버를 통해 계정을 관리하지 않는 이더리움의 특성을 고려할 때, 계정의 주소를 기준으로 서로 다르며 같은 크기를 가지는 그룹으로 나누어 관리된다. 즉, 하나의 계정 그룹(220)은 적어도 하나의 계정을 포함하며, 본 명세서에서 하나의 계정 그룹(220)에 속한 계정은 변하지 않는다고 가정할 수 있다. 예를 들어 계정 그룹(220)의 개수가 N개이고, 샤딩 네트워크를 구성하는 샤드(200)의 개수가 M개인 경우, 각 샤드(200)에는 서로 다른 N/M개의 계정 그룹(220)이 배치된다.
이후 로드 재배치 주기가 되면, 본 발명이 제안하는 방법이 수행된다. 본 발명이 제안하는 트랜잭션 로드 분배 방법은 시간에 따른 트랜잭션 로드의 변화를 반영하는 것이므로 주기적으로 수행되며, 로드 재배치 주기는 하나의 샤드(200)에서 생성되는 콜레이션(211)의 개수를 기준으로 정할 수 있다. 예를 들어, 로드 재배치 주기를 5라고 정하면, 하나의 샤드(200)에서 콜레이션(211)이 5개 생성될 때마다 트랜잭션 로드 분배 방법이 수행되는 것을 의미한다.
로드 재배치 주기가 되면, 검증 노드(300)는 계정 그룹(220)별 트랜잭션 로드를 예측한다(S120). 검증 노드(300)는 트랜잭션들의 가스 소모량을 바탕으로 각 계정 그룹(220)에 요청될 트랜잭션 로드 예측값을 계산한다. 자세한 내용은 도 3을 통해 설명한다.
검증 노드(300)는 계정 그룹(220)별 트랜잭션 로드 예측값을 바탕으로 각 샤드(200)에 계정 그룹(220)들을 재배치한다(S130). 계정 그룹(220)들을 재배치할 때, 재배치된 계정 그룹(220)의 트랜잭션 로드 예측값은 각 샤드(200)를 기준으로 합을 구하면 편차가 최소화되어야 한다. 이를 구현하기 위해서 휴리스틱 알고리즘을 사용하며, 자세한 내용은 도 4를 통해 설명한다.
도 3은 한 실시예에 따른 계정 그룹별 트랜잭션 로드를 예측하는 방법의 흐름도이다.
도 3을 참고하면, 검증 노드(300)는 전전주기에 처리된 트랜잭션들의 가스 소모량을 N개의 계정 그룹(220) 각각에 대해 계산한다(S210). 예를 들어, 검증 노드(300)가 n번째 주기에 생성된 트랜잭션에 대한 처리를 진행하는 경우, n-2번째 주기에 처리된 트랜잭션들의 가스 소모량을 모든 계정 그룹(220) 각각에 대해 계산하는 것을 의미한다.
한편, 본 발명은 트랜잭션 로드를 예측하기 위해서 전전주기에 생성된 콜레이션(211)을 기준으로 이용한다. 2 주기 전의 콜레이션(211)을 이용하는 까닭은, 중앙화된 서버를 통해 트랜잭션 로드를 처리하고 관리하지 않는 이더리움 프로토콜의 특성상, 네트워크 전파 지연시간으로 인해 발생할 수 있는 이더리움 네트워크 구성원간의 정보 불일치를 방지하기 위함이다. 따라서, 반드시 전전주기를 기준으로 할 필요는 없으며, 네트워크 성능 및 환경에 따라 어느 주기를 기준으로 이용할 것인지는 변경될 수 있다.
이후, 계산된 가스 소모량에 콜레이션이 생성된 순서에 따라 가중치를 반영하여 트랜잭션 로드를 예측한다(S220).
Figure pat00001
수학식 1에서, APj 는 j번째 계정 그룹(220)의 트랜잭션 로드 예측값이고, AGj i는 각 샤드(200)의 전전주기에 i번째로 생성된 모든 콜레이션(211)에 대해서 j번째 계정 그룹(220)에 요청된 트랜잭션들의 가스 소모량이고, Wi는 반영 가중치 값으로서, 콜레이션(211) 생성 시간을 반영하는 것이고, P는 로드 재배치 주기이다.
Figure pat00002
수학식 2에서, Wi는 반영 가중치 값이고, P는 로드 재배치 주기를 의미하며, i는 콜레이션(211)이 생성된 순서를 의미한다. 예를 들어, P=5는 하나의 샤드(200)에서 콜레이션(211)이 5개 생성될 때마다 본 발명이 수행됨을 의미한다. 가스가 소모된 시간이 최근에 가까울수록 더 큰 값의 가중치를 주기 위하여, 수학식 1의 AGj i 에 곱해지는 값인 Wi는 생성된 순서에 따라 선형적으로 증가한다.
한편, 검증 노드(300)가 계정 그룹(220)을 재배치할 때, 트랜잭션 로드 예측값이 샤드(200)마다 최소한의 편차를 갖는 것을 목표로 한다. 이는 각 샤드(200)에 분배된 계정 그룹(220)의 트랜잭션 로드 예측값의 샤드 단위의 합이 최대한 동일하도록 N개의 계정 그룹(220)들을 M개의 샤드(200)에 배정하는 문제이다.
그러나 이는 숫자 분할 문제(Number Partitioning)의 일종으로 문제의 복잡도가 NP-완전(NP-Complete)이다. 따라서 휴리스틱 알고리즘을 이용하여, 재배치된 계정 그룹(220)의 트랜잭션 로드 예측값의 합이 샤드(200)마다 최소한의 편차를 갖도록 계정을 배정하게 된다. 이하 휴리스틱 알고리즘을 이용하여 구현한 계정 재배치 방법에 대해 자세히 설명한다.
도 4는 한 실시예에 따른 계정 그룹들을 샤드에 재배치하는 방법의 흐름도이다.
도 4를 참고하면, 검증 노드(300)는 먼저 N개의 모든 계정 그룹(220)에 대한 트랜잭션 로드 예측값을 바탕으로 모든 계정 그룹(220)들을 정렬한다(S310). 트랜잭션 로드 예측값이 큰 순서대로 계정 그룹들을 내림차순으로 정렬하며, 우선순위를 갖는 데이터를 먼저 처리하는 자료구조인 우선순위 큐(Priority Queue)를 이용할 수 있다. 이때 최대 힙(Max Heap)을 사용하여 설계하면 계정 그룹(220)을 정렬하는 과정의 시간 복잡도를 최소화 할 수 있다. 최대 힙이란, 루트 노드로 올라갈수록 큰 값을 저장하는 완전 이진 트리(Complete Binary Tree)를 의미하므로 트리에서 최대값을 검색하기 용이한 구조이다.
검증 노드(300)는 각 샤드(200)의 트랜잭션 로드 예측값을 바탕으로 모든 샤드(200)들을 정렬한다(S320). 샤드(200)의 트랜잭션 로드 예측값이란, 샤드(200)에 배치된 계정 그룹(220)들의 각 트랜잭션 로드 예측값의 합을 의미한다. 트랜잭션 로드 예측값이 작은 샤드(200)를 먼저 배치하여 오름차순으로 정렬하며, 이때 값이 최소인 샤드(200)를 찾기까지의 시간 복잡도를 최소화하기 위하여, 최소 힙(Min Heap)을 사용하여 관리할 수 있다. 최소 힙이란, 루트 노드로 올라갈수록 작은 값을 저장하는 완전 이진 트리(Complete Binary Tree)를 의미하고, 트리에서 최소값을 검색하기 용이한 구조이다.
이후 검증 노드(300)는, 내림차순으로 정렬된 계정 그룹(220)을 순서대로 선택하고, 트랜잭션 로드 예측값이 가장 작은 샤드(200)에 트랜잭션 로드 예측값이 가장 큰 계정 그룹(220)을 재배치한다(S330). 즉 선택된 계정 그룹(220)이 재배치되는 샤드(200)는, i번째 샤드(200)에 재배치된 계정 그룹(220)의 집합을 Si라고 정의할 때, i번째 샤드에 속한 재배치된 계정 그룹(220)들의 트랜잭션 로드 예측값을 더했을 때 가장 작은 값을 가지는 샤드(200)이다. 이 값은
Figure pat00003
로 계산될 수 있다.
이후 검증 노드(300)는 모든 계정 그룹(220)들이 샤드(200)에 재배치 되었는지 확인한다. 모든 계정 그룹(220)이 재배치 되었다면 단계를 종료하고, 그렇지 않다면 모든 계정 그룹(220)이 재배치 될 때까지 S310부터의 단계를 반복할 수 있다. 이에 대한 절차를 의사코드로 설명하면, 다음 표 1과 같다.
Account Relocation Algorithm
Input:
The number of account groups : N
The number of shards : M
The predicted transactions load : AP-(1~N)

1: priority queue of A: QA ←Φ
2: i ← 1
3: while i ≤ N:
4: QA.push({Ai,APi})
5: i=i+1
6: end while
7:
8: S1 ←Φ, S2 ←Φ,…, SM ←Φ
9: while QA is not empty:
10: {Ai,APi}= QA.pop
11: Sj = min (
Figure pat00004
)
12: Sj.push(Ai)
13: end while
도 5는 한 실시예에 따른 가장 늦게 처리된 트랜잭션의 완료시간을 비교 측정한 그래프이다.
도 5를 참고하면, L1 vol, L2 vol, L3 vol는 서로 다른 트랜잭션 요청량을 가지고 있는 트랜잭션 로드이고, L3 vol로 갈수록 계정 그룹(220)별 트랜잭션 요청량 평균값이 증가하도록 설정하였다.
3개의 트랜잭션 로드에 대해서, 본 발명의 한 실시예에 따른 가스 소모량에 따른 동적 로드 분배 방법, 정적 주소기반 배치 방법, 트랜잭션 개수에 따른 동적 로드 분배 방법을 각각 방법을 적용하였다. 그리고 이더리움 샤딩 네트워크의 메이크스팬을 측정하여 각 방법에 따른 이더리움 샤딩 네트워크의 성능을 비교하였다.
정적 주소기반 배치 방법에서의 메이크스팬을 기준으로 측정값을 정규화한 결과, 모든 트랜잭션 로드에서 본 발명이 제안하는 방법이 정적 주소기반 배치 방법보다 더 작은 메이크스팬을 가지고 있음을 확인할 수 있다. 또한, 본 발명이 제안하는 방법에서의 메이크스팬은 정적 주소기반 배치 방법에서의 메이크스팬과 비교하여 평균 72% 감소하였고, 최대 74% 감소하는 효과를 보였다.
본 발명에 따르면, 트랜잭션 로드를 각 샤드에 고르게 분배하고, 특정 샤드에 트랜잭션 로드가 과부하 되는 것을 방지하여, 이더리움 샤딩 네트워크의 트랜잭션 처리량을 향상시킬 수 있다.
또한 본 발명에 따르면, 가장 늦게 처리된 트랜잭션의 완료시간을 최소화하여 샤드 간의 트랜잭션 로드 불균형에 의한 이더리움 네트워크의 성능 저하를 방지할 수 있다.
이상에서 설명한 본 발명의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.

Claims (10)

  1. 이더리움 샤딩 환경에서 적어도 하나의 프로세서에 의해 동작하는 검증 노드가 샤드 간 트랜잭션 로드를 분배하는 방법으로서,
    이더리움을 구성하는 계정 그룹들을 복수의 샤드들에 초기 배치하는 단계,
    로드 재배치 주기가 되면, 샤드에 배치된 각 계정 그룹의 이전 트랜잭션에 의한 가스 소모량을 바탕으로 각 계정 그룹에 요청될 트랜잭션 로드를 예측하는 단계, 그리고
    각 샤드에서 예측된 트랜잭션 로드를 바탕으로 상기 복수의 샤드들 각각에 상기 계정 그룹들을 재배치하는 단계
    를 포함하는 트랜잭션 로드 분배 방법.
  2. 제1항에서,
    상기 계정 그룹들은
    샤딩 네트워크를 구성하는 계정들을 일정 개수로 나눈 것이고,
    상기 초기 배치하는 단계는
    샤딩 네트워크를 구성하는 각 샤드마다 적어도 하나의 계정 그룹을 배치하고,
    상기 각 샤드마다 배치된 계정 그룹의 개수는 동일한, 트랜잭션 로드 분배 방법.
  3. 제1항에서,
    상기 트랜잭션 로드를 예측하는 단계는
    각 샤드에 배치된 계정 그룹의 전전주기의 트랜잭션에 의한 가스 소모량을 기초로 다음 주기의 트랜잭션 로드를 예측하고,
    상기 로드 재배치 주기는
    상기 복수의 샤드들 각각에서 미리 정한 개수만큼 콜레이션들이 생성될 때까지 걸리는 시간을 1 주기로 하는, 트랜잭션 로드 분배 방법.
  4. 제3항에서,
    상기 트랜잭션 로드를 예측하는 단계는
    상기 각 계정 그룹의 전전주기의 트랜잭션에 의한 가스 소모량에 가중치를 곱하여 다음 주기의 트랜잭션 로드를 예측하며,
    상기 가중치는 콜레이션이 생성된 시간이 최근에 가까울수록 더 큰 값을 갖는, 트랜잭션 로드 분배 방법.
  5. 제1항에서,
    상기 계정 그룹들을 재배치하는 단계는
    상기 각 계정 그룹에 요청될 트랜잭션 로드를 바탕으로 각 샤드의 트랜잭션 로드를 예측하는 단계, 그리고
    각 샤드에서 예측된 트랜잭션 로드를 바탕으로, 상기 복수의 샤드들의 예측된 트랜잭션 로드가 최소 편차를 갖도록 상기 복수의 샤드들 각각에 상기 계정 그룹들을 재배치하는 단계
    를 포함하는 트랜잭션 로드 분배 방법.
  6. 제5항에서,
    상기 최소 편차를 갖도록 상기 복수의 샤드들 각각에 상기 계정 그룹들을 재배치하는 단계는
    휴리스틱 알고리즘을 이용하는, 트랜잭션 로드 분배 방법.
  7. 이더리움 샤딩 환경에서 적어도 하나의 프로세서에 의해 동작하는 검증 노드가 복수의 샤드들 각각에 계정 그룹들을 재배치 하는 방법으로서,
    각 계정 그룹의 트랜잭션 로드 예측값을 바탕으로 모든 계정 그룹들을 정렬하는 단계, 그리고
    정렬된 계정 그룹을, 상기 각 계정 그룹의 트랜잭션 로드 예측값이 큰 순서대로 선택하여, 트랜잭션 로드 예측값이 작은 샤드에 재배치하는 단계
    를 포함하는 계정 그룹 재배치 방법.
  8. 제7항에서,
    상기 각 샤드의 트랜잭션 로드 예측값은
    각 샤드에 속한 계정 그룹들의 트랜잭션 로드 예측값의 합인, 계정 그룹 재배치 방법.
  9. 제7항에서,
    상기 트랜잭션 로드 예측값이 작은 샤드에 재배치하는 단계는
    각 샤드의 트랜잭션 로드 예측값의 편차가 최소화 되도록 하는, 계정 그룹 재배치 방법.
  10. 제9항에서,
    상기 트랜잭션 로드 예측값이 작은 샤드에 재배치하는 단계는
    휴리스틱 알고리즘을 이용하는, 계정 그룹 재배치 방법.
KR1020190106843A 2018-11-20 2019-08-29 이더리움 샤딩 환경에서 샤드 간 트랜잭션 로드 분배 방법 KR20200059136A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180143929 2018-11-20
KR20180143929 2018-11-20

Publications (1)

Publication Number Publication Date
KR20200059136A true KR20200059136A (ko) 2020-05-28

Family

ID=70920091

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190106843A KR20200059136A (ko) 2018-11-20 2019-08-29 이더리움 샤딩 환경에서 샤드 간 트랜잭션 로드 분배 방법

Country Status (1)

Country Link
KR (1) KR20200059136A (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102337760B1 (ko) 2020-08-27 2021-12-08 연세대학교 산학협력단 심층강화학습 기반 적응적 샤드 블록체인 네트워크 관리 장치 및 방법
CN114298713A (zh) * 2022-03-03 2022-04-08 浙商银行股份有限公司 一种联盟链分片方法、装置及存储介质
KR20220089383A (ko) 2020-12-21 2022-06-28 서강대학교산학협력단 이더리움 샤딩 환경에서의 트랜잭션 수행 시간을 기반으로 한 부하 분산 방법 및 이더리움 샤딩 시스템
KR20220116655A (ko) * 2021-02-15 2022-08-23 포항공과대학교 산학협력단 블록체인 확장성을 위한 예측적 트랜잭션 처리 시스템 및 방법
WO2024014718A1 (ko) * 2022-07-12 2024-01-18 주식회사 블룸테크놀로지 블록체인 네트워크에서 검증 가능 인터샤드 트랜잭션 시스템 및 방법

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102337760B1 (ko) 2020-08-27 2021-12-08 연세대학교 산학협력단 심층강화학습 기반 적응적 샤드 블록체인 네트워크 관리 장치 및 방법
KR20220089383A (ko) 2020-12-21 2022-06-28 서강대학교산학협력단 이더리움 샤딩 환경에서의 트랜잭션 수행 시간을 기반으로 한 부하 분산 방법 및 이더리움 샤딩 시스템
KR20220116655A (ko) * 2021-02-15 2022-08-23 포항공과대학교 산학협력단 블록체인 확장성을 위한 예측적 트랜잭션 처리 시스템 및 방법
CN114298713A (zh) * 2022-03-03 2022-04-08 浙商银行股份有限公司 一种联盟链分片方法、装置及存储介质
WO2024014718A1 (ko) * 2022-07-12 2024-01-18 주식회사 블룸테크놀로지 블록체인 네트워크에서 검증 가능 인터샤드 트랜잭션 시스템 및 방법

Similar Documents

Publication Publication Date Title
KR20200059136A (ko) 이더리움 샤딩 환경에서 샤드 간 트랜잭션 로드 분배 방법
Tang et al. An intermediate data placement algorithm for load balancing in spark computing environment
JP5514041B2 (ja) 識別子割当て方法及びプログラム
Zhou et al. A list scheduling algorithm for heterogeneous systems based on a critical node cost table and pessimistic cost table
US8726290B2 (en) System and/or method for balancing allocation of data among reduce processes by reallocation
EP3210134B1 (en) Composite partition functions
US11838356B2 (en) Weighted auto-sharing
US9805140B2 (en) Striping of directed graphs and nodes with improved functionality
Duan et al. Selection and replacement algorithms for memory performance improvement in spark
EP3221797B1 (en) Testing systems and methods
TW201423425A (zh) 資料分塊儲存至分散式伺服器的系統及方法
CN103391312B (zh) 资源离线下载方法及装置
CN107450855B (zh) 一种用于分布式存储的模型可变的数据分布方法及系统
CN104731528B (zh) 一种云计算块存储服务的构建方法及系统
CN112346871A (zh) 一种请求处理方法及微服务系统
Kim et al. Gas consumption-aware dynamic load balancing in ethereum sharding environments
CN110309229A (zh) 分布式系统的数据处理方法和分布式系统
KR20220089383A (ko) 이더리움 샤딩 환경에서의 트랜잭션 수행 시간을 기반으로 한 부하 분산 방법 및 이더리움 샤딩 시스템
Yin et al. EBSF: Node Characteristics-Based Block Allocation Plans for Efficient Blockchain Storage
CN107621980A (zh) 一种虚拟机迁移方法、集群控制系统和控制装置
Li et al. A fast approach of provisioning virtual machines by using image content similarity in cloud
Chen et al. Revisiting consistent hashing with bounded loads
Mu et al. EfShard: Toward Efficient State Sharding Blockchain via Flexible and Timely State Allocation
Xu et al. Optimising the deployment of virtual machine image replicas in cloud storage clusters
Lu et al. An asynchronous consistency algorithm in smart manufacturing cloud data centers

Legal Events

Date Code Title Description
A201 Request for examination