효율적 합의를 위한 PBFT 수정 연구
민연아1,*
A Study on PBFT Modification for Efficient Consensus
Youn-A Min1*
9)
요 약
블록체인기술은 발표 초기 암호화폐 기술로 소개되었으나 최근에는 블록체인이 가진 데이터의 투 명성, 무결성 보장 및 최종 합의가능성 등의 특징을 활용하고자 하는 기업 및 정부 등 신뢰기반 기 관에 의한 활용이 활발히 연구되고 있다. 허가된 기관들이 서로 노드가 되어 거대한 데이터를 투명 하게 공유하고 활용하기 위하여 적절한 합의 알고리즘 선택 및 적용이 필요하다. 본 논문에서는 정 확한 데이터 관리를 위하여 비동기 제어가 가능하지만 네트워크에서 빈번하게 사용되는 PBFT를 기 반으로 네트워크 통신비용의 효율을 높일 수 있는 수정된 합의 알고리즘을 제안하였다. 제안한 방법 을 통하여 PBFT의 세부 프로세스 중 일부 인증과정에 대한 트래픽을 낮추고 중요한 합의에 대한 선 처리 가능 과정을 추가함으로써 노드 증가 시에도 네트워크 통신비용을 낮출 수 있다.
Abstract
blockchain technology was introduced as a cryptocurrency technology at the beginning of the announcement, but recently, it has been actively researched by trust-based organizations such as companies and governments that want to utilize features such as transparency, integrity, and final consensus of data possessed by blockchain. It is necessary to select and apply an appropriate consensus algorithm in order for authorized organizations to become nodes and share and utilize huge data transparently. In this paper, we proposed a modified consensus algorithm that can increase the efficiency of network communication cost based on PBFT, which is asynchronously controllable for accurate data management, but is frequently used on the network. Through the proposed method, it is possible to lower the network communication cost even when the number of nodes increases by lowering the traffic for some of the authentication processes of the PBFT and adding a pre-processing process for important agreements.
Keywords : blokchain, Distributed system, Consensus algorithm
1한양사이버대학교 (서울시 성동구 왕십리로 220) (조교수)
*Corresponding Author : [email protected] 접수일자 : 2020. 04. 22.
1차 심사 : 2020. 04. 27.
2차 심사 : 2020. 05. 12.
게재확정 : 2020. 05. 15.
DOI : http://data.doi.or.kr/10.22733/JITAE.2020.10.01.005
1. 서 론
온라인을 통한 거래 주체 간 데이터 공유가 증가하고 있다. 온라인을 통하여 거래가 진행되 었을 때 발생할 수 있는 문제는 거래의 복사본 과 원본을 구별하지 못하는 이중처리 문제이다.
기존 시스템의 경우 이중처리 문제를 해결하 기 위하여 제 3의 중개기관을 통한 권한 위임 및 관리를 하였으나 이 경우 단일지점장애 (Single Point Error) 및 거래지연, 과다한 수수료 등의 발생할 수 있고 데이터의 오류 및 거래에 대한 비용 부담이 발생할 수 있다[1][10].
블록체인(blockchain)은 연결된 모든 노드 간 거래내역을 합의하고 공유하여 분산 저장하 는 분산원장시스템이다[2][11]. 최근에는 스마 트 컨트랙트(Smart Contract)를 통하여 자동 으로 거래에 대한 처리도 가능하다[2][11].
블록체인을 통하여 연결된 모든 노드를 통하 여 모든 거래내역을 여러 차례 합의하고 인증 하는 과정을 거친다. 이러한 블록체인의 기술로 공유되는 데이터의 무결성, 보편성, 보안성 등 의 특징을 보장할 수 있다[3][11].
그림 1. 무선 센서 네트워크 패킷[2].
Fig. 1. Wireless sensor network packet.
블록체인은 네트워크 참여자의 유형과 시스 템에 접근하는 범위에 따라 퍼블릭 블록체인 (Public blockchain)과 프라이빗 블록체인 (Private blockchain)으로 구분할 수 있다.
퍼블릭 블록체인방식의 경우 임의의 노드가 블록체인시스템에 참여 가능하고 네트워크에
연결된 모든 노드를 통하여 거래내역을 합의하 며 합의를 위한 과도한 컴퓨팅 파워 또는 지분 이 필요하다.
표 1. 스퍼터링 조건[3].
Table 1. Sputtering condition.
Property Public
blockchain
Private blockchain user permissionless permissioned
BTF yes no
consensus
determine all users selected set of users example bitcoin, ethereum
etc hyperledger etc
프라이빗 블록체인방식의 경우 허가된 노드 들로 블록체인 네트워크가 구성되어 참여하는 노드 전체, 또는 권위를 가진 일부 노드의 합의 를 통하여 충분히 거래내역의 투명성을 보장할 수 있다.
이러한 프라이빗 블록체인의 긍정적인 합의 과정의 특징을 기업, 정부 등 신뢰기반 기관 간 의 데이터 공유 및 이력관리에 활용하고자 하 는 연구가 활발하게 진행되고 있다[4].
Fig. 2. 무선 센서 네트워크 패킷[4].
Fig. 2. Wireless sensor network packet.
2. 연구 배경
2.1 블록체인 합의 알고리즘
블록체인 합의 알고리즘이란 분산 노드 간 동일 한 거래내역을 공유하기 위한 처리과정이 다. 합의 알고리즘을 통하여 다수 노드 간 안정 성과 데이터의 투명성이 유지되기 때문에 블록 체인 시스템에서 합의 알고리즘은 매우 중요한 요소이다.
합의 알고리즘을 통하여 블록체인 적용 이전에
발생 가능하였던 거래의 이중처리를 피하고 정확 한 거래이력관리 및 데이터 공유가 가능하다.
일반적으로 합의 알고리즘은 합의 과정에 따 라 PoW(Proof of Work), PoS(Proof of Stake), PBFT(Practical Byzantine Fault Tolerance), PoA(Proof of Authority) 등으 로 구분된다[3].
다음은 합의 알고리즘에 대한 간단한 설명이다.
표 2. 합의 알고리즘[3][5].
Table 2. Consensus algorithm.
Kinds Contents Pros
PoW
first blockchain algorithms introduced in the blockchain network. Many blockchain Technologies uses this blockchain consensus models to confirm all of their transactions and produce relevant blocks to the network chain.
51% attack, Better Security
PoS
Proof of stake is a consensus algorithm blockchain that deals with the main drawbacks of the proof of work algorithm.
Energy efficient
More decentralize
PBFT
PBFT mainly focuses on the state machine. It replicates the system but gets rid of the main Byzantine general problem.
Consensus processing efficiency
PoA
Proof-of-Activity blockchain consensus protocol, the mining process starts just like the PoW algorithm. The miners solve a critical puzzle to get a reward.
51% attack, Better Security
퍼블릭 블록체인의 경우 익명의 다수에 의하 여 노드가 연결되어 있기 때문에 51%이상의 노드가 악의적 노드라면 거래내역을 위조 및 변조가 가능하다. 이를 통하여 블록체인의 거래 내역의 허위적 변경이 가능하다.
이러한 위협적 상황을 배제하고자 블록생성 시 작업에 의한 해시값 생성을 유도하고 블록 생성자에게는 보상을 한다. 블록생성을 통한 보 상을 얻기 위해 노드들은 컴퓨팅 파워 및 지분 을 활용하여 합의를 이끌어낸다.
퍼블릭 블록체인의 합의 알고리즘은 네트워 크에 연결된 모든 노드에 의한 인증 및 검증이 필요하므로 합의를 위한 지연이 발생할 수 있 으며 과도한 컴퓨팅파워 및 지분확보 경쟁으로 인한 불필요한 에너지소모가 초래될 수 있다.
또한 여러 노드가 같은 시간에 동일한 블록을 생성한 경우 포크(Fork)가 발생될 수 있으며
체인의 분기로 인하여 블록의 신뢰를 저하시킬 수 있다.
허가된 노드로만 구성된 프라이빗 블록체인 플랫폼의 경우 검증된 노드들 간의 합의가 가 능하므로 컴퓨팅 파워를 활용한 작업증명이나 지분확보를 위한 경쟁이 필요 없다. 소수의 허 가된 노드에 대하여 권위기반의 대표 노드의 합의와 참여자간 동의에 의한 합의가 이루어질 수 있으며, 여러 차례의 합의 및 인증과정을 통 하여 합의가 이루어질 수도 있다[6].
프라이빗 블록체인 플랫폼에서 자주 활용되는 합의 알고리즘은 PBFT와 Raft이다. PBFT는 정확한 데이터 관리가 가능하나 노드 간 중복 된 합의 및 인증이 불가피하여 네트워크 통신 비용이 증가한다. Raft는 권위에 의한 Leader 선출과 빠른 후보자 관리가 가능하여 PBFT 대비 빠른 블록생성 및 인증 처리가 가능하다 [7][12].
2.2 PBFT
PBFT는 하나의 리더(Primary) 노드와 다 수의 리플리카(Replica) 노드로 구성된다.
PBFT의 처리 프로세스는 총 4단계에 의한 전체 합의, 인증의 과정을 거치며 세부과정은 다음과 같다.
PBFT의 합의 과정은 다음과 같다.
Pre-Prepare
Elects to be a Primary (initially Replica 0) node and requests to propagate the block acknowledgment to other nodes.
↓ Prepare
N-1 replicas propagate the requested fact to all other nodes.
↓ Commit
Each node collects requests from other nodes. If the requested number of nodes is 2/3 or more, the block is validated and all the block validation results are propagated to other nodes.
↓ Reply
Each node collects the validation result of blocks sent by other nodes. If the same result exceeds 2/3, each node generates a block after recognizing it as a correct block creation request and transmits the state to the client.
그림 3. PBFT합의과정[8][14].
Fig. 3. PBFT consensus process.
해당 절차를 통하여 N개의 노드에 대한 브로 드 캐스트가 2회 발생하며 이에 따라 네트워크 통신비용이 N2회 발생함을 알 수 있으며 노드 수 증가에 따라 지속 증가될 수 있어 네트워크 통신비용 부담으로 작용한다[14].
2.3 Raft
PBFT가 모든 노드를 대상으로 브로드캐스 트를 통하여 검증하고 확인하는 것과 달리 Raft 는 Leader를 선출하고 Leader에 의한 블록생 성 및 확인과정이 처리된다. 만일 Leader에 오류가 발생하면 빠르게 Candidate들을 선발 하고 해당 Candidate 중 Leader를 선출한 후 블록생성을 재요청한다. 해당 과정을 Commit 요청까지 반복하는 재선출 알고리즘이 진행된 다[9].
이러한 Raft의 단순한 합의과정을 통하여 빠 르게 블록을 생성하고 생성된 블록은 블록체인 에 추가되는 즉시 블록의 Finality를 보장할 수 있다.
Raft는 Leader, Follower, Candidate 세 가지의 상태변화를 통하여 합의를 진행한다.
Raft는 분산 네트워크에서 기본적으로 사용 되는 합의 알고리즘으로써 블록체인에서도 허 가된 노드만이 있다는 가정에 따라 리더를 선 출하고 리더 주도하에 합의가 진행되므로 네트 워크 통신비용이 매우 효율적이다. 하지만 Raft 는 프라이빗 블록체인에서만 활용가능하며 노 드 수가 증가하면 확장성 측면에서 어려움이 있다[9].
3. 수정된 PBFT 알고리즘
본 논문에서는 프라이빗 블록체인 합의 알고 리즘 중 대표적으로 활용되는 PBFT는 중복된 브로드캐스트과정을 거치며 이러한 과정을 통 하여 노드 증가 시 통신비용의 부담이 높아질 수 있다. 이에 다음과 같이 수정된 PBFT 알고 리즘을 제안한다.
3.1 연구개요
본 논문에서 제시한 사용자 환경은 신뢰를 기반으로 한 노드들로 구성되어 있음을 가정한 다. 따라서 모든 노드 간 합의가 필요하지 않으 며 대표 노드 선출을 통한 브로드캐스트과정 단순화가 가능하다.
1) 수정된 PBFT를 위한 네트워크 환경 특징
PBFT에서 발생하는 중복된 합의 및 인증절 차에 대한 처리는 정확성을 보장하는 반면 네 트워크 통신비용의 부단을 가중시킨다[14].
프라이빗 블록체인 환경의 특징을 고려할 때 허가된 노드만이 존재한다는 가정이 존재할 경 우 여러 차례의 중복작업에 의한 네트워크 통 신비용의 부담을 줄이기 위한 브로드캐스트 과 정 간소화를 고려할 수 있다.
본 논문에서는 수정된 PBFT를 제안하여 PBFT의 장점과 PoS 및 Raft의 장점을 활용 한 네트워크 통신의 시간효율성을 통하여 TPS 의 효율을 높일수 있다.
2) 수정된 PBFT 처리 프로세스
PBFT의 경우 대량의 트랜잭션에 대하여 비 동기적 합의가 가능하다. 수정된 PBFT는 허가 된 신뢰할 수 있는 노드들로 블록체인 네트워 크가 구성되어 있음을 가정하고 비동기적 합의 시 BFT를 허용한다.
본 논문에서 제안하는 내용은 크게 두 가지로 구분할 수 있다. 첫 번째, 합의 알고리즘 실행 시 리더 및 신뢰가능 노드의 역할을 강화하는 것이다. 텐더민트(Tendermint)의 지분 기반 블록합의와는 다른 방법이다. 두 번째, 스마트 컨트랙트의 처리과정에 대한 효율적 운영이다.
BFT의 허용에 따라 악의를 가진 노드를 고 려할 수 있으며 신뢰가능 노드 고려에 따라 리 더노드의 변경이 빈번하게 발생할 가능성을 고 려하여 스마트 컨트랙트에 대한 안전한 처리와 지속적 확인이 필요하기 때문이다. 본 논문에서 제안하는 PBFT의 처리과정은 다음과 같다.
먼저, Request 발생을 통하여 클라이언트가
상태 변환을 요청하는 메시지를 기 선출된 리 더노드에게 전송한다. 리더노드는 처리할 트랜 잭션과 더불어 스마트 컨트랙트 항목에 대한 리스트를 관리하여 환경에 따라 임의의 시간단 위를 설정하여 일괄 처리토록 한다.
이후 Pre-prepare과정을 통하여 요청에 대 응하는 Sequential Number N을 생성하여 리더가 합의를 요청할 중간 리더 ML(Middle Leader)를 선정한다.
ML선정 시 Pos의 지분에 의한 고려와 Raft 리더 선출알고리즘을 적용하여 기 선출된 리더 를 제외한 N-1개의 candidate 중 ML을 적절 한 사용자 그룹 K개로 나누어 K개의 ML이 선 출되도록 한다. ML의 최초 선정 시에는 리더 에 의하여 임의의 K개의 ML이 선출된다. 이 때 ML위임을 모든 노드에게 알리는 신호가 필 요하며 네트워크 통신비용은 (N-1)에 가깝다.
Prepare 과정에서는 ML에게 V(View the Message is being sent)와 메시지를 보내어 검증과 합의를 요청한다. 만일 일정 시간 동안 Reply가 없는 경우 해당 노드의 수만큼 ML을 재 선출하며 이때도 Raft의 선출알고리즘을 적 용하여 빠르게 재 선출 되도록 한다. 이 경우의 네트워크 비용은 (2/(N-1))에 근접한다.
K개의 ML을 통하여 합의가 진행된 경우 합 의결과는 리더에게 전달되고 리더는 해당 거래 가 합의되었음을 모든 노드에게 알린다. 이때 네트워크 비용은 ((N-1)+1)과 같이 계산할 수 있다.
이후 요청 결과를 클라이언트에게 전달하며 만일 리더의 오류 및 ML의 오류 발생 시 모든 노드를 대상으로 Raft의 선출알고리즘을 적용 하여 재선출하게 된다.
리더 재 선출과정은 PoS와 Raft의 선출알고 리즘에 기반 한다[9].
3.2 수정된 PBFT 성능 평가
본 논문에서는 성능평가를 위한 별도의 실험 환경은 필요하지 않으며 기존 논문에서 제안한 TPS를 기반으로 네트워크 통신비용 추이를 분 석한다.
표 3. 성능평가 항목 및 수식.
Table 3. Performance evaluation items and formulas.
factor Measurement content
TPS(α)
Equation:
○ PBFT :
f(x)=3.74x + 3.178e-N
○ Modified PBFT : f(x)=9.84x-N+α
α : PoS and Raft's Election Algorithm Cost + Smart contract processing time
※Measures transaction throughput per second between participating nodes and increases in proportion to the number of authoritative nodes.
성능평가항목에 대한 수식 계산을 위하여 각 합의 알고리즘으로 산출된 데이터 중 A와 B를 측정하기 위하여 돌발 상황이 없다는 가정을 전제로 다음과 같이 데이터를 샘플링하고 해당 데이터를 통하여 수식을 예측하였다. 본 식은 기존의 TPS 계산식을 적용하였으며 제안한 리 더 선출과정 및 스마트컨트랙트 처리시간 등 (α)을 고려하여 ()+α와 같이 계 산식을 수정하였다.
위의 수식을 토대로 노드 수 변화에 따른 네 트워크 통신비용을 고려한 TPS의 변화를 그림 4와 같이 측정하였다.
x축 : TPS y축 : Node 수 그림 4. TPS 비교.
Fig. 4. TPS comparison.
본 논문은 프라이빗 블록체인의 사용자 환경 을 고려하여 허가된 신뢰가능한 노드만이 존재 한다는 가정을 기반으로 하였으며 BFT가능한 환경임을 고려하였다.
프라이빗 블록체인의 경우 노드의 오류에 의 한 에러가 아닌 이상 모든 노드에 대한 신뢰가 보장된다. 따라서 PBFT의 중복적인 합의과정
을 단순화하고 PoS의 지분에 의한 가치 고려 와 Raft의 리더 선출알고리즘을 적용하였다.
만일 리더의 오류가 발생하는 경우 총 노드 N 개에 대하여 리더 선출알고리즘을 다시 시행토 록 한다.
그 결과 위와 같이 PBFT와 수정된 PBFT의 네트워크 통신비용과 TPS를 비교하였을 때 노드 수 증가에 따라 수정된 PBFT를 통하여 TPS의 효율이 더욱 증가됨을 확인할 수 있었다.
4. 결론
블록체인은 분산네트워크 환경에서 데이터를 정확하고 투명하게 공유한다는 장점을 지니고 있다. 이러한 블록체인의 특징을 활용하는 공공 기관, 기업이 점차 증가함에 따라 프라이빗 블 록체인의 효과적인 합의 알고리즘에 대한 관심 이 높아지고 있다. 본 논문에서는 허가된 노드 만이 존재하는 프라이빗 블록체인 환경을 기반 으로 PBFT와 Pos, Raft의 장점을 활용한 수 정된 PBFT를 제안하였다. 또한 수정된 PBFT 와 PBFT의 성능평가를 비교분석하기 위하여 처리과정을 고려한 수정된 수식을 사용하였다.
성능평가에 사용된 요소는 초당트랜잭션처리 량이며 수정된 PBFT의 주요특징인 리더 선출 과정을 감안하여 기존 문헌의 수식을 변형하여 활용하였다. 성능평가의 결과 PBFT는 노드의 증가에 따라 1차함수의 형태를 보였으며 수정 된 PBFT는 로그함수의 형태로 증가함을 확인 하였다.
본 논문에서 실험 시 신뢰 가능한 상태를 유 지하였으므로 향후 돌발 상황 등에 대한 네트 워크 처리비용 및 다양한 연산비용을 고려하여 다수의 노드 환경에서 효율적으로 활용 가능하 도록 향후 연구를 지속할 계획이다.
참고 문헌
[1] ETRI WEBZINE, “블록체인이 불러올 혁신 은 무엇인가?”, 2019.
[2] Gartner Information Technology Research,
“Blockchain in Digital Business: What the Board Needs to Know”, 2020.
[3] 한국과학기술정보연구원, “콘텐츠 서비스 블록 체인 적용을 위한 사례분석”, 2019.
[4] World Economic Forum, “The future of financial infrastructure”, 2016.
[5] 101 Blockchains, “Consensus Algorithms:
The Root Of The Blockchain Technology”, 2018.
[6] Y. A. Min, and Y. T. Beak, “A Study on the Application of Block Chain Ethereum Technology to Activate Digital Contents Trading as Sharing economy”, Journal of the Korea society of computer and informationm, Vol. 23, No. 10, pp. 73-80, 2018.
[7] Jinseok Kim, “A Design of Secure and Efficient PBFT Consensus Algorithm in blockchain”, 2019.
[8] J. H. Park, “Design of On-Line P2P Financial Transaction Platform Based on Improved PBFT blockchain”, Hanyang University, 2018.
[9] Y. A. Park, J. H. Kim, L. K. Kim, and In-kyu, “A Case Study on the Application of Ethereum-blockchain Technology for Electronic Voting System”, Journal of inforamtion technology and architecture, Vol. 15 No. 2 pp. 201-218, 2018.
[10] G. Wood, “Ethereum: A secure decentralised generalised transaction ledger”, Ethereum Project Yellow Paper, 2014.
[11] C. J. Park, and G. M. Park, “Trend Analysis of Application Fields of Block Chain Technology using Patent Data”, The Journal of KINGComputing, Vol.
14, No. 2, pp. 72-81, 2018.
[12] Y. Xiao, N. Zhang, W. Lou, and Y. T.
Hou, “A Survey of Distributed Consensus Protocols for Blockchain Networks”, IEEE Communications Surveys & Tutorials,
Vol. 22, No. 2, pp. 1432-1465, 2020.
[13] A. Miller, Y. Xia, K. Croman, E. Shi, and D. Song, “The Honey Badger of BFT Protocols”, Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security, pp. 31- 42, 2016.
[14] M. Castro, and B. Liskov, et al.
“Practical byzantine fault Tolerance”, In OSDI, Vol. 99, pp. 173-186, 1999.