More Related Content
Similar to ブロックチェーンの仕組みと動向(入門編) (20)
More from NTT DATA OSS Professional Services (20)
ブロックチェーンの仕組みと動向(入門編)
- 1. © 2017 NTT DATA Corporation
ブロックチェーンの仕組みと動向 (入門編)
@NTT Tech Conference #1
2017年1月27日 (金)
株式会社NTTデータ システム技術本部 方式技術部
北條 真史
- 2. 1© 2017 NTT DATA Corporation
1. ブロックチェーンとは
2. Bitcoin を知る
3. ブロックチェーンをもう少し詳しく知る
4. ブロックチェーンのいま
本日お話する内容
- 4. © 2017 NTT DATA Corporation 3
ブロックチェーンを一言で説明すると
“P2P ネットワーク上で台帳情報を分散管理する技術”
• P2P ネットワーク
• サービスの提供と享受の役割を同時に担うノード群の
ネットワーク
• ↔クライアント・サーバ
• 台帳情報
• 狭義的には、取引の記録
• 広義的には、追記型のデータベース
• 取引情報 (Tx) をまとめた塊 (ブロック) の連鎖 (チェーン) を
参加ノードで分散管理
- 5. © 2017 NTT DATA Corporation 4
ハッシュチェーン
• 自データから暗号学的ハッシュ函数で計算したハッシュ値を
次のデータ内に埋め込んで繋ぐデータ構造
• あるデータは、1つ前のデータの存在に依存する情報を含む
→時系列に沿ったデータの存在証明を実現するデータ構造
Hash
Hash
Hash
Data
Data
Data
- 6. © 2017 NTT DATA Corporation 5
ハッシュチェーン
• 作成済みのデータを変更すると、後続の全データに影響
……
…
後続するデータはハッシュ値を計算しなおし
- 7. © 2017 NTT DATA Corporation 6
取引情報への電子署名
• 取引には、発行者が電子署名を付与
→取引の正当性が第三者により検証可能
Tx
- 8. © 2017 NTT DATA Corporation 7
ブロックチェーンネットワーク
• 全ノードが同じブロックチェーンを持つ
• 正当性が誰にでも検証できる取引群を、ハッシュチェーンで
時系列に繋ぎ合わせて分散管理
…
- 9. © 2017 NTT DATA Corporation 8
ブロックチェーンが実現するもの
• P2P ネットワーク上で台帳管理
• 中央集権的なサーバ不要
• 高可用
• ハッシュチェーンに基づく追記型データ構造
• 時系列に沿ったデータ管理
• 過去のデータを遡って改ざんすることが困難
• 取引への電子署名
• 第三者が正当性を検証可能
- 11. © 2017 NTT DATA Corporation 10
Bitcoin とは
貨幣の発行や取引を P2P ネットワークで実現する、
電子貨幣プラットフォーム
• Satoshi Nakamoto と呼ばれる人物 (集団?) が技術文書を
公開 (2008)
“Bitcoin: A Peer-to-Peer Electronic Cash System”
• 最初のブロック生成とクライアントソフトのリリースにより、
Bitcoin の運用が開始 (2009)
• 先進国を中心に、通貨としての利用に向け
システム導入や法整備が進んでいる
https://coinmap.org/
- 12. © 2017 NTT DATA Corporation 11
Bitcoin が扱う情報
ブロックチェーンに貨幣 (貨幣単位: BTC) の取引を記録
過去の取引を全部合算して現在の残高を計算:
UTXO (unspent transaction output)
Tx
BT
C
2017/1/23 12:30 現在
(https://www.btcbox.co.jp/coin/btc/)
Tx
A→C
X 送金
Tx
B→A
Y 送金… …
Aの残高 = …-X+Y+…
- 13. © 2017 NTT DATA Corporation 12
Block
Bitcoin のブロックチェーンをつくる
• ブロックを生成する行為を“マイニング”と呼ぶ
• マイニングに成功すると、報酬が貰える
→ビットコインの採掘 = マイニング
Tx Tx Tx Tx…
Prev Hash Nonce
①ブロック生成取引
ブロック内の最初の取引は特別
無から一定金額(※)を自分に送金できる
②取引手数料
ブロックに含まれる取引の手数料を貰える
※4年で半減。現在 12.5BTC ≒ 132万JPY
- 14. © 2017 NTT DATA Corporation 13
Block
Bitcoin のマイニング
• その実際は、くじ引き
「ダイジェストが target 以下になる nonce を見つけよ」
Tx Tx Tx Tx…
Prev Hash Nonce
Hash( )≤ target
- 15. © 2017 NTT DATA Corporation 14
Block
Bitcoin のマイニング
• その実際は、くじ引き
「ダイジェストが target 以下になる nonce を見つけよ」
Tx Tx Tx Tx…
Prev Hash Nonce
Hash( )≤ target
値を変更しながら繰返し計算
- 16. © 2017 NTT DATA Corporation 15
Block
Bitcoin のマイニング
• その実際は、くじ引き
「ダイジェストが target 以下になる nonce を見つけよ」
Tx Tx Tx Tx…
Prev Hash Nonce
Hash( )≤ target
値を変更しながら繰返し計算
条件を充たす nonce を見つけたノードは、
完成したブロックをブロードキャストして承認を得る
!!!
- 17. © 2017 NTT DATA Corporation 16
ブロックチェーンの分岐
• ブロックチェーンは、ときに分岐する
• 全ノードで1本のチェーンを認めるために
コンセンサス (合意) アルゴリズムが必要
Proof of Work(作業証明)
ビットコインのコンセンサスアルゴリズムの根幹
同時期に複数のノードが
ブロック生成に成功
- 18. © 2017 NTT DATA Corporation 17
Proof of Work
最長のチェーン = 最も多くの計算資源が投入されている
PoW を認めることで:
• チェーンが分岐しても、1本の正しいチェーンを選んでマイニン
グが進められる
• 過去のブロックを改ざんするためには、主流のチェーンを
追い越さなければならない
→ネットワーク全体の 51% 以上の計算リソースが必要なので、
悪意を持って改ざんすることは実質不可能
力こそ正義
- 19. © 2017 NTT DATA Corporation 18
Bitcoin が実現したこと
• 中央集権を排除した貨幣の取引システム
• Bitcoin は、システムの仕組みそのものが価値を保証する
• Proof of Work
• 不特定多数の参加者全員で 1つのチェーンに合意できる
• 計算機リソースを投入すれば儲かる競争がシステムを強固に支える
- 20. © 2017 NTT DATA Corporation 19
Bitcoin の課題
• 強大な力を持つマイニングプールの存在
• 個人で採掘しようとしても、ちっとも儲からないので、
複数人で採掘して、報奨金を分配するマイニングプールが主流
• 1つのマイニングプールが全計算リソースの 42% に達した経験あり[3]
• 取引は、いつ確定する?
• ブロックに組み込まれた段階では、まだ早い
• 他のチェーンが主流になってブロックが解かれるかもしれない
• 幾つかチェーンが伸びてくれば、確定してもよさそう
• 慣習的に、6ブロック繋がれば、確定とみなす
• それでも、もしかしたら覆るかもしれない (過去には4ブロックで覆った)
→ビットコインの性質上、取引を確定させることは不可能
[3] http://www.coindesk.com/bitcoin-miners-ditch-ghash-io-pool-51-attack/
- 21. © 2017 NTT DATA Corporation 20
ブロックチェーンをもう少し詳しく知る
- 22. © 2017 NTT DATA Corporation 21
ビザンチン将軍問題
• 互いで通信しあうノード群で、正しい提案に合意できるか?
• ノードや通信経路が故障する可能性 (クラッシュ障害)
• ノードが悪意を持って情報操作を行う可能性
• あるノードは、嘘の情報を発信するかもしれない
• あるノードは、呼びかけても返事をしないかもしれない
ビザンチン障害 = クラッシュ障害+悪意を持って起こす障害 = 任意障害
• Bitcoin (PoW) は、参加ノードが信頼出来ない P2P 環境における
ビザンチン障害耐性へのアプローチ
ただし、ビザンチン将軍問題を解決してはいないと言われている
• ブロックチェーンが覆る可能性 ≠ 0
• あくまで最も高い確率の提案に合意する方式
- 23. © 2017 NTT DATA Corporation 22
public 型ブロックチェーンと permissioned 型ブロックチェーン
Public 型
ブロックチェーン
Permissioned 型
ブロックチェーン
不特定多数のノード 参加ノードの種類
特定の (単一/複数) 組織
内のノード
必要
インセンティブ (貨幣)
不要
難しい (不可能?) 取引の確定 可能
必須 ビザンチン障害耐性 場合によっては不要
Proof of ~
Proof of Work (PoW),
Proof of Stake (PoS),
…
合意形成
多数決系を採用可
Practical Byzantine Fault Tolerance,
Paxos, Raft,
…
- 25. © 2017 NTT DATA Corporation 24
ブロックチェーン技術の推移
ブロックチェーン 1.0
ブロックチェーン 2.0
ブロックチェーン 3.0
時間
Bitcoin,
Litecoin,
Dogecoin, …
Ethereum,
Hyperledger Fabric,
NEM, mijin, …
Hyperledger Iroha,
IOTA,
…
適用範囲
電子貨幣プラットフォーム
分散型アプリケーション
プラットフォーム
スマートコントラクト(契約の自動化)
多用途プラットフォーム
Fintech以外の領域への適用
- 26. © 2017 NTT DATA Corporation 25
スマートコントラクト
• ブロックチェーンネットワーク上で、貨幣の取引だけでなく
様々な「契約」を実現する仕組み
• ノード上で、契約の条件確認、履行まで自律的に実行
• 汎用的な言語 (Java, Go 等)や、独自開発の言語で
スマートコントラクトを記述し、分散環境上で実行
Block
Tx Tx Tx Tx…
Prev Hash Nonce
プログラム登録
Tx
プログラム
ID
スマートコントラクト実行
Tx
入力値
ID
プログラム ID
- 27. © 2017 NTT DATA Corporation 26
多用途ブロックチェーンの例
IOTA
• IoT のための、分散台帳基盤
• デバイス情報のリアルタイムな共有を、サーバなしで実現する
• ブロックレス分散型台帳 Tangle を採用
• Tx を追加する際、過去の幾つかの Tx を検証し、有向非巡回グラフ
(DAG) を形成
• 徐々に Tx が確定度が上がる
http://iotatoken.com/IOTA_Whitepaper.pdf
- 28. © 2017 NTT DATA Corporation 27
ブロックチェーン技術における課題
• コンセンサスアルゴリズム
• PoW は計算リソースを無駄遣いするし、取引確定できない/遅い
• Permissioned 型では多数決に近い設計が主流。
分散 DB との差はどこに?スケーラビリティがないのはどうする?
• スマートコントラクト
• 一度ブロックチェーン上にデプロイしたら、実行が取り消せない
• 全ノードで同じ処理を実行するため、1ノード以上の性能は出ない
(「“分散型”アプリ実行基盤」は誤解を生む表現かも)
• 実世界とブロックチェーンの橋渡し
• ブロックチェーンネットワークに情報をコミットする人、仕組みを
どうやって信用する?
- 29. © 2017 NTT DATA Corporation 28
まとめ
• ブロックチェーンとは
“P2P ネットワーク上で台帳情報を分散管理する技術”
• P2P ネットワーク: 全ノードで一つの台帳情報を管理
• ハッシュチェーン: 取引情報を固めたブロックを時系列に繋ぐ
• 電子署名: 第三者が情報の正当性を検証できる
• Bitcoin
“中央集権なしで実現する電子貨幣プラットフォーム”
• Proof of Work: 計算リソース量によって正しいチェーンを認める
• ブロックチェーンの変遷
• ブロックチェーン1.0: 電子貨幣プラットフォーム
• ブロックチェーン2.0: 契約の自動化、分散アプリケーション
• ブロックチェーン3.0: Fintech を超えた利活用
- 30. © 2017 NTT DATA Corporation
本資料に記載されている会社名、製品名は各社の商標または登録商標です。