ひぐぺん工房トップへ おかげさまで28周年!

ひぐぺん工房(松浦健一郎・司ゆき) - HigPen Works
Follow @higpenworks
・今までの仕事 ・書籍 ・最近の業務 ・対応可能言語 ・お見積

入門 仮想通貨の作り方 - プログラミングで学ぶブロックチェーン技術・ハッシュ・P2Pのしくみ

松浦 健一郎/司 ゆき 著
B5変形判、1色、384ページ
価格 3,400円+税、出版日 2018/12/18、ISBN 978-4-7980-5504-6
対応環境 Windows
出版社 秀和システム
ダウンロードファイルはこちらから

表紙イメージ

書誌情報  はじめに  目次  Q&A 


はじめに

 仮想通貨の話題が、連日のようにメディアを賑わしています。仮想通貨の代表格はビットコインですが、他にも多種多様な仮想通貨があり、本書執筆時には実に1600種類以上に達しています。そして、まだ種類は増え続けています。

 仮想通貨といえば、相場の急騰や暴落、巨額の流出といった事件が話題にされがちですが、実は技術的な側面も大いに注目されています。仮想通貨の普及によって、ブロックチェーンプルーフオブワークといった新しい技術が、広く知られるようになりました。これらの技術によって、「不特定多数の参加者が、誰が中心となるわけでもなく、連携してシステムを支える」という、仮想通貨の基盤となる仕組みが実現されています。
 ブロックチェーンやプルーフオブワークは、仮想通貨以外にも応用できる技術として、大いに注目されています。例えば、第三者を介さずに契約の信用を確保するスマートコントラクトという仕組みも、これらの技術を使って実現できます。
 コンピュータやネットワークを使った今後のシステムには、これらの仮想通貨に由来する技術も、投入されていくことが予想されます。こういったシステムを理解したり、あるいは構築したりする上で、仮想通貨の技術について知っておくことは有用であり、場合によっては必須になるかもしれません

 仮想通貨の仕組みは、ブロックチェーンやプルーフオブワークのような新しい技術と、ハッシュ電子署名公開鍵暗号方式ピアツーピアのような既存の技術の、組み合わせで成り立っています。多くの技術が巧みに組み合わされているので、仮想通貨の全体像を理解するのは、なかなか大変です。
 そこで、プログラミングなどの専門知識がなくても、仮想通貨の仕組みが理解できることを目標に、本書を執筆しました。本書はPart1~5から構成されていますが、プログラミングの知識を使うのはPart4だけです。他のPart1~3と5は、プログラミングの知識を使いません。本書は次のような目的におすすめです。

 本書はコンピュータを使わなくても読み進むことができますが、Windowsが動作するコンピュータがあれば、より楽しむことができます。実際にビットコインのソフトウェアを動かしたり、独自の仮想通貨のプログラムを作ったりしながら、仮想通貨の仕組みを学ぶことができます。本書は、例えば次のようにお読みください。

 仮想通貨の仕組みは複雑なので、全体を理解するのはなかなか大変です。そこで本書では、全体の仕組みを確認することを何度か繰り返しながら、次第に深く掘り下げていくことによって、分かりやすい解説を目指しました。
 本書を通じて、仮想通貨の仕組みを理解し、ニュースや記事をより楽しんでいただけたり、仮想通貨の技術を使ったシステムの研究や開発や運営に役立てていただけることを、心から願っています。本書を読んで、皆さんに何か嬉しいことがあったら、ぜひ書籍レビューなどを通じて、お知らせいただけましたら幸いです。

書誌情報  はじめに  目次  Q&A 


目次

Part1 仮想通貨とは

仮想通貨の定義
  法律における仮想通貨の定義
  法律における仮想通貨交換業者の定義
  仮想通貨に類似する概念

仮想通貨の入手

仮想通貨の使用

仮想通貨はなぜ話題になっているのか
  仮想通貨に関連する技術

仮想通貨の例

仮想通貨の歴史

仮想通貨を実現する技術

ブロックチェーン
  トランザクション
  ブロックの改ざん

ハッシュ
  ブロックチェーンとハッシュ

プルーフオブワーク
  プルーフオブワークとハッシュ

ノンス
  ゴールデンノンス
  難易度の調整

コインの所有者
  電子署名の仕組み
  電子署名を使った支払い
  実際のトランザクション
  ジェネレーショントランザクション

ブロックチェーンの維持
  ブロックチェーンへの参加
  ブロックの作成

ブロックチェーンの分岐

改ざんの難しさ
  ビザンチン将軍問題

まとめ

Part2 仮想通貨を使ってみよう

Bitcoin Coreとは
  Bitcoin Coreを利用する理由
  Bitcoin Coreの入手
  Bitcoin Coreのインストール

Bitcoin Coreの起動
  データの保存場所
  剪定ノード
  ノード
  保存場所の指定
  剪定ノードの設定
  ブロックチェーンのダウンロード
  ウォレット
  正式なBitcoin Coreの起動

ビットコインの入手
  アドレスとは
  アドレスと公開鍵暗号方式
  アドレスの作成
  フォーセットの操作
  入金の確認

ビットコインの使用
  トランザクション手数料
  送金の実行
  ライトニングネットワーク

詳細な情報の取得
  RPC
  REST
  デバッグウィンドウ

UTXOの取得
  JSON
  トランザクションの内容
  スクリプト
  承認

トランザクションの取得
  getrawtransactionコマンドの実行例
  トランザクションのサイズ
  スクリプト
  トランザクション展性
  ブロックハッシュ
  時刻

まとめ

Part3 仮想通貨を掘ってみよう

マイニングの概念

ハッシュの計算
  ハッシュの計算を体験する
  ノンスの探索
  ブロックチェーンの構成

マイニング用のハードウェア
  ハッシュレートと消費電力
  マイニングプール

マイニングを体験する
  regtestとは
  regtestの起動
  ブロックチェーンのフォルダ

ブロックの作成
  generateコマンド

ブロックの取得
  マークルルートとマークルツリー
  マークルツリーとデータの改ざん
  ビットコインとマークルツリー
  SPVクライアント
  コインベース
  マイニングの報酬
  出力のスクリプト

ブロックの追加
  追加したブロックの内容
  残高への反映

テストネットのブロック
  ブロックの内容
  コインベースとエクストラノンス

正式なネットワークのブロック

まとめ

Part4 仮想通貨を作ろう

作成する仮想通貨の機能

開発環境の準備
  Pythonのインストール
  Pythonの動作確認
  必要なモジュールのインストール

サンプルファイルの使い方
  カレントディレクトリの変更
  データファイル

公開鍵と秘密鍵の生成
  Base58
  Base64
  鍵のファイル
  プログラム
  プログラムの動作

電子署名
  トランザクションのファイル
  送金額
  プログラム
  プログラムの動作

署名の検証
  プログラム
  プログラムの動作

マイニング
  1回目のマイニング
  2回目のマイニング
  プログラム
  プログラムの動作

ウォレット
  プログラム
  プログラムの動作

ピアツーピア
  Webサーバの起動
  プログラムの実行
  プログラム
  プログラムの動作
  複数のコンピュータを使った動作

デーモン
  プログラム

まとめ

Part5 ビットコイン論文を読もう

ビットコイン論文

要旨
  補足

1.序説
  補足

2.トランザクション
  補足

3.タイムスタンプ・サーバ
  補足

4.プルーフオブワーク
  補足

5.ネットワーク
  補足

6.インセンティブ
  補足

7.ディスク領域の再利用
  補足

8.簡略化した支払いの検証
  補足

9.金額の結合と分割
  補足

10.プライバシー
  補足

11.計算
  補足

12.結論
  補足

まとめ

書誌情報  はじめに  目次  Q&A 


最終更新 2022/08/02
トップページへ
©ひぐぺん工房 禁無断転載
最新刊『Java[完全]入門』 
このサイトはリンクフリーです。
このサイトはChromeで動作検証しています。ブラウザにかかわらず表示に乱れがありましたらどうぞお知らせ下さい。メールを送る