합의

From CS Wiki
Revision as of 21:43, 28 March 2019 by 59.13.192.130 (talk)
Consensus

본 문서는 블록체인의 함의 알고리즘, 합의 프로세스에 대해 다룬다.

종류

  • PoW: 높은 컴퓨팅 파워를 가진 노드가 블록을 생성할 확률이 높음
    • 51% Attack 가능
    • Finality Problem
    • 트랜잭션 속도 느림
    • 에너지 낭비 많음
    • 많은 검증이루어짐
      • 안전하다고 판명되었으나 단점도 많이 도출됨
  • PoS: 높은 지분을 가진 노드가 블록을 생성할 확률이 높음
    • 51% Attack 내성
    • Finality Problem
    • 트랜잭션 속도 빠름
    • 에너지 낭비 적음
    • 검증 필요
      • 도출된 단점이 없고 이론적으로 우수하지만 검증 부족
  • DPoS
    • 일부 위임된 Validator끼리 PoS 수행
    • 트랜잭션 속도가 더 빠름
    • 신뢰도는 Validator의 신뢰도에 종속
  • PoI: 분산원장의 여러가지 상황을 고려하여 중요도가 높은 노드가 블록을 생성할 확률이 높음
  • PoET
  • BFT
  • PBTF

속성

합의 프로토콜은 아래 두 속성을 만족시켜야 한다.
  • Safety: 시스템에 나쁜 일이 발생하지 않는다는 의미이며, 모든 정상적인 참여자는 같은 상태에 동의하여야 하고, 그 상태는 유효해야 함
  • Liveness: 시스템은 항상 살아 있어야 한다는 의미이며, 결국에는 어떤 상태에 동의하여야 하고, 모든 참여자는 동의된 상태에 도달해야 함