Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
分散システムのリテラシー
ブロックチェーン連続講義 第 5 回
慶應義塾大学 SFC 研究所 上席所員
斉藤 賢爾
ks91@sfc.wide.ad.jp
ブロックチェーン連続講義 第 5 回「分散システムのリテラシー」 — 2016-03-2...
今回のテーマ
分散システムのリテラシー
ブロックチェーンの可能性と限界を考える上で基礎となる、
分散システムの基本的性質についての解説です
FLP 不可能性、CAP 定理といった基本原理から、
ビザンチン将軍問題、様々な障害モデル、CUP (未...
分散システムのリテラシー
1. 分散システムの法則とブロックチェーン
2. ブロックチェーンのチャレンジ
3. 本当は怖い P2P
4. 課題の意味
ブロックチェーン連続講義 第 5 回「分散システムのリテラシー」 — 2016-03-25 –...
1. 分散システムの法則と
ブロックチェーン
ふたりの将軍問題
FLP 不可能性
CAP 定理
ビザンチン将軍問題
コンセンサス
ブロックチェーン連続講義 第 5 回「分散システムのリテラシー」 — 2016-03-25 – p.4/31
ふたりの将軍問題
将軍 A, B は敵を攻める計画に合意したい
しかし A-B 間はメッセンジャー m を通してしか通信できない
メッセンジャーは敵に捕らえられる可能性がある
A が発案した計画に B が合意していると A が知る手立ては?
そ...
絶望したみなさんへ
分散システムの課題への取り組み方
1. 一般に X は不可能である
2. X を事実上可能にする条件 C がある
3. 条件 C を成立させる方法を考える
例えば
1. 伝令を用いるふたりの将軍問題には解がない
2. だが花...
同期システム・非同期システム
同期システム
参加者の時計が同期されているシステム
非同期システム
参加者の時計が同期されておらず、
その進み方もまちまちなシステム
仮想的にでも同期システムが作れれば色んな問題を
解決できる
例 : イベントの順...
セイフティとライブネス
セイフティ (safety)
悪いことが決して起きない、という形式の性質
ライブネス (liveness)
よいことがいつか起きる、という形式の性質
分散システムの要件はセイフティとライブネスの
組み合わせで表される
(...
障害の種類
メッセージが届かない、ノードが停止する
→ ビナイン/良性 (benign)
前提を置かない
→ ビザンチン (Byzantine)
ビザンチン障害では、プロトコルから逸脱する任意の
事象が起きる
裏切りとか共謀とか
ただし、悪意に...
FLP不可能性
完全なる非同期システムにおいては、
いかなるコンセンサスプロトコルも
ただひとつのプロセスが予告なしに停止するという
だけで
合意を達成できなくなる
ちなみにメッセージの伝達自体は完璧という前提で
ただし遅延に上限を設けられない...
CAP 定理
Consistency (一貫性)
読み出しは直前の書き込みの
内容を返す
Availability (可用性)
必ず有限時間内に応答する
Partition tolerance
(分断耐性)
ネットワークが分断されても
動作する...
Consistency (一貫性)
Strong consistency (強い一貫性)
更新が完了した後、すべてのアクセスは更新
された値を返す (safety)
Eventual consistency (結果整合性)
更なる更新が行われな...
ビザンチン将軍問題
n 人の将軍がそれぞれの軍隊を率いている
攻めるか、撤退するか、合意しなければならない
地理的に隔離されていて、メッセンジャーを通して
しか通信できない
メッセンジャー = 伝令者
高々f 人の忠実でない将軍がいる
という前...
ビザンチン将軍問題を解く
「司令、攻撃やめるってよ」
副官 1 から見てシナリオ 1, 2 は区別できない
n ≤ 3f では解が存在しない
ブロックチェーン連続講義 第 5 回「分散システムのリテラシー」 — 2016-03-25 – p.1...
コンセンサス
CS1 : 提案された値だけが選択される
CS2 : ひとつの値だけが選択される
CS3 : 正しい参加者は選択された値だけを学ぶ
CL1 : 提案された値のどれかがいずれ選択される
CL2 : 値が選択されるなら、正しい参加者は...
Paxos (1)
論文 : 「パートタイム議会 (The Part-Time Parliament)」
エーゲ海にある Paxos 島の物語
たまにしか出席しない議員たち (パートタイム議員)
によって法案は成立させていけるか?
議員 ↔ サ...
Paxos (2)
コンセンサスを実現するための役割
提案者 (proposers), 承認者 (acceptors), 学習者 (learners)
プロトコルの超概要
1. 提案者は提案を複数の承認者に向けて送る
提案は番号により順序づけさ...
耐ビザンチン障害 Paxos
Paxos プロトコルにはビザンチン障害への耐性を
持たせられる
2f + 1 の正常な参加者により Paxos を実行する
ことで最大 f の裏切り者に耐える、みたいな
一般化された “byzantizing” ...
2. ブロックチェーンのチャレンジ
CUP (Consensus with Unknown Participants)
斉藤-山田 不可能性 (仮)
ブロックチェーン連続講義 第 5 回「分散システムのリテラシー」 — 2016-03-25 –...
(B)FT-CUP (Consensus with Unknown Participants)
未知の参加者の間で耐障害性 (ビナイン/ビザンチン)
を持つコンセンサスプロトコルは作れるか?
耐ビナイン障害 : FT (Fault-Tolera...
斉藤-山田 不可能性(仮)
ノードの総数 n が定まらない状況下ではコンセンサス
を満たすプロトコルは存在しない
(すでに他の人が証明していたら教えてください)
6 月下旬に論文発表予定
p.6「絶望したみなさんへ」参照
ブロックチェーン連続講...
3. 本当は怖い P2P
P2P オークション問題
シビル攻撃 - ブロックチェーンの場合は無問題
エクリプス攻撃 - リアルな脅威
ブロックチェーン連続講義 第 5 回「分散システムのリテラシー」 — 2016-03-25 – p.22/31
本当は怖い P2P
例題: P2P オークション問題
隣接する 3 つのノードに出品情報の転送を依頼
〆切後、その 3 つのノードからしか入札が
なかったと判明
競争相手を減らす戦略が採られた
参加者は利己的にプロトコルから逸脱しうる
ブロック...
シビル攻撃とその無問題性
シビル (Sybil)
16 の異なる人格をもつ患者の記録のノンフィクション
どうやら捏造らしい
転じて、ひとつの主体が複数の参加者になりすまして
システムに参加する攻撃を指す
ブロックチェーンでは一般に参加者の数では...
ビザンチン将軍問題を解く again
ランポートらによる解
n > 3f であれば解ける
通信路について条件がある
ブロックチェーンで解だと言われているもの
全体の資源量を R、裏切り者の資源量を F として
R > 2F であれば解けている
...
エクリプス攻撃
悪意の (または故障) ノードがネットワークを分断し、互いを
見えなくする
ブロックチェーンの場合は、分岐が永続する
f = 1 で原理的に可能 ⇒ 資源の総和 R は無関係
ブロックチェーン連続講義 第 5 回「分散システムの...
4. 課題の意味
課題の整理 再訪
ワンネスの罠 再訪
ブロックチェーン連続講義 第 5 回「分散システムのリテラシー」 — 2016-03-25 – p.27/31
技術の整理と課題
ブロックチェーンの技術は 3 層に分けて考えられる
1. デジタル署名によるデータ構造
誰もが制御を持て、自己充足構造で誰もが検証可能
⇒ 有益
2. ダイジェストを格納するブロックの連鎖の構造
相対時刻を定義する、証明の基盤...
スケールアウト
問い
いつも 10 人並んでる ATM が 1 台あります
ここで新たに ATM を 1 台足すと行列の人数は
どうなるでしょう?
参考 : 山崎大輔さん「スケールアウト再考」
http://www.slideshare.net...
望まれる諸性質 vs. ワンネス
取引の増加に伴い、データ構造を維持するための
コストが直線的に上昇する
「世界がひとつ」でなければ動作しない
大規模災害や政変などによりネットワークが分断
されると正しく動作しない
技術を進化させるガバナンスが...
ご質問や議論を
ブロックチェーン連続講義 第 5 回「分散システムのリテラシー」 — 2016-03-25 – p.31/31
Upcoming SlideShare
Loading in …5
×

ブロックチェーン連続講義 第5回 分散システムのリテラシー

1,991 views

Published on

ブロックチェーンハブ主催で開催しているブロックチェーン連続講義の第5回「分散システムのリテラシー」のスライドです。2016年3月25日(金) に使用しました。

SlideShare 上ではスライドの中の日本語が表示されないように見えますが、ダウンロードしたものについては正しく表示されます。

Published in: Technology

ブロックチェーン連続講義 第5回 分散システムのリテラシー

  1. 1. 分散システムのリテラシー ブロックチェーン連続講義 第 5 回 慶應義塾大学 SFC 研究所 上席所員 斉藤 賢爾 ks91@sfc.wide.ad.jp ブロックチェーン連続講義 第 5 回「分散システムのリテラシー」 — 2016-03-25 – p.1/31
  2. 2. 今回のテーマ 分散システムのリテラシー ブロックチェーンの可能性と限界を考える上で基礎となる、 分散システムの基本的性質についての解説です FLP 不可能性、CAP 定理といった基本原理から、 ビザンチン将軍問題、様々な障害モデル、CUP (未知の参加者 とのコンセンサス)、そして P2P 特有の問題であるオークショ ン問題やエクリプス攻撃まで、 分散システムではどのような条件のとき何ができて、何ができ ないのか、ブロックチェーンに関する安易なセールストークに も騙されないリテラシーを身につけます ブロックチェーン連続講義 第 5 回「分散システムのリテラシー」 — 2016-03-25 – p.2/31
  3. 3. 分散システムのリテラシー 1. 分散システムの法則とブロックチェーン 2. ブロックチェーンのチャレンジ 3. 本当は怖い P2P 4. 課題の意味 ブロックチェーン連続講義 第 5 回「分散システムのリテラシー」 — 2016-03-25 – p.3/31
  4. 4. 1. 分散システムの法則と ブロックチェーン ふたりの将軍問題 FLP 不可能性 CAP 定理 ビザンチン将軍問題 コンセンサス ブロックチェーン連続講義 第 5 回「分散システムのリテラシー」 — 2016-03-25 – p.4/31
  5. 5. ふたりの将軍問題 将軍 A, B は敵を攻める計画に合意したい しかし A-B 間はメッセンジャー m を通してしか通信できない メッセンジャーは敵に捕らえられる可能性がある A が発案した計画に B が合意していると A が知る手立ては? そして B の合意を A が知っていると B が知る手立ては? そして . . . ブロックチェーン連続講義 第 5 回「分散システムのリテラシー」 — 2016-03-25 – p.5/31
  6. 6. 絶望したみなさんへ 分散システムの課題への取り組み方 1. 一般に X は不可能である 2. X を事実上可能にする条件 C がある 3. 条件 C を成立させる方法を考える 例えば 1. 伝令を用いるふたりの将軍問題には解がない 2. だが花火を打ち上げると事実上可能になる 3. 花火を作る方法を考える ただし、この「花火」は reliable multicast のことであり、実現するには 合意の問題を解かなければならない ブロックチェーン連続講義 第 5 回「分散システムのリテラシー」 — 2016-03-25 – p.6/31
  7. 7. 同期システム・非同期システム 同期システム 参加者の時計が同期されているシステム 非同期システム 参加者の時計が同期されておらず、 その進み方もまちまちなシステム 仮想的にでも同期システムが作れれば色んな問題を 解決できる 例 : イベントの順序づけ、タイムアウト 後述するビザンチン将軍問題の解も同期システム を前提 ブロックチェーン連続講義 第 5 回「分散システムのリテラシー」 — 2016-03-25 – p.7/31
  8. 8. セイフティとライブネス セイフティ (safety) 悪いことが決して起きない、という形式の性質 ライブネス (liveness) よいことがいつか起きる、という形式の性質 分散システムの要件はセイフティとライブネスの 組み合わせで表される (それにより時相論理で証明したり議論したりすることが可能になる) 要件は不変項 分散システムは要件を不変項として維持するシステム 答えを出すのではなくて (答えを出す = 計算を完了して止まる) ブロックチェーン連続講義 第 5 回「分散システムのリテラシー」 — 2016-03-25 – p.8/31
  9. 9. 障害の種類 メッセージが届かない、ノードが停止する → ビナイン/良性 (benign) 前提を置かない → ビザンチン (Byzantine) ビザンチン障害では、プロトコルから逸脱する任意の 事象が起きる 裏切りとか共謀とか ただし、悪意によりプロトコルから逸脱するとは 限らない 「悪意のある (malicious)」より広い概念 ブロックチェーン連続講義 第 5 回「分散システムのリテラシー」 — 2016-03-25 – p.9/31
  10. 10. FLP不可能性 完全なる非同期システムにおいては、 いかなるコンセンサスプロトコルも ただひとつのプロセスが予告なしに停止するという だけで 合意を達成できなくなる ちなみにメッセージの伝達自体は完璧という前提で ただし遅延に上限を設けられない Fischer, Lynch, Paterson が証明 現実的にはタイムアウトにより障害検出の「見なし」 を行う ブロックチェーン連続講義 第 5 回「分散システムのリテラシー」 — 2016-03-25 – p.10/31
  11. 11. CAP 定理 Consistency (一貫性) 読み出しは直前の書き込みの 内容を返す Availability (可用性) 必ず有限時間内に応答する Partition tolerance (分断耐性) ネットワークが分断されても 動作する ⇒ 3 つは同時に満たせない 止まらないブロックチェーン は C を満たせない Eventual consistency (結果 整合性) を狙うわけだが . . . ブロックチェーン連続講義 第 5 回「分散システムのリテラシー」 — 2016-03-25 – p.11/31
  12. 12. Consistency (一貫性) Strong consistency (強い一貫性) 更新が完了した後、すべてのアクセスは更新 された値を返す (safety) Eventual consistency (結果整合性) 更なる更新が行われない限り、いずれすべての アクセスは最後に更新された値を返す (liveness) ↑ 強化 Weak consistency (弱い一貫性) すべてのアクセスが更新された値を返すことは 保証しない ← ブロックチェーンはココ (エクリプス状態を想定) ブロックチェーン連続講義 第 5 回「分散システムのリテラシー」 — 2016-03-25 – p.12/31
  13. 13. ビザンチン将軍問題 n 人の将軍がそれぞれの軍隊を率いている 攻めるか、撤退するか、合意しなければならない 地理的に隔離されていて、メッセンジャーを通して しか通信できない メッセンジャー = 伝令者 高々f 人の忠実でない将軍がいる という前提で、以下を満たせ 忠実な将軍は全員、同じ計画に合意する 合意された計画は、忠実な将軍の誰かの発案と 等しい (裏切り者にだまされない) ブロックチェーン連続講義 第 5 回「分散システムのリテラシー」 — 2016-03-25 – p.13/31
  14. 14. ビザンチン将軍問題を解く 「司令、攻撃やめるってよ」 副官 1 から見てシナリオ 1, 2 は区別できない n ≤ 3f では解が存在しない ブロックチェーン連続講義 第 5 回「分散システムのリテラシー」 — 2016-03-25 – p.14/31
  15. 15. コンセンサス CS1 : 提案された値だけが選択される CS2 : ひとつの値だけが選択される CS3 : 正しい参加者は選択された値だけを学ぶ CL1 : 提案された値のどれかがいずれ選択される CL2 : 値が選択されるなら、正しい参加者はいずれ その値を学ぶ ブロックチェーンはコンセンサスを実現しない 提案 : ブロックのブロードキャスト 選択 : 続くブロックのブロードキャスト 各々がスコアが最大 (e.g. 最長のチェーンの末尾) と判断するブロックに 続ける ブロックチェーン連続講義 第 5 回「分散システムのリテラシー」 — 2016-03-25 – p.15/31
  16. 16. Paxos (1) 論文 : 「パートタイム議会 (The Part-Time Parliament)」 エーゲ海にある Paxos 島の物語 たまにしか出席しない議員たち (パートタイム議員) によって法案は成立させていけるか? 議員 ↔ サーバ 市民 ↔ クライアント 現行法 ↔ データベースの状態 議員たちは、たまにしか出席しないが、出席している ときは真面目に業務をこなす ⇒ ビナインな障害に耐える ブロックチェーン連続講義 第 5 回「分散システムのリテラシー」 — 2016-03-25 – p.16/31
  17. 17. Paxos (2) コンセンサスを実現するための役割 提案者 (proposers), 承認者 (acceptors), 学習者 (learners) プロトコルの超概要 1. 提案者は提案を複数の承認者に向けて送る 提案は番号により順序づけされる 提案をやり直すときは番号を大きくする 2. 承認者の過半数が承認したとき、提案は 受け入れられたとする 多くのコンセンサスプロトコルは変形により Paxos と同型であることが示されている ブロックチェーンは違う (コンセンサスを実現していないし) ブロックチェーン連続講義 第 5 回「分散システムのリテラシー」 — 2016-03-25 – p.17/31
  18. 18. 耐ビザンチン障害 Paxos Paxos プロトコルにはビザンチン障害への耐性を 持たせられる 2f + 1 の正常な参加者により Paxos を実行する ことで最大 f の裏切り者に耐える、みたいな 一般化された “byzantizing” 手続き Byzantine Paxos と呼ばれる 変形により PBFT (Practical Byzantine Fault-Tolerance) と同型 ブロックチェーン連続講義 第 5 回「分散システムのリテラシー」 — 2016-03-25 – p.18/31
  19. 19. 2. ブロックチェーンのチャレンジ CUP (Consensus with Unknown Participants) 斉藤-山田 不可能性 (仮) ブロックチェーン連続講義 第 5 回「分散システムのリテラシー」 — 2016-03-25 – p.19/31
  20. 20. (B)FT-CUP (Consensus with Unknown Participants) 未知の参加者の間で耐障害性 (ビナイン/ビザンチン) を持つコンセンサスプロトコルは作れるか? 耐ビナイン障害 : FT (Fault-Tolerant) 耐ビザンチン障害 : BFT (Byzantine Fault-Tolerant) アドホックネットワークや P2P に適用される問題 ブロックチェーンもこの種の問題への取り組みと 見なせる 従来の提案では参加者数 n を探ってから FT/BFT プロトコルを適用する 完璧ではありえない ブロックチェーン連続講義 第 5 回「分散システムのリテラシー」 — 2016-03-25 – p.20/31
  21. 21. 斉藤-山田 不可能性(仮) ノードの総数 n が定まらない状況下ではコンセンサス を満たすプロトコルは存在しない (すでに他の人が証明していたら教えてください) 6 月下旬に論文発表予定 p.6「絶望したみなさんへ」参照 ブロックチェーン連続講義 第 5 回「分散システムのリテラシー」 — 2016-03-25 – p.21/31
  22. 22. 3. 本当は怖い P2P P2P オークション問題 シビル攻撃 - ブロックチェーンの場合は無問題 エクリプス攻撃 - リアルな脅威 ブロックチェーン連続講義 第 5 回「分散システムのリテラシー」 — 2016-03-25 – p.22/31
  23. 23. 本当は怖い P2P 例題: P2P オークション問題 隣接する 3 つのノードに出品情報の転送を依頼 〆切後、その 3 つのノードからしか入札が なかったと判明 競争相手を減らす戦略が採られた 参加者は利己的にプロトコルから逸脱しうる ブロックチェーン連続講義 第 5 回「分散システムのリテラシー」 — 2016-03-25 – p.23/31
  24. 24. シビル攻撃とその無問題性 シビル (Sybil) 16 の異なる人格をもつ患者の記録のノンフィクション どうやら捏造らしい 転じて、ひとつの主体が複数の参加者になりすまして システムに参加する攻撃を指す ブロックチェーンでは一般に参加者の数ではなく 資源量が問題となる そのためシビル攻撃自体に対する考慮は不要 ただし悪意をもつ主体による大量な参加者投入には要注意 ブロックチェーン連続講義 第 5 回「分散システムのリテラシー」 — 2016-03-25 – p.24/31
  25. 25. ビザンチン将軍問題を解く again ランポートらによる解 n > 3f であれば解ける 通信路について条件がある ブロックチェーンで解だと言われているもの 全体の資源量を R、裏切り者の資源量を F として R > 2F であれば解けている ⇒ 条件が議論されているように見えない 無条件には解けないはず 本当は暗黙に条件がある ブロックチェーン連続講義 第 5 回「分散システムのリテラシー」 — 2016-03-25 – p.25/31
  26. 26. エクリプス攻撃 悪意の (または故障) ノードがネットワークを分断し、互いを 見えなくする ブロックチェーンの場合は、分岐が永続する f = 1 で原理的に可能 ⇒ 資源の総和 R は無関係 ブロックチェーン連続講義 第 5 回「分散システムのリテラシー」 — 2016-03-25 – p.26/31
  27. 27. 4. 課題の意味 課題の整理 再訪 ワンネスの罠 再訪 ブロックチェーン連続講義 第 5 回「分散システムのリテラシー」 — 2016-03-25 – p.27/31
  28. 28. 技術の整理と課題 ブロックチェーンの技術は 3 層に分けて考えられる 1. デジタル署名によるデータ構造 誰もが制御を持て、自己充足構造で誰もが検証可能 ⇒ 有益 2. ダイジェストを格納するブロックの連鎖の構造 相対時刻を定義する、証明の基盤 ⇒ 想定されていたほど強固ではない 3. コンセンサスのプロトコル TX としての確定に向けたトライアル · コンセンサスを厳密な意味では実現せず後追いでしか語れない ⇒ 現実と同期して動く上で問題がある 課題の解決と、課題が解決されたことを前提とする 応用の探究を同時に進める必要がある ブロックチェーン連続講義 第 5 回「分散システムのリテラシー」 — 2016-03-25 – p.28/31
  29. 29. スケールアウト 問い いつも 10 人並んでる ATM が 1 台あります ここで新たに ATM を 1 台足すと行列の人数は どうなるでしょう? 参考 : 山崎大輔さん「スケールアウト再考」 http://www.slideshare.net/yamaz2/ss-58813038 サーバを追加することにより性能上の問題を解決可 ⇒ システムがスケールアウトする ブロックチェーンは素のままではスケールアウト しない KVS だと思えば改良は可能 ブロックチェーン連続講義 第 5 回「分散システムのリテラシー」 — 2016-03-25 – p.29/31
  30. 30. 望まれる諸性質 vs. ワンネス 取引の増加に伴い、データ構造を維持するための コストが直線的に上昇する 「世界がひとつ」でなければ動作しない 大規模災害や政変などによりネットワークが分断 されると正しく動作しない 技術を進化させるガバナンスが利きにくい 一部で違うことを試してうまくいったら全体で採用、ということが できない 以上は分権できない構造による欠点 逆に、分権できる分散コンセンサス基盤には 大きな期待と可能性がある ブロックチェーン連続講義 第 5 回「分散システムのリテラシー」 — 2016-03-25 – p.30/31
  31. 31. ご質問や議論を ブロックチェーン連続講義 第 5 回「分散システムのリテラシー」 — 2016-03-25 – p.31/31

×