Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
分散システムの基礎知識 / Distributed Systems Literacy
Search
Kenji Saito
PRO
November 29, 2017
Technology
0
160
分散システムの基礎知識 / Distributed Systems Literacy
2017年11月29日(水)、ブロックチェーンアカデミー「ブロックチェーン基盤技術 分散システムの基礎知識」にて使用したスライドです
Kenji Saito
PRO
November 29, 2017
Tweet
Share
More Decks by Kenji Saito
See All by Kenji Saito
デジタルトランスフォーメーションと民主主義 / Digital Transformation and Democracy
ks91
PRO
0
3
We Never Took the Kobayashi Maru Test Until Now. What Do You Think of Our Solutions? — Journeys of the Mind Through a No-Win Game
ks91
PRO
0
14
思いつきが武器になる:研究というゲームを始めよう / Ideas Are Your Equipments : Let the Game of Research Begin!
ks91
PRO
0
73
ロボットを雰囲気(ヴァイブ)でプログラミングするこどもたち / Children Vibe-Programming Robots
ks91
PRO
0
21
アカデミーキャンプ 2025 SuuuuuuMMeR「燃えろ!!ロボコン」 / Academy Camp 2025 SuuuuuuMMeR "Burn the Spirit, Robocon!!" DAY 3
ks91
PRO
0
30
アカデミーキャンプ 2025 SuuuuuuMMeR「燃えろ!!ロボコン」 / Academy Camp 2025 SuuuuuuMMeR "Burn the Spirit, Robocon!!" DAY 2
ks91
PRO
0
33
アカデミーキャンプ 2025 SuuuuuuMMeR「燃えろ!!ロボコン」 / Academy Camp 2025 SuuuuuuMMeR "Burn the Spirit, Robocon!!" DAY 1
ks91
PRO
0
160
未来へのフォワードキャスト / Forward Cast to the Future
ks91
PRO
0
86
発表と総括 / Presentations and Summary
ks91
PRO
0
61
Other Decks in Technology
See All in Technology
Nstockの一人目エンジニアが 3年間かけて向き合ってきた セキュリティのこととこれから〜あれから半年〜
yo41sawada
0
210
react-callを使ってダイヤログをいろんなとこで再利用しよう!
shinaps
1
210
品質視点から考える組織デザイン/Organizational Design from Quality
mii3king
0
150
共有と分離 - Compose Multiplatform "本番導入" の設計指針
error96num
1
190
大「個人開発サービス」時代に僕たちはどう生きるか
sotarok
20
9.4k
ガチな登山用デバイスからこんにちは
halka
1
230
ChatGPTとPlantUML/Mermaidによるソフトウェア設計
gowhich501
1
120
おやつは300円まで!の最適化を模索してみた
techtekt
PRO
0
290
フィンテック養成勉強会#56
finengine
0
130
サンドボックス技術でAI利活用を促進する
koh_naga
0
190
カミナシ社の『ID管理基盤』製品内製 - その意思決定背景と2年間の進化 #AWSUnicornDay / Kaminashi ID - The Big Whys
kaminashi
3
830
DDD集約とサービスコンテキスト境界との関係性
pandayumi
2
270
Featured
See All Featured
Measuring & Analyzing Core Web Vitals
bluesmoon
9
580
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
131
19k
The Invisible Side of Design
smashingmag
301
51k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Writing Fast Ruby
sferik
628
62k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
61k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Transcript
CSO / SFC
[email protected]
— — 2017-11-29 – p.1/38
( ) SFC ( ) CSO (Chief Science Officer) 1993
M.Eng ( ) 2006 ( ) SFC 17 P2P 2011 → ( ) — — 2017-11-29 – p.2/38
FLP CAP CUP ( ) P2P — — 2017-11-29 –
p.3/38
1. 2. 3. Paxos 4. 5. P2P 6. — —
2017-11-29 – p.4/38
1. FLP CAP — — 2017-11-29 – p.5/38
A, B A-B m A B A B A B
. . . — — 2017-11-29 – p.6/38
1. X 2. X C 3. C 1. 2. 3.
reliable multicast — — 2017-11-29 – p.7/38
: — — 2017-11-29 – p.8/38
(safety) (liveness) ( ) ( = ) — — 2017-11-29
– p.9/38
→ / (benign) → (Byzantine) (malicious) — — 2017-11-29 –
p.10/38
FLP Fischer, Lynch, Paterson — — 2017-11-29 – p.11/38
CAP Consistency ( ) Availability ( ) Partition tolerance (
) ⇒ 3 C Eventual consistency ( ) . . . — — 2017-11-29 – p.12/38
Consistency ( ) Strong consistency ( ) (safety) Eventual consistency
( ) (liveness) ↑ Weak consistency ( ) ↑ ( ) — — 2017-11-29 – p.13/38
2. — — 2017-11-29 – p.14/38
n = f ( ) ⇒ — — 2017-11-29 –
p.15/38
(1) 1 1, 2 n ≤ 3f — — 2017-11-29
– p.16/38
(2) — — 2017-11-29 – p.17/38
3. Paxos Paxos Paxos — — 2017-11-29 – p.18/38
CS1 : CS2 : CS3 : CL1 : CL2 :
: : (e.g. ) — — 2017-11-29 – p.19/38
Paxos (1) : (The Part-Time Parliament) Paxos ( ) ↔
↔ ↔ ⇒ — — 2017-11-29 – p.20/38
Paxos (2) (proposers), (acceptors), (learners) 1. 2. Paxos ( )
— — 2017-11-29 – p.21/38
Paxos Paxos 2f + 1 Paxos f “byzantizing” Byzantine Paxos
PBFT (Practical Byzantine Fault-Tolerance) PBFT — — 2017-11-29 – p.22/38
4. CUP (Consensus with Unknown Participants) vs. — — 2017-11-29
– p.23/38
(B)FT-CUP (Consensus with Unknown Participants) ( / ) : FT
(Fault-Tolerant) : BFT (Byzantine Fault-Tolerant) P2P n FT/BFT — — 2017-11-29 – p.24/38
State Machine Replication ( ) (by ) (since 1984) (
) ( ) . . . ( ) — — 2017-11-29 – p.25/38
( ) ( ) ( ) ( ) (by )
— — 2017-11-29 – p.26/38
5. P2P P2P - - — — 2017-11-29 – p.27/38
P2P : P2P 3 3 ( ) strategyproof group strategyproof
— — 2017-11-29 – p.28/38
(Sybil) 16 — — 2017-11-29 – p.29/38
again n > 3f R F R > 2F ⇒
— — 2017-11-29 – p.30/38
( ) f = 1 ⇒ R — — 2017-11-29
– p.31/38
6. — — 2017-11-29 – p.32/38
3 1. ( : UTXO ) ⇒ ( ) 2.
( : ) ⇒ 3. ( : ) TX ⇒ 2 3 — — 2017-11-29 – p.33/38
10 ATM 1 ATM 1 : http://www.slideshare.net/yamaz2/ss-58813038 ⇒ KVS —
— 2017-11-29 – p.34/38
— — 2017-11-29 – p.35/38
vs. — — 2017-11-29 – p.36/38
(centralized) (decentralized) (distributed) Paul Baran, “On Distributed Communications Networks”, 1964
(C) (A) — — 2017-11-29 – p.37/38
— — 2017-11-29 – p.38/38