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

More Related Content

What's hot

What's hot (20)

Hyperledger Cactus V0.4 リリースの概要と今後の開発方針
Hyperledger Cactus V0.4 リリースの概要と今後の開発方針Hyperledger Cactus V0.4 リリースの概要と今後の開発方針
Hyperledger Cactus V0.4 リリースの概要と今後の開発方針
 
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれ
 
私とOSSの25年
私とOSSの25年私とOSSの25年
私とOSSの25年
 
Hyperledger Fabric活用事例:貿易プラットフォームTradeWaltz
Hyperledger Fabric活用事例:貿易プラットフォームTradeWaltzHyperledger Fabric活用事例:貿易プラットフォームTradeWaltz
Hyperledger Fabric活用事例:貿易プラットフォームTradeWaltz
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
 
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
 
Hyperledger Fabric 概説
Hyperledger Fabric 概説Hyperledger Fabric 概説
Hyperledger Fabric 概説
 
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
 
Web3.0の話をしよう
Web3.0の話をしようWeb3.0の話をしよう
Web3.0の話をしよう
 
データ基盤グループを支えるチームビルディング
データ基盤グループを支えるチームビルディングデータ基盤グループを支えるチームビルディング
データ基盤グループを支えるチームビルディング
 
インターネットの仕組みとISPの構造
インターネットの仕組みとISPの構造インターネットの仕組みとISPの構造
インターネットの仕組みとISPの構造
 
TLS, HTTP/2演習
TLS, HTTP/2演習TLS, HTTP/2演習
TLS, HTTP/2演習
 
分散システムの限界について知ろう
分散システムの限界について知ろう分散システムの限界について知ろう
分散システムの限界について知ろう
 
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
 
異種ブロックチェーン統合ツールHyperledger Cactiご紹介
異種ブロックチェーン統合ツールHyperledger Cactiご紹介異種ブロックチェーン統合ツールHyperledger Cactiご紹介
異種ブロックチェーン統合ツールHyperledger Cactiご紹介
 
ここがつらいよ、Hyperledger Fabricの商用適用(Blockchain GIG #4発表資料)
ここがつらいよ、Hyperledger Fabricの商用適用(Blockchain GIG #4発表資料) ここがつらいよ、Hyperledger Fabricの商用適用(Blockchain GIG #4発表資料)
ここがつらいよ、Hyperledger Fabricの商用適用(Blockchain GIG #4発表資料)
 
SFUの話
SFUの話SFUの話
SFUの話
 
Optimistic Rollupとは何か
Optimistic Rollupとは何かOptimistic Rollupとは何か
Optimistic Rollupとは何か
 
外部キー制約に伴うロックの小話
外部キー制約に伴うロックの小話外部キー制約に伴うロックの小話
外部キー制約に伴うロックの小話
 

Viewers also liked

高解像度スタートアップガイド Part2(Part3へ続く)
高解像度スタートアップガイド Part2(Part3へ続く)高解像度スタートアップガイド Part2(Part3へ続く)
高解像度スタートアップガイド Part2(Part3へ続く)
Takahiro Yamaguchi
 
高解像度スタートアップガイド Part1(Part2/3へ続く)
高解像度スタートアップガイド Part1(Part2/3へ続く)高解像度スタートアップガイド Part1(Part2/3へ続く)
高解像度スタートアップガイド Part1(Part2/3へ続く)
Takahiro Yamaguchi
 
高解像度スタートアップガイド Part3
高解像度スタートアップガイド Part3高解像度スタートアップガイド Part3
高解像度スタートアップガイド Part3
Takahiro Yamaguchi
 
スタートアップのためのデットファイナンス入門
スタートアップのためのデットファイナンス入門スタートアップのためのデットファイナンス入門
スタートアップのためのデットファイナンス入門
Tetsuya Nakashima
 

Viewers also liked (20)

図解 Blockchainの仕組み
図解 Blockchainの仕組み図解 Blockchainの仕組み
図解 Blockchainの仕組み
 
高解像度スタートアップガイド Part2(Part3へ続く)
高解像度スタートアップガイド Part2(Part3へ続く)高解像度スタートアップガイド Part2(Part3へ続く)
高解像度スタートアップガイド Part2(Part3へ続く)
 
高解像度スタートアップガイド Part1(Part2/3へ続く)
高解像度スタートアップガイド Part1(Part2/3へ続く)高解像度スタートアップガイド Part1(Part2/3へ続く)
高解像度スタートアップガイド Part1(Part2/3へ続く)
 
DB tech showcase Tokyo 2017「住民情報システムにおけるOracleStandardEditionでの取り組み」
DB tech showcase Tokyo 2017「住民情報システムにおけるOracleStandardEditionでの取り組み」DB tech showcase Tokyo 2017「住民情報システムにおけるOracleStandardEditionでの取り組み」
DB tech showcase Tokyo 2017「住民情報システムにおけるOracleStandardEditionでの取り組み」
 
[db tech showcase Tokyo 2017] D33: Deep Learningや、Analyticsのワークロードを加速するには-Ten...
[db tech showcase Tokyo 2017] D33: Deep Learningや、Analyticsのワークロードを加速するには-Ten...[db tech showcase Tokyo 2017] D33: Deep Learningや、Analyticsのワークロードを加速するには-Ten...
[db tech showcase Tokyo 2017] D33: Deep Learningや、Analyticsのワークロードを加速するには-Ten...
 
HDFS basics from API perspective
HDFS basics from API perspectiveHDFS basics from API perspective
HDFS basics from API perspective
 
Apache Hadoop and YARN, current development status
Apache Hadoop and YARN, current development statusApache Hadoop and YARN, current development status
Apache Hadoop and YARN, current development status
 
高解像度スタートアップガイド Part3
高解像度スタートアップガイド Part3高解像度スタートアップガイド Part3
高解像度スタートアップガイド Part3
 
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するかSQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するか
 
スタートアップのためのデットファイナンス入門
スタートアップのためのデットファイナンス入門スタートアップのためのデットファイナンス入門
スタートアップのためのデットファイナンス入門
 
Token salesについて
Token salesについてToken salesについて
Token salesについて
 
Effective web performance tuning for smartphone
Effective web performance tuning for smartphoneEffective web performance tuning for smartphone
Effective web performance tuning for smartphone
 
(2017.9.7) Neo4jご紹介
(2017.9.7) Neo4jご紹介(2017.9.7) Neo4jご紹介
(2017.9.7) Neo4jご紹介
 
ICLR読み会 奥村純 20170617
ICLR読み会 奥村純 20170617ICLR読み会 奥村純 20170617
ICLR読み会 奥村純 20170617
 
[ICLR2017読み会 @ DeNA] ICLR2017紹介
[ICLR2017読み会 @ DeNA] ICLR2017紹介[ICLR2017読み会 @ DeNA] ICLR2017紹介
[ICLR2017読み会 @ DeNA] ICLR2017紹介
 
医療データ解析界隈から見たICLR2017
医療データ解析界隈から見たICLR2017医療データ解析界隈から見たICLR2017
医療データ解析界隈から見たICLR2017
 
言葉のもつ広がりを、モデルの学習に活かそう -one-hot to distribution in language modeling-
言葉のもつ広がりを、モデルの学習に活かそう -one-hot to distribution in language modeling-言葉のもつ広がりを、モデルの学習に活かそう -one-hot to distribution in language modeling-
言葉のもつ広がりを、モデルの学習に活かそう -one-hot to distribution in language modeling-
 
Semi-Supervised Classification with Graph Convolutional Networks @ICLR2017読み会
Semi-Supervised Classification with Graph Convolutional Networks @ICLR2017読み会Semi-Supervised Classification with Graph Convolutional Networks @ICLR2017読み会
Semi-Supervised Classification with Graph Convolutional Networks @ICLR2017読み会
 
ICLR2017読み会 Data Noising as Smoothing in Neural Network Language Models @Dena
ICLR2017読み会 Data Noising as Smoothing in Neural Network Language Models @DenaICLR2017読み会 Data Noising as Smoothing in Neural Network Language Models @Dena
ICLR2017読み会 Data Noising as Smoothing in Neural Network Language Models @Dena
 
170614 iclr reading-public
170614 iclr reading-public170614 iclr reading-public
170614 iclr reading-public
 

Similar to ブロックチェーンの仕組みと動向(入門編)

Similar to ブロックチェーンの仕組みと動向(入門編) (20)

ブロックチェーン基礎(Blockchain Fundamentals)
ブロックチェーン基礎(Blockchain Fundamentals)ブロックチェーン基礎(Blockchain Fundamentals)
ブロックチェーン基礎(Blockchain Fundamentals)
 
ブロックチェーンの基礎及びNEM / Symbolブロックチェーンのご紹介
ブロックチェーンの基礎及びNEM / Symbolブロックチェーンのご紹介ブロックチェーンの基礎及びNEM / Symbolブロックチェーンのご紹介
ブロックチェーンの基礎及びNEM / Symbolブロックチェーンのご紹介
 
Blockchain EXE Nagoya #1:ブロックチェーンを応用したデータ流通ネットワークの取り組み(今井 悟史 / 富士通)
Blockchain EXE Nagoya #1:ブロックチェーンを応用したデータ流通ネットワークの取り組み(今井 悟史 / 富士通)Blockchain EXE Nagoya #1:ブロックチェーンを応用したデータ流通ネットワークの取り組み(今井 悟史 / 富士通)
Blockchain EXE Nagoya #1:ブロックチェーンを応用したデータ流通ネットワークの取り組み(今井 悟史 / 富士通)
 
Bckyoto181129
Bckyoto181129Bckyoto181129
Bckyoto181129
 
電子情報通信学会グローバル社会とビットコイン(山崎)
電子情報通信学会グローバル社会とビットコイン(山崎)電子情報通信学会グローバル社会とビットコイン(山崎)
電子情報通信学会グローバル社会とビットコイン(山崎)
 
分散型台帳技術Orb DLTの紹介
分散型台帳技術Orb DLTの紹介分散型台帳技術Orb DLTの紹介
分散型台帳技術Orb DLTの紹介
 
Orb oracle
Orb oracleOrb oracle
Orb oracle
 
ブロックチェーンまとめ
ブロックチェーンまとめブロックチェーンまとめ
ブロックチェーンまとめ
 
Deconstruction of Serverless and blockchain
Deconstruction of Serverless and blockchainDeconstruction of Serverless and blockchain
Deconstruction of Serverless and blockchain
 
ブロックチェーン活用事例
ブロックチェーン活用事例ブロックチェーン活用事例
ブロックチェーン活用事例
 
BlockChain Introduction
BlockChain IntroductionBlockChain Introduction
BlockChain Introduction
 
ブロックチェーン×Io t op用
ブロックチェーン×Io t op用ブロックチェーン×Io t op用
ブロックチェーン×Io t op用
 
Japan Blockchain Conference 2019 (Jimmy Nguyen)
Japan Blockchain Conference 2019 (Jimmy Nguyen)Japan Blockchain Conference 2019 (Jimmy Nguyen)
Japan Blockchain Conference 2019 (Jimmy Nguyen)
 
Orb dlt technical_overview(特許情報なし)
Orb dlt technical_overview(特許情報なし)Orb dlt technical_overview(特許情報なし)
Orb dlt technical_overview(特許情報なし)
 
デジタルハリウッド大学院 ブロックチェーン研究会第三回 2016年8月25日
デジタルハリウッド大学院 ブロックチェーン研究会第三回 2016年8月25日デジタルハリウッド大学院 ブロックチェーン研究会第三回 2016年8月25日
デジタルハリウッド大学院 ブロックチェーン研究会第三回 2016年8月25日
 
医療におけるブロックチェーン利用
医療におけるブロックチェーン利用医療におけるブロックチェーン利用
医療におけるブロックチェーン利用
 
Jazug静岡勉強会資料
Jazug静岡勉強会資料Jazug静岡勉強会資料
Jazug静岡勉強会資料
 
ブロックチェーン技術概論1 輪読
ブロックチェーン技術概論1 輪読ブロックチェーン技術概論1 輪読
ブロックチェーン技術概論1 輪読
 
51% 攻撃の原理とシミュレーション
51% 攻撃の原理とシミュレーション51% 攻撃の原理とシミュレーション
51% 攻撃の原理とシミュレーション
 
プラットフォームとしてのブロックチェーン
プラットフォームとしてのブロックチェーンプラットフォームとしてのブロックチェーン
プラットフォームとしてのブロックチェーン
 

More from NTT DATA OSS Professional Services

More from NTT DATA OSS Professional Services (20)

Global Top 5 を目指す NTT DATA の確かで意外な技術力
Global Top 5 を目指す NTT DATA の確かで意外な技術力Global Top 5 を目指す NTT DATA の確かで意外な技術力
Global Top 5 を目指す NTT DATA の確かで意外な技術力
 
Spark SQL - The internal -
Spark SQL - The internal -Spark SQL - The internal -
Spark SQL - The internal -
 
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
 
Hadoopエコシステムのデータストア振り返り
Hadoopエコシステムのデータストア振り返りHadoopエコシステムのデータストア振り返り
Hadoopエコシステムのデータストア振り返り
 
HDFS Router-based federation
HDFS Router-based federationHDFS Router-based federation
HDFS Router-based federation
 
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントPostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
 
Apache Hadoopの新機能Ozoneの現状
Apache Hadoopの新機能Ozoneの現状Apache Hadoopの新機能Ozoneの現状
Apache Hadoopの新機能Ozoneの現状
 
Distributed data stores in Hadoop ecosystem
Distributed data stores in Hadoop ecosystemDistributed data stores in Hadoop ecosystem
Distributed data stores in Hadoop ecosystem
 
Structured Streaming - The Internal -
Structured Streaming - The Internal -Structured Streaming - The Internal -
Structured Streaming - The Internal -
 
Apache Hadoopの未来 3系になって何が変わるのか?
Apache Hadoopの未来 3系になって何が変わるのか?Apache Hadoopの未来 3系になって何が変わるのか?
Apache Hadoopの未来 3系になって何が変わるのか?
 
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
 
20170303 java9 hadoop
20170303 java9 hadoop20170303 java9 hadoop
20170303 java9 hadoop
 
Application of postgre sql to large social infrastructure jp
Application of postgre sql to large social infrastructure jpApplication of postgre sql to large social infrastructure jp
Application of postgre sql to large social infrastructure jp
 
Application of postgre sql to large social infrastructure
Application of postgre sql to large social infrastructureApplication of postgre sql to large social infrastructure
Application of postgre sql to large social infrastructure
 
Apache Hadoop 2.8.0 の新機能 (抜粋)
Apache Hadoop 2.8.0 の新機能 (抜粋)Apache Hadoop 2.8.0 の新機能 (抜粋)
Apache Hadoop 2.8.0 の新機能 (抜粋)
 
データ活用をもっともっと円滑に! ~データ処理・分析基盤編を少しだけ~
データ活用をもっともっと円滑に!~データ処理・分析基盤編を少しだけ~データ活用をもっともっと円滑に!~データ処理・分析基盤編を少しだけ~
データ活用をもっともっと円滑に! ~データ処理・分析基盤編を少しだけ~
 
商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと
 
今からはじめるPuppet 2016 ~ インフラエンジニアのたしなみ ~
今からはじめるPuppet 2016 ~ インフラエンジニアのたしなみ ~今からはじめるPuppet 2016 ~ インフラエンジニアのたしなみ ~
今からはじめるPuppet 2016 ~ インフラエンジニアのたしなみ ~
 
Hadoopエコシステムの最新動向とNTTデータの取り組み (OSC 2016 Tokyo/Spring 講演資料)
Hadoopエコシステムの最新動向とNTTデータの取り組み (OSC 2016 Tokyo/Spring 講演資料)Hadoopエコシステムの最新動向とNTTデータの取り組み (OSC 2016 Tokyo/Spring 講演資料)
Hadoopエコシステムの最新動向とNTTデータの取り組み (OSC 2016 Tokyo/Spring 講演資料)
 
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
 

ブロックチェーンの仕組みと動向(入門編)

  • 1. © 2017 NTT DATA Corporation ブロックチェーンの仕組みと動向 (入門編) @NTT Tech Conference #1 2017年1月27日 (金) 株式会社NTTデータ システム技術本部 方式技術部 北條 真史
  • 2. 1© 2017 NTT DATA Corporation 1. ブロックチェーンとは 2. Bitcoin を知る 3. ブロックチェーンをもう少し詳しく知る 4. ブロックチェーンのいま 本日お話する内容
  • 3. © 2017 NTT DATA Corporation 2 ブロックチェーンとは
  • 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 ネットワーク上で台帳管理 • 中央集権的なサーバ不要 • 高可用 • ハッシュチェーンに基づく追記型データ構造 • 時系列に沿ったデータ管理 • 過去のデータを遡って改ざんすることが困難 • 取引への電子署名 • 第三者が正当性を検証可能
  • 10. © 2017 NTT DATA Corporation 9 Bitcoin を知る
  • 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, …
  • 24. © 2017 NTT DATA Corporation 23 ブロックチェーンのいま
  • 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 本資料に記載されている会社名、製品名は各社の商標または登録商標です。