松浦 健一郎/司 ゆき 著
B5変形判、1色、384ページ
価格 3,400円+税、出版日 2018/12/18、ISBN 978-4-7980-5504-6
対応環境 Windows
出版社 秀和システム
ダウンロードファイルはこちらから
仮想通貨の話題が、連日のようにメディアを賑わしています。仮想通貨の代表格はビットコインですが、他にも多種多様な仮想通貨があり、本書執筆時には実に1600種類以上に達しています。そして、まだ種類は増え続けています。
仮想通貨といえば、相場の急騰や暴落、巨額の流出といった事件が話題にされがちですが、実は技術的な側面も大いに注目されています。仮想通貨の普及によって、ブロックチェーンやプルーフオブワークといった新しい技術が、広く知られるようになりました。これらの技術によって、「不特定多数の参加者が、誰が中心となるわけでもなく、連携してシステムを支える」という、仮想通貨の基盤となる仕組みが実現されています。
ブロックチェーンやプルーフオブワークは、仮想通貨以外にも応用できる技術として、大いに注目されています。例えば、第三者を介さずに契約の信用を確保するスマートコントラクトという仕組みも、これらの技術を使って実現できます。
コンピュータやネットワークを使った今後のシステムには、これらの仮想通貨に由来する技術も、投入されていくことが予想されます。こういったシステムを理解したり、あるいは構築したりする上で、仮想通貨の技術について知っておくことは有用であり、場合によっては必須になるかもしれません。
仮想通貨の仕組みは、ブロックチェーンやプルーフオブワークのような新しい技術と、ハッシュや電子署名や公開鍵暗号方式やピアツーピアのような既存の技術の、組み合わせで成り立っています。多くの技術が巧みに組み合わされているので、仮想通貨の全体像を理解するのは、なかなか大変です。
そこで、プログラミングなどの専門知識がなくても、仮想通貨の仕組みが理解できることを目標に、本書を執筆しました。本書はPart1~5から構成されていますが、プログラミングの知識を使うのはPart4だけです。他のPart1~3と5は、プログラミングの知識を使いません。本書は次のような目的におすすめです。
本書はコンピュータを使わなくても読み進むことができますが、Windowsが動作するコンピュータがあれば、より楽しむことができます。実際にビットコインのソフトウェアを動かしたり、独自の仮想通貨のプログラムを作ったりしながら、仮想通貨の仕組みを学ぶことができます。本書は、例えば次のようにお読みください。
仮想通貨の仕組みは複雑なので、全体を理解するのはなかなか大変です。そこで本書では、全体の仕組みを確認することを何度か繰り返しながら、次第に深く掘り下げていくことによって、分かりやすい解説を目指しました。
本書を通じて、仮想通貨の仕組みを理解し、ニュースや記事をより楽しんでいただけたり、仮想通貨の技術を使ったシステムの研究や開発や運営に役立てていただけることを、心から願っています。本書を読んで、皆さんに何か嬉しいことがあったら、ぜひ書籍レビューなどを通じて、お知らせいただけましたら幸いです。
仮想通貨の定義
法律における仮想通貨の定義
法律における仮想通貨交換業者の定義
仮想通貨に類似する概念
仮想通貨の入手
仮想通貨の使用
仮想通貨はなぜ話題になっているのか
仮想通貨に関連する技術
仮想通貨の例
仮想通貨の歴史
仮想通貨を実現する技術
ブロックチェーン
トランザクション
ブロックの改ざん
ハッシュ
ブロックチェーンとハッシュ
プルーフオブワーク
プルーフオブワークとハッシュ
ノンス
ゴールデンノンス
難易度の調整
コインの所有者
電子署名の仕組み
電子署名を使った支払い
実際のトランザクション
ジェネレーショントランザクション
ブロックチェーンの維持
ブロックチェーンへの参加
ブロックの作成
ブロックチェーンの分岐
改ざんの難しさ
ビザンチン将軍問題
まとめ
Bitcoin Coreとは
Bitcoin Coreを利用する理由
Bitcoin Coreの入手
Bitcoin Coreのインストール
Bitcoin Coreの起動
データの保存場所
剪定ノード
ノード
保存場所の指定
剪定ノードの設定
ブロックチェーンのダウンロード
ウォレット
正式なBitcoin Coreの起動
ビットコインの入手
アドレスとは
アドレスと公開鍵暗号方式
アドレスの作成
フォーセットの操作
入金の確認
ビットコインの使用
トランザクション手数料
送金の実行
ライトニングネットワーク
詳細な情報の取得
RPC
REST
デバッグウィンドウ
UTXOの取得
JSON
トランザクションの内容
スクリプト
承認
トランザクションの取得
getrawtransactionコマンドの実行例
トランザクションのサイズ
スクリプト
トランザクション展性
ブロックハッシュ
時刻
まとめ
マイニングの概念
ハッシュの計算
ハッシュの計算を体験する
ノンスの探索
ブロックチェーンの構成
マイニング用のハードウェア
ハッシュレートと消費電力
マイニングプール
マイニングを体験する
regtestとは
regtestの起動
ブロックチェーンのフォルダ
ブロックの作成
generateコマンド
ブロックの取得
マークルルートとマークルツリー
マークルツリーとデータの改ざん
ビットコインとマークルツリー
SPVクライアント
コインベース
マイニングの報酬
出力のスクリプト
ブロックの追加
追加したブロックの内容
残高への反映
テストネットのブロック
ブロックの内容
コインベースとエクストラノンス
正式なネットワークのブロック
まとめ
作成する仮想通貨の機能
開発環境の準備
Pythonのインストール
Pythonの動作確認
必要なモジュールのインストール
サンプルファイルの使い方
カレントディレクトリの変更
データファイル
公開鍵と秘密鍵の生成
Base58
Base64
鍵のファイル
プログラム
プログラムの動作
電子署名
トランザクションのファイル
送金額
プログラム
プログラムの動作
署名の検証
プログラム
プログラムの動作
マイニング
1回目のマイニング
2回目のマイニング
プログラム
プログラムの動作
ウォレット
プログラム
プログラムの動作
ピアツーピア
Webサーバの起動
プログラムの実行
プログラム
プログラムの動作
複数のコンピュータを使った動作
デーモン
プログラム
まとめ
ビットコイン論文
要旨
補足
1.序説
補足
2.トランザクション
補足
3.タイムスタンプ・サーバ
補足
4.プルーフオブワーク
補足
5.ネットワーク
補足
6.インセンティブ
補足
7.ディスク領域の再利用
補足
8.簡略化した支払いの検証
補足
9.金額の結合と分割
補足
10.プライバシー
補足
11.計算
補足
12.結論
補足
まとめ