トークン規格・ERC721xの理解
本記事は、Understanding ERC721x Token Standard(Dev Bharel) の翻訳です。万一誤訳などありましたらPrivate Note機能でお知らせ下さい。
先駆者であるCryptoKittiesがブロックチェーンゲームで使用て以来、ノンファンジブルトークン(短くNFTと呼ぶ)はかなり勢いを増している。これはクリプトトークンにERC20トークンが価値を添付していたのを超えて、データの添付を行う手段を提供してくれるものだ。
この新たなトークン基準はERC721と呼ばれ、Ethereumブロックチェーン上でユニークな収集物を発行及びトレードすることを可能にする。本物であることを人間が検証する物理的な収集物とは違い、これらデジタルアセットは本物であることが実証可能だ。「代替可能」な、すなわち善トークンが同一価値であるため互換性があるERC20トークンとは異なり、ERC721トークンはユニークかつ置き換えができないものなのだ。
Loom PlasmaChainはゲームに最適化されたブロックチェーンであるため、ポピュラーな議論の1つがERC721トークン規格であるのは当然のことだ。
ERC721はアイテムのクラスを定義し、各トークンに異なる特性を持たせている。 例えばCryptoKitties(こちらからコードを見ていこう)にはKittyクラス(241行目)があり、genes(遺伝子)、birthtime(猫が生まれた時の、ブロックのタイムスタンプ)、matronid(猫の母親のID)、sireid(猫の父親のID)などのキティの基本的なフォーマットを定義している。新たなキティが生成される際にこれらの変数はカスタマイズされるので、全キティが変数という点では同じ構造を持っているが、各変数の値はそれぞれ異なったものになっている。
これはCryptoKittiesのような1タイプの収集物(すなわちキティ)しかない収集ゲームには非常に良いものだが、複数タイプの収集物の場合には機能しない。もしキティのおもちゃを収集物に加えたければ、新たなERC721コントラクトの作成が必要になる。そして各タイプの収集物に別々にコントラクトを作ると、すぐにスケーラブルでなくなってしまう。
これを解決するには、ERC721を拡張したものがある: ERC1178。 ERC1178は、複数タイプの収集物を同一のERC1178コントラクト内で定義することを可能にするものだ。つまり任意のタイプの収集物をどんな量でも一度に移転することができるということであり、これは個々では価値がないが、まとめると価値のある安価な収集物について非常に役立つものだ。
一見ERC1178はこの問題に対する完璧な解決法に思えるが、ここには裏がある。 既存のウォレットや取引所との互換性がないのだ。だからERC1178を実装するには、それを自分のアプリケーションに実装するだけでなく、この仕様をサポートしているウォレットをプレイヤーが使っていることを期待しなくてはならない。
ERC721xの導入
ERC721xは、LoomのERC721エクステンションである。これはマルチファンジブルクラスをサポートするERC721互換トークンだ。
ERC1178をベースに使っているので、ERC721xのクリプト収集物サポート機能のオプショナルレイヤーはかなり薄くなっており、ERC721互換レイヤーの中に全てがラップされている。そのため、これは現在使われているウォレットや交換所のインフラによりサポートされているのだ。 互換レイヤーは、必要に応じて単一のERC721トークンを生成することができるmint関数を保持している。
こちらのGithub上でERC721xトークンのフルコードを見てみよう。
具体的にERC721xの互換性は、mint()関数の形式に現れている。
この関数のヘッダーは通常のERC721コントラクトにあるものと同じだが、内部のロジックがチェックしているのは、そのタイプのトークンが存在するのか、そうであればそのコピーを別にプリントするということだ。これは複数の異なるタイプのアセットのコピーを可能にしてくれる。10枚のFireミニョンカードが10の異なるトークンIDを持つのではなく、リスト上でそれら全ては同じIDを持ち、数量の調整も可能なのだ。
これはつまり、Ethereum上でERC721アセットを入手し、そのアセットの何百ものコピーをトレードすることが1つのERC721を移転させるのと同じコストで可能になるのだ!開発者については、同一のERC721コントラクトに複数タイプのアセットを含めて、より濃いUXの作成に役立て流ことができるようになる。
あなたのトークンコントラクトにERC721xをデプロイするには、このリポジトリをクローンしよう。この中では、インターフェース及びレシーバのためのコード、さらにはスタート時に役立つリファレンス用の実装も見つけることができる。
Loom Network は、イーサリアムのハイスケーラブルなDPoSサイドチェーン構築のためのプラットフォームで、大規模ゲームやソーシャルアプリにフォーカスしています。
さらなる情報は こちらから.
LOOMトークンをステークして、PlasmaChainのセキュリティ維持に参加しませんか? やり方はこちら
あなたがブロックチェーンゲームのファンであれば、 Zombie Battlegroundをチェック!世界初・独自のブロックチェーン上でフルに稼働するPC & モバイルカードゲームです。
そしてもしこの記事をお楽しみいただけ、最新情報の受け取りをご希望であれば、私たちの プライベートメーリングリストへの登録や、Telegram、Twitter、GithubやQiitaのフォローをお願いします!
Thanks to Jacob Frey and Robert H. Some rights reserved