KR20200059136A - 이더리움 샤딩 환경에서 샤드 간 트랜잭션 로드 분배 방법 - Google Patents
이더리움 샤딩 환경에서 샤드 간 트랜잭션 로드 분배 방법 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/36—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
- G06Q20/367—Payment 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/3678—Payment 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols 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
본 발명은 이더리움 샤딩 환경에서 각 샤드의 트랜잭션 로드를 분배하는 기술에 관한 것이다.
블록체인은 비트코인에서 처음으로 등장한 기술로써, 제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는 한 실시예에 따른 가장 늦게 처리된 트랜잭션의 완료시간을 비교 측정한 그래프이다.
도 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).
수학식 1에서, APj 는 j번째 계정 그룹(220)의 트랜잭션 로드 예측값이고, AGj i는 각 샤드(200)의 전전주기에 i번째로 생성된 모든 콜레이션(211)에 대해서 j번째 계정 그룹(220)에 요청된 트랜잭션들의 가스 소모량이고, Wi는 반영 가중치 값으로서, 콜레이션(211) 생성 시간을 반영하는 것이고, P는 로드 재배치 주기이다.
수학식 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)이다. 이 값은 로 계산될 수 있다.
이후 검증 노드(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 () 12: Sj.push(Ai) 13: end while |
도 5는 한 실시예에 따른 가장 늦게 처리된 트랜잭션의 완료시간을 비교 측정한 그래프이다.
도 5를 참고하면, L1 vol, L2 vol, L3 vol는 서로 다른 트랜잭션 요청량을 가지고 있는 트랜잭션 로드이고, L3 vol로 갈수록 계정 그룹(220)별 트랜잭션 요청량 평균값이 증가하도록 설정하였다.
3개의 트랜잭션 로드에 대해서, 본 발명의 한 실시예에 따른 가스 소모량에 따른 동적 로드 분배 방법, 정적 주소기반 배치 방법, 트랜잭션 개수에 따른 동적 로드 분배 방법을 각각 방법을 적용하였다. 그리고 이더리움 샤딩 네트워크의 메이크스팬을 측정하여 각 방법에 따른 이더리움 샤딩 네트워크의 성능을 비교하였다.
정적 주소기반 배치 방법에서의 메이크스팬을 기준으로 측정값을 정규화한 결과, 모든 트랜잭션 로드에서 본 발명이 제안하는 방법이 정적 주소기반 배치 방법보다 더 작은 메이크스팬을 가지고 있음을 확인할 수 있다. 또한, 본 발명이 제안하는 방법에서의 메이크스팬은 정적 주소기반 배치 방법에서의 메이크스팬과 비교하여 평균 72% 감소하였고, 최대 74% 감소하는 효과를 보였다.
본 발명에 따르면, 트랜잭션 로드를 각 샤드에 고르게 분배하고, 특정 샤드에 트랜잭션 로드가 과부하 되는 것을 방지하여, 이더리움 샤딩 네트워크의 트랜잭션 처리량을 향상시킬 수 있다.
또한 본 발명에 따르면, 가장 늦게 처리된 트랜잭션의 완료시간을 최소화하여 샤드 간의 트랜잭션 로드 불균형에 의한 이더리움 네트워크의 성능 저하를 방지할 수 있다.
이상에서 설명한 본 발명의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
Claims (10)
- 이더리움 샤딩 환경에서 적어도 하나의 프로세서에 의해 동작하는 검증 노드가 샤드 간 트랜잭션 로드를 분배하는 방법으로서,
이더리움을 구성하는 계정 그룹들을 복수의 샤드들에 초기 배치하는 단계,
로드 재배치 주기가 되면, 샤드에 배치된 각 계정 그룹의 이전 트랜잭션에 의한 가스 소모량을 바탕으로 각 계정 그룹에 요청될 트랜잭션 로드를 예측하는 단계, 그리고
각 샤드에서 예측된 트랜잭션 로드를 바탕으로 상기 복수의 샤드들 각각에 상기 계정 그룹들을 재배치하는 단계
를 포함하는 트랜잭션 로드 분배 방법. - 제1항에서,
상기 계정 그룹들은
샤딩 네트워크를 구성하는 계정들을 일정 개수로 나눈 것이고,
상기 초기 배치하는 단계는
샤딩 네트워크를 구성하는 각 샤드마다 적어도 하나의 계정 그룹을 배치하고,
상기 각 샤드마다 배치된 계정 그룹의 개수는 동일한, 트랜잭션 로드 분배 방법. - 제1항에서,
상기 트랜잭션 로드를 예측하는 단계는
각 샤드에 배치된 계정 그룹의 전전주기의 트랜잭션에 의한 가스 소모량을 기초로 다음 주기의 트랜잭션 로드를 예측하고,
상기 로드 재배치 주기는
상기 복수의 샤드들 각각에서 미리 정한 개수만큼 콜레이션들이 생성될 때까지 걸리는 시간을 1 주기로 하는, 트랜잭션 로드 분배 방법. - 제3항에서,
상기 트랜잭션 로드를 예측하는 단계는
상기 각 계정 그룹의 전전주기의 트랜잭션에 의한 가스 소모량에 가중치를 곱하여 다음 주기의 트랜잭션 로드를 예측하며,
상기 가중치는 콜레이션이 생성된 시간이 최근에 가까울수록 더 큰 값을 갖는, 트랜잭션 로드 분배 방법. - 제1항에서,
상기 계정 그룹들을 재배치하는 단계는
상기 각 계정 그룹에 요청될 트랜잭션 로드를 바탕으로 각 샤드의 트랜잭션 로드를 예측하는 단계, 그리고
각 샤드에서 예측된 트랜잭션 로드를 바탕으로, 상기 복수의 샤드들의 예측된 트랜잭션 로드가 최소 편차를 갖도록 상기 복수의 샤드들 각각에 상기 계정 그룹들을 재배치하는 단계
를 포함하는 트랜잭션 로드 분배 방법. - 제5항에서,
상기 최소 편차를 갖도록 상기 복수의 샤드들 각각에 상기 계정 그룹들을 재배치하는 단계는
휴리스틱 알고리즘을 이용하는, 트랜잭션 로드 분배 방법. - 이더리움 샤딩 환경에서 적어도 하나의 프로세서에 의해 동작하는 검증 노드가 복수의 샤드들 각각에 계정 그룹들을 재배치 하는 방법으로서,
각 계정 그룹의 트랜잭션 로드 예측값을 바탕으로 모든 계정 그룹들을 정렬하는 단계, 그리고
정렬된 계정 그룹을, 상기 각 계정 그룹의 트랜잭션 로드 예측값이 큰 순서대로 선택하여, 트랜잭션 로드 예측값이 작은 샤드에 재배치하는 단계
를 포함하는 계정 그룹 재배치 방법. - 제7항에서,
상기 각 샤드의 트랜잭션 로드 예측값은
각 샤드에 속한 계정 그룹들의 트랜잭션 로드 예측값의 합인, 계정 그룹 재배치 방법. - 제7항에서,
상기 트랜잭션 로드 예측값이 작은 샤드에 재배치하는 단계는
각 샤드의 트랜잭션 로드 예측값의 편차가 최소화 되도록 하는, 계정 그룹 재배치 방법. - 제9항에서,
상기 트랜잭션 로드 예측값이 작은 샤드에 재배치하는 단계는
휴리스틱 알고리즘을 이용하는, 계정 그룹 재배치 방법.
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)
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 | 주식회사 블룸테크놀로지 | 블록체인 네트워크에서 검증 가능 인터샤드 트랜잭션 시스템 및 방법 |
-
2019
- 2019-08-29 KR KR1020190106843A patent/KR20200059136A/ko active Search and Examination
Cited By (5)
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 |