Distributed Consens 알고리즘 정리

블록체인의 핵심 중 하나는 분산된 노드 간의 합의를 어떻게 할 것인가이다. 이를 제대로 이해하기 위해서 기존 분산 시스템의 합의 알고리즘 관련된 링크를 정리한다.

Paxos

  • 쉽게 풀어 쓴 논문: https://lamport.azurewebsites.net/pubs/paxos-simple.pdf
  • 한글 블로그의 요약본: http://blog.lastmind.io/archives/684
  • 블로그에서 언급한 의사코드 위주의 설명 논문: http://www.cs.cornell.edu/courses/cs7412/2011sp/paxos.pdf
  • 구현 관점에서의 이슈 정리 논문: http://www.read.seas.harvard.edu/~kohler/class/08w-dsi/chandra07paxos.pdf
  • 마찬가지로 한글로 요약해 주신 것: http://blog.lastmind.io/archives/780
  • 위키 설명: https://en.wikipedia.org/wiki/Paxos_(computer_science)

Raft

  • 공식 사이트: https://raft.github.io
  • 논문: https://raft.github.io/raft.pdf

 

위 두 알고리즘과 블록체인의 합의 알고리즘의 가장 큰 차이는 “non-Byzantine” 조건을 위 알고리즘을 가정한다는 것이다. “non-Byzantine” 은 풀이하자면 교환할 정보의 위조가 없다는 것을 가정한다는 뜻이다. 따라서 기존의 분산 시스템에서의 합의 알고리즘은 노드 간의 동일한 상태를 유지하기 위한 방법이고, 블록체인에서의 합의 알고리즘은 노드 간 상호 신뢰할 수 없는 상황에서 어떻게 합의를 이룰 것인가를 풀기 위한 방법이다.