Slide 1

Slide 1 text

2020.02.27 荒川


Slide 2

Slide 2 text

© 2020 Metaps Alpha Inc. All Rights Reserved. 2 現在、ブロックチェーンで所有権を示すために Ethereum の という規格が最も利用されている

Slide 3

Slide 3 text

© 2020 Metaps Alpha Inc. All Rights Reserved. 3 • 本日は、最近新しくトークン規格として確定した について、実際のところどうなのかを話します

Slide 4

Slide 4 text

© 2020 Metaps Alpha Inc. All Rights Reserved. 4 ○ NFT(Non-Fungible Token)と FT(Fungible Token)を 両方とも表現できる Ethereum のトークン規格 ○ Enjin(Dapp 開発プラットフォーム)が提案し、規格として採択 ○ コントラクト1つだけで複数のトークンを作れる ○ トークンを効率的に操作できる

Slide 5

Slide 5 text

© 2020 Metaps Alpha Inc. All Rights Reserved. 5 100 ゴールド 剣 薬草 Fungible(数量に意味がある) Non-Fungible(1つ1つ違う) • ゲーム内で利用する と様々な を作りたい

Slide 6

Slide 6 text

© 2020 Metaps Alpha Inc. All Rights Reserved. 6 ユーザ1:100 剣1の所有者:ユーザ1 薬草1の所有者:ユーザ1 ERC-20 トークン ERC-721 トークン ERC-721 トークン アドレス管理 トークンごとの権限設定 リクエスト増加 ユーザ1:100 剣1の所有者:ユーザ1 薬草1の所有者:ユーザ1

Slide 7

Slide 7 text

© 2020 Metaps Alpha Inc. All Rights Reserved. 7 ERC-1155 トークン ゴールド:100 剣   :1 薬草  :1 ユーザ1

Slide 8

Slide 8 text

© 2020 Metaps Alpha Inc. All Rights Reserved. 8 • Gas 代が安い(アイテムの送付・売買) • Gas 代が安い(アイテムの送付・売買、管理者操作など) • ノードへのリクエストが減る • 実装がシンプル • トランザクションが減る • ストレージ使用量が減る • ノードへのリクエストが減る

Slide 9

Slide 9 text

© 2020 Metaps Alpha Inc. All Rights Reserved. 9 (コントラクトのインターフェースとルール) https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1155.md • Enjin https://github.com/enjin/erc-1155 • Sandbox’s Asset https://etherscan.io/address/0x067a1eb5e383ed24b66d72aaf80d8d7db3d299a8#code • 0x プロトコルのライブラリ https://github.com/0xProject/0x-monorepo/tree/b3c3ec/contracts/erc1155/contracts/src • OpenZeppelin のライブラリ(2020.2.26 現在 レビュー中) https://github.com/OpenZeppelin/openzeppelin-contracts/issues/1728

Slide 10

Slide 10 text

© 2020 Metaps Alpha Inc. All Rights Reserved. 10

Slide 11

Slide 11 text

© 2020 Metaps Alpha Inc. All Rights Reserved. 11 ※便宜上、修飾子を省略、変数名を一部変更 ・トークンを送付する(IDと数量を指定) ・トークンを一括送付する(IDと数量を複数指定) 関数

Slide 12

Slide 12 text

© 2020 Metaps Alpha Inc. All Rights Reserved. 12 ・トークンの残高を取得する(所有者とIDを指定) ・トークンの残高を一括取得する(所有者とIDを複数指定) ※便宜上、修飾子を省略、変数名を一部変更 関数

Slide 13

Slide 13 text

© 2020 Metaps Alpha Inc. All Rights Reserved. 13 ・トークンを送付する権限を設定する(オペレータと権限を指定) ・トークンを送付する権限を確認する(所有者と調べたいアドレスを指定) ※便宜上、修飾子を省略、変数名を一部変更 関数

Slide 14

Slide 14 text

© 2020 Metaps Alpha Inc. All Rights Reserved. 14 ・トークンのメタデータ URI 更新のログ ・トークン送付のログ ・トークン一括送付のログ ※便宜上、修飾子を省略、変数名を一部変更

Slide 15

Slide 15 text

© 2020 Metaps Alpha Inc. All Rights Reserved. 15 ・トークン送付の権限設定のログ ※便宜上、修飾子を省略、変数名を一部変更

Slide 16

Slide 16 text

© 2020 Metaps Alpha Inc. All Rights Reserved. 16 冗長な関数、変数は提供しない 何度も参照する情報はイベントに記録する

Slide 17

Slide 17 text

© 2020 Metaps Alpha Inc. All Rights Reserved. 17 • トランザクション削減、Gas 削減のため • オフチェーンでインデックスできるようイベントに残している • Gas 節約のためマップを保持していない • ○ transferFrom がない(safeTransferFrom のみ) ○ approve がない(setApprovalForAll のみ)

Slide 18

Slide 18 text

© 2020 Metaps Alpha Inc. All Rights Reserved. 18 • ……… 同じ ID のトークンが複数ある • … 同じ ID のトークンは 1 つだけ #1111 ゴールド × 100 
 #2222 剣 × 10
 #9999 伝説の剣 × 1 
 メタデータは同じ

Slide 19

Slide 19 text

© 2020 Metaps Alpha Inc. All Rights Reserved. 19 0x0 0000000000000000000000000000001 00000000000000000000000000000000 連番 常にゼロ 連番   (トークンのグループを示す) 連番 (同じグループ内の連番) NFを示す フラグ 0x8 0000000000000000000000000000001 00000000000000000000000000000001

Slide 20

Slide 20 text

© 2020 Metaps Alpha Inc. All Rights Reserved. 20 ※ 0x protocol library の実装で検証

Slide 21

Slide 21 text

© 2020 Metaps Alpha Inc. All Rights Reserved. 21 ※ 0x protocol library の実装で検証

Slide 22

Slide 22 text

© 2020 Metaps Alpha Inc. All Rights Reserved. 22 ERC-1155 トークン送付のイベント数
 ※ TransferSingle / TransferBatch の合計(mint 除く)

Slide 23

Slide 23 text

© 2020 Metaps Alpha Inc. All Rights Reserved. 23 トークン送付のイベント数
 ERC-721
 ERC-1155


Slide 24

Slide 24 text

© 2020 Metaps Alpha Inc. All Rights Reserved. 24 ERC-1155 コントラクトの数

Slide 25

Slide 25 text

© 2020 Metaps Alpha Inc. All Rights Reserved. 25 507958 Enjin
 74398 不明(2019/07以降使われていない) 
 1420 Cryptovoxel Wearables (WEAR) 
 728 Gnosis の ConditionalTokens 
 585 不明(2019/09以降使われていない) 
 396 Sandbox's ASSETs 
 239 Rhovit というプロジェクト 
 94 ReceiptChain というプロジェクト 
 60 不明(2019/04以降使われていない) 
 47 BlockchainCutiesERC1155 
 14 Neon District Radiant Blade (NDRB) 
 * 2019/6/1-2020/2/10のmintを除く 
 TransferSingle / TransferBatch 


Slide 26

Slide 26 text

© 2020 Metaps Alpha Inc. All Rights Reserved. 26 • トークンの法的な扱いが決まっていない Fungible も混合なので、規制対象になるかも • ERC-721 / ERC-20 と互換性がない アプリ/ウォレットごとに対応が必要なので置き換えが大変 • イベントをインデックスする仕組みがないとトークン情報を取れない ERC-721に比べると、アプリへの導入ハードルが高い

Slide 27

Slide 27 text

© 2020 Metaps Alpha Inc. All Rights Reserved. 27 (・ トークンID の10進表記がやたら長い値なので、視認性が悪い) 16進表記:0x8000000000000000000000000000000100000000000000000000000000000001 10進表記:57896044618658097711785492504343953926975274699741220483192166611388333031425

Slide 28

Slide 28 text

© 2020 Metaps Alpha Inc. All Rights Reserved. 28 • ブロックチェーンのデータをインデックスする インフラ基盤が整ってくれば、普及するかも? • インフラ基盤がないと・・・ 単体機能は ERC-721 より劣るので、普及は難しそう (ちなみに、実装は ERC-721 よりクセが強い)

Slide 29

Slide 29 text

© 2020 Metaps Alpha Inc. All Rights Reserved. 29 • オンチェーンは必要最小限、シンプルに • オフチェーンの分権化に焦点

Slide 30

Slide 30 text

© 2020 Metaps Alpha Inc. All Rights Reserved. 30 • ERC-20: Token Standard • ERC-721: Non-Fungible Token Standard • ERC-777: Token Standard • ERC-1155: Multi Token Standard • ERC-864: Divisible non-fungible tokens • ERC-1178: Multi-class Token Standard • ERC-1633: Re-Fungible Token • (ERC-223: Token Standard) • ERC-721x