技術 ブログ

読書メモ:プログラミング・ビットコイン



以前読んだ『詳解ビットコイン』に続けて本書を読みました。本書では、ビットコインの主要なコンポーネントを、実際にプログラムを作成しながら学ぶことができます。

詳解ビットコイン』は理論を言葉で徹底的に解説する内容でしたが、本書はPythonを用いたプログラミングを通じて、公開鍵やハッシュなどの暗号技術を実践的に学べる構成になっています。そのため、『詳解ビットコイン』を読んでいないと、全体的な理解が難しいかもしれません。また、Pythonの基本的な理解と、クラスで書かれているためオブジェクト指向の基本的な理解で必要になります。

特に参考になったのは、楕円曲線暗号のプログラミングについて細かく解説されていた点です。以前、暗号技術や関連する数学(群・環・体)を学んでいたため、スムーズに理解できたのは大きな収穫でした。まだ、楕円曲線の点の加算が理解が多少怪しいので引き続き『数学ガール』等で学んでいきたいと思います。

また、ビットコインのスクリプト(P2PK、P2PKH、P2SH、P2WPKH、P2WSH)について、リトルエンディアンやビックエンディアンで入力されたバイナリを処理して出力するスタックとオペコードを実際にプログラミングしながら学べる点も非常に価値があると感じました。特に、高度なスタック操作のプログラミング方法を詳細に学べるのは貴重な機会で、これを習得できればエンジニアとして大きく成長できると確信しました。ここまで詳しくスタックとオペコードのプログラム方法を解説した書籍は、これまで見たことがありません。

さらに、ブロックやトランザクション、マークルルート、ブルームフィルター、P2Pネットワークなど、ブロックチェーンを構成する主要な要素についても、プログラミングを通じて学ぶことができ、非常に素晴らしい内容でした。

加えて、過去の脆弱性を例に、バグが発生しやすいポイントについても解説されており、Immunefiのようなバグ報奨金プラットフォームでのセキュリティ調査にも役立ちそうです。

今回は時間の都合上、サンプルプログラムの実行はしていませんが、内容が非常に貴重だったため、空いた時間に練習問題を少しずつ進めていこうと思います。

コメント投稿フォーム

メールアドレスが公開されることはありません。 が付いている欄は必須項目です