687 / 736BK71

Building Bitcoin in Rust

Lukáš Hozda: 직접 모델을 만들며 Bitcoin 이해하기

지갑에 명령을 내린 뒤 결제가 받아들여질 때까지 무슨 일이 일어날까요? Lukáš Hozda는 Rust 프로그래밍으로 Bitcoin의 내부를 설명합니다. 독자는 학습용 시스템을 조립하며 각 부분이 맡은 일을 알아갑니다.

Building Bitcoin in Rust는 Braiins가 출간한 프로젝트 중심 교재입니다. 단순화한 구현으로 Bitcoin의 기본 개념과 Rust를 가르치며, 실제 비트코인을 안전하게 보관하는 방법을 안내하는 책은 아닙니다.

지갑에서 돈을 보낼 때 프로그램들이 어떻게 통신하는지까지 알 필요는 없습니다. 하지만 내부 과정이 궁금하다면 Lukáš Hozda는 정의를 읽는 데서 한발 더 나아가는 방법을 제시합니다. 시스템의 일부를 직접 만들어 보는 것입니다. Braiins는 2024년에 책을 출간했으며 Daniela Brozzoni와 Luukas Pörtfors를 참여자로 소개합니다. 주 독자는 코드를 작성하며 Bitcoin을 배우려는 학생과 IT 분야 종사자입니다. [1]

출판사가 설명하는 과정은 Bitcoin의 원래 설계를 풀이한 Whitepaper에서 시작해 Rust 기초를 거쳐 라이브러리, 채굴 프로그램, 노드, 문자 명령으로 조작하는 지갑으로 이어집니다. 라이브러리는 공통 부품을 제공하고 채굴 프로그램은 조건에 맞는 블록을 찾습니다. 노드는 데이터를 검증하고 전달하는 데 참여하며 지갑은 키를 다루고 결제를 준비합니다. CPU 채굴 프로그램은 컴퓨터의 프로세서를 사용하는 학습 도구이지, 채굴 수익을 약속하는 수단이 아닙니다. [3]

함께 제공되는 저장소는 공개된 소스 코드 모음입니다. 그 설명은 이 프로젝트를 단순화한 교육용 구현이라고 밝힙니다. 작은 모델에서는 대규모 프로그램의 세부 사항에 가려질 수 있는 관계를 더 쉽게 추적할 수 있습니다. 그렇다고 책 제목이 결과물로 Bitcoin Core를 대체할 수 있다는 뜻은 아닙니다. 모델 안에서 자체 거래를 주고받는다는 사실만으로 실제 Bitcoin 네트워크와의 호환성이나 돈을 보관할 안전성이 입증되지는 않습니다. [4]

프로그램은 데이터를 담을 메모리가 필요합니다. 이미 해제한 메모리의 데이터를 사용하려 하면 오류가 생길 수 있습니다. Rust는 ownership 규칙으로 프로그램의 어느 부분이 값을 소유하고 언제 사용할 수 있는지를 관리해 이런 문제를 막는 데 도움을 줍니다. 소스 코드를 실행 가능한 프로그램으로 바꾸는 컴파일러가 실행 전에 이 규칙을 검사합니다. 하지만 결제 규칙을 올바르게 작성했는지는 저절로 알지 못합니다. 컴파일 성공이 시스템 전체의 정확성을 증명하지는 않습니다. [5]

자신만의 학습 실험을 떠올려 보세요. 결제를 준비해 서명한 다음, 서명한 금액을 바꿉니다. 디지털 서명은 승인을 특정 데이터에 연결해야 하므로, 바뀐 데이터로 원래 서명을 검증하면 실패해야 합니다. 따라서 프로그램이 결제를 화면에 보여 주는 것만으로는 부족합니다. 잘못된 입력을 거부하는지도 시험해야 합니다. 이는 테스트 사고방식을 설명하기 위한 자체 예시이며, 책의 코드에서 실제 확인한 동작을 보고하는 것은 아닙니다. [4] [5] [6]

저장소는 라이브러리, 채굴 프로그램, 노드, 지갑을 구분합니다. 안내 파일 README는 각각을 빌드하고 실행하는 방법을 보여 주어 서로 다른 역할을 따라가는 데 도움을 줍니다. 소스 코드는 ISC 라이선스로 공개되어 그 조건에 따라 사용하고 수정할 수 있습니다. 같은 파일은 책 본문이 해당 라이선스에 포함되지 않는다고 명시합니다. 코드가 공개되어 있다는 사실이 책 전체를 자유롭게 복제할 권리까지 자동으로 주지는 않습니다. [4]

프로그램을 작성한 적이 없다면 거래, 키, 노드, 채굴의 의미와 프로그래밍 기초부터 익히는 편이 좋습니다. 이후 작은 단계마다 무엇을 해야 하는지, 코드가 어떻게 수행하는지, 오류를 어떻게 발견할지 확인하세요. 이것이 우리가 권하는 학습 방법입니다. 책의 가치는 아이디어를 구체적인 실험에 연결할 기회에 있으며, 완성된 지갑을 빠르게 얻는 데 있지 않습니다. 연습에는 실제 저축이나 그 키를 사용하지 마세요. [1] [3]

Braiins 카탈로그에는 432쪽, 상점에는 429쪽으로 나옵니다. 실물 책을 비교하지 않았으므로 이 차이를 해결했다고 하지 않습니다. 이 소개는 출판 정보, 프로젝트 안내, 저장소 README, Rust의 ownership 문서를 바탕으로 합니다. 책 전체의 서평이나 코드 보안 감사가 아니며 예제의 빌드와 실행도 확인하지 않았습니다. 자료는 프로젝트의 방향과 한계를 알려 줄 뿐 정상 작동을 보장하지 않습니다. [1] [2] [3] [4] [5] [6]

더 정확히 이해하려면 이 항목과 함께 다음도 읽어 보세요 Bitcoin Core, 채굴, Bitcoin, Braiins.

01이미 프로그래밍을 할 줄 알아야 하나요?

책은 주로 학생과 IT 분야 종사자를 대상으로 하며 Rust도 소개합니다. 완전한 초보자라면 먼저 프로그래밍 기초와 거래, 키, 노드의 뜻을 익혀 모르는 개념에 기대어 학습하지 않기를 권합니다.

02완성한 지갑으로 제 비트코인을 관리해도 되나요?

이 소개는 그런 사용을 뒷받침하지 않습니다. 저장소는 교육 모델을 설명할 뿐 실제 자금용으로 검증된 도구를 제공한다고 하지 않습니다. 저축의 키를 넣지 마세요. 네트워크 호환성이나 안전성을 테스트하지 않았습니다.

DOC · 001Braiins — book record1차 출처 DOC · 002Braiins Store — paperback1차 출처 DOC · 003Braiins — learning project1차 출처 DOC · 004Braiins — companion repository1차 출처 DOC · 005Rust — ownership1차 출처 DOC · 006Satoshi Nakamoto — Whitepaper: signatures and verification1차 출처
개정일: 1차 출처 우선 · 투자 조언이 아닙니다