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

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

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

2021年3月24日(水)、ブロックチェーンハブ主催のブロックチェーンアカデミー「スマートコントラクト」にて使用したスライドです。

Kenji Saito

March 24, 2021
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) ( 2019 9 ) 2011 2018 2019 2019 2020 2020 → ( ) — — 2021-03-24 – p.3/39
  2. (by ) 1. 2. ( ) ( ) . .

    . cf. by McLuhan cf. by McLuhan → — — 2021-03-24 – p.9/39
  3. Vitalik Buterin, “Ethereum White Paper: A NEXT GENERATION SMART CONTRACT

    & DECENTRALIZED APPLICATION PLATFORM” 15 = ( ) DApps ( ) — — 2021-03-24 – p.11/39
  4. EVM : Ethereum Virtual Machine Gas ( EVM = )

    → — — 2021-03-24 – p.12/39
  5. EVM : . . . : Solidity — JavaScript Vyper

    — Python Fe — Vyper Rust ← NEW! — — 2021-03-24 – p.14/39
  6. 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-03-24 – p.15/39
  7. ( , ) (constructor) (deploy) = ( ) ( )

    ETH Trusted Actor Model — — 2021-03-24 – p.16/39
  8. The DAO ( ) The DAO Split ( ) 360

    ETH (50∼60 ) (2016/6/17) ( ) ( ; ) (2016/7/20 ) — — 2021-03-24 – p.22/39
  9. 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-03-24 – p.24/39
  10. ERC20 ERC20 ← ( ) ( ) ⇒ ERC20 (

    ERC20 ) ERC20 ⇒ — — 2021-03-24 – p.25/39
  11. (fungible) ERC20 → ERC223 (draft) or ERC777 (non-fungible) ERC721 (

    ) (partially fungible) ERC1410 (draft) (ERC1400 ) (redeemable) — — 2021-03-24 – p.26/39
  12. 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-03-24 – p.27/39
  13. — 1. ( ) 2. ( ) 3. ( )

    — — 2021-03-24 – p.36/39
  14. 10 12 → 120 120 12 12 120 — —

    2021-03-24 – p.37/39