블록체인 합의: Difference between revisions
From IT Wiki
No edit summary |
|||
Line 123: | Line 123: | ||
*참가자 1명이 프라이머리(리더)가 되어 모든 참가자에게 요청 송신 | *참가자 1명이 프라이머리(리더)가 되어 모든 참가자에게 요청 송신 | ||
*그 요청에 대한 결과를 집계한 뒤 다수의 값을 사용해 블록을 확정 | *그 요청에 대한 결과를 집계한 뒤 다수의 값을 사용해 블록을 확정 | ||
*각 노드는 브로드캐스트 된 명령을 받게 되면 모든 노드에 회신 | |||
*각 노드는 브로드캐스트 된 명령을 받게 되면 | *각 노드는 명령을 일정 수 이상 수신하면 명령을 실행하고 블록을 등록 | ||
*각 노드는 | |||
| | | | ||
* Finality Problem 해결 | * Finality Problem 해결 | ||
Line 138: | Line 137: | ||
* PoA | * PoA | ||
| | | | ||
*트랜잭션 및 블록의 | *트랜잭션 및 블록의 Validator라고 승인된 계정에 의해 유효성이 검사 | ||
* | *Validator의 권리를 얻으므로 그들이 얻은 지위를 유지하고자 함 | ||
*자신의 신원에 | *자신의 신원에 부정적 평판이 생기길 원치 않도록 노력할 거라 가정 | ||
| | | | ||
| | | | ||
Line 173: | Line 172: | ||
|} | |} | ||
<br /> | <br /> | ||
==같이 보기== | ==같이 보기== | ||
*[https://blog.seulgi.kim/2018/05/safety-liveness-in-blockchain.html Safety & Liveness - FLP impossibility으로 보는 블록체인] | *[https://blog.seulgi.kim/2018/05/safety-liveness-in-blockchain.html Safety & Liveness - FLP impossibility으로 보는 블록체인] |
Revision as of 19:54, 8 March 2020
- Blockchain Consensus
본 문서는 블록체인의 함의 알고리즘, 합의 프로세스에 대해 다룬다.
속성
- 합의 프로토콜은 아래 두 속성을 만족시켜야 한다.
- Safety: 시스템에 나쁜 일이 발생하지 않는다는 의미이며, 모든 정상적인 참여자는 같은 상태에 동의하여야 하고, 그 상태는 유효해야 함
- 문제 없는 노드는 잘못된 합의를 하지 않는다.
- Liveness: 시스템은 항상 살아 있어야 한다는 의미이며, 결국에는 어떤 상태에 동의하여야 하고, 모든 참여자는 동의된 상태에 도달해야 함
- 문제 없는 노드는 반드시 합의를 한다.
Liveness over Safety
Safety over Liveness
주요 고려사항
- Finality Problem
- 51% Attack/BTF
- Transaction Cost
합의 방식 종류
합의 방식 | 설명 | 장점 | 단점 | 사용 코인 | |
---|---|---|---|---|---|
퍼블릭
|
작업 증명
|
|
|
|
|
지분 증명
|
|
|
|
| |
위임 지분 증명
|
|
|
|
| |
경과 시간 증명
|
|
|
| ||
프라이빗
|
PBTF |
|
|
|
|
권한 증명
|
|
||||
PAXOS |
|
||||
RAFT |
|
|
|||
Sieve |
|