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

スマートコントラクト / Smart Contracts

スマートコントラクト / Smart Contracts

2021年6月28日、早稲田大学 大学院経営管理研究科の「フィンテック ─ 金融革新とインターネット (2021夏)」第8-9回にて使用したスライドです。

Kenji Saito

June 28, 2021
Tweet

More Decks by Kenji Saito

Other Decks in Technology

Transcript

  1. ( ) 1 5 31 • 2 6 7 (1)

    • 3 6 7 (2) • 4 6 14 – (1) • 5 6 14 – (2) • 6 6 21 (1) • 7 6 21 (2) • 8 6 28 (1) • 9 6 28 (2) • 10 7 5 (1) 11 7 5 (2) 12 7 12 (1) 13 7 12 (2) 14 7 19 (1) 15 7 19 (2) — 2021 8-9 — 2021-06-28 – p.3/70
  2. 1. 2. 3. 4. 5. Ethereum 6. 7. 8. 9.

    — 2021 8-9 — 2021-06-28 – p.4/70
  3. ϒϩοΫ൪߸O ϒϩοΫ൪߸O  ϒϩοΫ൪߸O  ϒϩοΫ൪߸O  ϒϩοΫ൪߸O  ϒϩοΫ൪߸O

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

    ) IoT / / ( ) — 2021 8-9 — 2021-06-28 – p.7/70
  5. : . . . : Proof of Existence, Everledger, .

    . . ( ) : ( ) (Ethereum ( ) ) ( ) ( ) — 2021 8-9 — 2021-06-28 – p.8/70
  6. ( ) จ ॻ  จ ॻ  จ ॻ

     จ ॻ  จ ॻ O μΠδΣετ μΠδΣετ μΠδΣετ μΠδΣετ μΠδΣετ μΠδΣετ μΠδΣετ ح਺ͷ৔߹͸ ෳ੡͢Δ ɾจॻ ΛಘͨΫϥΠΞϯτ͸ɺಉ࣌ʹূ໌ཁૉͱͯ͠ɺϒϧʔͰࣔ͞ΕΔμΠδΣετͱ֤ʑ͕ࠨӈͷͲͪΒʹҐஔ͢Δ͔Λड͚औΔɻ ɾΫϥΠΞϯτ͸จॻ  ͷμΠδΣετ͔Β࢝Ίͯɺ࿈݁͢΂͖Ұ࿈ͷμΠδΣετΛ஌Δ͜ͱʹͳΔͷͰɺϚʔΫϧϧʔτʹࢸΔ·Ͱͷ ɹܭࢉΛ࠶ݱͰ͖ɺಘΒΕͨϚʔΫϧϧʔτ͕ϒϩοΫνΣʔϯʹه࿥͞Ε͍ͯΔ஋ͱҰக͢Δ͜ͱΛ֬ೝͰ͖Δɻ ɾͦͷܭࢉ͸ݪཧͷཧղͱඞཁͳ৘ใ͕͋Ε͹୭Ͱ΋࠶ݱͰ͖Δ  จॻ  ͷଘࡏͱͦͷ಺༰͸ূ໌͞ΕΔɻ ˞μΠδΣετ͸ݩͷσʔλ͕ ɹϏοτͰ΋ҟͳΔͱશ͘ҟͳΔ ɹ஋ͱͳΓɺ·ͨɺμΠδΣετ ɹ͔ΒݩͷσʔλΛਪଌ͢Δ͜ͱ͸ ɹͰ͖ͳ͍ɻ ˞਺ઍɾ਺ສͷจॻΛϚʔΫϧ໦ʹͯ͠΋ ɹͦͷ໦ͷߴ͞͸ߴʑʙ ఔ౓ ه࿥͢Δ ಡΈग़ͤΔ ূ໌Λ ඞཁͱ͢Δऀʹ ։ࣔ͞ΕΔ৘ใ ެ։͞ΕΔ৘ใ ϚʔΫϧϧʔτ Ϛ ồ Ϋ ϧ ໦  γ ε ς Ϝ ͕ อ ؅ ͠ ֤ Ϣ ồ β ʹ ෦ ෼ త ʹ ఻ ͑ Δ ʜʜ ʜʜ ʜʜ ʜʜ ʜʜ μΠδΣετ μΠδΣετ μΠδΣετ μΠδΣετ μΠδΣετ μΠδΣετ ϒϩοΫνΣʔϯ ʜ ʜ — 2021 8-9 — 2021-06-28 – p.9/70
  7. (Bitcoin; 2009 1 ∼2021 6 ) 2 → 2 2

    → → — 2021 8-9 — 2021-06-28 – p.11/70
  8. The DAO ( ) Ethereum The DAO Split ( )

    360 ETH (50∼60 ) (2016/6/17) ( → ) ( → ; ) ( ) (2016/7/20 ) — 2021 8-9 — 2021-06-28 – p.13/70
  9. Ethereum Ether Ether Ether ( ) Ether Ether ( )

    . . . . . . BTC ⇒ ( ) — 2021 8-9 — 2021-06-28 – p.16/70
  10. ( ) ( ) ( vs. ) ( ) (

    ) ( ) ( ) ⇒ ( : BBc-1) : : — 2021 8-9 — 2021-06-28 – p.18/70
  11. Ethereum ( ) ( ) ⇒ (Casper) ( ) ⇒

    ZoE (Zcash on Ethereum) ( vs. ) ( ) ⇒ Plasma ( ) ⇒ ( ) (Benevolent Dictator For Life (BDFL)) ( ) ⇒ — 2021 8-9 — 2021-06-28 – p.19/70
  12. BBc-1 ( ) ( ) ⇒ ( ) ⇒ (

    vs. ) ( ) ⇒ DHT ( ) ⇒ ( ) ( ) ⇒ — 2021 8-9 — 2021-06-28 – p.20/70
  13. / Bitcoin, Ethereum LT BBc-1 ( ) ( ) (

    ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ެڞۭؒ ɾτϥϯβΫγϣϯͷূڌΛແؔ܎ͳྺ࢙͕อ༗ ɾͲΕ͔ͷ୆ாΛແໃ६ʹॻ͖׵͑ͯ΋ূڌ͕࢒Δ τϥϯβΫγϣϯ ୆ா υϝΠϯ ϩʔΧϧۭؒ υϝΠϯ ϩʔΧϧۭؒ υϝΠϯ ϩʔΧϧۭؒ Ethereum ( ) — 2021 8-9 — 2021-06-28 – p.21/70
  14. ( ) (by ) (since 1984) ( ) ( )

    ( ) . . . ( ) ⇒ . . . — 2021 8-9 — 2021-06-28 – p.23/70
  15. ( ) ( ) ( ) ( ) ( )

    Remember? , , , (by ) — 2021 8-9 — 2021-06-28 – p.24/70
  16. Q. ( ) ( = / = ) ⇒ —

    2021 8-9 — 2021-06-28 – p.25/70
  17. ( ) ( ) ( ) — 2021 8-9 —

    2021-06-28 – p.26/70
  18. ( ) ( ) / / — 2021 8-9 —

    2021-06-28 – p.27/70
  19. — ( ) 1. ( ) 2. ( ) 3.

    ( ) — 2021 8-9 — 2021-06-28 – p.28/70
  20. 4. 2021 6 24 ( ) 23:59 JST Waseda Moodle

    (Discord ) — 2021 8-9 — 2021-06-28 – p.31/70
  21. . . . . . . 20 18 (6/25( )

    16:00 ) ( ) / / / “ ” / / / / / / (NHK) / / / / / / / / / ( A B ) / / — 2021 8-9 — 2021-06-28 – p.32/70
  22. M 4 1 1 ES . . . — 2021

    8-9 — 2021-06-28 – p.34/70
  23. N [ ] AI ( ) AI / ⇒ ←

    MTRON from 1980s ↑ FinTech — 2021 8-9 — 2021-06-28 – p.35/70
  24. K [ ] ⇒ . . . . . .

    — 2021 8-9 — 2021-06-28 – p.38/70
  25. WIRED vol.25 The Power of Blockchain (2016) : 5 Family

    ( ) — 2021 8-9 — 2021-06-28 – p.39/70
  26. SFC ⇒ ( ) . . . — 2021 8-9

    — 2021-06-28 – p.40/70
  27. ↑ . . . → vs. — 2021 8-9 —

    2021-06-28 – p.44/70
  28. (by ) 1. 2. ( ) ( ) . .

    . cf. by McLuhan cf. by McLuhan — 2021 8-9 — 2021-06-28 – p.45/70
  29. Ethereum Vitalik Buterin, “Ethereum White Paper: A NEXT GENERATION SMART

    CONTRACT & DECENTRALIZED APPLICATION PLATFORM” 15 = (↑ ) DApps ( ) — 2021 8-9 — 2021-06-28 – p.49/70
  30. Ether Ethereum EOA : Externally-Owned Account ( ) ( )

    Ether ( ) EVM EVM = Ethereum = — 2021 8-9 — 2021-06-28 – p.51/70
  31. EVM : Ethereum Virtual Machine Gas ( EVM = )

    — 2021 8-9 — 2021-06-28 – p.52/70
  32. EVM : . . . : Solidity — JavaScript Vyper

    — Python Fe — Vyper Rust ← NEW! — 2021 8-9 — 2021-06-28 – p.54/70
  33. Solidity ( ) pragma solidityˆ0.7.0; contract IndivisibleAsset { /* */

    string public _name; string public _symbol; uint256 public _quantity; address public _owner; constructor(string memory name, string memory symbol, uint256 quantity) public { _name = name; _symbol = symbol; _quantity = quantity; _owner = msg.sender; } function transfer(address to) public returns (bool) { require (_owner == msg.sender); _owner = to; return true; } } — 2021 8-9 — 2021-06-28 – p.55/70
  34. ( , ) (constructor) (deploy) = ( ) ( )

    ETH Trusted Actor Model — 2021 8-9 — 2021-06-28 – p.56/70
  35. ADEPT ADEPT : IBM IoT → ⇒ — 2021 8-9

    — 2021-06-28 – p.59/70
  36. DeFi ( ) (DeFi : Decentralized Finance) ⇒ ⇒ ⇒

    ( ) NFT (Non-Fungible Token) — 2021 8-9 — 2021-06-28 – p.62/70
  37. ERC20 ERC (Ethereum Request for Comments) 20 https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md (EIP: Ethereum

    Improvement Proposal) contract ERC20 { function totalSupply() constant returns (uint totalSupply); function balanceOf(address _owner) constant returns (uint balance); function transfer(address _to, uint _value) returns (bool success); function transferFrom(address _from, address _to, uint _value) returns (bool success); function approve(address _spender, uint _value) returns (bool success); function allowance(address _owner, address _spender) constant returns (uint remaining); event Transfer(address indexed _from, address indexed _to, uint _value); event Approval(address indexed _owner, address indexed _spender, uint _value); } name/ , symbol/ , decimals/ approve allowance ERC223 ( ), ERC721 (Non-Fungible) — 2021 8-9 — 2021-06-28 – p.64/70
  38. ERC20 ERC20 ← ( ) ( ) ⇒ ERC20 (

    ERC20 ) ERC20 ⇒ — 2021 8-9 — 2021-06-28 – p.65/70
  39. (fungible) ERC20 → ERC223 (draft) or ERC777 (non-fungible) ERC721 (

    ) (partially fungible) ERC1410 (draft) (ERC1400 ) (redeemable) — 2021 8-9 — 2021-06-28 – p.66/70
  40. ERC ERC1400 (draft) : Security Token Standard ERC20 ERC777 ERC1594

    (draft) : Core Security Token Standard ( ) (KYC ) ERC1643 (draft) : Documnet Management Standard ERC1644 (draft) : Controller Token Standard ( ) ( ) ERC2258 (draft) : Custodial Ownership Standard ( ) ( ) — 2021 8-9 — 2021-06-28 – p.67/70
  41. 5. 2021 7 1 ( ) 23:59 JST Waseda Moodle

    (Discord ) — 2021 8-9 — 2021-06-28 – p.69/70