안녕하세요? 금마입니다.
이 전 글을 통해서 블록체인 학습의 어려움을 설파하였습니다.
블록체인은 암호학, 네트워크, 데이터베이스 등 여러 가지 IT 기술의
통합체이므로 그러한 기술에 대하여 어느 정도 이해하지 않는다면
블록체인을 깊이 있게 이해하는 것이 불가능합니다.
따라서 쉽게 블록체인을 이해하려는 시도가 오해를 낳을 수 있다는 점도
언급한 바가 있습니다.
그런데 일방적으로 이러한 사항의 전달에만 그친다면 너무 무책임한게 아닐까
하는 생각이 듭니다.
다행스럽게도 근래에 블록체인의 기술 기반에 대하여 학습할 수 있는 서적이
출판 되었더군요.
http://www.yes24.com/Product/Goods/75235536
'컴퓨터과학으로 배우는 블록체인 원리와 구현', 박상현 외 지음, 위키북스, 정가 2만2천원.
내용을 살펴보면 블록체인의 기반 기술이라고할 수 있는 네트워크, 암호학 외에 기초수학까지
설명하고 자바스크립트로 심플한 블록체인을 구현하는 실습 과정까지 담고 있습니다.
자바스크립트로 작성되어 있는 블록체인 소스가 실무에는 사용할 수 없지만 그 원리를
이해한다면 코어 학습에 어느 정도 도움이 될 것입니다.
전에 비트코인 아키텍쳐에 대한 자료를 찾았던 적이 있었는데 관련 자료가 전무했던 기억이
있습니다.
이더리움은 조금 낫지만 소스를 보지 않는 이상 코어를 깊이 있게 이해할 수 없는 환경입니다.
이러한 환경에서 블록체인 코어 학습에 도움이 되는 서적이 나왔기에 추천 글을 올리게 되었습니다.
비단 블록체인 개발자뿐만 아니라 블록체인을 깊이 있게 학습하려는 일반인에게도 도움이 될 것입니다.
물론 소스를 통하여 실습하는 과정이 어려울 수도 있습니다.
반대로 코어를 학습하려는 개발자에게 자바스크립트 소스가 큰 도움이 될까하는 생각도 듭니다.
그렇지만 시작 과정의 지침서로 의미가 있다고 볼 수 있습니다.
원래 200줄의 자바스크립트 소스로 간단하게 블록체인을 구현했던 Naivechain을 참조하여 저자가 이를
기능별로 모듈화시켜 개발한 one-chain을 기반으로 설명하고 있습니다.
다만 어디까지나 학습의 목적이므로 블록체인 코어 개발과 같은 실무에 사용할 수 있으려면
컴파일러형 컴퓨터 언어를 학습하기를 권합니다.
성능을 위해서는 자바스크립트, 파이썬보다는 C++, Go, Rust와 같이 컴파일형 컴퓨터 언어가 낫기
때문입니다.
비트코인 소스는 C++로 되어 있고 이더리움의 Geth는 Go 언어로 되어 있습니다.
코어를 이해하기 위해서는 그에 대한 컴퓨터 언어를 먼저 학습할 수 밖에 없습니다.
위 언어는 각각 비트코인(C++), 이더리움의 Geth(Go), 이더리움의 패리티 코어와 페이스북의
리브라(이상 Rust)의 코딩에 사용되었습니다.
Rust의 경우 국내에 학습서가 거의 전무한 관계로 만약 학습하려면 인터넷이나 유튜브 동영상을 통해서만
학습이 가능한 상황입니다.
반면에 C++는 물론이고 Go 언어(Golang)의 경우도 학습서가 다수가 나와 있는 상황입니다.
블록체인 코어를 배우기 위하여 어렵게 블록체인을 학습하려는 목적을 가졌다면 기초로써 이 서적을 참조하고
이후 블록체인 코어의 해당 코딩 언어에 맞춰 학습을 진행하면 될 것입니다.
물론 이 서적으로 블록체인 기반 기술을 모두 알 수 없습니다.
그래도 비트코인 코어를 어느 정도 설명하고 있는 '마스터링 비트코인'보다는 확실히 이해하기 쉬울 것입니다.
2016년부터 블록체인 기술에 대하여 많은 고민을 했던 경험자의 입장에서 직접 기술한 것이기 때문에 번역서보다는
낫다고 할 수 있습니다.
블록체인은 원래 어렵기 때문에 어렵게 학습하는 것이 맞습니다.
네트워크 기술과 암호학, 기초 수학을 블록체인 이해를 위해 배워야할 때 도움이 될 수 있는 서적입니다.