비트코인 코어 개발자 공부법

블록체인 개발자에 대한 수요는 높은데, 블록체인 개발 경험이 있는 개발자는 거의 없습니다. 블록체인 개념만 공부하고 바로 블록체인을 만들기는 어렵기 때문에 기존 블록체인 프로젝트 소스코드를 읽고 공부하는 것이 가장 효과적인 방법입니다. 소스코드 공부하기 좋은 블록체인 프로젝트 추천드립니다.

비트코인

Bitcoin Core (C++)
https://github.com/bitcoin/bitcoin

btcd (Go)
https://github.com/btcsuite/btcd

이더리움

go-ethereum (Go)
https://github.com/ethereum/go-ethereum

Parity (Rust)
https://github.com/paritytech/parity

리플/스텔라

rippled (C++)
https://github.com/ripple/rippled

stellar-core (C++)
https://github.com/stellar/stellar-core

Tendermint

Tendermint (Go)
https://github.com/tendermint/tendermint

추가로 암호학적인 접근 방법에 관심이 있으신 분은 monero나 zcash (Bitcoin Core 기반)도 추천드립니다.

흔히 블록체인 기술을 1세대 (비트코인), 2세대 (이더리움), 3세대 (기타 등등)으로 나누는데, 엔지니어 관점에서 3세대 블록체인은 별로 볼 게 없습니다. 소스코드가 아예 없거나 있어도 검증 안 된 프로토타입 수준인 것들이 많아서 기술적인 완성도는 비트코인, 이더리움에 비해서 한참 떨어집니다.

블록체인 개발에 입문하시는 분에게는 특히 비트코인 구현 분석을 추천드립니다. 오랜 세월 개발하면서 생긴 레거시도 있지만, 구현 완성도가 높고 블록체인의 핵심 아이디어를 잘 이해할 수 있는 구조이기 때문입니다. 희안하게 한국에서는 뒤떨어진 기술 취급 받지만, schnorr signature 도입, mimblewimble, MAST(merkleized abstrct syntax tree) taproot 등 재미있는 아이디어를 많이 실험하고 있는 프로젝트이기도 합니다.