2. なんでブロックチェーンは難しいか
2 IBM Academy of Technology & TEC-Japan Presents
n ビットコインの基礎技術は古い。
過去の基礎技術を説明するのが⾯倒くさい(かっこ悪い)
〜昔すぎて覚えてないひとも多い。
l 公開鍵暗号通信、デジタル署名、デジタル証明書
(もはや、まるっと「SSL通信」)
l スパム対策に使われているハッシュキャッシュ
l 取引とはなにか=トランザクション、タイムスタンプ
l P2P分散合意形成のビザンチン将軍問題(ビザンチン障害)
:
⾯倒なことをバイパスして、
ビットコインだけで成⽴しているかっこいい話をする
3. なんでブロックチェーンは難しいか
3 IBM Academy of Technology & TEC-Japan Presents
n蔓延する誤解とデジャヴ
「ブロックチェーンはビットコインでしょ?」
「ビットコインの地域分散モデルをクラウド(O社)やメインフ
レーム(I社)で地域集約して意味ねー!」
lわかってる⼈には可能性に満ちているが、基礎技術と機能、
⾮機能、特徴を理解しない⼈には実モデルを想像できない
→何に使って良いかわからない(何が良いかわからない)
クラウドは仮想化インスタンスだという矮⼩化と同じ道
4. 4 IBM Academy of Technology & TEC-Japan Presents
かっこわるいけど、ちゃんと復習しよう
(勉強の時間です)
まじかよ‥
だから、
理系ってさあ‥
5. 5 IBM Academy of Technology & TEC-Japan Presents
だけど、やっぱり
まるっとブロックチェーンを理解したい。
(勉強はあとまわし)
おおっ!
8. ブロックチェーン(1)ハッシュチェーン
8 IBM Academy of Technology & TEC-Japan Presents
n 前のブロックのデータ内容から計算したハッシュ値を次のデータの中に埋め込んでつなぐ
l ハッシュは元のデータからしか計算できない
l 元のデータのハッシュを計算すれば次のデータの存在証明ができる
l ハッシュを含んだデータがつながるチェーン
l コンピューターにとって⾮可逆性を表現するために使われるハッシュ関数 →貨幣、決済、取引
Block
A
Block
B
Block
C
Block
D
最初の
ブロック
取引記録 取引記録 取引記録
ハッシュ値 ハッシュ値 ハッシュ値
Time stamp (1) Time stamp (2) Time stamp (3) Time stamp (4)
新しいブロックが書かれたときに前のブロックの後ろであることが検証可能
9. l ⼀定量のデータをコンパクトに要約
l データが少しでも変わると、まったく違う値
l データが多くても、少なくても同じ⻑さ
(不定⻑のハッシュもある)
l ハッシュ値から元のデータは計算できない
– パスワードの保存の安全性
l 送信データの検証に使われる
– 送信データからダイジェストを作成
– ダイジェストを秘密鍵で暗号化(デジタル署名)
– データとデジタル署名を送信
– デジタル署名を公開鍵でダイジェストに復号化
– データのハッシュ値とダイジェストを⽐較
l たくさんのアルゴリズムがある
9 IBM Academy of Technology & TEC-Japan Presents
ハッシュ値、⾮可逆な(irreversible)な計算
ハッシュ
関数
420d971d
あいうえお
ハッシュ
関数
c18dc48R
あいうえも
ハッシュ
関数
984c179d
いろはにほへ
:
ゑいもせすん
ちょっと違ってもまるで違う値
ハッシュ値=ダイジェスト
すごく⻑くても同じ⻑さ
元の値には戻らない
元のメッセージ
10. ブロックチェーン(2)ハッシュチェーン
10 IBM Academy of Technology & TEC-Japan Presents
n 作成済みのデータを変更すると、後続の全データに影響してしまう
Block
A
Block
B
Block
C
Block
D
Block
B
ブロックBを不正
に改ざん
後続のデータのハッシュ
を計算しなおし
ハッシュの計算に
必要な労⼒の問題
11. Block
A
Block
B
Block
C
Block
D
ブロックチェーン(3)トランザクションデータ
11 IBM Academy of Technology & TEC-Japan Presents
n ブロックにはトランザクション、タイムスタンプ、前のブロックのハッシュ、他が含まれる。
l ブロックは時系列に並べることができて、⼀つのブロックのトランザクション順は⼀つのクロックで決
まっている。
Aから出⾦
Bに⼊⾦
Cに⼊⾦
Aから出⾦
Cに⼊⾦
:
Aから出⾦
Bに⼊⾦
Cに⼊⾦
Aから出⾦
Cに⼊⾦
:
Aから出⾦
Bに⼊⾦
Cに⼊⾦
Aから出⾦
Cに⼊⾦
:
Aから出⾦
Bに⼊⾦
Cに⼊⾦
Aから出⾦
Cに⼊⾦
:
Time stamp (1)
Time stamp (2)
Time stamp (3)
Time stamp (4)
だいたい10分 *
だいたい10分 *
だいたい10分 *
⼀
定
時
間
内
の
取
引
⼀定時間ごとに
ブロックを作成
ネットワークに
ブロードキャスト
* だいたい10分なのはビットコインの仕様
ネットワークの
標準時間
(⼤体合ってる)
トランザクション台帳
12. 12 IBM Academy of Technology & TEC-Japan Presents
トランザクションのブロードキャストとステートマシンレプリケーション
ブロードキャスト
Block C
Block C
Block C
Block C
Block C
Block C
Block A
Block B
Block C
↑検証して追加
Block A
Block B
Block C
↑検証して追加
Block A
Block B
Block C
↑検証して追加
Block A
Block B
Block C
↑検証して追加
Block A
Block B
Block C
↑検証して追加
Block A
Block B
Block C
↑検証して追加
今、追加する権利
があるところが
ブロックを追加 まるっと
全体のステートが
Block Bの状態から
Block Cの状態に遷移
Block A
Block B
ブロックCを作成↓
Block D
Block A
Block B
Block C
↓ブロックDを作成
次は別のところから
ブロックを追加*
*マスターが変転するのは
ブロックチェーン必須要
件ではない。
(オープンで地域に分散するビットコ
インでは必須要件→管理責任を分散し
管理⼿数料をシェアするため)
13. Bitcoin 〜ブロックチェーンの⼀つの実装
13 IBM Academy of Technology & TEC-Japan Presents
n 地域的に分散したピアツーピアネットワークでビットコイン台帳を形成
l A地域(業者)で送⾦したというデータが世界中で共有されている
l B地域(業者)でそれを個⼈に⼊⾦したというデータも正しく共有できている
The
Internet
Public Block Chain
送⾦ ⼊⾦
→ビットコイン台帳
(トランザクション台帳)
14. 海外送⾦の従来⼿法→紙の伝票のアナロジー
14 IBM Academy of Technology & TEC-Japan Presents
n これまでの海外送⾦の処理
l コンピュータによってデジタルに⾏われてい
ることが、全て紙の伝票と台帳のアナロジー
l ⼤きく三段階のトランザクションを処理して
台帳(⼝座)を更新することで処理を⾏って
いる。
❶ 振込依頼書
振込⼈
振込⼈⼝座
振込元銀⾏
❷ 資⾦払出処理
振込⾦額
と⼿数料
❸ ⽀払指図
(SWIFT指⽰書)
コレリス
銀⾏
$ → $
振込元銀⾏
の⼝座
振込先銀⾏
の⼝座
❹ 資⾦移動処理
❺ 送⾦到着
振込先銀⾏ 受取⼈⼝座
❻ 受取⼈⼝座に
⼊⾦処理
受取⼈
15. デジタルネイティブな台帳→紙の伝票のアナロジーから脱却
15 IBM Academy of Technology & TEC-Japan Presents
n ビットコインは分散台帳 → 分散したマシンにある⼀貫した単⼀の台帳
l 共通のステートマシンであり、誰が読んでも同じデータを扱うことができる
l 誰もが参加できて、トランザクションを書き込む(状態を変える)ことができる
n 伝票がいらない
マスターもない
送⾦ ⼊⾦
→ビットコイン台帳
(トランザクション台帳)
Aから出⾦
Bに⼊⾦
インターネット
の共有台帳
16. n トランザクション台帳をエンタープライズ毎に分散したシステムで共有する
l システムの⼀部として業界共通のセマンティックを持った契約合意のメカニズムが存在している
n 伝票のアナロジーから脱却する
l デジタルネイティブな
コントラクト
l シェアリングエコノミー
ブロックチェーンを企業間の共有トランザクションとしてみる
16 IBM Academy of Technology & TEC-Japan Presents
受注
ECサイト
出品社
配送会社
輸出/輸⼊決済
メーカー
投資家(IR)
⼯場発注
⼯場受注
直送指⽰
配送完了
地域的に分散している
ことには意味がない。
異なるインスタンス間で共有
する台帳がサイバー空間で進化
→Hyper Ledger
17. 17 IBM Academy of Technology & TEC-Japan Presents
⼤きな誤解
Facebookのとある発⾔>
汎⽤機が分散台帳の基盤とは、
語義⽭盾が⾯⽩過ぎて何でもア
リなのですが。そのうちドロ
ワーに⼊る採掘⽤ASICボード
とか出てくるのでしょうか?
↓
分散の意味を取り違えず、
共有台帳だということを
理解してほしい。
18. 18 IBM Academy of Technology & TEC-Japan Presents
取引や契約、状態を変化させるトランザクションを共有する
Transaction
Initial State
Transaction 1
Transaction 2
Transaction 3
Transaction 4
19. l ⾮常に複雑なサプライチェーンのデジタル制御が求められてくる
l デジタルなデマンドから消費⾏動までの変化
l 設計から⽣産、出荷に⾄る状態の変化 →全てがステートマシン
l ⼯程間の⽣産ログとセンサーデータの変化
詳しくは「サイバー・ファースト」江崎浩著 http://amzn.to/2AQSanr を参照ください。
19
⽣産現場も変化する
出荷
注文Productivity
出荷
注文
出荷
注文
Parts
Manufacture
Parts
Manufacture
⼩売店供給者
プルシステム
これまでのサプライチェーン
21. 紙の契約書を綴じるというアナロジー
21 IBM Academy of Technology & TEC-Japan Presents
n マスターの台帳を更新することで取引台帳を作ってきた中央集権型のビジネス
l ⽣命保険は⼈⽣の⻑い期間に渡って、複雑な保険商品の契約を更新しながら保険満了までレ
コードを維持することがビジネスプロセスに組み込まれている。
l マスター更新というプロセス上の権威的地位を利⽤した地位ビジネスが成⽴している。
(古い保険契約の仕組みを維持しないと、今の保険契約が成⽴しない)
23. ブロックチェーンが作り出すデジタル・ネイティブな世界
23 IBM Academy of Technology & TEC-Japan Presents
n ⾮中央集権型⾃律組織 (De-centralized Autonomous Organization)
“Blockchain Revolution” Don Tapscot ISBN1101980133 P368 Portfolio (2016/5/10)
n マスターの更新から解放された
デジタルネイティブなトランザクション・ビジネス
(もし、現状の保険契約のシステムがない国だったら?)
l 保険契約が契約の連鎖を契約主体⾃⾝が管理できるようになる。
→保険代理店、保険販売員、あるいは契約者
l 契約の⼿続き、台帳記録や⼊出⾦のITトランザクションを全体で共有する(共有資源)
l 保険会社は保険契約(保険商品)の⾦融リスクの管理
というコンピテンシー(機能)しか残らない!
もちろん地域的にも分散できるので国も関係ない
Long Tail市場が⼤きなマーケットプレイスを必要としなくなる
製品のような品質の瑕疵がのちに問題になるようなものより、
電⼒のように均質で検証可能なものが適している。UberやAirbnbなども課題が多い。
ビットコイン⾃⾝の電⼒消費=貨幣を維持するために必要なコスト > 電⼒コスト
(bitcoinのminerの75%が中国籍の7社独占:中国の電⼒コスト)
Sony Computer Science 北野宏明⽒ HBR2017Aug
24. 24 IBM Academy of Technology & TEC-Japan Presents
ブロックチェーンの衝撃
25. 25 IBM Academy of Technology & TEC-Japan Presents
ビジネスのトランザクション(電⽂)は
コミュニケーションの媒体です。
⼀つの抽象化されたステートマシンを共有することは
媒体のないコミュニケーションを実現するようなこと
「テレパシーで伝わるビジネス」
伝票のビジネス基盤を持たなかった国や
エストニアのようなサイバー⽴国を⽬指す国では、
既存のビジネスルールから解き放たれた仕組みが発⽣する。
26. 簿記と会計の再発明
26 IBM Academy of Technology & TEC-Japan Presents
n 帳簿に記載される対象を数字ではなく
「⽀払い義務や依存関係のアルゴリズム的な表現」としたら
l たとえば ある会社からクレジット・デフォルト・スワップを買
うなら----知りたいのは、その⽀払い義務額を⽀払う期⽇がやっ
てきたとき、⾃社が逆張りしていたAA格の住宅ローン債券がデ
フォルトしたとして、⾃社がちゃんと⽀払えるか?
会計の再発明は、アルゴリズムのちょっとしたテコ⼊れ(過去数百年に
ぼくたちがやってきたのはそれだと思う)なんかではなく、新しい数論
の発⾒のようであるべきだと思うのだ。
Reinventing Bookkeeping and Accounting (In Search of Certainty)
https://joi.ito.com/weblog/2016/04/26/reinventing-boo.html
https://joi.ito.com/jp/archives/2016/05/08/005596.html
27. 27 IBM Academy of Technology & TEC-Japan Presents
ここまでわかったら、
やっぱりビットコインも知っておこう
(Public Block chain 基礎講座)
ああ、うん。
そうかな…
28. 28 IBM Academy of Technology & TEC-Japan Presents
ビットコインは、
インターネットで公開されている
パブリックブロックチェーンを
❶ トランザクションをデジタル署名
❷ ブロックチェーンをハッシュキャッシュ
という暗号技術で安全性を担保しています。
30. ビットコイン 通貨としての要件
30 IBM Academy of Technology & TEC-Japan Presents
n 通貨としての特性を維持する
l コインを本⼈以外が勝⼿に譲渡することはできない
l 第三者は、コインの譲渡を客観的に確認することができる
l ⼆重譲渡を防⽌し、
⼀つの譲渡のみをネットワーク全体で正しい取引として決定する
⼆重譲渡とは、元のコインの持ち主が⼆⼈以上の相⼿に、全く同じコインを譲渡することである。
31. l 公開鍵暗号⽅式
l 対称な公開鍵と秘密鍵の対を利⽤します
l 公開鍵で暗号化した暗号⽂は秘密鍵で復号できます
– 公開鍵を公開しておくと、暗号化通信ができます
– 秘密鍵とは違うので⾮対称鍵ともいいます
l デジタル署名
l 秘密鍵で⽂書を暗号化すると公開鍵で復号できます
l 公開鍵で復号化できた⽂書を暗号化できるのは秘密鍵
を持っている⼈だけです(発⾏⼈証明)
l デジタル証明書
l 公開鍵証明書は公開鍵そのものを⽂書として認証局の
秘密鍵で署名されたもの
31 IBM Academy of Technology & TEC-Japan Presents
公開鍵暗号⽅式による通信とデジタル署名
(1)
⼀対の鍵
を⽣成
(2) 公開鍵を公開する
公開鍵
秘密鍵
暗号化 復号化
(3) 公開鍵で暗号化 (4) 暗号化通信 (5) 秘密鍵で復号化
送信する側 受信する側
秘密鍵
暗号化 暗号化
(3) 公開鍵で復号化 (2) 署名と⽂書を送信 (1) 秘密鍵で暗号化
公開鍵
検証する側 署名する側
ダイジェストダイジェスト
ハッシュ検証
署名
32. ビットコイン トランザクションのデジタル署名
32 IBM Academy of Technology & TEC-Japan Presents
l ブロックチェーンの参加者はトランザクションがコインの所有者によって作られていることを署名に
よって確認できる。その内容を確認することでトランザクションデータが正しいことも確認できる。
l コインの所有は⼀つ前のトランザクションが指定した所有者であることが公開鍵から確認できる。
B(譲渡先)の公開鍵
B(譲渡元)
の秘密鍵
⼊⼒ 出⼒
Aさん → Bさん
前トランザクション
のハッシュ値
Bの公開鍵
のハッシュ値
B(譲渡元)
の公開鍵
現トランザクション
のBによる署名
⼊⼒ 出⼒
Bさん → Cさん
現トランザクション
のハッシュ値
Cの公開鍵
のハッシュ値
Bの鍵ペア
今作ろうとしているトランザクション
(BさんからCさんへの譲渡)
前トランザクション
のハッシュ値
A(譲渡元)
の公開鍵
現トランザクション
のAによる署名
35. ビットコイン ブロックの分岐防⽌
35 IBM Academy of Technology & TEC-Japan Presents
n ビットコインの分岐〜正常分岐と改ざん分岐
Block
A
Block
B
Block
C
Block
D
Block
B
ブロックBを不正
に改ざん
後続のデータのハッシュ
を計算しなおし
ハッシュの計算に
必要な労⼒の問題
正しい 正しい 正しい
Block
E
正しい
最も⻑い分岐が
正しいはず
改ざんに加担する
グループ
37. Bitcoin 〜ブロックチェーンの⼀つの実装
37 IBM Academy of Technology & TEC-Japan Presents
n ブロックチェーン技術のピアツーピアネットワークの特性
l 地域に分散している
l ある⼀定の時間で同期することが期待されている
l メンバーの追加、あるいはメンバーの故障や復帰に強い構造
l しかし、トランザクション負荷が分散しているとはいいがたい
n ビットコインのブロックチェーンとしての特徴
l ビットコイン台帳はビットコインだけを扱う、極めて単純な分散台帳である。
l 参加者はビットコインの統⼀されたルールに従って参加している、共通のメンバーである。
n 報酬と半減期のメカニズム(通貨供給量の制御)
l 210Kブロックに⼀回ブロック⽣成報酬が半減する。
– 50BC @2009→25BC @2012→12.5BC @2016
– 最後のブロック 6,929,999個⽬@2020
n ハードフォーク
l ソフトウェアの互換性のないチェーンの分岐→新たなチェーンの⽣成
(通貨供給量のバイオレーションの側⾯)
38. コンソーシアム型 Hyperledger プロジェクト
38 IBM Academy of Technology & TEC-Japan Presents
n Hyperledgerプロジェクトはブロックチェーンの世界における課題に対して、柔軟に複数のソ
リューションを提供しています。
l トランザクションの承認に時間がかかる →新しいブロックチェーンネットワーク
l Proof of WorkはCPU能⼒と電⼒に過⼤なコストがかかる →新しい合意メカニズム
l 仮想通貨へのコミットを必要としないで、複数の業界の分散台帳を構築 →柔軟なトランザクション
l プライベートな台帳同⼠のコミュニケーションやアクセス管理 →コンソーシアム型
l スマートコントラクトにも⼒を⼊れています。Hyperledgerのリファレンスとなるアーキテクチャのう
ちの⼀つの重要な要素として、スマートコントラクト・サービス(Chain-Codeとも呼ばれる)があり、
検証ノードという閉じられた環境で安全にスマートコントラクトを実⾏できるようになっています。
http://gaiax-blockchain.com/smart-contract
39. 39 IBM Academy of Technology & TEC-Japan Presents
Hyperledgerのアーキテクチャー
① identityサービスは、ユー
ザーや参加者の⾝元や、資
産やスマートコントラクト
等の台帳を管理します。
② policyサービスは、アクセ
スコントロール、プライバ
シー、コンソーシアムの
ルール、合意のルールなど
を管理します。
③ ブロックチェーン・サービ
スは、P2Pの通信プロトコ
ルを通じて分散型台帳を管
理します。
④ スマートコントラクト・
サービス(chain-codeと
も呼ばれる)は検証ノード
という閉じられた環境で、
安全にスマートコントラク
トを実⾏します。
45. どこからはじめるか
45 IBM Academy of Technology & TEC-Japan Presents
n ブロックチェーンは基盤技術である
l インターネット・プロトコルと同じ導⼊経路
l 社内のE-メール導⼊時、
ROI(投資対効果)を計算できたか?
46. まとめ
46 IBM Academy of Technology & TEC-Japan Presents
n ブロックチェーンをビットコインのアナロジーだけで理解しているのはもったいない。
l トランザクションのオープン化、分散データベースではできなかったこと
l 紙による取引という前世代がない、デジタルネイティブな世界
l 情報のオーナーシップとプロセスの価値、コアコンピタンスしか残らない時代
第⼀世代=仮想通貨
Bitcoin
Litecoin
Degecoin
第⼆世代=スマートコントラクト
Hyperledger
Ethereum
NEM …
第三世代=より多⽤途に
IOTA
Iroha
…