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

The Libra Blockchain : 技術と問題 / The Libra Blockchain : Technology and Problems

The Libra Blockchain : 技術と問題 / The Libra Blockchain : Technology and Problems

2019年8月19日(月)、福岡市 GBEC Park にて開催された「Libraを技術的視点からひも解く」にて使用したスライドです。

Kenji Saito

August 19, 2019
Tweet

More Decks by Kenji Saito

Other Decks in Technology

Transcript

  1. The Libra Blockchain :
    ٕज़ͱ໰୊
    ܚጯٛक़େֶ SFC ݚڀॴ ্੮ॴһ / גࣜձࣾϒϩοΫνΣʔϯϋϒ CSO
    ੪౻ ݡ࣐
    [email protected] The Libra Blockchain : ٕज़ͱ໰୊ — 2019-08-19 – p.1/10

    View full-size slide

  2. ͜ͷ͓࿩͸ҎԼͷจॻʹج͖ͮ·͢
    Learn About Libra – Welcome
    https://developers.libra.org/docs/welcome-to-libra
    The Libra Blockchain (๜୊ : Libra ϒϩοΫνΣʔϯ)
    https://developers.libra.org/docs/the-libra-blockchain-paper
    Move: A Language With Programmable Resources (๜୊ : Move ϓϩάϥϛϯάݴޠ)
    https://developers.libra.org/docs/move-paper
    State Machine Replication in the Libra Blockchain (๜୊ : LibraBFT ߹ҙϓϩτίϧ)
    https://developers.libra.org/docs/state-machine-replication-paper
    The Libra Blockchain : ٕज़ͱ໰୊ — 2019-08-19 – p.2/10

    View full-size slide

  3. ಛ௃
    Libra ϗϫΠτϖʔύʔ͕ଧͪग़͍ͯ͠Δಛ௃
    ϓϩάϥϛϯάݴޠʮMoveʯΛσβΠϯ͠ɺ࢖༻͢Δ
    Ϗβϯνϯো֐଱ੑ (BFT) ߹ҙΞϓϩʔνΛ࢖༻͢Δ
    ޿͘࠾༻͞Ε͍ͯΔϒϩοΫνΣʔϯσʔλߏ଄Λ࠾༻͢Δ ɹ (← ͜Ε͸ಛ௃ͱͯ͠ଥ౰)
    ࣮ࡍͷٕज़తͳಛ௃
    طଘͷ༷ʑͳٕज़ͷཁૉ΍ΞΠσΞΛྗٕͰ૊Έ߹Θͤͯઃܭ͍ͯ͠Δ
    ઃܭऀͨͪʹྗ͸͋Δ
    طଘͷٕज़ͷʮ͍͍ͱ͜औΓʯͱ͍͏ධՁ΋Ұ෦Ͱ͋Δ͕ɺ
    ʮ͍͍ͱ͜ʯͳͷ͔͸ٞ࿦Λཁ͢Δ
    ϚΠϧετʔϯ
    ݕূऀͷϝϯόγοϓ͕؅ཧ͞ΕΔ (ڐՄ੍) ϓϥΠϕʔτϨοδϟʔͱͯ࢝͠·Γɺ
    5 ೥Ҏ಺ʹϝϯόγοϓ͕؅ཧ͞Εͳ͍ (ඇڐՄ੍) ύϒϦοΫϨοδϟʔ΁ͷҠߦΛ։࢝
    ಉٕ͡ज़ͰԆ௕Ͱ͖Δͱߟ͍͑ͯΔͱͨ͠ΒඇৗʹνϟϨϯδϯά
    The Libra Blockchain : ٕज़ͱ໰୊ — 2019-08-19 – p.3/10

    View full-size slide

  4. ࢲ͕Α͘࢖͏εϥΠυ :
    ͋Γ͕ͪͳύλʔϯ
    (ෆ޾)
    ଱ো֐ੑ (by ৑௕Խ) ͷͨΊͷٕज़ (since 1984) (ݖݶͷ෼ࢄ΍{಺༰ | ଘࡏ}ূ໌͸ؔ܎ͳ͍) (εέʔϧ͠ͳ͍)
    ಉ͡ΠϕϯτྻΛड͚औΔঢ়ଶϚγϯ͸ಉ͡ঢ়ଶʹͳΔͱ͍͏લఏ (ܾఆత)
    Πϕϯτͷॱংʹ߹ҙ͢Δඞཁ͕͋Δ . . . σδϟϰʁɹ (͍ΘΏΔʮ঎༻ϒϩοΫνΣʔϯʯͷߏ੒ʹࠅࣅ)
    ⇒ ͜Ε state machine replication Ͱ͢ΑͶʁ
    The Libra Blockchain : ٕज़ͱ໰୊ — 2019-08-19 – p.4/10

    View full-size slide

  5. ઃܭʹؔ͢Δٞ࿦
    The Libra Blockchain ͷجຊతͳߟ͑ํ
    τϥϯβΫγϣϯ΍εςʔτ (ঢ়ଶ) ΛϚʔΫϧ໦ͷߏ଄Ͱอଘ͢Δ
    ϒϩοΫΛ࣋ͨͣɺϚʔΫϧ໦͕੒௕͍ͯ͘͠
    ঢ়ଶϚγϯΛෳ੡͢Δͱ͖͚ͩτϥϯβΫγϣϯΛϒϩοΫʹ·ͱΊΔ
    ໰୊఺
    (1) ϚʔΫϧϧʔτΛ publish ͠ͳ͍ͷͩͱͨ͠Βଘࡏূ໌͕Ͱ͖ͳ͍
    ެ։͞Ε͍ͯΔϧʔτ஋ͱಥ߹Ͱ͖ͳ͍ͳΒԿͰ΋ΞϦͰ͸ʁ
    (2) ϨϓϦΧ͕ূ໌͢Δͱ͍͏ߟ͑ํͩͱͯ͠΋ೋॏா฽Λ๷͛ͳ͍
    ಉ্ (ϨϓϦΧʹຊ෺ͷه࿥͕౉͞Ε͍ͯΔͱ͍͏ূ໌͕Ͱ͖ͳ͍)
    (3) ڐՄ੍ɾϒϩοΫ୯ҐͰෳ੡ͳΒ BFT ϓϩτίϧ͸؆ུԽͰ͖ΔͷͰ͸ʁ
    ࣄ্ِ࣮଄Ͱ͖ͳ͍σδλϧॺ໊ΛϒϩοΫʹ෇͚ΒΕΔ͔Β
    (4) Ethereum ͷεϚʔτίϯτϥΫτ࣮ߦϞσϧΛ࠾༻͢Δཧ༝͸ʁ
    ڐՄ੍ͳΒ Gas ʹΑΔίετෛ୲Ϟσϧ͸੒Γཱͨͳ͍ͷͰ͸ʁɹ (ͳͥΘ͟Θ͟ैྔ੍ʁDoS ରࡦͱͷઆ໌͕ͩ)
    (5) ৽͘͠ݴޠ/VM Λ࡞ֶͬͯशͷϋʔυϧΛΘ͟Θ্͛͟Δཧ༝͸ʁ
    The Libra Blockchain : ٕज़ͱ໰୊ — 2019-08-19 – p.5/10

    View full-size slide

  6. ϚʔΫϧ໦ͱͦͷ෦෼໦(αϒπϦʔ)
    Λ࢖ͬͨূ໌(ྫ)
    ূ໌

    ূ໌

    ূ໌

    ূ໌

    ূ໌
    ॻ O
    μΠδΣετ μΠδΣετ
    μΠδΣετ μΠδΣετ
    μΠδΣετ μΠδΣετ
    μΠδΣετ
    ح਺ͷ৔߹͸
    ෳ੡͢Δ
    ɾূ໌ॻ Λड͚औͬͨ " ࢯ͸ɺಉ࣌ʹϒϧʔͰࣔ͞ΕΔμΠδΣετͱͦΕ͕ࠨӈͷͲͪΒʹҐஔ͢Δ͔Λड͚औΔɻ
    ɾ" ࢯ͸ূ໌ॻ ͷμΠδΣετ͔Β࢝Ίͯɺ࿈݁͢΂͖Ұ࿈ͷμΠδΣετΛ஌Δ͜ͱʹͳΔͷͰɺϚʔΫϧϧʔτʹࢸΔ·Ͱͷ
    ɹܭࢉΛ࠶ݱͰ͖ɺಘΒΕͨϚʔΫϧϧʔτ͕ &UIFSFVN εϚʔτίϯτϥΫτʹه࿥͞Ε͍ͯΔ஋ͱҰக͢Δ͜ͱΛ֬ೝͰ͖Δɻ
    ɾͦͷܭࢉΛ୅ߦ͢Δͷ͕DFSU@qBTLQZͷαʔϏε ݪཧͷཧղͱඞཁͳ৘ใ͕͋Ε͹୭Ͱ΋࠶ݱͰ͖Δ ূ໌͞ΕΔ
    ɻ
    ه࿥͢Δ
    ಡΈग़ͤΔ
    ূ໌Λ
    ඞཁͱ͢Δऀʹ
    ։ࣔ͞ΕΔ৘ใ
    ˞##D͸ɺ͜ͷߏ଄Λอଘ
    ɹ͍ͯ͠Δ͕ɺαϒπϦʔΛ
    ɹ63- Խͯ͠౉ͨ͠ޙ͸ɺ
    ɹূ໌͢Δ্Ͱ͸##D ͸ෆཁ
    ެ։͞ΕΔ৘ใ
    ϚʔΫϧϧʔτ
    Ϛ

    Ϋ
    ϧ


    γ
    ε
    ς
    Ϝ
    ͕

    ؅
    ͠
    ֤
    Ϣ

    β
    ʹ



    ʹ

    ͑
    Δ


    ʜʜ
    ʜʜ
    ʜʜ
    ʜʜ
    ʜʜ
    μΠδΣετ μΠδΣετ μΠδΣετ μΠδΣετ
    μΠδΣετ μΠδΣετ
    &UIFSFVNϒϩοΫνΣʔϯ
    ʜ ʜ
    ##DϥΠϒϥϦ
    ূ໌ॻΞϓϦͰ࣮ݱ
    The Libra Blockchain : ٕज़ͱ໰୊ — 2019-08-19 – p.6/10

    View full-size slide

  7. ϒϩοΫνΣʔϯ/୆ாٕज़ͷػೳΛ෼ղ͢Δ
    ਖ਼౰ੑͷอূ
    ྫ6590ߏ଄ͱσδλϧॺ໊
    ଘࡏੑͷূ໌
    ྫ࡞ۀূ໌෇͖ϋογϡνΣʔϯ
    །Ұੑͷ߹ҙ
    ྫφΧϞτɾίϯηϯαε
    ϧʔϧͷهड़
    ྫ#5$ͷҠస
    ɾ
    τϥϯβΫγϣϯͷ಺༰͕վ͟ΜͰ͖ͣɺ
    ɾ
    ͦͷΞηοτʹؔ͢ΔաڈͷτϥϯβΫγϣϯྻʹরΒͯ͠ໃ६͕ͳ͘ɺ
    ɾ
    ͔ͭɺਖ਼౰ͳϢʔβʹΑΓ౤ೖ͞Ε͍ͯΔ͜ͱΛอূ͢Δ
    ɾաڈʹ͋ͬͨτϥϯβΫγϣϯͷূڌΛຣফͰ͖ͣɺ
    ɾ
    ͔ͭɺաڈʹͳ͔ͬͨτϥϯβΫγϣϯͷূڌΛ፻଄Ͱ͖ͳ͍
    ɾໃ६͢Δ;ͨͭͷτϥϯβΫγϣϯ͕౤ೖ͞Εͨ৔߹ɺ
    ɹ ͍ͣΕ
    ؔ༩͢Δશһ͕ಉ͡ยํΛબΜͰྺ࢙ͷதʹҐஔ͚ͮΔ
    ɾΞϓϦέʔγϣϯϩδοΫ Կ͕ਖ਼͍͠τϥϯβΫγϣϯ͔ΛܾΊΔ

    ػೳ͕Լ͔ΒੵΈ্͕͍ͬͯ·͢ (ྫ͸ϏοτίΠϯͰ͕͢ɺ֤૚Λ෼཭ͯ͠ผʑͷٕज़Ͱ࣮ݱՄೳ)
    The Libra Blockchain : ٕज़ͱ໰୊ — 2019-08-19 – p.7/10

    View full-size slide

  8. The Libra Blockchain – ઃܭ্ͷબ୒
    ϧʔϧ Move ݴޠ (VM Ϛγϯޠ) Ͱهड़͞ΕΔεϚʔτίϯτϥΫτ
    །Ұੑ BFT (= ଱ো֐ੑ) (ͳͷʹ 1,000 ୆ن໛Ͱ΍Δͭ΋ΓΒ͍͠)
    ଘࡏূ໌
    ϚʔΫϧ໦ (ϧʔτΛ publish ͍ͯ͠ΔΑ͏ʹݟ͑ͳ͍)
    ਖ਼౰ੑ εςʔτ؅ཧ + σδλϧॺ໊
    5 ೥Ҏ಺ʹඇڐՄ੍΁ͷҠߦΛ։࢝͢Δͱ͍͏͕ . . .
    BFT ͸ಉ࣌ʹߴʑ f ୆͕೚ҙͷյΕํΛ͢Δͱ͍͏લఏͰಈ࡞͢Δ (֬཰࿦)
    ඇڐՄ੍Ͱ࣮ࡍʹ໰୊ʹͳΔͷ͸ҙਤతͳ߈ܸͰ͋Γɺҙਤ͢ΔݶΓ֬཰͸ 1 (f Λݟੵ΋Εͳ͍)
    αΠΤϯεʹଇ͍ͬͯΔΑ͏Ͱ͍ͯɺͲ͔͜Ͱઌਓͨͪͷ஌ݟΛແࢹ͍ͯ͠Δ
    ઃܭ͕͙ͪ͸͙ͱݴ͏ॴҎ
    The Libra Blockchain : ٕज़ͱ໰୊ — 2019-08-19 – p.8/10

    View full-size slide

  9. Ethereum ͱ BBc-1 – ઃܭ্ͷબ୒ (͝ࢀߟ)
    Ethereum
    ϧʔϧ EVM ϚγϯޠͰهड़͞ΕΔεϚʔτίϯτϥΫτ
    །Ұੑ φΧϞτίϯηϯαε → Casper (PoS)
    ଘࡏূ໌ PoW → Casper νΣ
    οΫϙΠϯτʹΑΔϑΝΠφϦςΟ
    ਖ਼౰ੑ εςʔτ؅ཧ + σδλϧॺ໊
    BBc-1 (Beyond Blockchain One)
    ϧʔϧ ΞϓϦέʔγϣϯʹͯ೚ҙʹهड़ (Python → bbc1-lib-contracts?)
    །Ұੑ σδλϧΞηοτ͸ෛ࠴Ͱ͋Γɺ࠴຿ऀ͕อূ͢Δ
    ଘࡏূ໌ PoCX (υϝΠϯؒཤྺަࠩ) (τϥϯβΫγϣϯؒͷࢀরؔ܎ͷ DAG)
    (ॳظ͸ύϒϦοΫͳϒϩοΫνΣʔϯʹΞϯΧϦϯά)
    ਖ਼౰ੑ UTXO/εςʔτ ͔ͭࣝผࢠͱެ։ݤΛ෼཭ɺυϝΠϯ֎ʹൿಗ
    The Libra Blockchain : ٕज़ͱ໰୊ — 2019-08-19 – p.9/10

    View full-size slide

  10. ·ͱΊ
    The Libra Blockchain ͸
    طଘͷ༷ʑͳٕज़ͷཁૉ΍ΞΠσΞΛྗٕͰ૊Έ߹Θͤͨઃܭ
    ͢ͳΘͪઃܭऀͨͪʹ͸ྗ͕͋Δ
    ϖʔύʔ͕͔ͬ͠Γॻ͔Ε͍ͯΔͷͰɺٯʹ໰୊఺Λࢦఠ͠΍͍͢
    ࠷΋େ͖ͳ໰୊͸ ূ໌ػೳ͕ূ໌ʹͳ͍ͬͯΔ͔Ͳ͏͔
    ͳ͍ͬͯͳ͚Ε͹ত࿨ͷٕज़ʹͪΐ
    ͬͱຯ෇͚͞Ε͍ͯΔ͚ͩ
    State Machine Replication ͸ 1984 ೥ʹ͸ཱ͍֬ͯͨ͠ςΫχοΫ
    ·ͨɺ5 ೥ޙʹ։࢝͢ΔඇڐՄ੍΁ͷҠߦʹ͸ےಓ͕ະͩݟ͑ͳ͍
    The Libra Blockchain : ٕज़ͱ໰୊ — 2019-08-19 – p.10/10

    View full-size slide