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
1.3k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Introduction to OVM
Introduction to OVM concept
Takamichi Tsutsumi
August 27, 2019
Other Decks in Programming
See All in Programming
DynamoDBには集計系のクエリがないけどなんとかしたい
musan
1
130
Dataformのリポジトリを立ち上げるときにまずやること / dataform-day0-2026
snhryt
0
130
肥大化するレガシーコードに立ち向かうためのインターフェース分離と依存の逆転 / JJUG CCC 2026 Spring
hirokunimaeta
0
520
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
0
170
Oxlintのカスタムルールの現況
syumai
6
1k
並列実装の現場、2ヶ月間実務でAIを使い倒したAIもPCも私も限界が近い
ming_ayami
0
110
「AIで開発し、AIを届ける」をEvalでつなぐ 〜AIネイティブに始めるプロダクト開発の実践〜 / Connecting "Develop with AI, deliver AI" with Eval
rkaga
4
4.8k
Signal Forms: Beyond the Basics @ngBaguette 2026 in Paris
manfredsteyer
PRO
0
230
Agentic UI
manfredsteyer
PRO
0
120
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
530
IBM Bobを活用したレガシーアプリの最新化
oniak3ibm
PRO
1
180
AIで効率化できた業務・日常
ochtum
0
120
Featured
See All Featured
The Curious Case for Waylosing
cassininazir
1
380
Site-Speed That Sticks
csswizardry
13
1.2k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
430
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
570
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.1k
How to build a perfect <img>
jonoalderson
1
5.6k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
How to Talk to Developers About Accessibility
jct
2
220
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
230
Google's AI Overviews - The New Search
badams
0
1k
Skip the Path - Find Your Career Trail
mkilby
1
140
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