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 record一次資料 DOC · 002Braiins Store — paperback一次資料 DOC · 003Braiins — learning project一次資料 DOC · 004Braiins — companion repository一次資料 DOC · 005Rust — ownership一次資料 DOC · 006Satoshi Nakamoto — Whitepaper: signatures and verification一次資料
改訂日: 一次資料を優先 · 投資助言ではありません