36_2.vnd.openxmlformats-officedocument.presentationml.presentation

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