블록체인 플랫폼을 만들려면 합의 알고리즘 외에도 트랜잭션 포맷, P2P 네트워크, 직렬화, 스토리지, 키 관리, 암호 알고리즘 등 여러 요소들을 고민해야 합니다. 하지만 보통 블록체인 기술 백서는 합의 알고리즘 위주로 1-2개의 주요 기술 요소만 설명하고 다른 요소에 대해서는 언급을 하지 않는 경우가 많습니다.
블록체인 기술을 직접 만들려면 이런 요소들도 간과할 수가 없는데, 비트코인, 이더리움 소스 코드를 보는 방법 외에는 마땅한 리소스가 없는 것도 사실입니다. 블록체인 구현 기술에 대해 궁금한 분에게 추천 드리는 문서는 Tendermint의 CTO인 Ethan Buchman가 석사 논문으로 작성한 Tendermint: Byzantine Fault Tolerance in the Age of Blockchains입니다.
Tendermint 합의 알고리즘 뿐만 아니라 블록체인 구현에 필요한 여러 기술 요소들에 대해 간결하게 잘 설명하고 있고, 배경 지식, 다른 블록체인 플랫폼과의 비교 등도 포함되어 있어서 블록체인 기술을 구현 수준에서 공부하시는 분들에게 좋은 가이드가 될 것 같습니다.
Go 언어로 구현된 Tendermint 소스 코드도 참고하세요!