개발자는 오늘도 달립니다.
[Hyperledger Fabric] 블록체인 종류 및 합의 알고리즘 본문
사실 이전에 하이퍼레저 패브릭과 이더리움을 배우면서도 각각의 블록체인이 채택한 합의 알고리즘이 어떤 것인지 설명을 보긴 봤는데 기억이 제대로 나지 않는다. 그래도 블록체인을 조금이나마 경험해봤다고 하면 합의 알고리즘이 무엇인지는 제대로 알아놔야 할 것 같아서 정리해본다.
우선, 우리가 흔히 알고 있는 블록체인 종류에는 여러 가지가 있다. 정리를 위해 블록체인의 종류에 대해 검색해봤지만 명확한 기준 없이 블로그마다 내용이 약간씩 달랐다. 그중에서 우리가 흔히 아는 퍼블릭 블록체인과 프라이빗 블록체인에 대해서 일단 정리해보려고 한다. 이름에서 유추하자면 퍼블릭 블록체인은 모든 사용자가 참여할 수 있고, 프라이빗 블록체인은 선택된 특정한 사람들만 참여할 수 있을 것 같다. 이렇게 어떤 사용자가 블록체인 네트워크에 참여하게 되느냐에 따라 종류가 구분되고 장단점이 생겨난다.
1. 퍼블릭 블록체인
누구나 인터넷에 연결된 PC, 노트북, 스마트폰, 서버, 컴퓨터 채굴기 등 다양한 컴퓨터 장비를 이용하여 참여할 수 있는 블록체인 네트워크이다. 공공 블록체인 또는 개방형 블록체인이라고 한다. 이는 운영과 참여의 주체가 불분명해서 인센티브 제도인 코인(토큰)을 발행하여 운영된다.
1.1 특징
퍼블릭 블록체인 네트워크에 참여하는 개별 컴퓨터를 '노드(node)'라고 하는데, 각 노드들은 블록체인에 저장된 데이터를 복사 및 저장하고 해시 연산을 통해 새로운 블록의 생성에 참여할 수 있다. 각 노드들은 언제든지 자신의 컴퓨터를 블록체인 네트워크에 연결하지 않고 접속을 차단함으로써 자유롭게 탈퇴할 수 있다. 블록체인 네트워크에 참여 혹은 탈퇴하는 것은 권위 있는 조직의 승인 필요 없이 전적으로 해당 노드 참여자의 자유로운 의사에 따라 결정된다.
1.2 보상
참여자들의 컴퓨터 사용에 따른 전기료 등 운영비용을 감당할 수 있도록, 암호화폐를 발행하여 보상하며 전송 비용(Transaction fee)를 받는다.
1.3 장점
많은 사람들이 함께 참여해서 투명성이 강화된 모델이며, 많은 사람들이 네트워크에 참여할 수록 보안이 강화된다.
1.4 단점
많은 사람들에 의해 합의가 진행되고 전체 네트워크에 전파해서 동기화해야 하기 때문에 속도가 느리다. 또한, 참여가 자유로우므로 인증 안 된 참여자들과 악의적인 목적을 가진 해커도 모두 네트워크에 접근이 가능하다.
2. 프라이빗 블록체인
법적 책임을 지는 허가받은 사람만 블록체인 네트워크에 참여할 수 있다. 운영과 참여의 주체가 분명하기 때문에 인센티브 제도인 코인을 발행하여 운영하지 않아도 된다. 읽기/쓰기/합의 과정에 참여할 수 있는 참여자가 미리 지정되어 있고, 필요에 따라 주체가 새로 추가되거나 제거됨으로써 금융기관에서 사용되는 것이 용이하다.
2.1 장점
허가받은 소수의 사람들이 참여하기 때문에 기밀성이 강화된 모델이며, 신뢰할 수 있는 사람들만 참여해서 트랜잭션 속도가 빠르다.
2.2 단점
적은 사람들에 의해 합의가 진행되기 때문에 일부 중앙화가 되어 보안성이 낮아질 수 있다.
*기업에서는 퍼블릭 블록체인을 택하기엔 모든 데이터를 공개하기 꺼려하고, 그렇다고 프라이빗을 택하기엔 DB(데이터베이스)와 다를 바 없다는 견해가 있음. 따라서 기존의 시스템을 블록체인으로 변경하려면 고려해야 할 점이 많다. 일부 시스템은 퍼블릭과 프라이빗 블록체인을 결합한 하이브리드 구조로 설계된다고 한다.
3. 퍼블릭 블록체인과 프라이빗 블록체인 비교
| Public Blockchain | Private Blockchain |
읽기 권한 | 누구나 | 허가된 기관만 |
거래 검증 및 승인 | 네트워크에 참여하는 누구나 | 승인된 기관 및 감독 기관 |
트랜잭션 생성자 | 누구나 | 법적 책임을 지는 기관만 |
합의 알고리즘 | 부분 분기를 허용하는 작업증명이나 지분증명 알고리즘 | 부분 분기를 허용하지 않는 BFT 계열의 합의 알고리즘 |
속도 | 7~20 TPS | 1000 TPS 이상의 고성능 |
권한 관리 | 누구나 모든 일을 할 수 있음 | Private 채널, Tierd system 등을 통해 읽기 쓰기 권한 관리 가능 |
예시 | 비트코인, 이더리움 | IBM Fabric, LoopChain, R3 Corda |
4. 그 외의 블록체인
4.1 완전한 프라이빗 블록체인(Fully private blockchain)
하나의 기관 또는 기업 아래서 사용되는 블록체인, 데이터 관리와 검증, 거래내역에 접근하기 위해서는 중앙기관에서 허가를 받아야 가능하다. 블록체인 기술을 사용하지만 중앙이 힘을 가지고 있고, 그저 분산된 데이터베이스만 갖는 구조로서 현재의 전통적인 시스템에 블록체인의 보안 검증성의 특징만 가져온다.
4.2 컨소시움 블록체인(consortium blockchain)
여러 기관 또는 기업이 하나의 그룹을 이뤄 블록체인 네트워크를 구성하는 구조이다. 퍼블릭 프라이빗 블록체인의 성격을 모두 가질 수 있으며, 노드에도 특정 역할을 부여할 수 있는 통제권을 가진 블록체인 네트워크다.
*참고한 블로그에선 블록체인의 종류를 퍼블릭/프라이빗/컨소시엄 이렇게 3가지로 나누기도 했다.
5. 블록체인별 합의 알고리즘
앞서 퍼블릭과 프라이빗 블록체인에 대해 알아봤으니, 각각의 알고리즘의 동작과 특징을 이해하기 조금 더 수월할 것이라 생각한다. 블록체인마다 사용하는 합의 알고리즘의 종류가 다르다. 어떤 블록체인이 어떠한 합의 알고리즘을 사용하는지 알아보고, 각각의 알고리즘에 대해 더 자세히 알아보려고 한다.
5.1 퍼블릭 블록체인의 합의 알고리즘
퍼블릭 블록체인인 비트코인의 경우 '작업증명 알고리즘'을 사용하고 있고, 이더리움은 2017년 8월부터 '작업증명과 지분증명 알고리즘을 hybrid형태'로 사용하고 있다. 2018년 지분 증명으로의 전환을 목표로 하였으나, 지난달인 2019년 3월 1일에 하드포크*를 완료하였다.
하드포크에서 '포크'는 블록체인 네트워크에 기능 개선 및 보안 강화 등이 필요할 때 하는 업그레이드를 말한다. 여기서 포크는 이전 버전과 호환되는 '소프트 포크'와 호환되지 않는 '하드 포크'로 나뉜다.
- 작업증명 (Proof of Work, PoW) : 블록체인에서 가장 보편적으로 사용 중인 합의 알고리즘으로, 컴퓨팅 파워를 이용하여 특정 난이도의 해시값을 역함수의 해시화를 통해 Nonce 값을 계산해내고 이를 검증하는 것으로 합의를 도출한다.
- 지분증명 (Proof of Stake, PoS) : PoW의 컴퓨팅 파워 낭비 문제를 해결하고나 개발된 합의 알고리즘으로 노드가 보유한 자산을 기준으로 권한을 분배하여 합의를 도출하고 보상을 분배한다.
5.2 프라이빗 블록체인의 합의 알고리즘
프라이빗 블록체인의 경우 보통 PBFT와 Paxos 알고리즘을 사용하고 있으나, 기업용 이더리움의 대표 프로젝트인 Quorum의 경우 Raft 알고리즘을 사용하고 있다.
Paxos : 가장 일반적인 합의 알고리즘. 리더를 선정하고 과반수의 동의에 의해 합의를 이룬다.
PBFT(Practical Byzantine Fault Tolerance) : 비잔틴 장군 문제를 해결하고자 고안된 합의 알고리즘. 투표 메커니즘을 도입한 3단계 프로토콜을 이용하여 합의를 도출한다.
Raft : Paxos를 보완한 형태로, 투표와 랜덤 타임아웃을 통한 리더 선출로 절차를 단순화한 것이 특징이다.
'블록체인 > 하이퍼레저패브릭' 카테고리의 다른 글
[Hyperledger Fabric] 하이퍼레저 패브릭 first-network 올리기! (v1.4.1) (0) | 2021.10.22 |
---|---|
[Hyperledger Fabric] 블록체인 대표적인 합의 알고리즘 - 작업증명, 지분증명 (0) | 2020.07.04 |
[Hyperledger Fabric] 블록체인에 사용되는 합의 알고리즘 3 - PBFT, DPoS, Paxos, Raft (0) | 2020.07.04 |
[Hyperledger Fabric] Hyperledger Caliper 설치 및 실행 방법 (0) | 2020.06.08 |
[Hyperledger Fabric] 하이퍼 레저 패브릭 & 익스플로러 설치 방법 (0) | 2019.12.31 |