Bitcoin ネットワーク
Bitcoinのネットワークは peer-to-peer(P2P) で接続した無数のノードによって構築されている。
ノードが接続するネットワークは2種類ある
- メインネット:本番用(実際の価値がある)
- テストネット:開発用
Bitcoin ノード
ノードには大きく分けて4つの機能がある。
フルブロックチェーン機能
- ジェネシスブロック(0番目のブロック)から最新のブロックに含まれる全てのトランザクションを取得し、DBに保持する
- 全てのデータをDB上で管理しているため、外部データを参照する必要がない
マイニング機能
- Bitcoinのトランザクションを検証し、不整合なくブロックに記録する
- マイニングには膨大なコンピューティングリソースを必要とするため、ブロックの記録を行うことができたノードはその対価として Bitcoin を新しく生成し、受け取ることができる
ネットワークルーティング機能
- ノードはTCP通信で接続し、他のノードの発見、トランザクションやブロック情報の伝搬を行う
ウォレット機能
- 秘密鍵の管理をメイン機能として、公開鍵とアドレスの生成、残高の管理、Bitcoin の署名などを行う
Bitcoin アドレス
- Bitcoin の受け取りに必要
- 銀行の口座のようなもの
アドレスの生成手順
Bitcoin アドレスの大元は秘密鍵になるので、最初に秘密鍵を生成する必要がある
手順:秘密鍵の生成 → 秘密鍵から公開鍵を生成 → 公開鍵からBitcoin アドレスを生成
アドレスの導出
アドレスは公開鍵をもとに以下の手順で生成する
- 公開鍵のハッシュ化
- チェックサムの生成
- Base58 Checkエンコードでアドレスを生成
参考