Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
いまさら聞けないコンセンサスアルゴリズム
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
cryptoexpat
January 14, 2018
Technology
1.1k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
いまさら聞けないコンセンサスアルゴリズム
第1回暗号通貨勉強会@Jakarta
cryptoexpat
January 14, 2018
Other Decks in Technology
See All in Technology
ストレスなくAIと付き合いたい!こんなときどうしてる?
namiki64
3
600
スプシの手作業からの解脱 ~更新はClaude Codeに、見せ方と使い方はGASアプリに任せる~
kentarofujii
0
160
DGX Spark でどこまでハッキングができるのか?
kash1064
3
1.4k
ウォンテッドリーの最近のプロダクトと技術の紹介
stomk
0
120
DWH の限界突破! AI エージェント向け爆速リアルタイムデータ基盤 ClickHouse
jozono
1
490
脆弱性診断って、何をしているの? 〜弱点を見つけて、会社の改善につなげるまで〜
keeg
0
930
Webの常識が通じないHTMLメールのダークモード
teamlab
PRO
0
130
『SAR衛星データ解析入門』のご紹介とその応用
syuchimu
0
120
専門領域のAIをどう評価するか
bengo4com
2
280
パスキーの自動テストはどこまでいけるのか
teamlab
PRO
0
280
JAWSUG TOHOKU 青森支部 「LoGoチャット」のAWS移行で 乗り越えたこと
taketakekaho
0
340
Kiro Crewで「みのるん式」仕事術やってみた
minorun365
PRO
1
270
Featured
See All Featured
Building Applications with DynamoDB
mza
96
7.2k
How to Think Like a Performance Engineer
csswizardry
28
2.9k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.7k
Optimizing for Happiness
mojombo
378
71k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
570
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
710
Designing for Performance
lara
612
70k
Code Reviewing Like a Champion
maltzj
529
40k
Designing for Timeless Needs
cassininazir
1
530
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
640
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
520
Transcript
暗号通貨勉強会@ジャカルタ 今さら聞けない コンセンサスアルゴリズム Jan-2018
Agenda ίϯηϯαεΞϧΰϦζϜ ü ίϯηϯαεͷॏཁੑ ü 1P8 ü 1P4 φΠʔϒ1P4ͷ ü
/PUIJOHBU4UBLF &UIFSFVNʹ͓͚Δ1P81P4 ü &UIFSFVNͱ ü ݱࡏͷΞϧΰϦζϜ ü $BTQFS ·ͱΊ
ίϯηϯαεΞϧΰϦζϜ
ίϯηϯαεͷॏཁੑ ü #JUDPJOͷΑ͏ͳඇதԝूݖܕͷωοτϫʔΫͰɺ͍͔ʹ શϊʔυͰͷ߹ҙʢίϯηϯαεʣΛಘΔ͔͕ॏཁʹͳΔ ίϯηϯαεΞϧΰϦζϜΛΔ͜ͱ $SZQUPDVSSFODZΛΔ͜ͱ
勉強会後の話のネタに・・・ ü PoS経済圏は持続可能性がない? ü PoSだと富を持っている人がますます富む仕組みであるため、富を持たない人たち はよりフェアなPoW経済圏に逃げていく? 「PoSを採用する暗号通貨に未来はあるのだろうか」で検索 https://medium.com/@tanaka_bot_1/pos%E3%82%92%E6%8E%A1%E7%94%A8%E3%81%99%E3%82%8B%E6%9A%97%E5%8F%B7%E9% 80%9A%E8%B2%A8%E3%81%AB%E6%9C%AA%E6%9D%A5%E3%81%AF%E3%81%82%E3%82%8B%E3%81%AE%E3%81%A0%E3%82%8 D%E3%81%86%E3%81%8B-578d7621d0e3
この前提は本当に正しい? この行動をとる?
1P8 ü #JUDPJOͰʮϒϩοΫνΣʔϯ ʴ 1P8ʯͱ͍͏ίϯηϯαεΞϧΰϦζϜʹΑΓ ɺωοτϫʔΫશମͰ߹ҙΛಘ͍ͯΔ ü ίϯηϓτɺڞ௨ாʢϒϩοΫνΣʔϯʣͷϝϯςφϯε Ø ϒϩοΫνΣʔϯʹؚ·ΕΔऔҾΛਖ਼͍͠औҾͱ͢Δ͜ͱͰɺωοτϫʔΫશ
ମͰ།ҰͷऔҾཤྺΛҡ࣋͢Δ 誰がブロックを作るのか? 単純な計算問題を最初に解けた人 前ブロック ハッシュ値 取引 データ 取引 データ 取引 データ 取引 データ 前ブロック ハッシュ値 取引 データ 取引 データ 取引 データ 取引 データ 前ブロック ハッシュ値 取引 データ 取引 データ 取引 データ 取引 データ
1P8 ಛ ü 1P8ͷܭࢉʹిؾ͕͔͔Δʢʹίετ͕͔͔Δʣ ü ͜ͷܭࢉؤுͬͯಓʹղ͔͘͠ղ๏͕ͳ͘ɺ͔͚ͨίετʹൺྫͯ͠࠾۷Ͱ͖ Δʢ"4*$#PPTUͳΔͷ͋Γ·͕ͨ͠ɻɻɻʣ ü औҾཤྺΛ෴ͨ͢Ίʹɺಉ͡ྔͷίετʢిؾʣΛ͔͚Δඞཁ͕͋Δ Block1
Block2 Block5 Block3 Block6 Block4 Block3 1) 改ざんした取引をいれた Block3を作成 Block5 Block6 Block4 Block7 ྫʣ#MPDLʹؚ·ΕΔऔҾΛվ͟Μ͍ͨ͠ 取引A 取引A’ 2) Block4から6でかかったコスト と同じコストをかけてBlock4から 6を再作成 3) 元のチェーンより長くなったら 改ざん完了 深いブロックに入った 取引が覆る可能性はか なり低い
1P8 ü Ұݟᘳʹݟ͑Δ1P8͕ͩɺ͍͔ͭ͋͘Δ Ø ϚΠφʔ͕ूதԽ͢ΔϦεΫ • ϚΠφʔʹΑΔՄ༻ੑ߈ܸ͕Մೳ ྫʣ݄ͷ#$)ͷϑΥʔΫͷࡍʹɺҰ࣌తʹϚΠχϯάύϫʔΛ#$)ʹूΊΔ͜ͱ Ͱɺ#5$ͷϒϩοΫੜεϐʔυ͕Լ͠ɺτϥϯβΫγϣϯͷେنͳͭ·Γ͕ൃੜ •
߈ܸ͕Մೳ Ø ϚΠφʔҎ֎ͷϊʔυߏஙΠϯηϯςΟϒ͕ͳ͍ʢऔҾݕূ͕தԝूݖԽ͢Δ ͓ͦΕʣ Ø ʢ͓·͚ʣϑΝΠφϦςΟ͕ͳ͍ʢ͍ͭ·ͰͨͬͯɺऔҾ͕෴ΔՄೳੑ͕͋Δʣ Ø ʢ͓·͚ʣΤί͡Όͳ͍ 監視 ノード マイナー
マイニング事情 2018
1P4 ü ʮ୭͕ϒϩοΫΛ࡞͢Δͷ͔ʯͱ͍͏͍ʹରͯ͠ɺܭࢉྔͰͳ͘ɺอ༗͢ΔτʔΫϯ ߴ 4UBLFɺྫ͑&UIFSFVN ʹԠͯ֬͡తʹϒϩοΫ࡞ऀ͕ܾ·Δͷ͕1P4 Ø ࡉ͔͍Λ͢Δͱɺେ͖ͭ͘ͷܥ౷ʹ͚ΒΕΔ ᶃ $IBJO#BTFܕʢܾఆతʹϒϩοΫ࡞ऀ͕બ͞ΕͯɺϒϩοΫ͕࡞ΒΕΔʣ
ᶄ #'5 #Z[BOUJOFGBVMUUPMFSBOU ܕʢܾఆతʹϒϩοΫఏҊऀ͕બग़͞Εͯɺఏࣔ͞ ΕͨϒϩοΫʹରͯ͠શ7BMJEBUPS͕ථΛߦ͍ɺଟථΛऔΕͨ߹ʹϒϩοΫν ΣʔϯʹΈࠐΉʣ ü ϚΠφʔͷΑ͏ͳ֎෦ܦࡁʹґଘͤͣɺશһ͕ࢀՃऀͱͳΔ͜ͱͰ7BMJEBUPSͷࢄͰ͖ͦ͏ͩ ͕ɺʂ
φΠʔϒ1P4ͷ
/PUIJOHBU4UBLF 電気代などの コストが不要 チェーンの分岐が 防げない! https://ethereum-japan.net/ethereum/casper-ffg-testnet-release/ マイニングにコストがかかるため、 分岐させるインセンティブがない コストがかからないため、どちらの チェーンも承認したほうが期待値が高い
/PUIJOHBU4UBLF ü ͷࠜݯ7BMJEBUPS͕ԿṌ͚͍ͯͳ͍͜ͱ OPUIJOHBUTUBLF ü 4MBTIFSͱ͍͏ΈͷಋೖͰղܾՄೳʢ%104ͳͲͷΈΛར༻͢ΔϓϩτίϜ͋Δʣ ü 1P4ͷॏཁͳಛɺίϯηϯαεΞϧΰϦζϜ͕֎෦ܦࡁʢϚΠφʔʣʹґଘͤͣɺϓϩτ ίϧ͕εςΠΫΛऩ͢Δ͜ͱ͕Ͱ͖Δ
7BMJEBUPSҰఆֹͷεςΠΫʢྫ͑&UIFSFVNʣΛڙୗ͢Δ 7BMJEBUPSϒϩοΫ࡞ʢ·ͨঝೝʣΛߦ͏ ແࣄʹίϯηϯαε͕औΕ͍ͯΔؒɺϒϩοΫ࡞ใु͕ࢧΘΕΔ ͠νΣʔϯͷذΛ͛ͳ͍߹ɺڙୗͨ͠εςΠΫ͕ऩ͞ΕΔ Smart Contract 1. 供託 2. 承認 3. 報酬 4. 没収
<ࣄྫ>&UIFSFVNʹ͓͚Δ1P8 ͔Β1P4ͷҠߦ
3-1 Ethereumとは ü Ethereumは「ワールドコンピュータ」 Ø Ethereumは通貨というより、誰もが使えるプログラ ム実行環境 Ø その上に様々なサービスが構築される 例)
Gnosis, Bancor, Oraclize etc
3-1 Ethereumとは ロードマップ ❖ ロードマップ 3. Metropolis 1. Byzantium 2.
Constantinople 4. Serenity ❖ ByzantiumとConstantinopleの2 回に分けてハードフォーク ❖ Byzantiumで以下実装済み ❖ 新機能 ❖ Zk-SNARKs ❖ Contractの安全性向上 ❖ PoSに向けての下準備 ❖ Difficulty Bombの延期 ❖ マイニング報酬減額 Ethereumの開発ロードマップは大きく4つに分かれる
3-1 Ethereumとは ロードマップ ࣍ظ4FSFOJUZͰ1P4 $BTQFS ҠߦΛ༧ఆ
[再掲] 勉強会後の話のネタに・・・ ü PoS(SerenityのEthereum)だと富を持っている人がますます富む仕組みであるた め、富を持たない人たちはよりフェアなPoW経済圏(MetropolisのEthereumや他の スマートコントラクト基盤(Liskなど)に逃げていく? 「PoSを採用する暗号通貨に未来はあるのだろうか」で検索 https://medium.com/@tanaka_bot_1/pos%E3%82%92%E6%8E%A1%E7%94%A8%E3%81%99%E3%82%8B%E6%9A%97%E5%8F%B7%E9% 80%9A%E8%B2%A8%E3%81%AB%E6%9C%AA%E6%9D%A5%E3%81%AF%E3%81%82%E3%82%8B%E3%81%AE%E3%81%A0%E3%82%8 D%E3%81%86%E3%81%8B-578d7621d0e3
3-2 現在のアルゴリズム マイニング ü EthashというPoWを利用 ü BitcoinのSHA256と比較すると 、メモリを大量消費するため ASIC耐性がある (GPUでマイニ
ング可能) コンセンサスアルゴリズム ü GHOSTプロトコルという独自 プロトコルにより、マイナーの 集中化を防いでいる ASICを利用できる場合(赤線)とEthash(青線)の収益イメージ ASICを使用できてしまうと、 資本に対するMining収益が偏りやすい
3-2 現在のアルゴリズム GHOST http://joemphilips.com/post/consensus_memo/ ü Ethereumはマイニング間隔が15秒と短いので、孤立するブロック(Orphanブ ロック、図C)が発生しやすい ü 孤立ブロックを作ってしまうのは、計算量が少ないマイナーであることが多い ため、孤立ブロックを無視すると小規模マイナーが離脱し、マイナーの寡占化
につながる ü 正当なチェーンを孤立ブロックを含めた最も重い(≠長い)チェーン(図B)と することで、マイナーの寡占化を防ぐ
3-2 Casper ü PoWに代わるPoSのコンセンサスアルゴリズム ü Tendarmintという仕組みを一部ベースにしている ü Constantinopleから段階的に実装予定(以下の図は、諸々の 情報より推測) Constantinople
Serenity Part1 Serenity Part2 Casper the Friendly Ghost (CTFG) Casper the Friendly Finality Gadget (CFFG) https://blog.cosmos.network/consensus-compare-casper-vs-tendermint-6df154ad56ae
3-2 Casper CFFG ü Ethereum開発者Vitalikが開発しているバージョンでBFT型 (もう一つのCTFGはVladが開発中) ü 特徴はPoWとのハイブリッド型である点 ü 取引承認にはPoWを利用するが、PoSによりファイナリティ
を確保する Block1 Block2 Block50 ・・・ Block51 Epoch1 ・・・ 各ブロックはPoWによって承認 EpochごとにPoSにより承認 (=ファイナリティ) Epoch2 Block100
3-2 Casper CFFG 実際にどのように動くか考えてみると・・・ ü もしPoWマイナーが意図的に分岐を起こしている場合、 PoS Validatorが両方とも承認してしまうとETHが没収 (Slash)されてしまう ü
ゆえに、PoS Validatorはどちらか片方のブロックのみ を承認するインセンティブがある Block1 Block2 Block50 ・・・ Epoch1 Block50 Block2 ・・・ PoS ValidatorはSlashされ るのを防ぐため、どちら か片方のBlock50のみ承認
3-2 Casper CTFG ü GHOSTプロトコルをPoSに適用した仕組み (Casper The Friendly GHOST) ü
CFFGと異なり純粋なPoS Block1 Block2 Block50 ・・・ Block50 選出されたValidatorがブロック作成 分岐を作った場合には、Slash (Slashされるタイミング不明)
3-2 Casper CTFG ü Validatorの数をTendermintに比べて増やしやすいのが特徴 Ø TendermintはブロックごとにFinalityがあり、ブロック生成 速度を維持するためにはValidetorの数を抑えなくてはなら ない Ø
CTFGでのFinalityはリアルタイムではなく、PoWのように 事後的に安全性が決まるので、Validatorの数を増やしやす い Ø Shardingとよばれる複数チェーンを導入すると、さらに Validatorの数は増える
·ͱΊ
4-1 まとめ ü コンセンサスアルゴリズムは大きくPoWとPoSに分けられる ü PoWはマイナー集中化、ノード構築のインセンティブの低さ が問題となる ü 古典的なPoSはNothing at
Stake問題を抱えるが、Casperはそ の点をクリアしており、かつマイナー集中化、ノードインセン ティブなどの問題をクリアしている ü ただしPoSの持続可能性を疑問視する人も多い(ある種ねずみ 講に近いという考え方)