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
Introduction to OVM
Search
Takamichi Tsutsumi
August 27, 2019
Programming
4
1.2k
Introduction to OVM
Introduction to OVM concept
Takamichi Tsutsumi
August 27, 2019
Tweet
Share
Other Decks in Programming
See All in Programming
マイコンでもRustのtestがしたい その2/KernelVM Tokyo 18
tnishinaga
1
1.5k
バイブスあるコーディングで ~PHP~ 便利ツールをつくるプラクティス
uzulla
1
330
AIのメモリー
watany
13
1.3k
それ CLI フレームワークがなくてもできるよ / Building CLI Tools Without Frameworks
orgachem
PRO
17
3.7k
STUNMESH-go: Wireguard NAT穿隧工具的源起與介紹
tjjh89017
0
190
ワープロって実は計算機で
pepepper
2
1.1k
WebAssemblyインタプリタを書く ~Component Modelを添えて~
ruccho
1
580
あのころの iPod を どうにか再生させたい
orumin
2
2.1k
AI Ramen Fight
yusukebe
0
130
なぜ今、Terraformの本を書いたのか? - 著者陣に聞く!『Terraformではじめる実践IaC』登壇資料
fufuhu
4
470
自作OSでDOOMを動かしてみた
zakki0925224
1
1.1k
Vibe coding コードレビュー
kinopeee
0
420
Featured
See All Featured
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
Testing 201, or: Great Expectations
jmmastey
45
7.6k
Mobile First: as difficult as doing things right
swwweet
223
9.9k
Designing for humans not robots
tammielis
253
25k
Unsuck your backbone
ammeep
671
58k
Optimizing for Happiness
mojombo
379
70k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
21
1.4k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
[RailsConf 2023] Rails as a piece of cake
palkan
56
5.7k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
283
13k
Transcript
!1 *OUSPEVDUJPOUP07. (FOFSBMJ[FE0⒎DIBJO-BZFS 5BLBNJDIJ5TVUTVNJ
"HFOEB എܠ •L1ͱL2 •PlasmaͱStateChannel •Fraud ProofͱValidity Proof ՝ •L2ͰΞϓϦέʔγϣϯΛ࡞Δ՝ײ OVM
◦ίϯηϓτ ◦ه๏ ◦Ұ֊ड़ޠཧ ◦StateChannelͷྫ ◦ΞʔΩςΫνϟ • CryptoeconomicsLab • References !2
*OUSPEVDUJPO •ఆର L2ͷઐՈͰ͋Δඞཁͳ͠ɻEthereumؔ࿈ͷ։ൃΛͬͨ͜ͱ͕͋Δɻ Scalingͷೝ͍ࣝͯ͠Δ͕ɺ໌֬ͳղܾ๏ͱͯ͠ͷL2Λೝ͍ࣝͯ͠ΔΘ͚Ͱͳ͍ɻ Plasma, StateChannelͦ͠͏ͱײ͍ͯ͡Δɻ •ΰʔϧ L2ͰDAppΛ࡞Δͱ͍͏͜ͱ͕Ͳ͏͍͏͜ͱ͔ͳΜͱͳ͘Θ͔Δɻ OVMͷ֓೦Λܰ͘ཧղ͢ΔɻOVMͰL2DAppΛ࡞ͬͯΈ͍ͨͱࢥ͏ɻ •ԿΛ͔͢ɾԿΛ͞ͳ͍͔
͢͜ͱ: Plasma, StateChannelͳͲͷLayer2 SolutionΛҰൠԽ͢Δ֓೦Ͱ͋ΔOVMʹ͍ͭͯ, L2 Application։ൃ͕͜Ε͔ΒͲ͏ͳ͍͔ͬͯ͘ɻ ͞ͳ͍͜ͱ: ࣮ࡍʹApplicationΛ࡞ΔνϡʔτϦΞϧతͳ͜ͱ, ۩ମతͳ࣮ͷͳ͠, ϓϩάϥϛϯάͷ !3
!4 07.ͱɺ-ΛநԽͨ֓͠೦Ͱ͋Δɻ1MBTNB4UBUF$IBOOFMѻ͑Δɻ
#BDLHSPVOE !5
-ͱ- • -ͱɺ&UIFSFVNͷ4DBMBCJMJUZʹରͯ͠ɺUY TUBUFVQEBUF Λ-ͷ֎Ͱߦ͍ɺ͋ͱ͔Β -ʹөͤ͞Δͱ͍͏ΞϓϩʔνɻSFG<> • 1MBTNB 4UBUF$IBOOFMͳͲͷσβΠϯ͕͋Δɻ !6
4UBUF$IBOOFM • ͋ΔϢʔβʔͷू߹͕DPJOΛMPDLͯ͠ɺ ͦͷϢʔβʔؒͰͷ4UBUF6QEBUFΛ ΦϑνΣʔϯͷϝοηʔδަʹΑͬͯߦ͏ɻ ϢʔβʔؒͰ߹ҙͨ͠࠷৽ͷ4UBUF͕&YJUͰ͖Δɻ SFG< > !7
1MBTNB • 4UBUF6QEBUFΛߦ͏$IJME$IBJO͕0QFSBUPSͱ͍͏ׂͷਓʹΑͬͯӡ༻͞ΕΔɻ0QFSBUPS ͕1MBTNB্ͰͷUYΛूΊͯ·ͱΊ-ʹఏग़͓ͯ͘͜͠ͱͰɺ֤$MJFOU͕ਖ਼͘͠&YJUͰ͖Δ ػ ձଛࣦΛআ͘ଛΛ͠ͳ͍ Α͏ͳΈ͕͋ΔɻSFG< > !8
%JTQVUF ฆ૪ • -ͷιϦϡʔγϣϯͰɺෆਖ਼ͳ&YJUʹରͯͦ͠Εෆͳ&YJUͰ͋Δͱ͍͏ҟٞਃཱ͠ ͯ %JTQVUF ͕Ͱ͖ͳ͚ΕͳΒͳ͍ɻ • ྫ͑ɺ1MBTNBͷ0QFSBUPS͕ෆʹଠͷ͓ۚΛ&YJU͠Α͏ͱͨ͠ΒɺଠͦΕʹର ͯ͠ҟٞਃཱͯ͠Ͱ͖Δɻ
!9 ֆ
'SBVE1SPPGͱ7BMJEJUZ1SPPG • 'SBVE1SPPGෆਖ਼ͳ4UBUFʹରͯͦ͠Ε͕ෆਖ਼Ͱ͋Δͱ͍͏ূڌΛఏग़͢Δɻෆਖ਼ͳ4UBUF͕ FYJU͞Εͨͱ͖ʹͷΈߦ͑Α͍ɻ*OUFSBDUJWFͳΓऔΓ͕ඞཁͱͳΔɻ • 7BMJEJUZ1SPPGਖ਼͍͠4UBUFʹ͍ͨͯͦ͠Ε͕ਖ਼͍͠ͱ͍͏ূڌΛఏग़͢Δɻ4UBUFVEQBUF ͷͨͼߦ͏ඞཁ͕͋Δɻఏग़͢ΕPLɻSFG<> • 4UBUF$IBOOFM 1MBTNB&YJU࣌ʹฆ૪ظؒ
%JTQVUFQFSJPE Λઃ͚ͯɺ'SBVE1SPPGʹΑΔ ݕূΛߦ͏ɻ%JTQVUFQFSJPE͕͗͢Εɺਖ਼͘͠ͳ͘ͳ͍͜ͱ͕ূ໌͞Εͨ͜ͱʹͳΔɻ !10
1SPCMFN !11
-ͰΞϓϦέʔγϣϯΛ࡞Δʁ • 1MBTNB 4UBUF$IBOOFMͳͲͷσβΠϯ4QFDJpDͳ࣮͕ඞཁ • &YJUHBNFͷઃܭɾ࣮ • 4FDVSFͳઃܭɾ࣮ͷ͠͞ • 4NBSU$POUSBDU
$MJFOU 'SPOUFOE FUD !12
07. !13
$PODFQU • 0QUJNJTUJD7JSUVBM.BDIJOF 07. ݄ʹ1MBTNB(SPVQʹΑͬͯఏএ͞ΕͨɻSFG< > • -ͷ'SBVE1SPPGʹΑΔ%JTQVUFΛநԽ͍ͯ͠Δ֓೦ɻ • ͋Δ໋
1SPQFSUZ ͕ਖ਼͍͜͠ͱ͕ϩʔΧϧ P⒎DIBJO ใʹΑͬͯอূͰ͖Δ͜ͱ͕-ͷຊ ࣭Ͱ͋Δͱ͍͏ߟ͑ํɻ • -ͷ%JTQVUFΛநԽ͢ΔͨΊͷه๏ ड़ޠཧͰͷهड़ Λఏএ !14
Ұ֊ड़ޠཧ • Α͋͘Δ໋ཧ ଠਓؒͩ ʹྔͷ֓೦ΛՃ͑ͨͷɻ • 07.ͰҰ֊ड़ޠཧͰ1SPQFSUZΛهड़͢Δɻ • Ұ֊ड़ޠཧͰʮͯ͢ͷYʹ͍ͭͯZͰ͋Δʯɺʮ͋ΔYʹରͯ͠ZͰ͋ΔʯͷΑ͏ͳ໋͕ ѻ͑ΔɻSFG<>
!15
Ұ֊ड़ޠཧ • શশྔԽه߸ VOJWFSTBMRVBOUJpFS • ྫͯ͢ͷೣՄѪ͍ • ՄѪ͘ͳ͍ೣΛূڌͱͯ͠ఏग़͢Ε൱ఆ Ͱ͖Δ
!16 • ଘࡏྔԽه߸ FYJTUFOUJBMRVBOUJpFS • ྫ͋Δೣʹཌྷ͕ੜ͍͑ͯΔ • ཌྷͷੜ͑ͨೣΛূڌͱͯ͠ఏग़͢Εূ໌ Ͱ͖Δ ՄѪ͘ͳ͍ೣ ཌྷͷੜ͑ͨೣ
1SPQFSUZͷهड़ྫ4UBUF$IBOOFMͷ&YJU 1.ଠͱՖࢠ͕ͦΕͧΕ10ETHΛϩοΫͨ͠channelΛ։͍ͨɻ 2.ଠ͕2ETHΛՖࢠʹૹΔϝοηʔδΛ࡞Γɺॺ໊ͯ͠Ֆࢠʹ ૹͬͨɻ 3.Ֆࢠଠ͔ΒૹΒΕ͖ͯͨϝοηʔδΛ֬ೝ͠ɺͦΕʹॺ໊͠ ͯೋਓͷॺ໊͖ͷϝοηʔδΛૹΓฦͨ͠ɻՖࢠೋਓͷॺ໊ ͖ͷϝοηʔδΛࣗͷखݩʹίϐʔͯ͠ͱ͓ͬͯ͘ɻ 4.྆ऀ2, 3Λ܁Γฦͯ͠channel্ͰࢿۚͷҠಈΛؾ͕ࡁΉ·Ͱ ܁Γฦͨ͠ɻ
5.ΓऔΓ͕ऴΘͬͨΒɺ࠷ޙʹΓऔΓͨ͠ͷ྆ऀͷॺ໊͖ ϝοηʔδΛͬͯchannel͔Βexit͢Δɻ 6.͠exit͠Α͏ͱͨ͠ϝοηʔδ͕࠷৽ͷͷͰͳ͍߹ɺ ͏ยํຊͷ࠷৽ͷϝοηʔδΛఏग़͢Δ͜ͱʹΑͬͯͦͷ exitΛΩϟϯηϧͰ͖Δɻ •ϝοηʔδʹnonce(࿈൪)Λ;͓ͬͯ͘͜ͱʹΑͬͯ৽͠͞Λ දݱ͢Δͱ͢Δ !17
1SPQFSUZͷهड़ྫ4UBUF$IBOOFMͷ&YJU • ͜ͷͱ͖ɺ͋ΔϝοηʔδͰFYJU͢Δͱ͖ʹඞཁͳQSPQFSUZΛҎԼͷΑ͏ʹఆٛ͢Δɻ !18 FYJU͍ͨ͠ϝοηʔδͷOPODF͕OͰ͋Δͱ͖ɺ O͕྆ऀͷॺ໊Λ͍࣋ͬͯΔϝοηʔδͷOPODFͷ͏ͪ࠷େͷͰ͋Δ͜ͱɻ • ͜ΕɺଘࡏྔԽࢠΛ༻͍ΔҎԼͷ໋ͷ൱ఆͱͯ͠هड़Ͱ͖Δɻ • ·ͨɺશশྔԽࢠΛ༻͍ΔͱҎԼͷΑ͏ʹهड़Ͱ͖Δɻ
FYJU͍ͨ͠ϝοηʔδͷOPODF͕OͰ͋Δͱ͖ɺ OΑΓେ͖͍OPODFΛ࣋ͭɺ྆ऀͷॺ໊Λͭϝοηʔδ͕ଘࡏ͢Δɻ FYJU͍ͨ͠ϝοηʔδͷOPODF͕OͰ͋Δͱ͖ɺ ͯ͢ͷOΑΓେ͖͍OPODFΛ࣋ͭϝοηʔδ྆ऀͷॺ໊Λ͍ͬͯͳ͍ɻ
1SPQFSUZͷهड़ྫ4UBUF$IBOOFMͷ&YJU !19 FYJU͍ͨ͠ϝοηʔδͷOPODF͕OͰ͋Δͱ͖ɺ ͯ͢ͷOΑΓେ͖͍OPODFΛ࣋ͭϝοηʔδ྆ऀͷॺ໊Λ͍ͬͯͳ͍ɻ • ͜ͷ1SPQFSUZ͕ਖ਼͍͠ͱೝΊΒΕͨΒOPODFOͷTUBUFΛFYJU͢Δ͜ͱ͕Ͱ͖Δɻ • ଠɾՖࢠͷ྆ऀO Ҏ্ͷOPODFΛ࣋ͭ྆ऀͷॺ໊͖ͭͷϝοηʔδΛఏग़͢Δ͜ͱͰ͜ ͷ1SPQFSUZΛغ٫͢Δ͜ͱ͕Ͱ͖Δɻ
• ಉ༷ʹɺ1MBTNBͷ&YJU1SPQFSUZҰ֊ड़ޠཧͰͷهड़͕Մೳɻ ׂѪ <> • ͜ΕʹΑΓ-ͷ౷Ұతͳهड़͕Ͱ͖ΔΑ͏ʹͳͬͨ
07.Ͱ"QQMJDBUJPOΛ࡞ΔͱͲ͏͍͏͜ͱ͔ • 07.ʹ͓͍ͯ1SPQFSUZΛઃܭ͢Δ͜ͱ͕ͦ͜"QQMJDBUJPO%FWFMPQFSͷॏཁͳׂͱͳ Δɻ • -ͷ$MJFOUɺ͋Δ1SPQFSUZ͕ਖ਼͍͠ͱ͍͏͜ͱΛূ໌͢ΔͨΊͷσʔλΛΓऔΓͨ͠Γ ͢Δͷɻ • ͜ͷεΩʔϜʹैͬͯ1SPQFSUZ$MJFOUΛઃܭɺ࣮͢Ε-্ͰΞϓϦέʔγϣϯ։ൃ͕ Ͱ͖ΔΑ͏ʹͳΔɻ
!20
ΞʔΩςΫνϟ • -ͱͷͭͳ͗நԽ͞ΕΔ Ͳ͏ͬͯ -PDL͞ΕΔ͔ɺͲ͏ͬͯQSPQFSUZ͕ਖ਼͠ ͍ਖ਼͘͠ͳ͍ͱܾΊΒΕΔ͔ • -͔Β-ͲΜͳTUBUF͕FYJUͰ͖ΔΑ͏ʹ ͢Δ͔։ൃऀ͕ߟ͑ΒΕΔ
• -ͰͷDMJFOUؒͷΓͱΓҰൠతͳϢʔε έʔεͷͷ 4UBUFDIBOOFM1MBTNBͳͲ ڞ௨Ͱ͑Δͷ͕Ͱ͖Δ • ։ൃऀ͕'SPOUFOE։ൃʹूதͰ͖ΔͨΊͷ TEL͕Ͱ͖ΔSFG<> !21
ࢲୡ͕͍ͬͯΔ͜ͱ 07.ʹଇͬͯ-ͰΞϓϦέʔγϣϯΛ؆ ୯ʹ͔ͭॊೈʹ։ൃͰ͖ΔͨΊʹఏڙ͞Ε Δ͖ͷɾ͜ͱͯ͢Λ४උ͢Δɻ •ΞϓϦέʔγϣϯϑϨʔϜϫʔΫ ઈࢍߏத •1SPQFSUZهड़ͷͨΊͷݴޠ ઈࢍ։ൃத
•$MJFOUGPS1MBTNBڞ௨࣮ ઈࢍ࣮த •'SPOUFOETEL ઈࢍઃܭத •FUD !22
!23 07.Λ͏ͱɺ͜Ε·Ͱ։ൃ͍ͯͨ͠4DBMBCJMJUZͷΛղܾͨ͠#MPDLDIBJO"QQMJDBUJPOΛ ؆୯ʹ։ൃ͢Δ͜ͱ͕Ͱ͖ΔΑ͏ʹͳΔɻ
$SZQUPFDPOPNJDT-BC (JUIVCIUUQTHJUIVCDPNDSZQUPFDPOPNJDTMBC 5FMFHSBNIUUQTUNFQMBTNBRBOEB .FEJVNIUUQTNFEJVNDPNDSZQUPFDPOPNJDTMBC 5XJUUFSIUUQTUXJUUFSDPNDSZQUPFDPOMBC !24
3FGFSFODFT L2 • [0] https://media.consensys.net/the-state-of-ethereum-layer-2-protocol-development-2-f22b2603abd6 Plasma • [1] https://ethresear.ch/t/minimal-viable-plasma/426 •
[2] https://www.learnplasma.org/en/ • [3] https://karl.tech/plasma-cash-simple-spec/ StateChannel • [4] https://education.district0x.io/general-topics/understanding-ethereum/basics-state-channels/ • [5] https://l4.ventures/papers/statechannels.pdf RollUp • [6] https://github.com/barryWhiteHat/roll_up FraudProofɾValidityProof • [7] https://medium.com/starkware/validity-proofs-vs-fraud-proofs-4ef8b4d3d87a OVM • [8] https://medium.com/plasma-group/introducing-the-ovm-db253287af50 • [9] https://medium.com/plasma-group/the-ovm-s-your-scaling-solution-state-channel-edition-ed13de56e249 • [10] https://medium.com/cryptoeconomics-lab/cel-development-direction-to-the-greater-abstraction-6860f87ce0eb • [11] https://github.com/plasma-group/pigi • [12] https://github.com/plasma-group/ovm • [13] https://github.com/cryptoeconomicslab/plasma-rust-framework • [14] https://github.com/cryptoeconomicslab/plasma-rust-framework/issues/162 ड़ޠཧ • [15] https://ja.wikipedia.org/wiki/Ұ֊ड़ޠཧ !25