Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introduction to OVM

Introduction to OVM

Introduction to OVM concept

4f0c33c7cf2f2f4b0990591fb64336ea?s=128

Takamichi Tsutsumi

August 27, 2019
Tweet

Transcript

  1. !1 *OUSPEVDUJPOUP07. (FOFSBMJ[FE0⒎DIBJO-BZFS 5BLBNJDIJ5TVUTVNJ

  2. "HFOEB എܠ •L1ͱL2 •PlasmaͱStateChannel •Fraud ProofͱValidity Proof ՝୊ •L2ͰΞϓϦέʔγϣϯΛ࡞Δ՝୊ײ OVM

    ◦ίϯηϓτ ◦ه๏ ◦Ұ֊ड़ޠ࿦ཧ ◦StateChannelͷྫ ◦ΞʔΩςΫνϟ • CryptoeconomicsLab • References !2
  3. *OUSPEVDUJPO •૝ఆର৅
 L2ͷઐ໳ՈͰ͋Δඞཁͳ͠ɻEthereumؔ࿈ͷ։ൃΛ΍ͬͨ͜ͱ͕͋Δɻ
 Scalingͷ໰୊͸ೝࣝ͸͍ͯ͠Δ͕ɺ໌֬ͳղܾ๏ͱͯ͠ͷL2Λೝ͍ࣝͯ͠ΔΘ͚Ͱ͸ͳ͍ɻ
 Plasma, StateChannel೉ͦ͠͏ͱײ͍ͯ͡Δɻ
 •ΰʔϧ
 L2ͰDAppΛ࡞Δͱ͍͏͜ͱ͕Ͳ͏͍͏͜ͱ͔ͳΜͱͳ͘Θ͔Δɻ
 OVMͷ֓೦Λܰ͘ཧղ͢ΔɻOVMͰL2DAppΛ࡞ͬͯΈ͍ͨͱࢥ͏ɻ
 •ԿΛ࿩͔͢ɾԿΛ࿩͞ͳ͍͔


    ࿩͢͜ͱ: Plasma, StateChannelͳͲͷLayer2 SolutionΛҰൠԽ͢Δ֓೦Ͱ͋ΔOVMʹ͍ͭͯ,
 L2 Application։ൃ͕͜Ε͔ΒͲ͏ͳ͍͔ͬͯ͘ɻ
 ࿩͞ͳ͍͜ͱ: ࣮ࡍʹApplicationΛ࡞ΔνϡʔτϦΞϧతͳ͜ͱ, ۩ମతͳ࣮૷ͷ͸ͳ͠, ϓϩάϥϛϯάͷ࿩ !3
  4. !4 07.ͱ͸ɺ-Λந৅Խͨ֓͠೦Ͱ͋Δɻ1MBTNB΋4UBUF$IBOOFM΋ѻ͑Δɻ

  5. #BDLHSPVOE !5

  6. -ͱ- • -ͱ͸ɺ&UIFSFVNͷ4DBMBCJMJUZ໰୊ʹରͯ͠ɺUY TUBUFVQEBUF Λ-ͷ֎Ͱߦ͍ɺ͋ͱ͔Β -ʹ൓өͤ͞Δͱ͍͏ΞϓϩʔνɻSFG<> • 1MBTNB 4UBUF$IBOOFMͳͲͷσβΠϯ͕͋Δɻ !6

  7. 4UBUF$IBOOFM • ͋ΔϢʔβʔͷू߹͕DPJOΛMPDLͯ͠ɺ
 ͦͷϢʔβʔؒͰͷ4UBUF6QEBUFΛ
 ΦϑνΣʔϯͷϝοηʔδަ׵ʹΑͬͯߦ͏ɻ
 ϢʔβʔؒͰ߹ҙͨ͠࠷৽ͷ4UBUF͕&YJUͰ͖Δɻ
 SFG< > !7

  8. 1MBTNB • 4UBUF6QEBUFΛߦ͏$IJME$IBJO͕0QFSBUPSͱ͍͏໾ׂͷਓʹΑͬͯӡ༻͞ΕΔɻ0QFSBUPS ͕1MBTNB্ͰͷUYΛूΊͯ·ͱΊ-ʹఏग़͓ͯ͘͜͠ͱͰɺ֤$MJFOU͕ਖ਼͘͠&YJUͰ͖Δ ػ ձଛࣦΛআ͘ଛΛ͠ͳ͍ Α͏ͳ࢓૊Έ͕͋ΔɻSFG<  > !8

  9. %JTQVUF ฆ૪ • -ͷιϦϡʔγϣϯͰ͸ɺෆਖ਼ͳ&YJUʹରͯͦ͠Ε͸ෆ౰ͳ&YJUͰ͋Δͱ͍͏ҟٞਃཱ͠ ͯ %JTQVUF ͕Ͱ͖ͳ͚Ε͹ͳΒͳ͍ɻ • ྫ͑͹ɺ1MBTNBͷ0QFSBUPS͕ෆ౰ʹଠ࿠ͷ͓ۚΛ&YJU͠Α͏ͱͨ͠Βɺଠ࿠͸ͦΕʹର ͯ͠ҟٞਃཱͯ͠Ͱ͖Δɻ

    !9 ֆ
  10. 'SBVE1SPPGͱ7BMJEJUZ1SPPG • 'SBVE1SPPGෆਖ਼ͳ4UBUFʹରͯͦ͠Ε͕ෆਖ਼Ͱ͋Δͱ͍͏ূڌΛఏग़͢Δɻෆਖ਼ͳ4UBUF͕ FYJU͞Εͨͱ͖ʹͷΈߦ͑͹Α͍ɻ*OUFSBDUJWFͳ΍ΓऔΓ͕ඞཁͱͳΔɻ • 7BMJEJUZ1SPPGਖ਼͍͠4UBUFʹ͍ͨͯͦ͠Ε͕ਖ਼͍͠ͱ͍͏ূڌΛఏग़͢Δɻ4UBUFVEQBUF ͷͨͼߦ͏ඞཁ͕͋Δɻఏग़͢Ε͹PLɻSFG<> • 4UBUF$IBOOFM 1MBTNB͸&YJU࣌ʹฆ૪ظؒ

    %JTQVUFQFSJPE Λઃ͚ͯɺ'SBVE1SPPGʹΑΔ ݕূΛߦ͏ɻ%JTQVUFQFSJPE͕͗͢Ε͹ɺਖ਼͘͠ͳ͘ͳ͍͜ͱ͕ূ໌͞Εͨ͜ͱʹͳΔɻ !10
  11. 1SPCMFN !11

  12. -ͰΞϓϦέʔγϣϯΛ࡞Δʁ • 1MBTNB 4UBUF$IBOOFMͳͲͷσβΠϯ4QFDJpDͳ࣮૷͕ඞཁ • &YJUHBNFͷઃܭɾ࣮૷ • 4FDVSFͳઃܭɾ࣮૷ͷ೉͠͞ • 4NBSU$POUSBDU

    $MJFOU 'SPOUFOE FUD !12
  13. 07. !13

  14. $PODFQU • 0QUJNJTUJD7JSUVBM.BDIJOF 07. ݄ʹ1MBTNB(SPVQʹΑͬͯఏএ͞ΕͨɻSFG< > • -ͷ'SBVE1SPPGʹΑΔ%JTQVUFΛந৅Խ͍ͯ͠Δ֓೦ɻ • ͋Δ໋୊

    1SPQFSUZ ͕ਖ਼͍͜͠ͱ͕ϩʔΧϧ P⒎DIBJO ৘ใʹΑͬͯอূͰ͖Δ͜ͱ͕-ͷຊ ࣭Ͱ͋Δͱ͍͏ߟ͑ํɻ • -ͷ%JTQVUFΛந৅Խ͢ΔͨΊͷه๏ ड़ޠ࿦ཧͰͷهड़ Λఏএ !14
  15. Ұ֊ड़ޠ࿦ཧ • Α͋͘Δ໋୊࿦ཧ ଠ࿠͸ਓؒͩ ʹྔͷ֓೦ΛՃ͑ͨ΋ͷɻ • 07.Ͱ͸Ұ֊ड़ޠ࿦ཧͰ1SPQFSUZΛهड़͢Δɻ • Ұ֊ड़ޠ࿦ཧͰ͸ʮ͢΂ͯͷYʹ͍ͭͯZͰ͋Δʯɺʮ͋ΔYʹରͯ͠ZͰ͋ΔʯͷΑ͏ͳ໋୊͕ ѻ͑ΔɻSFG<>

    !15
  16. Ұ֊ड़ޠ࿦ཧ • શশྔԽه߸ VOJWFSTBMRVBOUJpFS  • ྫ͢΂ͯͷೣ͸ՄѪ͍ • ՄѪ͘ͳ͍ೣΛূڌͱͯ͠ఏग़͢Ε͹൱ఆ Ͱ͖Δ

    !16 • ଘࡏྔԽه߸ FYJTUFOUJBMRVBOUJpFS  • ྫ͋Δೣʹ͸ཌྷ͕ੜ͍͑ͯΔ • ཌྷͷੜ͑ͨೣΛূڌͱͯ͠ఏग़͢Ε͹ূ໌ Ͱ͖Δ ՄѪ͘ͳ͍ೣ ཌྷͷੜ͑ͨೣ
  17. 1SPQFSUZͷهड़ྫ4UBUF$IBOOFMͷ&YJU 1.ଠ࿠ͱՖࢠ͕ͦΕͧΕ10ETHΛϩοΫͨ͠channelΛ։͍ͨɻ 2.ଠ࿠͕2ETHΛՖࢠʹૹΔϝοηʔδΛ࡞Γɺॺ໊ͯ͠Ֆࢠʹ ૹͬͨɻ 3.Ֆࢠ͸ଠ࿠͔ΒૹΒΕ͖ͯͨϝοηʔδΛ֬ೝ͠ɺͦΕʹॺ໊͠ ͯೋਓͷॺ໊෇͖ͷϝοηʔδΛૹΓฦͨ͠ɻՖࢠ͸ೋਓͷॺ໊ ෇͖ͷϝοηʔδΛࣗ෼ͷखݩʹ΋ίϐʔͯ͠ͱ͓ͬͯ͘ɻ 4.྆ऀ͸2, 3Λ܁Γฦͯ͠channel্ͰࢿۚͷҠಈΛؾ͕ࡁΉ·Ͱ ܁Γฦͨ͠ɻ

    5.΍ΓऔΓ͕ऴΘͬͨΒɺ࠷ޙʹ΍ΓऔΓͨ͠ͷ྆ऀͷॺ໊෇͖ ϝοηʔδΛ࢖ͬͯchannel͔Βexit͢Δɻ 6.΋͠exit͠Α͏ͱͨ͠ϝοηʔδ͕࠷৽ͷ΋ͷͰ͸ͳ͍৔߹ɺ΋ ͏ยํ͸ຊ෺ͷ࠷৽ͷϝοηʔδΛఏग़͢Δ͜ͱʹΑͬͯͦͷ exitΛΩϟϯηϧͰ͖Δɻ •ϝοηʔδʹ͸nonce(࿈൪)Λ;͓ͬͯ͘͜ͱʹΑͬͯ৽͠͞Λ දݱ͢Δͱ͢Δ !17
  18. 1SPQFSUZͷهड़ྫ4UBUF$IBOOFMͷ&YJU • ͜ͷͱ͖ɺ͋ΔϝοηʔδͰFYJU͢Δͱ͖ʹඞཁͳQSPQFSUZΛҎԼͷΑ͏ʹఆٛ͢Δɻ !18 FYJU͍ͨ͠ϝοηʔδͷOPODF͕OͰ͋Δͱ͖ɺ O͕྆ऀͷॺ໊Λ͍࣋ͬͯΔϝοηʔδͷOPODFͷ͏ͪ࠷େͷ஋Ͱ͋Δ͜ͱɻ • ͜Ε͸ɺଘࡏྔԽࢠΛ༻͍ΔҎԼͷ໋୊ͷ൱ఆͱͯ͠هड़Ͱ͖Δɻ • ·ͨɺશশྔԽࢠΛ༻͍ΔͱҎԼͷΑ͏ʹهड़Ͱ͖Δɻ

    FYJU͍ͨ͠ϝοηʔδͷOPODF͕OͰ͋Δͱ͖ɺ OΑΓେ͖͍OPODFΛ࣋ͭɺ྆ऀͷॺ໊Λ΋ͭϝοηʔδ͕ଘࡏ͢Δɻ FYJU͍ͨ͠ϝοηʔδͷOPODF͕OͰ͋Δͱ͖ɺ ͢΂ͯͷOΑΓେ͖͍OPODFΛ࣋ͭϝοηʔδ͸྆ऀͷॺ໊Λ΋͍ͬͯͳ͍ɻ
  19. 1SPQFSUZͷهड़ྫ4UBUF$IBOOFMͷ&YJU !19 FYJU͍ͨ͠ϝοηʔδͷOPODF͕OͰ͋Δͱ͖ɺ ͢΂ͯͷOΑΓେ͖͍OPODFΛ࣋ͭϝοηʔδ͸྆ऀͷॺ໊Λ΋͍ͬͯͳ͍ɻ • ͜ͷ1SPQFSUZ͕ਖ਼͍͠ͱೝΊΒΕͨΒOPODFOͷTUBUFΛFYJU͢Δ͜ͱ͕Ͱ͖Δɻ • ଠ࿠ɾՖࢠͷ྆ऀ͸O Ҏ্ͷOPODFΛ࣋ͭ྆ऀͷॺ໊͖ͭͷϝοηʔδΛఏग़͢Δ͜ͱͰ͜ ͷ1SPQFSUZΛغ٫͢Δ͜ͱ͕Ͱ͖Δɻ

    • ಉ༷ʹɺ1MBTNBͷ&YJU1SPQFSUZ΋Ұ֊ड़ޠ࿦ཧͰͷهड़͕Մೳɻ ׂѪ <> • ͜ΕʹΑΓ-ͷ౷Ұతͳهड़͕Ͱ͖ΔΑ͏ʹͳͬͨ
  20. 07.Ͱ"QQMJDBUJPOΛ࡞Δͱ͸Ͳ͏͍͏͜ͱ͔ • 07.ʹ͓͍ͯ͸1SPQFSUZΛઃܭ͢Δ͜ͱ͕ͦ͜"QQMJDBUJPO%FWFMPQFSͷॏཁͳ໾ׂͱͳ Δɻ • -ͷ$MJFOU͸ɺ͋Δ1SPQFSUZ͕ਖ਼͍͠ͱ͍͏͜ͱΛূ໌͢ΔͨΊͷσʔλΛ΍ΓऔΓͨ͠Γ ͢Δ΋ͷɻ • ͜ͷεΩʔϜʹैͬͯ1SPQFSUZ΍$MJFOUΛઃܭɺ࣮૷͢Ε͹-্ͰΞϓϦέʔγϣϯ։ൃ͕ Ͱ͖ΔΑ͏ʹͳΔɻ

    !20
  21. ΞʔΩςΫνϟ • -ͱͷͭͳ͗໨͸ந৅Խ͞ΕΔ Ͳ͏΍ͬͯ -PDL͞ΕΔ͔ɺͲ͏΍ͬͯQSPQFSUZ͕ਖ਼͠ ͍ਖ਼͘͠ͳ͍ͱܾΊΒΕΔ͔  • -͔Β-΁ͲΜͳTUBUF͕FYJUͰ͖ΔΑ͏ʹ ͢Δ͔͸։ൃऀ͕ߟ͑ΒΕΔ

    • -ͰͷDMJFOUؒͷ΍ΓͱΓҰൠతͳϢʔε έʔεͷ΋ͷ 4UBUFDIBOOFM΍1MBTNBͳͲ ͸ڞ௨Ͱ࢖͑Δ΋ͷ͕Ͱ͖Δ • ։ൃऀ͕'SPOUFOE։ൃʹूதͰ͖ΔͨΊͷ TEL͕Ͱ͖ΔSFG<> !21
  22. ࢲୡ͕΍͍ͬͯΔ͜ͱ 07.ʹଇͬͯ-ͰΞϓϦέʔγϣϯΛ؆ ୯ʹ͔ͭॊೈʹ։ൃͰ͖ΔͨΊʹఏڙ͞Ε Δ΂͖΋ͷɾ͜ͱ͢΂ͯΛ४උ͢Δɻ •ΞϓϦέʔγϣϯϑϨʔϜϫʔΫ ઈࢍߏ૝த  •1SPQFSUZهड़ͷͨΊͷݴޠ ઈࢍ։ൃத 

    •$MJFOUGPS1MBTNBڞ௨࣮૷ ઈࢍ࣮૷த  •'SPOUFOETEL ઈࢍઃܭத  •FUD !22
  23. !23 07.Λ࢖͏ͱɺ͜Ε·Ͱ։ൃ͍ͯͨ͠4DBMBCJMJUZͷ໰୊Λղܾͨ͠#MPDLDIBJO"QQMJDBUJPOΛ ؆୯ʹ։ൃ͢Δ͜ͱ͕Ͱ͖ΔΑ͏ʹͳΔɻ

  24. $SZQUPFDPOPNJDT-BC (JUIVCIUUQTHJUIVCDPNDSZQUPFDPOPNJDTMBC 5FMFHSBNIUUQTUNFQMBTNBRBOEB .FEJVNIUUQTNFEJVNDPNDSZQUPFDPOPNJDTMBC 5XJUUFSIUUQTUXJUUFSDPNDSZQUPFDPOMBC !24

  25. 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