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

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

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

847a328633b1df6b11cc2f72430025e6?s=128

Kenji Saito

August 19, 2019
Tweet

Transcript

  1. 1.

    The Libra Blockchain : ٕज़ͱ໰୊ ܚጯٛक़େֶ SFC ݚڀॴ ্੮ॴһ /

    גࣜձࣾϒϩοΫνΣʔϯϋϒ CSO ੪౻ ݡ࣐ ks91@sfc.wide.ad.jp The Libra Blockchain : ٕज़ͱ໰୊ — 2019-08-19 – p.1/10
  2. 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
  3. 3.

    ಛ௃ Libra ϗϫΠτϖʔύʔ͕ଧͪग़͍ͯ͠Δಛ௃ ϓϩάϥϛϯάݴޠʮMoveʯΛσβΠϯ͠ɺ࢖༻͢Δ Ϗβϯνϯো֐଱ੑ (BFT) ߹ҙΞϓϩʔνΛ࢖༻͢Δ ޿͘࠾༻͞Ε͍ͯΔϒϩοΫνΣʔϯσʔλߏ଄Λ࠾༻͢Δ ɹ (←

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

    ࢲ͕Α͘࢖͏εϥΠυ : ͋Γ͕ͪͳύλʔϯ (ෆ޾) ଱ো֐ੑ (by ৑௕Խ) ͷͨΊͷٕज़ (since 1984)

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

    ઃܭʹؔ͢Δٞ࿦ The Libra Blockchain ͷجຊతͳߟ͑ํ τϥϯβΫγϣϯ΍εςʔτ (ঢ়ଶ) ΛϚʔΫϧ໦ͷߏ଄Ͱอଘ͢Δ ϒϩοΫΛ࣋ͨͣɺϚʔΫϧ໦͕੒௕͍ͯ͘͠ ঢ়ଶϚγϯΛෳ੡͢Δͱ͖͚ͩτϥϯβΫγϣϯΛϒϩοΫʹ·ͱΊΔ

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

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

     ূ໌ ॻ  ূ໌ ॻ O μΠδΣετ μΠδΣετ μΠδΣετ μΠδΣετ μΠδΣετ μΠδΣετ μΠδΣετ ح਺ͷ৔߹͸ ෳ੡͢Δ ɾূ໌ॻ Λड͚औͬͨ " ࢯ͸ɺಉ࣌ʹϒϧʔͰࣔ͞ΕΔμΠδΣετͱͦΕ͕ࠨӈͷͲͪΒʹҐஔ͢Δ͔Λड͚औΔɻ ɾ" ࢯ͸ূ໌ॻ  ͷμΠδΣετ͔Β࢝Ίͯɺ࿈݁͢΂͖Ұ࿈ͷμΠδΣετΛ஌Δ͜ͱʹͳΔͷͰɺϚʔΫϧϧʔτʹࢸΔ·Ͱͷ ɹܭࢉΛ࠶ݱͰ͖ɺಘΒΕͨϚʔΫϧϧʔτ͕ &UIFSFVN εϚʔτίϯτϥΫτʹه࿥͞Ε͍ͯΔ஋ͱҰக͢Δ͜ͱΛ֬ೝͰ͖Δɻ ɾͦͷܭࢉΛ୅ߦ͢Δͷ͕DFSU@qBTLQZͷαʔϏε ݪཧͷཧղͱඞཁͳ৘ใ͕͋Ε͹୭Ͱ΋࠶ݱͰ͖Δ  ূ໌͞ΕΔ ɻ ه࿥͢Δ ಡΈग़ͤΔ ূ໌Λ ඞཁͱ͢Δऀʹ ։ࣔ͞ΕΔ৘ใ ˞##D͸ɺ͜ͷߏ଄Λอଘ ɹ͍ͯ͠Δ͕ɺαϒπϦʔΛ ɹ63- Խͯ͠౉ͨ͠ޙ͸ɺ ɹূ໌͢Δ্Ͱ͸##D ͸ෆཁ ެ։͞ΕΔ৘ใ ϚʔΫϧϧʔτ Ϛ ồ Ϋ ϧ ໦  γ ε ς Ϝ ͕ อ ؅ ͠ ֤ Ϣ ồ β ʹ ෦ ෼ త ʹ ఻ ͑ Δ ʜʜ ʜʜ ʜʜ ʜʜ ʜʜ μΠδΣετ μΠδΣετ μΠδΣετ μΠδΣετ μΠδΣετ μΠδΣετ &UIFSFVNϒϩοΫνΣʔϯ ʜ ʜ ##DϥΠϒϥϦ ূ໌ॻΞϓϦͰ࣮ݱ The Libra Blockchain : ٕज़ͱ໰୊ — 2019-08-19 – p.6/10
  7. 7.

    ϒϩοΫνΣʔϯ/୆ாٕज़ͷػೳΛ෼ղ͢Δ ਖ਼౰ੑͷอূ ྫ6590ߏ଄ͱσδλϧॺ໊ ଘࡏੑͷূ໌ ྫ࡞ۀূ໌෇͖ϋογϡνΣʔϯ །Ұੑͷ߹ҙ ྫφΧϞτɾίϯηϯαε ϧʔϧͷهड़ ྫ#5$ͷҠస ɾ

    τϥϯβΫγϣϯͷ಺༰͕վ͟ΜͰ͖ͣɺ ɾ ͦͷΞηοτʹؔ͢ΔաڈͷτϥϯβΫγϣϯྻʹরΒͯ͠ໃ६͕ͳ͘ɺ ɾ ͔ͭɺਖ਼౰ͳϢʔβʹΑΓ౤ೖ͞Ε͍ͯΔ͜ͱΛอূ͢Δ ɾաڈʹ͋ͬͨτϥϯβΫγϣϯͷূڌΛຣফͰ͖ͣɺ ɾ ͔ͭɺաڈʹͳ͔ͬͨτϥϯβΫγϣϯͷূڌΛ፻଄Ͱ͖ͳ͍ ɾໃ६͢Δ;ͨͭͷτϥϯβΫγϣϯ͕౤ೖ͞Εͨ৔߹ɺ ɹ ͍ͣΕ ؔ༩͢Δશһ͕ಉ͡ยํΛબΜͰྺ࢙ͷதʹҐஔ͚ͮΔ ɾΞϓϦέʔγϣϯϩδοΫ Կ͕ਖ਼͍͠τϥϯβΫγϣϯ͔ΛܾΊΔ ػೳ͕Լ͔ΒੵΈ্͕͍ͬͯ·͢ (ྫ͸ϏοτίΠϯͰ͕͢ɺ֤૚Λ෼཭ͯ͠ผʑͷٕज़Ͱ࣮ݱՄೳ) The Libra Blockchain : ٕज़ͱ໰୊ — 2019-08-19 – p.7/10
  8. 8.

    The Libra Blockchain – ઃܭ্ͷબ୒ ϧʔϧ Move ݴޠ (VM Ϛγϯޠ)

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

    ·ͱΊ The Libra Blockchain ͸ طଘͷ༷ʑͳٕज़ͷཁૉ΍ΞΠσΞΛྗٕͰ૊Έ߹Θͤͨઃܭ ͢ͳΘͪઃܭऀͨͪʹ͸ྗ͕͋Δ ϖʔύʔ͕͔ͬ͠Γॻ͔Ε͍ͯΔͷͰɺٯʹ໰୊఺Λࢦఠ͠΍͍͢ ࠷΋େ͖ͳ໰୊͸ ূ໌ػೳ͕ূ໌ʹͳ͍ͬͯΔ͔Ͳ͏͔

    ͳ͍ͬͯͳ͚Ε͹ত࿨ͷٕज़ʹͪΐ ͬͱຯ෇͚͞Ε͍ͯΔ͚ͩ State Machine Replication ͸ 1984 ೥ʹ͸ཱ͍֬ͯͨ͠ςΫχοΫ ·ͨɺ5 ೥ޙʹ։࢝͢ΔඇڐՄ੍΁ͷҠߦʹ͸ےಓ͕ະͩݟ͑ͳ͍ The Libra Blockchain : ٕज़ͱ໰୊ — 2019-08-19 – p.10/10