[Blockchain] 합의 알고리즘 정리
1) 작업 증명, (Proof of Work, POW)
- 비트코인의 창시자인 나카모토 사토시가 제안한 가장 기본적인 합의 알고리즘
- P2P 네트워크에서 시간 및 비용을 들여 실행된 작업을 신뢰하기 위해 참여 당사자 간 검증
- 기보적으로 1개의 CPU당 1개의 투표권을 가짐
- 장점 : 강력한 보안성 (Voting Power(51% rule)를 확보하기 위해 많은 자금이 필요)
- 단점 : 과도한 에너지 소비문제 / 마이닝풀(Mining Pool)이 전체의 50% 육박
- P2P 네트워크에서 시간 및 비용을 들여 실행된 작업을 신뢰하기 위해 참여 당사자 간 검증
- 기보적으로 1개의 CPU당 1개의 투표권을 가짐
- 장점 : 강력한 보안성 (Voting Power(51% rule)를 확보하기 위해 많은 자금이 필요)
- 단점 : 과도한 에너지 소비문제 / 마이닝풀(Mining Pool)이 전체의 50% 육박
2)지분 증명, (Proof of Stake, POS)
- 작업 증명 방식(PoW)의 단점을 해결, 블록 생성권 지분에 참여자가 보유한 지분을 반영
- PoS 방식의 블록을 만드는 과정을 '단조(Forging)'이라고 함 / 단조한 사람이 거래 수수료를 가져옴
- 장점 : 환경 친화적 (PoW와 다르게, 에너지 소비가 적음) / PoW에 비해 공격이 더 효율적임
- 단점 : 보안성에서 아직 검증되지 않음 (ex. 이더리움 클래식 하드포크 과정) / 소수에 의해 블록체인이 좌우될 수 있음
- PoS 방식의 블록을 만드는 과정을 '단조(Forging)'이라고 함 / 단조한 사람이 거래 수수료를 가져옴
- 장점 : 환경 친화적 (PoW와 다르게, 에너지 소비가 적음) / PoW에 비해 공격이 더 효율적임
- 단점 : 보안성에서 아직 검증되지 않음 (ex. 이더리움 클래식 하드포크 과정) / 소수에 의해 블록체인이 좌우될 수 있음
3) 위임지분증명, (Delegate Proof of Stake, DPOS)
- 반 중앙화된 방식으로, 지분을 보유하고 있는 사람이 자기 권한을 대표자에게 위임하여 대표자들이 블록 생성 및 검증에 대한 권한을 행사하는 방식
- 사용자는 자신이 네트워크상에서 보유한 토큰수(지분)이 많으면 더 많은 투표 가능
- DPoS에서 블록 검증자는 합의 규칙 준수여부를 확인하는 노드를 의미
- 블록 생산자의 수가 적기 때문에 , 성능을 위해 분산을 희생하는 프로토콜
- 사용자는 자신이 네트워크상에서 보유한 토큰수(지분)이 많으면 더 많은 투표 가능
- DPoS에서 블록 검증자는 합의 규칙 준수여부를 확인하는 노드를 의미
- 블록 생산자의 수가 적기 때문에 , 성능을 위해 분산을 희생하는 프로토콜
4) 중요도 증명, (Proof of Importance, PoL)
- NEM(New Economy Movement)와 같은 가상화폐에서 사용하는 알고리즘
- '거래량(Transaction volume)' 과 '신용(trust)'가 중요한 요소
- 각각의 계좌는 한 블록의 수확 확률의 기회를 결정하는 PoI 점수를 보유. 더 많고 더 자주 거래할수록 점수가 높아짐. 수확은 국지적 수확(Local Harvest)과 위임도니 수확(Delegated harvest)로 나뉨
(1) 보안을 위해 2개의 층 (퍼블릭 노드와 슈퍼 노드 층 / API층)
- 퍼블릭 블록체인
- 누구나 참여 가능
- 시빌 어택(Sybil Attack, 악의적 노드의 시스템 통제)을 고려하여 Eigentrust++를 도입
- 스마트 자산 시스템
- 특별한 프로그래밍 언어 없이 거래, 새로운 암호화폐 발행, 에스크로 서비스 등을 쉽게 사용 가능
- 네트워크 참여도(중요도 점수)에 따라 지급 보상이 달라짐
- 다중 서명 (Multisig), 최대 32명 제한이며, 특별 합계 수정 거래를 통해 수정
- 컨테이너 에셋(Container Asset), NEM 블록체인 위에서 특별하며 업데이트 가능한 것을 나타낼 수 있는 자산을 담는 용기, 주소는 모자이크 포함
- 네임 스페이스(Name Space), 고유한 자산이나 네이밍 시스템을 분류하는데 사용
- 고정된 스마트 자산 기능을 하는 모자이크(Mosaic), 모자이크 기능을 활용한 암호화폐 발행이 가능
- '거래량(Transaction volume)' 과 '신용(trust)'가 중요한 요소
- 각각의 계좌는 한 블록의 수확 확률의 기회를 결정하는 PoI 점수를 보유. 더 많고 더 자주 거래할수록 점수가 높아짐. 수확은 국지적 수확(Local Harvest)과 위임도니 수확(Delegated harvest)로 나뉨
5) PBFT (Practical Byzantine Fault Tolerance)
PoW, PoS 단점을 해결한 방식으로, 블록체인 시스템에서 약속된 행동을 하지 않고 일부러 잘못된 정보를 전달하는 비잔틴 노드가 있을 수 있는 비동기 시스템일 때, 노드 전부가 성공적인 합의를 할 수 있도록 개발된 증명방식
6) Tendermint (PBFT + DPos)
- PBFT 알고리즘을 보완, 공개 및 비공개 블록체인에 맞도록 개량한 증명방식으로, 추가로 DPoS가 포함되어 지분 기반 투표를 진행하는 방식
- 쉽게 사용하고, 쉽게 이용하며, 높은 성능을 보이고, 여러 어플리케이션을 사용할 수 있도록 함
- Core 부분 ('Tendermint' 라고 부름)
- 노드 간 블록 및 이체 공유
- 정규(Canomical) / 변경배제(immutable) 이체순서의 확립(블록체인)
- 합의 알고리즘과 P2P 네트워킹 프로토콜 두 개의 프로토콜로 구성된 Low-Level 프로토콜
- Application 부분
- UTXO(Unspent Transaction Output, 쓰지않은 결과물들의 합) 데이터베이스 유지
- DappZone의 성능을 높일 수 있음
- 라이트 클라이언트(Lite Client)
- '선 합의, 후 블록생성'의 메커니즘
- 포크가 발생하지 않음
- 시간이 지날수록 안전해지는 시스템 구조
- 협의 알고리즘
- 리더 선출 (round-robin) 방식
- 검증인의 가중치
- 검증인이 리더로 선출, 새로운 블록 제안
- 가중치가 다시 계산, 라운드가 완료된 후 약간의 양이 감소
- 각 라운드가 진행됨에 따라 가중치는 투표권에 비례하여 증가
- 검증인들 중 리더가 다시 선출
- 리더가 누구인지 예측할 수 있는 경우, 샌트리 아키텍쳐(Sentry Architecture)를 구현
7) Consensus-by-bet
기존의 알고리즘과는 달리, 참여자의 동의 및 베팅을 통해서 블록체인의 거래를 승인
합의 프로세스의 선결조건
1) 모든 프로세스가 동일한 값을 결정
2) 해쉬(Hash)함수를 사용
3) 스마트 컨트렉트를 활용하여 이용료의 징수 및 배분의 미이행과 같은 다툼을 원칙적으로 방지
Reference
- 2019, 블록체인 기술 및 산업 분야별 적용 사례 / 국경완 / 정보통신기획평가원