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

ブロックチェーンと金融システム / Blockchain and Financial Systems

Kenji Saito
December 08, 2020

ブロックチェーンと金融システム / Blockchain and Financial Systems

2020年12月8日(火)、東京大学大学院の授業 (システム創成特別演習 4C「近未来金融システムの創成」」) として実施された「近未来金融システム創造プログラム 第13 回 金融と技術 (各論 V)」にて使用したスライドです。

Kenji Saito

December 08, 2020
Tweet

More Decks by Kenji Saito

Other Decks in Technology

Transcript

  1. ( ) SFC ( ) CSO (Chief Science Officer) 1993

    ( ) 2006 ( ) SFC 20 P2P (Peer-to-Peer) ( 9 ) 2011 2018 2019 2019 2020 2020 → ( ) — 2020-12-08 – p.3/35
  2. (2017) : SF + + SF (2048 ) 2048 —

    2020-12-08 – p.4/35
  3. 2020 9 60 (2020) : . . . ( )

    . . . — 2020-12-08 – p.5/35
  4. Alexa, ত࿨࣌୅ ੈلޙ൒ ࣾձγεςϜ ࣾձ؀ڥ ػց ٕज़ ਓؒ ࣗಈγεςϜ ྩ࿨࣌୅

    ੈلલ൒ ిؾ͚ͭͯ ͸͍ ͸͍ ిؾ͚ͭͯ ͜ͷ৚݅ͷͱ͖ ٕज़Ͱ͋Γࣾձ؀ڥˠࣗવ؀ڥ ਓ ⇒ ( ) — 2020-12-08 – p.8/35
  5. ( ) ( ) (BP : Blockchain Property ) BP-1

    : BP-2 : BP-3 : ( ) ( ) — 2020-12-08 – p.12/35
  6. ( ) ( ) ( ) ( ) ( 16

    ) SHA (Secure Hash Algorithm) ( ) 1bit — 2020-12-08 – p.13/35
  7. ( ) ( ) < , > ( ) :

    < , > : : < , , > : OK NG — 2020-12-08 – p.14/35
  8. BP-1 ( ), BP-2 ( ) BBc-1 f : →

    BP-3 ( ) ( ) ( ) ← BP-2 ← BP-3 ( ) ( ) ← BP-3 + ← BP-{1,2} — 2020-12-08 – p.15/35
  9. ( 4 TX ) SMRP (State Machine Replication Problem) SMRP-1

    ( ) SMRP-2 : ← — 2020-12-08 – p.17/35
  10. ( ) ( ) ϒϩοΫ൪߸O ϒϩοΫ൪߸O  ϒϩοΫ൪߸O  ϒϩοΫ൪߸O

     ϒϩοΫ൪߸O  ϒϩοΫ൪߸O  ϒϩοΫ൪߸O  ϒϩοΫ൪߸O  ͍ͪ͹Μه࿥ɾॻ͖׵͑ͷίετ͕ߴ͍ྺ࢙ ࠷΋վ͟Μ͠ʹ͍͘ྺ࢙ ͕༗ޮ ͻͱͭखલͷϒϩοΫͷ ʮμΠδΣετʯ σδλϧॺ໊͞Εͨ ʮτϥϯβΫγϣϯ औҾ ʯ ϒϩοΫΛ࡞ΔͨΊʹ͸ɺͦͷʮμΠδΣετʯ͕͋Δ਺ҎԼͱ͍͏৚݅Λຬͨͨ͠Γ 1SPPGPG8PSL Ծ૝௨՟ͷ࣋ͪ෼ʹԠͨ͡ݖརΛ࢖ͬͨ౤ථͰউͬͨΓ 1SPPGPG4UBLF ͢Δඞཁ͕͋Δ ίετ͕͔͔Δ ϒϩοΫΛ࡞Δਓ͸ͦͷதʹࣗ෼ʹѼͯͨ Ծ૝௨՟ͰͷใुΛॻ͖ࠐΉ͜ͱ͕Ͱ͖ɺ ͦͷϒϩοΫ͕༗ޮͳྺ࢙ͷதʹ͋Δ৔߹ʹ ݶΓใु΋༗ޮͱͳΔ τϥϯβΫγϣϯͷଘࡏΛ֬ೝ͢Δ ͨΊͷޮ཰తͳํ๏͕ఏڙ͞ΕΔ ਖ਼౰ੑ ଘࡏੑ །Ұੑ Proof of Work ( ) . . . → — 2020-12-08 – p.18/35
  11. (BP-3 ) ( : ) (BP-3 ) ( : )

    BP-{1,2,3} BP-{1, 2} ⇒ — 2020-12-08 – p.19/35
  12. (Confidentiality) BP-{1,2,3} ↑ ( = ) ( integrity ) (Integrity)

    BP-3 (Availability) BP-2 — 2020-12-08 – p.20/35
  13. . . . 2009 ↑ 11 . . . —

    2020-12-08 – p.21/35
  14. ID { "id": "4445 4558 1689", "name": "Wednesday Addams", "born":

    "1980-02-12", "address": "0001 Cemetery Lane", "public-key": "04d49e0786a37efce8552d6fd1566d7cfd86f110d4d95f1...4edb", "algo": "ecdsa-p256v1", "sig": "609b390f9486110d1ba39fc59cc46f1c2aa31ae8e40d3454c05a42...48e2", "pubkey": "0479c6676de61b41b7d0291b338f3279671d649f0a71bbb495...4bd1", } (Merkle) Ethereum — 2020-12-08 – p.23/35
  15. *%Χʔυจॻ JEJE OBNF8FEOFTEBZ"EEBNTOBNF 8FEOFTEBZ"EEBNT ͷ΋ͷ ࣏ࣗମͷ΋ͷ CPSOCPSO BEESFTT$FNFUFSZ-BOFBEESFTT QVCMJDLFZEFDFECQVCMJDLFZ *%

    Χʔυจॻ ͷμΠδΣετ ॺ໊෇͖ *% Χʔυจॻ ͷμΠδΣετ ࿈͔݁ͯ͠Β ܭࢉ͢Δ ॺ໊Λݕূ͠ɺ ੒ޭͨ͠Β ࿈͔݁ͯ͠Β ܭࢉ͢Δ EJHFTU EJHFTU EJHFTU BMHPSJUIN TJHOBUVSF QVCMJDLFZ EJHFTU EJHFTU EJHFTU EJHFTU +40/ σʔλߏ଄͸ɺ಺෦ॲཧͰ͸ 9.- ʹม׵͞Ε·͢ ΋ͱ΋ͱ 9.- ༻ʹ࡞ͬͯ͋ΔϥΠϒϥϦΛ࢖༻͍ͯ͠·͢ ɻ ෦෼తʹӅ͞Ε͍ͯͯ΋ূ໌Ͱ͖ΔΑ͏ʹɺηΫγϣϯ͝ͱʹμΠδΣετΛܭࢉ͍ͯ͠·͢ɻ ྫ͑͹ɺ*% ΧʔυͰ೥ྸ΍ॅॴɺ͋Δ͍͸ެ։伴Λ֬ೝ͢Δ͚ͩͰ͋Ε͹ɺ*% ൪߸ΛݟΔ͜ͱ͕๏཯Ͱېࢭ͞Ε͍ͯΔ౳ͷ৔߹ɺ *% ൪߸ΛӅͯ͠ ͦͷ෦෼ΛରԠ͢ΔμΠδΣετͰஔ͖׵͑ͯ ఏࣔͯ͠΋࠷ऴతʹॺ໊෇͖ *% Χʔυจॻͷಉ͡μΠδΣετΛܭࢉͰ͖ΔͷͰɺଘࡏূ໌͕Ͱ͖·͢ɻ  ʮμΠδΣετʯͱ͸ɺ҉߸ֶతϋογϡؔ਺ʢࠓճ͸ 4)"ʣʹΑͬͯܭࢉ͞Εͨ஋ͷ͜ͱͰ͢ɻ Θ͔ͣ  ϏοτͰ΋ݩͷσʔλ͕ҟͳΔͱɺฦͬͯ͘Δ஋͕શ͘ҟͳΓɺμΠδΣετ͔ΒݩͷσʔλΛ ਪଌ͢Δ͜ͱ͸Ͱ͖·ͤΜɻ — 2020-12-08 – p.24/35
  16. API/ Merkle Proof จ ॻ  จ ॻ  จ

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

    "ethereum", "network": "ropsten", "contract": "BBcAnchor", "contract_address": "0x609CD0aF4663bbA6c7105fd34BbCBCDd5e75067C", "block": 9186681 }, "subtree": [ { "position": "right", "digest": "bd7d8c62a483e23b8e4713699bec9ff036ead7f3a72a8ff70684cdec1e8b6aeb" }, : # ] } } — 2020-12-08 – p.26/35
  18. BBcAnchor.sol ( ) contract BBcAnchor { mapping (uint256 => uint)

    public _digests; constructor () public { } function getStored(uint256 digest) public view returns (uint block_no) { return (_digests[digest]); } function isStored(uint256 digest) public view returns (bool isStored) { return (_digests[digest] > 0); } function store(uint256 digest) public returns (bool isAlreadyStored) { bool isRes = _digests[digest] > 0; if (!isRes) { _digests[digest] = block.number; } return (isRes); } } / — 2020-12-08 – p.27/35
  19. Token ୅ସ՟ฎ Smart Contract ݕূՄೳͳঢ়ଶϚγϯ Provenance ग़ࣗূ໌  Fungible Non-redeemable

    Fungible Redeemable Non-fungible Redeemable Non-fungible Non-redeemable Certifying Identifying payment ID card security token last will logistics insurance claim Tracking Sensing fiat money crypt pet ൿີ伴Λ࢖͑Δ͔Βຊਓʁ ෛ࠴  Ξηοτͷ ਺஋දݱΛҠసͰ͖Δʁ ొ࿥͞Εͨίʔυͱ ͦͷ࣮ߦϩάͱ݁Ռͷ ਅਖ਼ੑΛ୲อͰ͖Δʁ ݖҖ͕  Կ͔ͷ಺༰Λূ໌͢Δʁ ࣋ଓ͢Δଘࡏʹ͍ͭͯ ه࿥ΛΞοϓσʔτՄʁ ओମ͕͍ͳ͘ͳͬͯ΋ աڈͷσʔλ͸༗ޮʁ Certify Web API — 2020-12-08 – p.28/35
  20. IP (Internet Protocol) ( ) : IP : / (IP

    ) : : — 2020-12-08 – p.30/35
  21. : ⇒ LINE → → ( ) ( ) ⇒

    → → → — 2020-12-08 – p.31/35
  22. ( ) . . . ( : ) (GitHub ←

    D.C. ) ( : ) ↑ P2P ( : Ethereum) ( ) — 2020-12-08 – p.32/35
  23. ( ) ( ) . . . ← ( )

    . . . — 2020-12-08 – p.33/35
  24. ( ) (cyborg) = (cybernetic) (organism) 1 : ← 2

    : ⇒ (1) (2) ⇒ ← — 2020-12-08 – p.34/35
  25. 100 50 ( 50 ) ( ) . . .

    — 2020-12-08 – p.35/35