- Blockchain Consensus
본 문서는 블록체인의 함의 알고리즘, 합의 프로세스에 대해 다룬다.
속성
- 합의 프로토콜은 아래 두 속성을 만족시켜야 한다.
- Safety: 시스템에 나쁜 일이 발생하지 않는다는 의미이며, 모든 정상적인 참여자는 같은 상태에 동의하여야 하고, 그 상태는 유효해야 함
- 문제 없는 노드는 잘못된 합의를 하지 않는다.
- Liveness: 시스템은 항상 살아 있어야 한다는 의미이며, 결국에는 어떤 상태에 동의하여야 하고, 모든 참여자는 동의된 상태에 도달해야 함
- 문제 없는 노드는 반드시 합의를 한다.
Liveness over Safety
Safety over Liveness
주요 고려사항
- Finality Problem
- 51% Attack/BTF
- Transaction Cost
합의 방식 종류
합의 방식 | 설명 | 장점 | 단점 | 사용 코인 | |
---|---|---|---|---|---|
퍼블릭
|
작업 증명
|
|
|
|
|
지분 증명
|
|
|
|
| |
위임 지분 증명
|
|
|
|
| |
경과 시간 증명
|
|
|
| ||
프라이빗
|
PBTF |
|
|
|
|
권한 증명
|
|
||||
PAXOS |
|
||||
RAFT |
|
|
|||
Sieve |
|