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

The Libra Blockchain : 技術と問題 / The Libra Blockc...

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

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

Avatar for Kenji Saito

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

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

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

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

    τϥϯβΫγϣϯͷ಺༰͕վ͟ΜͰ͖ͣɺ ɾ ͦͷΞηοτʹؔ͢ΔաڈͷτϥϯβΫγϣϯྻʹরΒͯ͠ໃ६͕ͳ͘ɺ ɾ ͔ͭɺਖ਼౰ͳϢʔβʹΑΓ౤ೖ͞Ε͍ͯΔ͜ͱΛอূ͢Δ ɾաڈʹ͋ͬͨτϥϯβΫγϣϯͷূڌΛຣফͰ͖ͣɺ ɾ ͔ͭɺաڈʹͳ͔ͬͨτϥϯβΫγϣϯͷূڌΛ፻଄Ͱ͖ͳ͍ ɾໃ६͢Δ;ͨͭͷτϥϯβΫγϣϯ͕౤ೖ͞Εͨ৔߹ɺ ɹ ͍ͣΕ ؔ༩͢Δશһ͕ಉ͡ยํΛબΜͰྺ࢙ͷதʹҐஔ͚ͮΔ ɾΞϓϦέʔγϣϯϩδοΫ Կ͕ਖ਼͍͠τϥϯβΫγϣϯ͔ΛܾΊΔ ػೳ͕Լ͔ΒੵΈ্͕͍ͬͯ·͢ (ྫ͸ϏοτίΠϯͰ͕͢ɺ֤૚Λ෼཭ͯ͠ผʑͷٕज़Ͱ࣮ݱՄೳ) The Libra Blockchain : ٕज़ͱ໰୊ — 2019-08-19 – p.7/10
  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. 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. ·ͱΊ The Libra Blockchain ͸ طଘͷ༷ʑͳٕज़ͷཁૉ΍ΞΠσΞΛྗٕͰ૊Έ߹Θͤͨઃܭ ͢ͳΘͪઃܭऀͨͪʹ͸ྗ͕͋Δ ϖʔύʔ͕͔ͬ͠Γॻ͔Ε͍ͯΔͷͰɺٯʹ໰୊఺Λࢦఠ͠΍͍͢ ࠷΋େ͖ͳ໰୊͸ ূ໌ػೳ͕ূ໌ʹͳ͍ͬͯΔ͔Ͳ͏͔

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