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
ハイパーレッジャーとその他の分散台帳技術 / Hyperledger and Other Distributed Ledger Technology
Search
Kenji Saito
PRO
October 02, 2019
Technology
0
110
ハイパーレッジャーとその他の分散台帳技術 / Hyperledger and Other Distributed Ledger Technology
2019年10月2日(水)、ブロックチェーンハブ主催のブロックチェーンアカデミー「ハイパーレッジャーとその他の分散台帳技術」にて使用したスライドです。
Kenji Saito
PRO
October 02, 2019
Tweet
Share
More Decks by Kenji Saito
See All by Kenji Saito
コバヤシマルテスト ─ 勝ち目のないゲームに抗いながら旅する心の旅路 / Kobayashi Maru Test - a mental journey of defiance against a game that cannot be won
ks91
PRO
0
3
セキュリティ戦略・発表と総括 / Security Strategies, Presentation and Conclusions
ks91
PRO
1
31
暗号資産の経済学・イントロダクション / Economics of Cryptocurrencies (Introduction)
ks91
PRO
0
20
AI とデジタルトランスフォーメーション / AI and Digital Transformation
ks91
PRO
0
10
インシデントレスポンス演習 II / Incident Response Exercise II
ks91
PRO
0
36
A思考の自動化とX 思考の行方 / Automation of A Thinking and the Future of X Thinking
ks91
PRO
0
23
サイバー戦の現在と未来 / Present and Future of Cyber Warfare
ks91
PRO
0
69
サイバー攻撃・防御とサイバー法 / Cyber Attacks, Defenses and Cyber Law
ks91
PRO
0
50
インシデントレスポンス演習I / Incident Response Exercise I
ks91
PRO
0
63
Other Decks in Technology
See All in Technology
[NIKKEI Tech Talk]Bias for Action!! 実践から学ぶための仕組とコミュニティ / Community for Practice and Learning
kanamasa
0
260
推薦システムを本番導入する上で一番優先すべきだったこと~NewsPicks記事推薦機能の改善事例を元に~
morinota
0
120
ペパボのオブザーバビリティ研修2024 説明資料
kesompochy
0
1.1k
[NIKKEI Tech Talk] KDDI/KAG Scrum & Community for Engineering Training
curanosuke
2
220
Classmethod流のPlatform Engineering / classmethod-platform-engineering-devio2024
tomoki10
0
470
JBUG岡山 #6 WordCamp男木島の チームビルディング
takeshifurusato
0
150
ソフトウェアエンジニアリングの知見を活かして データ基盤をいい感じにする on Snowflake [MIERUNE BBQ #10]
mtpooh
2
150
How to Think Like a Performance Engineer
csswizardry
4
590
成長期に歩みを止めないための創業期の開発文化形成
mayah
6
420
開発と事業を繋ぐ!SREのオブザーバビリティ戦略 ~ Developers Summit 2024 Summer ~
leveragestech
0
620
簡単に始めるSnowflakeの機械学習
nayuts
1
190
[2024最新版]AWS Control Towerを使ったセキュアなマルチアカウント環境の作り方
hiashisan
0
270
Featured
See All Featured
Scaling GitHub
holman
458
140k
Producing Creativity
orderedlist
PRO
340
39k
Speed Design
sergeychernyshev
9
270
How to Ace a Technical Interview
jacobian
274
23k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
18
1.2k
What's in a price? How to price your products and services
michaelherold
239
11k
Designing Experiences People Love
moore
136
23k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
224
21k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
121
18k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
17
8.7k
The Straight Up "How To Draw Better" Workshop
denniskardys
229
130k
Thoughts on Productivity
jonyablonski
64
4.1k
Transcript
ϋΠύʔϨοδϟʔͱͦͷଞͷࢄாٕज़ ϒϩοΫνΣʔϯج൫ٕज़ʲϏδωεԠ༻ج൫ΛϚϧͬͱཧղʳ ϒϩοΫνΣʔϯϋϒ Chief Science Officer / ૣҴాେֶ େֶӃܦӦཧݚڀՊ ڭत
੪౻ ݡ࣐
[email protected]
ϋΠύʔϨοδϟʔͱͦͷଞͷࢄாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.1/39
͜ͷεϥΠυ https://speakerdeck.com/ks91 ʹஔ͔Ε͍ͯ·͢ ϋΠύʔϨοδϟʔͱͦͷଞͷࢄாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.2/39
؆୯ͳࣗݾհ ੪౻ ݡ࣐ (͍͞ͱ͏ ͚Μ͡) ૣҴాେֶ େֶӃܦӦཧݚڀՊ ڭत ܚጯٛक़େֶ SFC
ݚڀॴ ্੮ॴһɾڥใֶ෦ ߨࢣ (ඇৗۈ) גࣜձࣾϒϩοΫνΣʔϯϋϒ CSO (Chief Science Officer) Ұൠࣾஂ๏ਓϏϤϯυϒϩοΫνΣʔϯ දཧࣄ Ұൠࣾஂ๏ਓΞΧσϛʔΩϟϯϓ දཧࣄ ܦྺ 1993 ɺίʔωϧେֶΑΓֶम࢜߸औಘ (ίϯϐϡʔλαΠΤϯε) 2006 ɺܚጯٛक़େֶΑΓσδλϧ௨՟ͷݚڀͰത࢜߸औಘ (ࡦɾϝσΟΞ) ܚጯٛक़େֶ େֶӃ ࡦɾϝσΟΞݚڀՊ SFC ݚڀॴʹͯ 19 ؒʹΘͨΓ P2P (Peer-to-Peer) ͓Αͼσδλϧ௨՟ͷݚڀʹैࣄ 2011 ՆΑΓౡͷ͜ͲͨͪͷͨΊͷʮΞΧσϛʔΩϟϯϓʯΛؒΒͱ։࠵ ࡢ SFC ʹͯ ΞΧσϛʔΩϟϯϓ 2018 ՆʮΦοέʔάʔάϧɺ॓ͬͱ͍ͯʂʯΛ࣮ࢪ ࠓ SFC Ͱ ΞΧσϛʔΩϟϯϓ 2019 ՆʮੈքΛ࠶ൃ໌ͤΑ ∼ REINVENT THE WORLDʯΛ࣮ࢪ → ࢲͷ಄ͷதͰͭͳ͕͍ͬͯ·͢ (͜Ε͔ΒͷࣾձͷσβΠϯ͜ͲͨͪͱҰॹʹ) ϋΠύʔϨοδϟʔͱͦͷଞͷࢄாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.3/39
ࠓճͷςʔϚ Linux Foundation ʹͯෳͷΦʔϓϯιʔε։ൃ͕ਐߦதͷ Hyperledger ϓϩδΣΫτΛ͡Ίɺ R3CEV ʹΑΔ Cordaɺ Facebook/Calibra
ʹΑΔ The Libra Blockchain ɺ ۀ༻ࢄϨοδϟʔ (ࢄா) ͷ։ൃಈʹ͍ͭͯɺެ։͞Ε͍ͯΔใͷ ൣғ͔ΒಡΈղ͍͍͖ͯ·͢ ϋΠύʔϨοδϟʔͱͦͷଞͷࢄாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.4/39
ࠓͷτϐοΫ ϋΠύʔϨοδϟʔ (Linux Foundation) ϋΠύʔϨοδϟʔ ϓϩδΣΫτ Fabric (IBM), Sawtooth (Intel),
Iroha (ιϥϛπ), Indy (Sovrin) Corda (R3), The Libra Blockchain (Facebook/Calibra), BBc-1 (զʑ) DLT ͕ਅՁΛൃش͢ΔͨΊʹ ϋΠύʔϨοδϟʔͱͦͷଞͷࢄாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.5/39
ϒϩοΫνΣʔϯ/DLT Λཧղ͢Δ ਖ਼ੑͷอূ ྫ6590ߏͱσδλϧॺ໊ ଘࡏੑͷূ໌ ྫ࡞ۀূ໌͖ϋογϡνΣʔϯ །Ұੑͷ߹ҙ ྫφΧϞτɾίϯηϯαε ϧʔϧͷهड़ ྫ#5$ͷҠస
ɾ τϥϯβΫγϣϯͷ༰͕վ͟ΜͰ͖ͣɺ ɾ ͦͷΞηοτʹؔ͢ΔաڈͷτϥϯβΫγϣϯྻʹরΒͯ͠ໃ६͕ͳ͘ɺ ɾ ͔ͭɺਖ਼ͳϢʔβʹΑΓೖ͞Ε͍ͯΔ͜ͱΛอূ͢Δ ɾաڈʹ͋ͬͨτϥϯβΫγϣϯͷূڌΛຣফͰ͖ͣɺ ɾ ͔ͭɺաڈʹͳ͔ͬͨτϥϯβΫγϣϯͷূڌΛ፻Ͱ͖ͳ͍ ɾໃ६͢Δ;ͨͭͷτϥϯβΫγϣϯ͕ೖ͞Εͨ߹ɺ ɹ ͍ͣΕ ؔ༩͢Δશһ͕ಉ͡ยํΛબΜͰྺ࢙ͷதʹҐஔ͚ͮΔ ɾΞϓϦέʔγϣϯϩδοΫ Կ͕ਖ਼͍͠τϥϯβΫγϣϯ͔ΛܾΊΔ ϒϩοΫνΣʔϯɺΠϯλʔωοτͷ End-to-End ͷֶΛɺΞηοτ (ࢿ࢈) ͷ੍ޚʹ͓͍ͯ ݱ࣮Խ͢Δ (͜ͱΛࢼΈΔ)ʮۭதଋݻఆஔʯ ྨ͢Δٕज़ಉ͡جຊߏͱతΛͭ ϋΠύʔϨοδϟʔͱͦͷଞͷࢄாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.6/39
ϋΠύʔϨοδϟʔ (Linux Foundation) ϓϩδΣΫτͷΨόφϯεػߏ https://www.hyperledger.org ιϑτΣΞ Apache License, Version 2.0
Ͱެ։ ϋΠύʔϨοδϟʔͱͦͷଞͷࢄாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.7/39
ԿΛ͢Δͷ͔ ϛογϣϯ ϏδωεରԠͷΦʔϓϯιʔεͷࢄϨοδϟʔͷϑϨʔϜϫʔΫͱ ίʔυϕʔεΛ༻ҙ͢Δ Φʔϓϯιʔε։ൃͷٕज़ίϛϡχςΟΛͭ͘Δ ΤίγεςϜͷઌಋऀͨͪʹࢀՃͯ͠Β͏ ։ൃऀ αʔϏε/ιϦϡʔγϣϯఏڙऀ ސ٬ ΨόφϯεͷϓϥοτϑΥʔϜΛఏڙ͢Δ
ϓϩδΣΫτͷϥΠϑαΠΫϧ : Proposal → Incubation → Active → Deprecated → End of Life ϋΠύʔϨοδϟʔͱͦͷଞͷࢄாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.8/39
ձһ ϓϨϛΞձһ (ͦͷଞͷձһʹ͍ͭͯ https://www.hyperledger.org/about/members ) ϋΠύʔϨοδϟʔͱͦͷଞͷࢄாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02
– p.9/39
Fabric (IBM) IBM ͱ Digital Asset Holdings ͷίʔυΛϚʔδ http://hyperledger-fabric.readthedocs.io/en/latest/ State
: Active ϋΠύʔϨοδϟʔͱͦͷଞͷࢄாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.10/39
֓ཁ (υΩϡϝϯτ͔Β) طଘͷރΕٕͨज़Λ༻͍࣮ͯ ϞδϡϥʔͰଟ༷ͳػೳΛϓϥάΠϯՄೳ εϚʔτίϯτϥΫτʹίϯςφ (ܰྔԾڥ) ٕज़Λద༻ ༷ʑͳϝΠϯετϦʔϜݴޠͰͷ։ൃ͕Մೳ ϋΠύʔϨοδϟʔͱͦͷଞͷࢄாٕज़ —
ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.11/39
Fabric – ઃܭ্ͷબ ϧʔϧ υοΧʔ (Docker) ίϯςφͰ࣮ߦ͢Δ ʮνΣʔϯίʔυ (chaincode)ʯ །Ұੑ
BFT νΣʔϯίʔυͷ݁Ռʹର͢Δίϯηϯαε͕ඞཁ ΦʔμϦϯάαʔϏε ଘࡏੑ ϋογϡνΣʔϯ, ΦʔμϦϯάαʔϏε ਖ਼ੑ RocksDB ্ͷߏͱܰྔ CA ʹΑΔ PKI v1.0 (ݱࡏ v2.0 Alpha) Ͱෳ DB αϙʔτ͓Αͼ CA ΛଟॏԽ ʮۭதʯϓϥΠϕʔτͳۭؒ BFT : Byzantine Fault Tolerance (Ϗβϯνϯোੑ) CA : Certificate Authority (ೝূہ) PKI : Public Key Infrastructure (ެ։ݤΠϯϑϥ) ϋΠύʔϨοδϟʔͱͦͷଞͷࢄாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.12/39
Sawtooth (Intel) https://github.com/hyperledger/sawtooth-core State : Active ϋΠύʔϨοδϟʔͱͦͷଞͷࢄாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ —
2019-10-02 – p.13/39
֓ཁ (υΩϡϝϯτ͔Β) ڐՄ੍ (permissioned) ·ͨඇڐՄ੍ (permissionless) ͷͲͪΒαϙʔτ Proof of Elapsed
Time (PoET) Proof of Work ͷ࡞ۀίετΛ࣮ࡍʹೖͤͣ (ిྗΛ࿘අͤͣ)ɺ ࢦఆ͞Εͨқʹجͮ࣌ؒ͘Λ୯ʹ֬తʹܦաͤ͞Δ (Intel ͷ) ϋʔυΣΞαϙʔτ͕ඞཁ ϏδωεϩδοΫଘࡏূ໌/ίϯηϯαεػߏ͔Β Transaction Families ͱݺΕΔ ϋΠύʔϨοδϟʔͱͦͷଞͷࢄாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.14/39
Sawtooth – ઃܭ্ͷબ ϧʔϧ ʮτϥϯβΫγϣϯɾϑΝϛϦʔ (transaction families)ʯ །Ұੑ φΧϞτ ɾίϯηϯαε
(PoET ϕʔε) ·ͨ PBFT (Practical BFT) ଘࡏੑ ϋογϡνΣʔϯͱ PoET (ϋʔυΣΞαϙʔτ͕ඞཁ) ਖ਼ੑ ʮτϥϯβΫγϣϯɾϑΝϛϦʔ (transaction families)ʯ ʮۭதʯϓϥΠϕʔτͳۭؒ·ͨ ύϒϦοΫͳۭؒ ϋΠύʔϨοδϟʔͱͦͷଞͷࢄாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.15/39
Iroha (ιϥϛπ) https://github.com/hyperledger/iroha State : Active ϋΠύʔϨοδϟʔͱͦͷଞͷࢄாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ —
2019-10-02 – p.16/39
֓ཁ (υΩϡϝϯτ͔Β) DLT Λඞཁͱ͢ΔΠϯϑϥϓϩδΣΫτ؆୯ʹద༻ ಛ : γϯϓϧͳߏ Ϟμϯͳ C++ ʹΑΔઃܭ
ϞόΠϧΞϓϦέʔγϣϯͷ։ൃΛڧྗʹαϙʔτ ϋΠύʔϨοδϟʔͱͦͷଞͷࢄாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.17/39
Iroha – ઃܭ্ͷબ ϧʔϧ αϯυϘοΫε JVM ্ͰͷʮνΣʔϯίʔυ (chaincode)ʯ ʁ །Ұੑ
Sumeragi (BFT) → YAC (BFT) ଘࡏੑ ϚʔΫϧ → (ϒϩοΫ͋ΔΒ͍͕͠ . . . )ʁ ਖ਼ੑ ެ։ݤΛຒΊࠐΉߏ →ʁ ʮۭதʯϓϥΠϕʔτͳۭؒ JVM : Java Virtual Machine (Java ԾϚγϯ) ϋΠύʔϨοδϟʔͱͦͷଞͷࢄாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.18/39
Indy (Sovrin) https://github.com/hyperledger/indy-node State : Active ϋΠύʔϨοδϟʔͱͦͷଞͷࢄாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ —
2019-10-02 – p.19/39
֓ཁ (υΩϡϝϯτ͔Β) ࢄ ID ͷͨΊͷϨοδϟʔ Hyperledger ͷϓϩδΣΫτͦͷଞͷࢄாγεςϜʹ σδλϧ ID γεςϜΛఏڙ
ϋΠύʔϨοδϟʔͱͦͷଞͷࢄாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.20/39
Indy – ઃܭ্ͷબ ϧʔϧ ࢄ ID །Ұੑ RBFT (Redundant BFT)
ଘࡏੑ ෆ໌ ਖ਼ੑ ϚʔΫϧύτϦγΞʹΑΔεςʔτཧ ʮۭதʯϓϥΠϕʔτͳۭؒ ϋΠύʔϨοδϟʔͱͦͷଞͷࢄாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.21/39
Corda (R3) ϋΠύʔϨοδϟʔͷࢀՃΛڠٞதͩͬͨͷ͔ R3 ϋΠύʔϨοδϟʔͷϓϨϛΞձһͩͬͨ https://github.com/corda/corda ϋΠύʔϨοδϟʔͱͦͷଞͷࢄாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ —
2019-10-02 – p.22/39
R3 ίϯιʔγΞϜ R3CEV ʹΑΔۚ༥ػؔίϯιʔγΞϜ 77 ࣾ (2017 2 ݄ݱࡏ)
ຊ͔Β 3 ϝΨόϯΫɺଜϗʔϧσΟϯάεɺSBI ϗʔϧσΟϯάε ࣍ੈۚ༥औҾωοτϫʔΫͷ։ൃʹϑΥʔΧε͢Δ R3Net(Ծ) Corda ʹΑΔϓϥοτϑΥʔϜͱαʔϏε ύʔτφʔͱڠಇͰΞϓϦέʔγϣϯΛఏڙ༧ఆ ϋΠύʔϨοδϟʔͱͦͷଞͷࢄாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.23/39
Corda ͷత ۚ༥ػؔؒͷۚ༥ڠఆΛཧ͢Δ ۀքඪ४ͷπʔϧͰ࡞ΒΕͨڞ௨ͷΈͰͦΕΛߦ͏ ૬ޓӡ༻ੑɺΠϯΫϦϝϯλϧͳల։ɺൿಗੑ Corda ͷ : ʮࢲ͕ݟ͍ͯΔͷ͋ͳ͕ͨݟ͍ͯΔͷͱҰக͓ͯ͠ΓɺզʑͲͪΒ ͦͷ͜ͱΛ͍ͬͯͯɺ͔ͭࠪʹಉ͡ͷ͕ݟ͍͑ͯΔͱ͍ͬͯΔʯ
ϏοτίΠϯͷͱҟͳΔΛղ͍͍ͯΔɺͱ͍͏ೝ͔ࣝΒͷൃ ϏοτίΠϯͷ : ࣗͷ͓ۚΛ͕ࣗ͏͜ͱΛ୭ʹࢭΊΒΕͳ͍Α͏ʹ͍ͨ͠ ϋΠύʔϨοδϟʔͱͦͷଞͷࢄாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.24/39
ಛ γεςϜϨϕϧͰͳ͘ɺऔҾϨϕϧͰͷίϯηϯαε ଟ༷ͳίϯηϯαεػߏΛαϙʔτ (ʁ) ࣄऀ+ࠪͷશ߹ҙ͕ඞཁͳͷͰ͋ͬͯɺίϯηϯαεػߏ།ҰͰʁ ࣄऀϊʔυΛࢄԽͨ͠ࡍʹ֤ʑͷύʔςΟͰඞཁ σʔλγεςϜϫΠυʹίϐʔ͞Εͳ͍ ୈࡾऀͰͳ͘ࣄऀʹΑΔτϥϯβΫγϣϯͷݕূ CAP ఆཧͷτϨʔυΦϑʹͱͮ͘ઃܭ্ͷબࢶ
ैདྷͷϒϩοΫνΣʔϯͰՄ༻ੑͷͨΊʹҰ؏ੑ͕٘ਜ਼ʹͳ͍ͬͯΔ ٯʹҰ؏ੑͷͨΊʹՄ༻ੑΛ٘ਜ਼ʹ͢Δ ໌ࣔతͳࠪ༻ϊʔυ ʮࣗવݴޠͰॻ͔Εͨ๏ؔॻྨʯͱʮεϚʔτίϯτϥΫτͷίʔυʯͷ ඥ͚ͮ ωΠςΟϒ௨՟࣋ͨͳ͍ (ࠓճհ͍ͯ͠Δாٕज़ͲΕ (?) ͍࣋ͬͯͳ͍) ϋΠύʔϨοδϟʔͱͦͷଞͷࢄாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.25/39
Corda – ઃܭ্ͷબ ϧʔϧ αϯυϘοΫε JVM ্Ͱͷ࣮ߦ ๏తจॻ (ܖॻ) ͱͷόΠϯσΟϯά
།Ұੑ ϓϥΨϒϧ (Uniqueness Services) ଘࡏੑ ܖͷ૬ख͓Αͼࠪͱڞ༗͞ΕΔ͜ͱʹΑΔ࣮ݱ͔ ਖ਼ੑ UTXO ߏ͓Αͼ X.509 PKI ʮۭதʯ୯ҰͷάϩʔόϧͳۭؒͷதͷϓϥΠϕʔτͳ۠ը ·ͨ (ΤϯλʔϓϥΠζ༻ʹ) ಠࣗͷϓϥΠϕʔτͳۭؒ X.509 : ΣϒͰ͘ΘΕ͍ͯΔ PKI ن֨ ϋΠύʔϨοδϟʔͱͦͷଞͷࢄாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.26/39
The Libra Blockchain Libra ͷτϥϯβΫγϣϯج൫ https://developers.libra.org/docs/the-libra-blockchain-paper ϋΠύʔϨοδϟʔͱͦͷଞͷࢄாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ —
2019-10-02 – p.27/39
ಛ Libra ϗϫΠτϖʔύʔ͕ଧͪग़͍ͯ͠Δಛ ϓϩάϥϛϯάݴޠʮMoveʯΛσβΠϯ͠ɺ༻͢Δɹ (← ಛ͋Δ) Ϗβϯνϯোੑ (BFT) ߹ҙΞϓϩʔνΛ༻͢Δ ͘࠾༻͞Ε͍ͯΔϒϩοΫνΣʔϯσʔλߏΛ࠾༻͢Δ
ɹ (← ͜Εಛͱͯ͠ଥ) ࣮ࡍͷٕज़తͳಛ طଘͷ༷ʑͳٕज़ͷཁૉΞΠσΞΛྗٕͰΈ߹Θͤͯઃܭ͍ͯ͠Δ ઃܭऀͨͪʹྗ͋Δ طଘͷٕज़ͷʮ͍͍ͱ͜औΓʯͱ͍͏ධՁҰ෦Ͱ͋Δ͕ɺ ʮ͍͍ͱ͜ʯͳͷ͔ٞΛཁ͢Δ ϚΠϧετʔϯ ݕূऀͷϝϯόγοϓ͕ཧ͞ΕΔ (ڐՄ੍) ϓϥΠϕʔτϨοδϟʔͱͯ࢝͠·Γɺ 5 Ҏʹϝϯόγοϓ͕ཧ͞Εͳ͍ (ඇڐՄ੍) ύϒϦοΫϨοδϟʔͷҠߦΛ։࢝ ಉٕ͡ज़ͰԆͰ͖Δͱߟ͍͑ͯΔͱͨ͠ΒඇৗʹνϟϨϯδϯά ϋΠύʔϨοδϟʔͱͦͷଞͷࢄாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.28/39
ઃܭʹؔ͢Δٞ The Libra Blockchain ͷجຊతͳߟ͑ํ τϥϯβΫγϣϯεςʔτ (ঢ়ଶ) ΛϚʔΫϧͷߏͰอଘ͢Δ ϒϩοΫΛ࣋ͨͣɺϚʔΫϧ͕͍ͯ͘͠ →
Merkle accumulator ঢ়ଶϚγϯΛෳ͢Δͱ͖͚ͩτϥϯβΫγϣϯΛϒϩοΫʹ·ͱΊΔ (1) ϚʔΫϧϧʔτΛ publish ͠ͳ͍ͷͩͱͨ͠Βଘࡏূ໌͕Ͱ͖ͳ͍ ެ։͞Ε͍ͯΔϧʔτͱಥ߹Ͱ͖ͳ͍ͳΒԿͰΞϦͰʁ (2) ϨϓϦΧ͕ূ໌͢Δͱ͍͏ߟ͑ํͩͱͯ͠ೋॏாΛ͛ͳ͍ ಉ্ (ϨϓϦΧʹຊͷه͕͞Ε͍ͯΔͱ͍͏ূ໌͕Ͱ͖ͳ͍) (3) ڐՄ੍ɾϒϩοΫ୯ҐͰෳͳΒ BFT ϓϩτίϧ؆ུԽͰ͖ΔͷͰʁ ࣄ্ِ࣮Ͱ͖ͳ͍σδλϧॺ໊ΛϒϩοΫʹ͚ΒΕΔ͔Β (4) Ethereum ͷεϚʔτίϯτϥΫτ࣮ߦϞσϧΛ࠾༻͢Δཧ༝ʁ ڐՄ੍ͳΒ Gas ʹΑΔίετෛ୲ϞσϧΓཱͨͳ͍ͷͰʁɹ (ͳͥΘ͟Θ͟ैྔ੍ʁDoS ରࡦͱͷઆ໌͕ͩ) (5) ৽͘͠ݴޠ/VM Λ࡞ֶͬͯशͷϋʔυϧΛΘ͟Θ্͛͟Δཧ༝ʁ ϋΠύʔϨοδϟʔͱͦͷଞͷࢄாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.29/39
The Libra Blockchain – ઃܭ্ͷબ ϧʔϧ Move ݴޠ (VM Ϛγϯޠ)
Ͱهड़͞ΕΔεϚʔτίϯτϥΫτ །Ұੑ BFT (= োੑ) (ͳͷʹ 1,000 نͰΔͭΓΒ͍͠) ଘࡏੑ ϚʔΫϧ (ϧʔτΛ publish ͍ͯ͠ΔΑ͏ʹݟ͑ͳ͍) ਖ਼ੑ εςʔτཧ + σδλϧॺ໊ 5 ҎʹඇڐՄ੍ͷҠߦΛ։࢝͢Δͱ͍͏͕ . . . BFT ಉ࣌ʹߴʑ f ͕ҙͷյΕํΛ͢Δͱ͍͏લఏͰಈ࡞͢Δ (֬) ඇڐՄ੍Ͱ࣮ࡍʹʹͳΔͷҙਤతͳ߈ܸͰ͋Γɺҙਤ͢ΔݶΓ֬ 1 (f ΛݟੵΕͳ͍) αΠΤϯεʹଇ͍ͬͯΔΑ͏Ͱ͍ͯɺͲ͔͜ͰઌਓͨͪͷݟΛແࢹ͍ͯ͠Δ ઃܭ͕͙͙ͪͱݴ͏ॴҎ Move ݴޠͷಛ ۚમతՁΛϦιʔεͱͯ͠දݱ͢Δɺͱ͍͏ྖҬಛఆ (domain-specific) ݴޠͬΆ͍ ೋॏফඅΛආ͚ΔػߏΛݴޠϨϕϧͰಋೖ͍ͯ͠Δ (ॻ͖ͮΒ͍ͱ͍͏ධ) ϋΠύʔϨοδϟʔͱͦͷଞͷࢄாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.30/39
BBc-1 (Beyond Blockchain One) ϒϩοΫνΣʔϯͰͰ͖Δͱ͞Ε͍ͯΔ͜ͱΛɺຊʹɻ ϒϩοΫνΣʔϯϋϒɾίϛϡχςΟ͔ΒΦʔϓϯιʔεఏڙ https://github.com/beyond-blockchain https://beyond-blockchain.org ϋΠύʔϨοδϟʔͱͦͷଞͷࢄாٕज़ —
ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.31/39
֓ཁ طଘͷϒϩοΫνΣʔϯΑΓڧݻͳվ͟Μݕग़ɾରԠੑ ϒϩοΫ Proof of Work ͱ͍ͬͨɺޮΛଛͳ͏ཁҼΛऔΓ͍ɺଈ࣌ੑɺলࢿݯ ͓ΑͼεέʔϥϏϦςΟΛୡͰ͖Δઃܭ σʔλͷڞ༗ൣғΛઃఆ͠ൿಗੑΛୡͰ͖Δɺ ʮυϝΠϯʯͱݺΕΔαϒωοτϫʔΫ
Bitcoin ͷߟ͑ํΛ౿ऻͨ͠ɺ(ಉҰυϝΠϯͷ) ୈࡾऀʹΑΔݕূՄೳੑΛ୲อͨ͠σʔλߏ ϓϥΠϕʔτͳԠ༻ͰτϥϯβΫγϣϯͷূ໌ػೳΛఏڙ Ϣʔβࣝผࢠͱެ։ݤΛ͢Δ͜ͱʹΑΓɺൿີݤ͕ࣦΘΕͨ߹ͷճ෮खஈΛఏڙ ίΞ෦ͰϕʔγοΫͳػೳ͚ͩΛఏڙ͢Δ͜ͱʹΑΔߴͳ֦ுੑ BBc Trust (ϏϤϯυϒϩοΫνΣʔϯݑষ) Λ࣮ https://github.com/beyond-blockchain/bbc1/blob/develop/docs/BBc-trust.pdf (ݪจ) https://github.com/beyond-blockchain/bbc1/blob/develop/docs/BBc-trust_ja.pdf (ຊޠεϥΠυ) Design Paper (white paper) https://github.com/beyond-blockchain/bbc1/blob/develop/docs/BBc-1_design_paper.pdf ϋΠύʔϨοδϟʔͱͦͷଞͷࢄாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.32/39
ʮͷͼ͠Ζʯ͕͋Δઃܭ BBc-1 ͷॳظͷઃܭࢀরιϑτΣΞ͕ಘҙͰͳ͍෦ʹվળɾ֦ுͷ༨͕͋Δ ϋΠύʔϨοδϟʔͱͦͷଞͷࢄாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.33/39
BBc-1 – ઃܭ্ͷબ ϧʔϧ ΞϓϦέʔγϣϯʹͯҙʹهड़ (Python → bbc1-lib-contracts?) །Ұੑ σδλϧΞηοτෛ࠴Ͱ͋Γɺ࠴ऀ͕อূ͢Δ
ଘࡏੑ PoCX (υϝΠϯؒཤྺަࠩ) (τϥϯβΫγϣϯؒͷࢀরؔͷ DAG) (ॳظύϒϦοΫͳϒϩοΫνΣʔϯʹΞϯΧϦϯά) ਖ਼ੑ UTXO/εςʔτ ͔ͭࣝผࢠͱެ։ݤΛɺυϝΠϯ֎ʹൿಗ ʮۭதʯ୯ҰͷۭؒͰͳ͘ɺυϝΠϯͰׂ͞Ε͍ͯΔ ݖͰ͖Δ ʮཤྺަࠩʯͷ໊শΛʮίϯςΩετূ໌ (Proof of Context)ʯ ϋΠύʔϨοδϟʔͱͦͷଞͷࢄாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.34/39
(D)LT ͕ਅՁΛൃش͢ΔͨΊʹ Ԡ༻ύλʔϯ͔Βݟ͖͑ͯͨʮෆʯͱʮഁյʯ ϋΠύʔϨοδϟʔͱͦͷଞͷࢄாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.35/39
ϒϩοΫνΣʔϯ(ڱٛ)ͷಈ࡞తಛ ࢀՃϊʔυʹঢ়ଶ͕ෳ͞ΕΔ (1) ͍͠ॳظঢ়ଶ͔Β͡·Δ (2) ͯ͢ͷࢀՃϊʔυʹΠϕϯτ͕ίϐʔ͞ΕΔ (3) ͔ͭಉ͡ॱংͰίϐʔ͞ΕΔ (4) શΠϕϯτঢ়ଶʹରܾͯ͠ఆతʹ
(ͲͷϊʔυͰ͘͠) ࡞༻͢Δ ͳͷͰোੑΛҡ࣋Ͱ͖Δ ⇒ ͜ͷ͜ͱॏཁͰͳ͍͕ɺڱٛͷϒϩοΫνΣʔϯͷಈ࡞Λಛ͚ͮΔ ϋΠύʔϨοδϟʔͱͦͷଞͷࢄாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.36/39
͋Γ͕ͪͳύλʔϯ (ෆ) োੑ (by Խ) ͷͨΊͷٕज़ (since 1984) (ݖݶͷࢄؔͳ͍) (εέʔϧ͠ͳ͍)
ಉ͡ΠϕϯτྻΛड͚औΔঢ়ଶϚγϯಉ͡ঢ়ଶʹͳΔͱ͍͏લఏ (ܾఆత) Πϕϯτͷॱংʹ߹ҙ͢Δඞཁ͕͋Δ . . . σδϟϰʁɹ (͍ΘΏΔʮ༻ϒϩοΫνΣʔϯʯͷߏʹࠅࣅ) ⇒ ͜Ε state machine replication Ͱ͢ΑͶʁ ϋΠύʔϨοδϟʔͱͦͷଞͷࢄாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.37/39
ຊདྷɺૂ͏͖ύλʔϯ (ഁյ) Τϯυ (ͬ͜) ੍͕ޚ (ίϯτϩʔϧ) ΛͭͨΊͷٕज़ (ݖݶͷࢄ) (εέʔϧ͠͏Δ) ੍ޚ͞ΕΔͷ͕Ұ؏ੑΛͬͯଘࡏ͢Δͱ͍͏ΠϦϡʔδϣϯΛҡ࣋
(อଘͷਖ਼͠͞ΛࢀՃऀ͕ݕূՄೳ) ͦͷͨΊʹোੑ (by Խ) ͕ඞཁʹͳΔ ϋΠύʔϨοδϟʔͱͦͷଞͷࢄாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.38/39
࣭ٞ͝Λ ϋΠύʔϨοδϟʔͱͦͷଞͷࢄாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.39/39