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

ERC721拡張機能の仕組みを理解しよう!

 ERC721拡張機能の仕組みを理解しよう!

https://cryptogames.connpass.com/event/289171/

上記の勉強会でしようする資料です。

cardene

July 19, 2023
Tweet

More Decks by cardene

Other Decks in Programming

Transcript

  1. C r y p t o G a m e s
    Cardene
    ERC721
    拡張機能の
    仕組みを理解しよう!

    View Slide

  2. 自己紹介

    View Slide

  3. 自己紹介
    Cardene(かるでね)
    2021年後半からNFTに興味を持ち、
    2022年夏頃からSolidityの勉強を始め
    る。
    新卒で入社した会社を辞めて今年の1月
    にCryptoGamesに参画。
    ■ 名前
    ■ 経歴

    View Slide

  4. ERC721
    の拡張機能

    View Slide

  5. OpenZeppelin
    OpenZeppelinとは、安全にスマートコントラ
    クトを開発するためのライブラリです。
    開発者は1から実装する必要がなくなる。
    多くのNFTのコントラクトで使用されてます。
    https://docs.openzeppelin.com/contracts/4.x/

    View Slide

  6. OpenZeppelin
    ERC721の拡張機能が7つ実装されています。
    ・ERC721Pausable
    ・ERC721Burnable
    ・ERC721Consective
    ・ERC721URIStorage
    ・ERC721Votes
    ・ERC721Royalty
    ・ERC721Wrapper

    View Slide

  7. ERC20
    とERC721

    View Slide

  8. ERC20
    とERC721
    の違い
    ERC20 ERC721
    代替性トークン 非代替性トークン
    交換できる 交換できない

    View Slide

  9. ERC20
    とERC721
    の違い
    ERC20 ERC721

    View Slide

  10. ERC20
    とERC721
    の違い
    ERC20 ERC721
    1
    2
    3
    4

    View Slide

  11. ERC20
    とERC721
    の違い
    ERC20 ERC721
    『誰が』
    『いくつ持っているか』
    『誰が』
    『何を持っているか』
    ・・
    ・・・

    View Slide

  12. ERC20
    とERC721
    の違い
    Mint : トークンを新規に生成すること。
    Transfer : トークンを誰かに送ること。
    ガス代:手数料のこと。
    トランザクション:取引のこと。
    ■ 用語の整理

    View Slide

  13. ERC20
    とERC721
    の違い
    ちなみに...
    『ERC』とは何でしょうか?

    View Slide

  14. ERC20
    とERC721
    の違い
    『ERC = 改善提案』
    番号は提案された順番。
    *ERC20 → 20番目の提案

    View Slide

  15. ERC20
    とERC721
    の違い
    ERC20
    トークンを作成するための標準規格(設計書)
    ERC721
    NFTを実装するための標準規格(設計書)

    View Slide

  16. ERC721Pausable

    View Slide

  17. NFTの送付機能をオン・オフする。
    ERC721Pausable

    View Slide

  18. ERC721Pausable
    ある値をオンにしたり、オフにしたりす
    ることでNFTの送付機能を制御する。
    不正を検知した時に緊急で送付機能を止
    めたりする時に使用される。
    送付機能だけなく、他の処理にも適用で
    きる。

    View Slide

  19. ERC721Burnable

    View Slide

  20. NFTをバーンする。
    ERC721Burnable

    View Slide

  21. ERC721Pausable
    NFTを0アドレスに送っている。
    あるNFTをバーンして、新たなNFTをゲ
    ットするなどが実例として挙げられる。

    View Slide

  22. ERC721Consective

    View Slide

  23. 複数のNFTを一気に作成する。
    ERC721Consective

    View Slide

  24. ERC721Consective
    連続したトークンID(NFTの番号)を持
    つNFTを複数発行できる。
    コントラクトの作成時にのみ実行するこ
    とができる。
    発行できる最大値を設定可能。

    View Slide

  25. ERC721Consective
    ■ なぜコントラクト作成時のみ実行なのか?
    ・他のNFT発行処理が走らないため、『連続し
    たトークンID』を確保できる。
    ・予期しないNFTの発行を防ぐことができ、セ
    キュリティを強化できる。

    View Slide

  26. ERC721URIStorage

    View Slide

  27. コントラクト内でURI情報を管理する。
    URI(データや情報、それがどこにあるか)
    ERC721URIStorage

    View Slide

  28. ERC721URIStorage
    コントラクト内でNFTのURIやメタ
    データ(データの説明や構造な
    ど)を管理している。
    独自のURIを設定してNFTに紐づけ
    ることができる。

    View Slide

  29. ERC721URIStorage
    ■ ERC721との違いは?
    ・ERC721ではデータが保存されている場所の
    URLなどを格納していた。
    ・独自のカスタマイズもできない。
    → ERC721URIStorageで簡単にカスタマイ
    ズ可能に!

    View Slide

  30. ERC721Votes

    View Slide

  31. NFTを利用した投票権の委任と追跡を行う。
    ERC721Votes

    View Slide

  32. ERC721Votes
    所有しているNFTの数だけ投票権を持て
    ます。
    自分自身、もしくは別のアドレスに投票
    権を渡し(委任)アクティブにします。
    投票権の委任機能と委任履歴を管理する
    拡張機能です。

    View Slide

  33. ERC721Votes
    投票イベント自体は別でコントラクトを
    作成し、アクティブな投票権を使用して
    投票を行うことができる。
    誰にも委任されていない投票権は無効と
    なる。

    View Slide

  34. ERC721Royalty

    View Slide

  35. ロイヤリティ(二次流通した時の
    売り上げの一部がクリエイターに
    入る)の強制化。
    ERC721Royalty

    View Slide

  36. ERC721Royalty
    NFTの売却価格と事前に設定されたパー
    センテージを使用して、ロイヤリティを
    計算する。
    NFTを購入するときは、ロイヤリティを
    支払わないと購入処理が実行されない。

    View Slide

  37. ERC721Royalty
    ■ ほんとにロイヤリティを強制できるの?
    ・答えとしては「できない」。
    ・結局はマーケットプレイスの実装次第。
    ・いろんな人が頭を使いながらできないか考
    えている。

    View Slide

  38. ERC721Wrapper

    View Slide

  39. NFTをもとに別のトークン発行。
    ERC721Wrapper

    View Slide

  40. ERC721Wrapper
    NFTをコントラクトに預けて、同じトー
    クンIDの別のトークンを発行する。
    トークンを「ラップ」するという。
    ラップされたトークンをバーンして、元
    のNFTを取り戻せる。

    View Slide

  41. ERC721Wrapper
    ラップに関しては、「ところてん」をイ
    メージすると理解しやすいです。
    一方からNFTを入れることで、もう片方
    から別のトークンが発行されます。

    View Slide

  42. ERC721Wrapper
    Aというゲーム(カードゲーム)のNFT
    をもとに、Bというゲーム(RPG)の
    NFTを取得する。
    所有しているNFTをレンタルする。
    複数の装備アイテムを取得する。
    ■ 使用場面

    View Slide

  43. まとめ

    View Slide

  44. まとめ
    色々なERC721の拡張機能を見てきました。
    よく使われるものもあれば、あまり使われないものも
    あるので、自分で触ってみたりして活用場面を考えて
    みるのも面白そうです。
    ERCの一覧を見てみるのも面白いのでおすすめです✨

    View Slide

  45. 最後に

    View Slide

  46. 最後に
    もっと詳しく知りたい方は以下の記事を参考に!
    OpenzeppelinのERC721の拡張機能を理解して
    使えるようになろう!
    普段記事を書いているので興味ある方はぜひ!
    Qiita
    ブログ

    View Slide

  47. 最後に
    Crypto Gamesでは積極的にメンバーを募集しています!
    少しでも興味持った方は是非お話からでもしましょう!
    以下から是非ご連絡ください!
    https://www.wantedly.com/companies/cryptog
    ames
    https://twitter.com/cardene777

    View Slide