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

ハイパーレッジャーとその他の分散台帳技術 / Hyperledger and Other Distributed Ledger Technology

ハイパーレッジャーとその他の分散台帳技術 / Hyperledger and Other Distributed Ledger Technology

2019年10月2日(水)、ブロックチェーンハブ主催のブロックチェーンアカデミー「ハイパーレッジャーとその他の分散台帳技術」にて使用したスライドです。

Kenji Saito

October 02, 2019
Tweet

More Decks by Kenji Saito

Other Decks in Technology

Transcript

  1. ϋΠύʔϨοδϟʔͱͦͷଞͷ෼ࢄ୆ாٕज़
    ϒϩοΫνΣʔϯج൫ٕज़ʲϏδωεԠ༻ج൫ΛϚϧͬͱཧղʳ
    ϒϩοΫνΣʔϯϋϒ Chief Science Officer / ૣҴాେֶ େֶӃܦӦ؅ཧݚڀՊ ڭत
    ੪౻ ݡ࣐
    [email protected]
    ϋΠύʔϨοδϟʔͱͦͷଞͷ෼ࢄ୆ாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.1/39

    View full-size slide

  2. ͜ͷεϥΠυ͸
    https://speakerdeck.com/ks91
    ʹஔ͔Ε͍ͯ·͢
    ϋΠύʔϨοδϟʔͱͦͷଞͷ෼ࢄ୆ாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.2/39

    View full-size slide

  3. ؆୯ͳࣗݾ঺հ
    ੪౻ ݡ࣐ (͍͞ͱ͏ ͚Μ͡)
    ૣҴాେֶ େֶӃܦӦ؅ཧݚڀՊ ڭत
    ܚጯٛक़େֶ SFC ݚڀॴ ্੮ॴһɾ؀ڥ৘ใֶ෦ ߨࢣ (ඇৗۈ)
    גࣜձࣾϒϩοΫνΣʔϯϋϒ CSO (Chief Science Officer)
    Ұൠࣾஂ๏ਓϏϤϯυϒϩοΫνΣʔϯ ୅දཧࣄ
    Ұൠࣾஂ๏ਓΞΧσϛʔΩϟϯϓ ୅දཧࣄ
    ܦྺ
    1993 ೥ɺίʔωϧେֶΑΓ޻ֶम࢜߸औಘ (ίϯϐϡʔλαΠΤϯε)
    2006 ೥ɺܚጯٛक़େֶΑΓσδλϧ௨՟ͷݚڀͰത࢜߸औಘ (੓ࡦɾϝσΟΞ)
    ܚጯٛक़େֶ େֶӃ ੓ࡦɾϝσΟΞݚڀՊ΍ SFC ݚڀॴʹͯ 19 ೥ؒʹΘͨΓ
    P2P (Peer-to-Peer) ͓Αͼσδλϧ௨՟౳ͷݚڀʹैࣄ
    2011 ೥ՆΑΓ෱ౡͷ͜Ͳ΋ͨͪͷͨΊͷʮΞΧσϛʔΩϟϯϓʯΛ஥ؒΒͱ։࠵
    ࡢ೥͸ SFC ʹͯ ΞΧσϛʔΩϟϯϓ 2018 ՆʮΦοέʔάʔάϧɺ॓୊΍ͬͱ͍ͯʂʯΛ࣮ࢪ
    ࠓ೥΋ SFC ౳Ͱ ΞΧσϛʔΩϟϯϓ 2019 ՆʮੈքΛ࠶ൃ໌ͤΑ ∼ REINVENT THE WORLDʯΛ࣮ࢪ
    → ࢲͷ಄ͷதͰ͸ͭͳ͕͍ͬͯ·͢ (͜Ε͔ΒͷࣾձͷσβΠϯ͸͜Ͳ΋ͨͪͱҰॹʹ)
    ϋΠύʔϨοδϟʔͱͦͷଞͷ෼ࢄ୆ாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.3/39

    View full-size slide

  4. ࠓճͷςʔϚ
    Linux Foundation ʹͯෳ਺ͷΦʔϓϯιʔε։ൃ͕ਐߦதͷ
    Hyperledger ϓϩδΣΫτΛ͸͡Ίɺ
    R3CEV ʹΑΔ Cordaɺ
    Facebook/Calibra ʹΑΔ The Libra Blockchain ౳ɺ
    ۀ຿༻෼ࢄϨοδϟʔ (෼ࢄ୆ா) ͷ։ൃಈ޲ʹ͍ͭͯɺެ։͞Ε͍ͯΔ৘ใͷ
    ൣғ͔ΒಡΈղ͍͍͖ͯ·͢
    ϋΠύʔϨοδϟʔͱͦͷଞͷ෼ࢄ୆ாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.4/39

    View full-size slide

  5. ࠓ೔ͷτϐοΫ
    ϋΠύʔϨοδϟʔ (Linux Foundation)
    ϋΠύʔϨοδϟʔ ϓϩδΣΫτ
    Fabric (IBM), Sawtooth (Intel), Iroha (ιϥϛπ), Indy (Sovrin)
    Corda (R3),
    The Libra Blockchain (Facebook/Calibra),
    BBc-1 (զʑ)
    DLT ͕ਅՁΛൃش͢ΔͨΊʹ
    ϋΠύʔϨοδϟʔͱͦͷଞͷ෼ࢄ୆ாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.5/39

    View full-size slide

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

    ϒϩοΫνΣʔϯ͸ɺΠϯλʔωοτͷ End-to-End ͷ఩ֶΛɺΞηοτ (ࢿ࢈) ͷ੍ޚʹ͓͍ͯ
    ݱ࣮Խ͢Δ (͜ͱΛࢼΈΔ)ʮۭத໿ଋݻఆ૷ஔʯ
    ྨ͢Δٕज़΋ಉ͡جຊߏ଄ͱ໨తΛ΋ͭ
    ϋΠύʔϨοδϟʔͱͦͷଞͷ෼ࢄ୆ாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.6/39

    View full-size slide

  7. ϋΠύʔϨοδϟʔ
    (Linux Foundation)
    ϓϩδΣΫτͷΨόφϯεػߏ
    https://www.hyperledger.org
    ιϑτ΢ΣΞ͸ Apache License, Version 2.0 Ͱެ։
    ϋΠύʔϨοδϟʔͱͦͷଞͷ෼ࢄ୆ாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.7/39

    View full-size slide

  8. ԿΛ͢Δͷ͔
    ϛογϣϯ
    ϏδωεରԠͷΦʔϓϯιʔεͷ෼ࢄϨοδϟʔͷϑϨʔϜϫʔΫͱ
    ίʔυϕʔεΛ༻ҙ͢Δ
    Φʔϓϯιʔε։ൃͷٕज़ίϛϡχςΟΛͭ͘Δ
    ΤίγεςϜͷઌಋऀͨͪʹࢀՃͯ͠΋Β͏
    ։ൃऀ
    αʔϏε/ιϦϡʔγϣϯఏڙऀ
    ސ٬
    ΨόφϯεͷϓϥοτϑΥʔϜΛఏڙ͢Δ
    ϓϩδΣΫτͷϥΠϑαΠΫϧ :
    Proposal → Incubation → Active → Deprecated → End of Life
    ϋΠύʔϨοδϟʔͱͦͷଞͷ෼ࢄ୆ாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.8/39

    View full-size slide

  9. ձһ
    ϓϨϛΞձһ (ͦͷଞͷձһʹ͍ͭͯ͸ https://www.hyperledger.org/about/members )
    ϋΠύʔϨοδϟʔͱͦͷଞͷ෼ࢄ୆ாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.9/39

    View full-size slide

  10. Fabric (IBM)
    IBM ͱ Digital Asset Holdings ͷίʔυΛϚʔδ
    http://hyperledger-fabric.readthedocs.io/en/latest/
    State : Active
    ϋΠύʔϨοδϟʔͱͦͷଞͷ෼ࢄ୆ாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.10/39

    View full-size slide

  11. ֓ཁ (υΩϡϝϯτ͔Β)
    طଘͷރΕٕͨज़Λ༻͍࣮ͯ૷
    ϞδϡϥʔͰଟ༷ͳػೳΛϓϥάΠϯՄೳ
    εϚʔτίϯτϥΫτʹ͸ίϯςφ (ܰྔԾ૝؀ڥ) ٕज़Λద༻
    ༷ʑͳϝΠϯετϦʔϜݴޠͰͷ։ൃ͕Մೳ
    ϋΠύʔϨοδϟʔͱͦͷଞͷ෼ࢄ୆ாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.11/39

    View full-size slide

  12. Fabric – ઃܭ্ͷબ୒
    ϧʔϧ υοΧʔ (Docker) ίϯςφͰ࣮ߦ͢Δ
    ʮνΣʔϯίʔυ (chaincode)ʯ
    །Ұੑ BFT
    νΣʔϯίʔυͷ݁Ռʹର͢Δίϯηϯαε͕ඞཁ
    ΦʔμϦϯάαʔϏε
    ଘࡏੑ
    ϋογϡνΣʔϯ, ΦʔμϦϯάαʔϏε
    ਖ਼౰ੑ RocksDB ্ͷߏ଄ͱܰྔ CA ʹΑΔ PKI
    v1.0 (ݱࡏ v2.0 Alpha) Ͱ͸ෳ਺ DB αϙʔτ͓Αͼ CA ΛଟॏԽ
    ʮۭதʯ͸ϓϥΠϕʔτͳۭؒ
    BFT : Byzantine Fault Tolerance (଱Ϗβϯνϯো֐ੑ)
    CA : Certificate Authority (ೝূہ)
    PKI : Public Key Infrastructure (ެ։ݤΠϯϑϥ)
    ϋΠύʔϨοδϟʔͱͦͷଞͷ෼ࢄ୆ாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.12/39

    View full-size slide

  13. Sawtooth (Intel)
    https://github.com/hyperledger/sawtooth-core
    State : Active
    ϋΠύʔϨοδϟʔͱͦͷଞͷ෼ࢄ୆ாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.13/39

    View full-size slide

  14. ֓ཁ (υΩϡϝϯτ͔Β)
    ڐՄ੍ (permissioned) ·ͨ͸ඇڐՄ੍ (permissionless) ͷͲͪΒ΋αϙʔτ
    Proof of Elapsed Time (PoET)
    Proof of Work ͷ࡞ۀίετΛ࣮ࡍʹ͸౤ೖͤͣ (ిྗΛ࿘අͤͣ)ɺ
    ࢦఆ͞Εͨ೉қ౓ʹجͮ࣌ؒ͘Λ୯ʹ֬཰తʹܦաͤ͞Δ
    (Intel ͷ) ϋʔυ΢ΣΞαϙʔτ͕ඞཁ
    ϏδωεϩδοΫ͸ଘࡏূ໌/ίϯηϯαεػߏ͔Β෼཭
    Transaction Families ͱݺ͹ΕΔ
    ϋΠύʔϨοδϟʔͱͦͷଞͷ෼ࢄ୆ாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.14/39

    View full-size slide

  15. Sawtooth – ઃܭ্ͷબ୒
    ϧʔϧ ʮτϥϯβΫγϣϯɾϑΝϛϦʔ (transaction families)ʯ
    །Ұੑ φΧϞτ
    ɾίϯηϯαε (PoET ϕʔε) ·ͨ͸ PBFT (Practical BFT)
    ଘࡏੑ ϋογϡνΣʔϯͱ PoET (ϋʔυ΢ΣΞαϙʔτ͕ඞཁ)
    ਖ਼౰ੑ ʮτϥϯβΫγϣϯɾϑΝϛϦʔ (transaction families)ʯ
    ʮۭதʯ͸ϓϥΠϕʔτͳۭؒ·ͨ͸
    ύϒϦοΫͳۭؒ
    ϋΠύʔϨοδϟʔͱͦͷଞͷ෼ࢄ୆ாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.15/39

    View full-size slide

  16. Iroha (ιϥϛπ)
    https://github.com/hyperledger/iroha
    State : Active
    ϋΠύʔϨοδϟʔͱͦͷଞͷ෼ࢄ୆ாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.16/39

    View full-size slide

  17. ֓ཁ (υΩϡϝϯτ͔Β)
    DLT Λඞཁͱ͢ΔΠϯϑϥϓϩδΣΫτ΁؆୯ʹద༻
    ಛ௃ :
    γϯϓϧͳߏ଄
    Ϟμϯͳ C++ ʹΑΔઃܭ
    ϞόΠϧΞϓϦέʔγϣϯͷ։ൃΛڧྗʹαϙʔτ
    ϋΠύʔϨοδϟʔͱͦͷଞͷ෼ࢄ୆ாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.17/39

    View full-size slide

  18. Iroha – ઃܭ্ͷબ୒
    ϧʔϧ αϯυϘοΫε JVM ্ͰͷʮνΣʔϯίʔυ (chaincode)ʯ
    ʁ
    །Ұੑ Sumeragi (BFT) → YAC (BFT)
    ଘࡏੑ
    ϚʔΫϧ໦ → (ϒϩοΫ͸͋ΔΒ͍͕͠
    . . .

    ਖ਼౰ੑ ެ։ݤΛຒΊࠐΉߏ଄ →ʁ
    ʮۭதʯ͸ϓϥΠϕʔτͳۭؒ
    JVM : Java Virtual Machine (Java Ծ૝Ϛγϯ)
    ϋΠύʔϨοδϟʔͱͦͷଞͷ෼ࢄ୆ாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.18/39

    View full-size slide

  19. Indy (Sovrin)
    https://github.com/hyperledger/indy-node
    State : Active
    ϋΠύʔϨοδϟʔͱͦͷଞͷ෼ࢄ୆ாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.19/39

    View full-size slide

  20. ֓ཁ (υΩϡϝϯτ͔Β)
    ෼ࢄ ID ͷͨΊͷϨοδϟʔ
    Hyperledger ͷϓϩδΣΫτ΍ͦͷଞͷ෼ࢄ୆ாγεςϜʹ
    σδλϧ ID γεςϜΛఏڙ
    ϋΠύʔϨοδϟʔͱͦͷଞͷ෼ࢄ୆ாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.20/39

    View full-size slide

  21. Indy – ઃܭ্ͷબ୒
    ϧʔϧ ෼ࢄ ID
    །Ұੑ RBFT (Redundant BFT)
    ଘࡏੑ
    ෆ໌
    ਖ਼౰ੑ ϚʔΫϧύτϦγΞ໦ʹΑΔεςʔτ؅ཧ
    ʮۭதʯ͸ϓϥΠϕʔτͳۭؒ
    ϋΠύʔϨοδϟʔͱͦͷଞͷ෼ࢄ୆ாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.21/39

    View full-size slide

  22. Corda (R3)
    ϋΠύʔϨοδϟʔ΁ͷࢀՃΛڠٞதͩͬͨͷ͔
    R3 ͸ϋΠύʔϨοδϟʔͷϓϨϛΞձһͩͬͨ
    https://github.com/corda/corda
    ϋΠύʔϨοδϟʔͱͦͷଞͷ෼ࢄ୆ாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.22/39

    View full-size slide

  23. R3 ίϯιʔγΞϜ
    R3CEV ʹΑΔۚ༥ػؔίϯιʔγΞϜ
    77 ࣾ (2017 ೥ 2 ݄຤ݱࡏ)
    ೔ຊ͔Β͸ 3 ϝΨόϯΫɺ໺ଜϗʔϧσΟϯάεɺSBI ϗʔϧσΟϯάε౳
    ࣍ੈ୅ۚ༥औҾωοτϫʔΫͷ։ൃʹϑΥʔΧε͢Δ
    R3Net(Ծ)
    Corda ʹΑΔϓϥοτϑΥʔϜͱαʔϏε
    ύʔτφʔͱڠಇͰΞϓϦέʔγϣϯΛఏڙ༧ఆ
    ϋΠύʔϨοδϟʔͱͦͷଞͷ෼ࢄ୆ாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.23/39

    View full-size slide

  24. Corda ͷ໨త
    ۚ༥ػؔؒͷۚ༥ڠఆΛ؅ཧ͢Δ
    ۀքඪ४ͷπʔϧͰ࡞ΒΕͨڞ௨ͷ࢓૊ΈͰͦΕΛߦ͏
    ૬ޓӡ༻ੑɺΠϯΫϦϝϯλϧͳల։ɺൿಗੑ
    Corda ͷ໰୊ :
    ʮࢲ͕ݟ͍ͯΔ΋ͷ͸͋ͳ͕ͨݟ͍ͯΔ΋ͷͱҰக͓ͯ͠Γɺզʑ͸ͲͪΒ΋
    ͦͷ͜ͱΛ஌͍ͬͯͯɺ͔ͭ؂ࠪʹ΋ಉ͡΋ͷ͕ݟ͍͑ͯΔͱ஌͍ͬͯΔʯ
    ϏοτίΠϯͷ໰୊ͱ͸ҟͳΔ໰୊Λղ͍͍ͯΔɺͱ͍͏ೝ͔ࣝΒͷൃ૝
    ϏοτίΠϯͷ໰୊ :
    ࣗ෼ͷ͓ۚΛࣗ෼͕࢖͏͜ͱΛ୭ʹ΋ࢭΊΒΕͳ͍Α͏ʹ͍ͨ͠
    ϋΠύʔϨοδϟʔͱͦͷଞͷ෼ࢄ୆ாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.24/39

    View full-size slide

  25. ಛ௃
    γεςϜϨϕϧͰ͸ͳ͘ɺ঎औҾϨϕϧͰͷίϯηϯαε
    ଟ༷ͳίϯηϯαεػߏΛαϙʔτ (ʁ)
    ౰ࣄऀ+؂ࠪͷ׬શ߹ҙ͕ඞཁͳͷͰ͋ͬͯɺίϯηϯαεػߏ͸།ҰͰ͸ʁ
    ౰ࣄऀϊʔυΛ෼ࢄԽͨ͠ࡍʹ֤ʑͷύʔςΟͰ͸ඞཁ
    σʔλ͸γεςϜϫΠυʹίϐʔ͞Εͳ͍
    ୈࡾऀͰ͸ͳ͘౰ࣄऀʹΑΔτϥϯβΫγϣϯͷݕূ
    CAP ఆཧͷτϨʔυΦϑʹ΋ͱͮ͘ઃܭ্ͷબ୒ࢶ
    ैདྷͷϒϩοΫνΣʔϯͰ͸Մ༻ੑͷͨΊʹҰ؏ੑ͕٘ਜ਼ʹͳ͍ͬͯΔ
    ٯʹҰ؏ੑͷͨΊʹՄ༻ੑΛ٘ਜ਼ʹ͢Δ౳
    ໌ࣔతͳ؂ࠪ༻ϊʔυ
    ʮࣗવݴޠͰॻ͔Εͨ๏཯ؔ܎ॻྨʯͱʮεϚʔτίϯτϥΫτͷίʔυʯͷ
    ඥ͚ͮ
    ωΠςΟϒ௨՟͸࣋ͨͳ͍ (ࠓճ঺հ͍ͯ͠Δ୆ாٕज़͸ͲΕ΋ (?) ͍࣋ͬͯͳ͍)
    ϋΠύʔϨοδϟʔͱͦͷଞͷ෼ࢄ୆ாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.25/39

    View full-size slide

  26. Corda – ઃܭ্ͷબ୒
    ϧʔϧ αϯυϘοΫε JVM ্Ͱͷ࣮ߦ
    ๏తจॻ (ܖ໿ॻ) ͱͷόΠϯσΟϯά
    །Ұੑ ϓϥΨϒϧ (Uniqueness Services)
    ଘࡏੑ ܖ໿ͷ૬ख͓Αͼ؂ࠪͱڞ༗͞ΕΔ͜ͱʹΑΔ࣮ݱ͔
    ਖ਼౰ੑ UTXO ߏ଄͓Αͼ X.509 PKI
    ʮۭதʯ͸୯ҰͷάϩʔόϧͳۭؒͷதͷϓϥΠϕʔτͳ۠ը
    ·ͨ͸ (ΤϯλʔϓϥΠζ༻ʹ) ಠࣗͷϓϥΠϕʔτͳۭؒ
    X.509 : ΢ΣϒͰ޿͘࢖ΘΕ͍ͯΔ PKI ن֨
    ϋΠύʔϨοδϟʔͱͦͷଞͷ෼ࢄ୆ாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.26/39

    View full-size slide

  27. The Libra Blockchain
    Libra ͷτϥϯβΫγϣϯج൫
    https://developers.libra.org/docs/the-libra-blockchain-paper
    ϋΠύʔϨοδϟʔͱͦͷଞͷ෼ࢄ୆ாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.27/39

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  30. The Libra Blockchain – ઃܭ্ͷબ୒
    ϧʔϧ Move ݴޠ (VM Ϛγϯޠ) Ͱهड़͞ΕΔεϚʔτίϯτϥΫτ
    །Ұੑ BFT (= ଱ো֐ੑ) (ͳͷʹ 1,000 ୆ن໛Ͱ΍Δͭ΋ΓΒ͍͠)
    ଘࡏੑ
    ϚʔΫϧ໦ (ϧʔτΛ publish ͍ͯ͠ΔΑ͏ʹݟ͑ͳ͍)
    ਖ਼౰ੑ εςʔτ؅ཧ + σδλϧॺ໊
    5 ೥Ҏ಺ʹඇڐՄ੍΁ͷҠߦΛ։࢝͢Δͱ͍͏͕ . . .
    BFT ͸ಉ࣌ʹߴʑ f ୆͕೚ҙͷյΕํΛ͢Δͱ͍͏લఏͰಈ࡞͢Δ (֬཰࿦)
    ඇڐՄ੍Ͱ࣮ࡍʹ໰୊ʹͳΔͷ͸ҙਤతͳ߈ܸͰ͋Γɺҙਤ͢ΔݶΓ֬཰͸ 1 (f Λݟੵ΋Εͳ͍)
    αΠΤϯεʹଇ͍ͬͯΔΑ͏Ͱ͍ͯɺͲ͔͜Ͱઌਓͨͪͷ஌ݟΛແࢹ͍ͯ͠Δ
    ઃܭ͕͙ͪ͸͙ͱݴ͏ॴҎ
    Move ݴޠͷಛ௃
    ۚમతՁ஋ΛϦιʔεͱͯ͠දݱ͢Δɺͱ͍͏ྖҬಛఆ (domain-specific) ݴޠͬΆ͍
    ೋॏফඅΛආ͚Δػߏ౳ΛݴޠϨϕϧͰಋೖ͍ͯ͠Δ (ॻ͖ͮΒ͍ͱ͍͏ධ൑)
    ϋΠύʔϨοδϟʔͱͦͷଞͷ෼ࢄ୆ாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.30/39

    View full-size slide

  31. BBc-1 (Beyond Blockchain One)
    ϒϩοΫνΣʔϯͰͰ͖Δͱ͞Ε͍ͯΔ͜ͱΛɺຊ౰ʹɻ
    ϒϩοΫνΣʔϯϋϒɾίϛϡχςΟ͔ΒΦʔϓϯιʔεఏڙ
    https://github.com/beyond-blockchain
    https://beyond-blockchain.org
    ϋΠύʔϨοδϟʔͱͦͷଞͷ෼ࢄ୆ாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.31/39

    View full-size slide

  32. ֓ཁ
    طଘͷϒϩοΫνΣʔϯΑΓ΋ڧݻͳվ͟Μݕग़ɾରԠੑ
    ϒϩοΫ΍ Proof of Work ͱ͍ͬͨɺޮ཰Λଛͳ͏ཁҼΛऔΓ෷͍ɺଈ࣌ੑɺলࢿݯ
    ͓ΑͼεέʔϥϏϦςΟΛୡ੒Ͱ͖Δઃܭ
    σʔλͷڞ༗ൣғΛઃఆ͠ൿಗੑΛୡ੒Ͱ͖Δɺ
    ʮυϝΠϯʯͱݺ͹ΕΔαϒωοτϫʔΫ
    Bitcoin ͷߟ͑ํΛ౿ऻͨ͠ɺ(ಉҰυϝΠϯ಺ͷ) ୈࡾऀʹΑΔݕূՄೳੑΛ୲อͨ͠σʔλߏ଄
    ϓϥΠϕʔτͳԠ༻Ͱ΋τϥϯβΫγϣϯͷূ໌ػೳΛఏڙ
    Ϣʔβࣝผࢠͱެ։ݤΛ෼཭͢Δ͜ͱʹΑΓɺൿີݤ͕ࣦΘΕͨ৔߹ͷճ෮खஈΛఏڙ
    ίΞ෦Ͱ͸ϕʔγοΫͳػೳ͚ͩΛఏڙ͢Δ͜ͱʹΑΔߴ౓ͳ֦ுੑ
    BBc Trust (ϏϤϯυϒϩοΫνΣʔϯݑষ) Λ࣮૷
    https://github.com/beyond-blockchain/bbc1/blob/develop/docs/BBc-trust.pdf (ݪจ)
    https://github.com/beyond-blockchain/bbc1/blob/develop/docs/BBc-trust_ja.pdf (೔ຊޠεϥΠυ)
    Design Paper (white paper)
    https://github.com/beyond-blockchain/bbc1/blob/develop/docs/BBc-1_design_paper.pdf
    ϋΠύʔϨοδϟʔͱͦͷଞͷ෼ࢄ୆ாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.32/39

    View full-size slide

  33. ʮͷͼ͠Ζʯ͕͋Δઃܭ
    BBc-1 ͷॳظͷઃܭ΍ࢀরιϑτ΢ΣΞ͕ಘҙͰͳ͍෦෼ʹ΋վળɾ֦ுͷ༨஍͕͋Δ
    ϋΠύʔϨοδϟʔͱͦͷଞͷ෼ࢄ୆ாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.33/39

    View full-size slide

  34. BBc-1 – ઃܭ্ͷબ୒
    ϧʔϧ ΞϓϦέʔγϣϯʹͯ೚ҙʹهड़ (Python → bbc1-lib-contracts?)
    །Ұੑ σδλϧΞηοτ͸ෛ࠴Ͱ͋Γɺ࠴຿ऀ͕อূ͢Δ
    ଘࡏੑ PoCX (υϝΠϯؒཤྺަࠩ) (τϥϯβΫγϣϯؒͷࢀরؔ܎ͷ DAG)
    (ॳظ͸ύϒϦοΫͳϒϩοΫνΣʔϯʹΞϯΧϦϯά)
    ਖ਼౰ੑ UTXO/εςʔτ ͔ͭࣝผࢠͱެ։ݤΛ෼཭ɺυϝΠϯ֎ʹൿಗ
    ʮۭதʯ͸୯ҰͷۭؒͰ͸ͳ͘ɺυϝΠϯͰ෼ׂ͞Ε͍ͯΔ
    ෼ݖͰ͖Δ
    ʮཤྺަࠩʯͷ໊শΛʮίϯςΩετূ໌ (Proof of Context)ʯ΁
    ϋΠύʔϨοδϟʔͱͦͷଞͷ෼ࢄ୆ாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.34/39

    View full-size slide

  35. (D)LT ͕ਅՁΛൃش͢ΔͨΊʹ
    Ԡ༻ύλʔϯ͔Βݟ͖͑ͯͨʮෆ޾ʯͱʮഁյʯ
    ϋΠύʔϨοδϟʔͱͦͷଞͷ෼ࢄ୆ாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.35/39

    View full-size slide

  36. ϒϩοΫνΣʔϯ(ڱٛ)ͷಈ࡞తಛ௃
    ࢀՃϊʔυʹঢ়ଶ͕ෳ੡͞ΕΔ
    (1) ౳͍͠ॳظঢ়ଶ͔Β͸͡·Δ
    (2) ͢΂ͯͷࢀՃϊʔυʹΠϕϯτ͕ίϐʔ͞ΕΔ
    (3) ͔ͭಉ͡ॱংͰίϐʔ͞ΕΔ
    (4) શΠϕϯτ͸ঢ়ଶʹରܾͯ͠ఆతʹ (ͲͷϊʔυͰ΋౳͘͠) ࡞༻͢Δ
    ͳͷͰ଱ো֐ੑΛҡ࣋Ͱ͖Δ
    ⇒ ͜ͷ͜ͱ͸ॏཁͰ͸ͳ͍͕ɺڱٛͷϒϩοΫνΣʔϯͷಈ࡞Λಛ௃͚ͮΔ
    ϋΠύʔϨοδϟʔͱͦͷଞͷ෼ࢄ୆ாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.36/39

    View full-size slide

  37. ͋Γ͕ͪͳύλʔϯ (ෆ޾)
    ଱ো֐ੑ (by ৑௕Խ) ͷͨΊͷٕज़ (since 1984) (ݖݶͷ෼ࢄ͸ؔ܎ͳ͍) (εέʔϧ͠ͳ͍)
    ಉ͡ΠϕϯτྻΛड͚औΔঢ়ଶϚγϯ͸ಉ͡ঢ়ଶʹͳΔͱ͍͏લఏ (ܾఆత)
    Πϕϯτͷॱংʹ߹ҙ͢Δඞཁ͕͋Δ . . . σδϟϰʁɹ (͍ΘΏΔʮ঎༻ϒϩοΫνΣʔϯʯͷߏ੒ʹࠅࣅ)
    ⇒ ͜Ε state machine replication Ͱ͢ΑͶʁ
    ϋΠύʔϨοδϟʔͱͦͷଞͷ෼ࢄ୆ாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.37/39

    View full-size slide

  38. ຊདྷɺૂ͏΂͖ύλʔϯ (ഁյ)
    Τϯυ (୺ͬ͜) ੍͕ޚ (ίϯτϩʔϧ) Λ΋ͭͨΊͷٕज़ (ݖݶͷ෼ࢄ) (εέʔϧ͠͏Δ)
    ੍ޚ͞ΕΔ΋ͷ͕Ұ؏ੑΛ΋ͬͯଘࡏ͢Δͱ͍͏ΠϦϡʔδϣϯΛҡ࣋ (อଘͷਖ਼͠͞ΛࢀՃऀ͕ݕূՄೳ)
    ͦͷͨΊʹ଱ো֐ੑ (by ৑௕Խ) ͕ඞཁʹͳΔ
    ϋΠύʔϨοδϟʔͱͦͷଞͷ෼ࢄ୆ாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.38/39

    View full-size slide

  39. ࣭͝໰΍ٞ࿦Λ
    ϋΠύʔϨοδϟʔͱͦͷଞͷ෼ࢄ୆ாٕज़ — ϒϩοΫνΣʔϯج൫ٕज़ — 2019-10-02 – p.39/39

    View full-size slide