JS Dev Blog
블록체인 네트워크/합의 알고리즘 본문
블록체인 네트워크 유형
구분 | 퍼블릭 블록체인 | 프라이빗 블록체인 | 컨소시엄 블록체인 |
관리자 | 모든 거래 참여자 | 한 중앙 기관이 모든 권한 보유 | 컨소시엄에 소속된 참여자 |
거버넌스 | 한번 정해진 법칙을 바꾸기 매우 어려움 | 중앙 기관의 의사결정에 따라 용이하게 법칙을 바꿀 수 있음 | 컨소시엄 참여자들의 합의에 따라 법칙을 바꿀 수 있음 |
거래속도 | 네트워크 확장이 어렵고 거래 속도가 느림 | 네트워크 확장이 매우 쉽고 거래 속도가 빠름 | 네트워크 확장이 쉽고 거래 속도가 빠름 |
데이터 접근 | 누구나 접근 가능 | 허가 받은 사용자만 접근 가능 | 허가 받은 사용자만 접근 가능 |
식별성 | 익명성 | 식별 가능 | 식별 가능 |
합의 알고리즘(Consensus Algorithm)
다수의 참여자들이 통일된 의사결정을 하기 위해 사용하는 알고리즘을 말한다.
PoW (Proof of Work)
블록을 대표하는 해시값인 블록해시를 생성하려면, 일정한 조건을 만족해야 한다. 일정한 조건이란, 블록 난이도에 따라 자동으로 설정된 '목표값'보다 더 작은 블록해시값을 찾아야 한다는 제약조건이다. (앞에 0이 몇 자리수 까지 붙어있는지를 확인해서 제약조건 만족 유무를 체크 함) 해시는 랜덤하게 생성되기 때문에, 수없이 많은 연산을 반복해서 미리 정해진 목표값 이하의 해시값이 나오도록 해야 한다. 이 때 랜덤한 해시값을 생성할 수 있도록 매번 임시값을 사용해야 하는데, 그 임시 값이 바로 논스다.
예를들어서 해당블록의 생성일시, 버전, 비츠 루트해시 이전 블록의 해시 등 블록에 포함되어야 하는 정보들에 논스 값을 1, 2, 3, 4 ... 이런식으로 하나씩 붙여서 목표값보다 작은 해시값을 찾으면 새로운 블록을 성공적으로 생성할 수 있는 것이다. 이 행위의 보상으로 암호화폐를 지급 받는다. 정리하자면, 작업증명에서 해쉬를 찾는다는 의미는, 특정 목표값 이하의 블록해시를 생성하는 '논스값'을 찾는 행위라고 볼 수 있다.
연산능력이 월등하게 좋은 참여자가 의사결정권을 가질 수 있음. (중앙화)
ex) Bitcoin, Litecoin, Ethereum, Monero, Qtum
PoS(Proof of Stake)
플랫폼 토큰을 보유한 양과 기간에 따라 결정적으로 또는 확률적으로 블록 제안자격을 취득함. 네트워크에 기여하는 정도에 따라서 권한을 가짐.
ex) Ethereum FFG & CFG, EOS(dPoS)
PoW, PoS 둘다 자본력을 가진 특정 집단이 해쉬파워, 토큰을 독점할 수 있기 때문에 중앙화된 권력을 가질 수 있음. 둘 다 51% Attack에 노출.
BFT (Byzantine Fault Tolerance)
인증된 노드들만 참여하는 합의 알고리즘. 네트워크 통신량이 많음. 노드 수가 많아질 수록 느려짐.
전체 참여 노드의 1/3이상이 담합할 경우 합의 불가, 전체 참여 노드의 2/3이상이 담합할 경우 중앙화 됨.
Klayten, Hyperledger Fabric, Tendermint
Consensus Algorithm Table
체인 공개 유형 | 합의 방식 | 설명 | 장점 | 단점 | 사용 코인 |
퍼블릭 비허가형 공개형 |
작업 증명 PoW | 각 노드의 연산 능력을 증명하여 블록 생성. 높은 컴퓨팅 파워를 가진 노드가 블록을 생성할 확률이 높음. 오랫동안 사용되며 안전성이 검증되었지만 단점도 많이 도출 | 오랫동안 검증됨. | 51% Attack 완결성 문제 느린 트랙재션 에너지 낭비 |
비트코인 라이트코인 |
지분 증명 PoS | 소유 지분 양에 비례하여 블록 생성 권한을 높은 확률로 부여 받음. 많은 지분을 가진 노드가 블록을 생성할 확률이 높음. 이론적으로 우수하지만 실제 대규모 환경에서 검증사례가 부족. |
51% Attack 내성 빠른 트랜잭션 에너지 낭비 적음 |
완결성 문제 검증 부족 |
퀀텀 네오 스트라디스 | |
위임 지분 증명 DPoS |
일부 위임된 Validator끼리 PoS 수행 트랜잭션 속도가 더 빠름. 신뢰도는 Validator의 신뢰도에 종속 |
빠른 트랜잭션 에너지 낭비 적음 |
완전성 문제 검증 부족 탈중앙성 부족 보안 취약 |
스팀 이오스 아크 라이즈 |
|
경과 시간 증명 PoET |
경쟁적 연산으로 낭비되는 에너지를 줄이면서 작업 증명과 유사 효과 하이퍼레저 쏘투스 레이크에서 제안 인텔 SGX를 기반으로 블록을 생성하는 리더를 랜덤으로 선정 |
검증된 방법의 개선 에너지 낭비 적음 |
특정 HW 종속 | 쏘투스 | |
프라이빗 허가형 컨소시엄 |
PBTF | 참가자 1명이 프라이머리(리더)가 되어 모든 참가자에게 요청 송신. 그 요청에 대한 결과를 집계한 뒤 다수의 값을 사용해 블록을 확정. 각 노드는 브로드캐스트 된 명령을 받게 되면 모든 노드에 회신. 각 노드는 명령을 일정 수 이상 수신하면 명령을 실행하고 블록을 등록 |
완결성 문제 해결 빠른 트랜잭션 |
참여자 사전 파악 필요 참가자 증가 시 성능 하락 |
페브릭 |
권한 증명 PoA, PAXOS |
트랜잭션 및 블록의 Validator라고 승인된 계정에 의해 유효성이 검사 Validator가 될 수 있는 권리를 얻으므로 그들이 얻은 지위를 유지하고자 함. 자신의 신원에 부정적 평판이 생기길 원치 않도록 노력할 것이라 가정 |
||||
RAFT | 리더를 선정한 후 시스템의 모든 변화를 리더를 통해 결정. 신뢰된 네트워크에서만 사용 |
리더의 조작 가능 BTF 보장하지 않음 |
|||
Sieve | IBM에서 고안한 PBFT 확장 알고리즘. 실행결과 전송과 집계 결과 전송으로 흐름이 나뉜다. |
'BlockChain' 카테고리의 다른 글
Truffle로 ERC 721 개발 (0) | 2022.06.09 |
---|---|
니모닉(Mnemonic) 지갑 개발 (0) | 2022.06.09 |
DID(Decentralized Identity, 탈중앙 신원증명) (0) | 2022.06.07 |