Bitcoinの仕組み Takahiro Shimizu 1 暗号通貨の特徴 P2Pで動作 • ユーザー同士で直接取引 マイニングの存在 • マイニングによってコインを生成できる すべてが取引記録から成立 • 暗号通貨は取引記録から成り立っている 2 Bitcoinの送金 特徴をふまえ、Bitcoinの送金の手順をみる 3 1.送金指示の発行 手数料は 自分で決定 送り元:Shimizu ↓ 送り先:Sakane 取引額:10 BTC Fee(手数料):0.0002 BTC 2014/07/10 8:12 4 2-1.送金指示の暗号化 名前の 暗号化 46grhb45he14656… 送り元:Shimizu ↓ 54hted1dh41ahre… 送り先:Sakane 取引額:10 BTC Fee(手数料):0.0002 BTC 2014/07/10 8:12 5 2-2.送金指示の認証 46grhb45he14656… 送り元:Shimizu デジタル署名で ↓ 54hted1dh41ahre… 本物であることを 送り先:Sakane 証明 取引額:10 BTC Fee(手数料):0.0002 BTC 2014/07/10 8:12 送 信 6 3.送金指示をまとめる 8:10-8:20 前のブロック:122 <送金指示> 10分毎に1つ 送金指示を まとめる ナンス 7 ブロックチェーン Block#121 7:50-8:00 前のブロック: 120 Block#122 8:00-8:10 前のブロックの 前のブロック: アドレスを持つ 121 <送金指示> <送金指示> <送金指示> <送金指示> ナンス ナンス Bitcoinの 取引記録 8 ブロックチェーンにつなげよう lock#121 7:50-8:00 Block#122 8:00-8:10 8:10-8:20 のブロック: 120 前のブロック: 121 前のブロック: 送金指示> <送金指示> <送金指示> <送金指示> <送金指示> <送金指示> ナンス ナンス ナンス ナンスがない! 9 4-1.ナンスを探す(Proof-of-work) • ハッシュ値= 入れた物から定まる 前の 値から推測できない ブロック 今の 特定の値 ブロック • ナンス(変数)が1ケタでも 変わるとハッシュ値 ナンス は大きく変化 ここが 不明 条件を満たすハッシュ値 を出すナンスを求める ただし総当り ハッシュ値 10 4-2.マイニングする • マイニング:採掘 • Bitcoinを得るための手段の1つ • “ナンス”を探すための仕組み グラフィックボード 遅 CPU PCの処理装置 GPU 専用チップ FPGA 速 ASIC プログラミングできる 集積回路 11 もう一度ブロックチェーン Block#121 7:50-8:00 前のブロック: 120 Block#122 8:00-8:10 前のブロックの 前のブロック: アドレスを持つ 121 <送金指示> <送金指示> <送金指示> <送金指示> ナンス ナンス 12 ブロックチェーンの分岐 • Bitcoinでは、ブロックチェーンが複数に分 岐する可能性がある 前のブロックは#1 Block #1 ナンスを作り、 攻撃者が作成した ブロック Block #2-1 Block #3 Block #2-2 前のブロックは#1 13 Bitcoinの”多数決” • もし、ブロックチェーンが複数に渡る場合は、 短い(ナンスを求めるのにかかった計算量が少ない) ブロックチェーンを破棄 計算量:大 Block #1 Block #2-1 Block #2-2 Block #3 計算量:小 14 5.ブロックの完成 配信(=取引完了) Block#123 8:10-8:20 前のブロック:122 次のブロック:未定 <送金指示> 46grhb45he14656… 送り元:Shimizu ↓ 54hted1dh41ahre… 送り先:Sakane 取引額:10 BTC Fee(手数料):0.0002 BTC 2014/07/10 8:12 <ナンス> 15 Bitcoinの取引手順 1.送金指示の発行 2.送金指示の暗号化・認証 3.送金指示をまとめる(ブロック化) 4.”ナンス”の探索・確定(マイニング) 5.”ナンス”を使用した送金の確定 16
© Copyright 2025 ExpyDoc