XRP LedgerのDynamic NFT機能
はじめに
この記事はXLS-46d Dynamic NFTを紹介するものです。
Abstract
この提案は、XLS-20 NFTのトークンプロパティを変更/アップグレードするためのサポートを提供することを目的としています。
XLS-20はNFT/非代替性トークンのサポートを提供しますが、これらのトークンは変更不可であり、変更を許可されていません。現在、NFTは変更できないため、新規発行が頻繁に行われ、これによりレジャーの肥大化が起こり、貴重なリソースを消費します。また、Webサイトのエンドポイントを使用して動的な機能を模倣するような実験的なアプローチも行われています。
変更不可なNFT以外にも、dNFT(Dynamic Non-Fungible Token)と呼ばれる変更可能なNFTに関する幅広いユースケースが存在します。この機能を実現するために最も侵襲性の低いアプローチを選択しながら、開発者とユーザの両方にNFTのすべての側面をカバーする両方のオプションを提供することが目標です。
動機
通常、NFTは本質的に静的(Static)です。静的NFTとは、ブロックチェーン上に保存された変更不可能な特性を持つNFTを指し、変更することができません。これらの静的NFTには、画像、動画、GIFファイル、音楽、アンロック可能なコンポーネントなど、さまざまな形態があります。例えば、バスケットボール選手がゴールにシュートを決める様子を描いたイラストは、静的NFTの一例です。
一方、Dynamic NFT(dNFTと略される)は、NFTの進化における次のフェーズを表しています。これらのDynamic NFTは、NFT固有の独自性と動的データ入力の組み合わせをシームレスに統合します。これらの入力は、ブロックチェーン上または外部で実行される計算から生じる可能性があります。
Oracleは、NFTにリアルワールドの動的データを提供することができます。例えば、Dynamic NFTは、バスケットボール選手が実際にプレイしている際のパフォーマンス統計をリアルタイムで表示することができます。
仕様
3. 新しいトランザクターとフラグ
以下を追加します。
New Transactor
- NFTokenModify
New Flags
- tfMutable
3.1 tfMutable
NFTokenMintの新しいフラグ
| フラグ名 | フラグ値 | 説明 |
|---|---|---|
tfMutable |
0x00000010 |
発行者(または発行者が承認した主体)がURIを変更することを許可する |
3.2 NFTokenModify
NFTokenModifyはNFTのURIプロパティを変更するために使用されます。
トランザクション固有のフィールド
| フィールド名 | 必須? | JSONの型 | 内部型 |
|---|---|---|---|
TransactionType |
✔️ |
文字列 |
UINT16 |
Ownerが指定されていない場合、送信者のAccountがNFTのOwnerであると推測されます。
| フィールド名 | 必須? | JSONの型 | 内部型 |
|---|---|---|---|
Owner |
文字列 |
ACCOUNT ID |
更新対象のNFTokenオブジェクトを示します。
| フィールド名 | 必須? | JSONの型 | 内部型 |
|---|---|---|---|
NFTokenID |
✔️ |
文字列 |
UINT256 |
NFTに関連付けられたデータやメタデータを指す新しいURI。
URIが省略された場合、XRP Ledger内の対応するURIレコード(存在する場合)は削除されます。
| フィールド名 | 必須? | JSON型 | 内部型 |
|---|---|---|---|
URI |
文字列 |
BLOB |
例 (URIの変更):
{
"TransactionType": "NFTokenModify",
"Account": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh",
"Owner": "rogue5HnPRSszD9CWGSUz8UGHMVwSSKF6",
"NFTokenID": "0008C350C182B4F213B82CCFA4C6F59AD76F0AFCFBDF04D5A048C0A300000007",
"URI": "697066733A2F2F62616679626569636D6E73347A736F6C686C6976346C746D6E356B697062776373637134616C70736D6C6179696970666B73746B736D3472746B652F5665742E706E67",
}
NFTokenIDで指定したNFTにtfMutableフラグが設定されていない場合、NFTokenModifyは失敗します。
tfMutableが設定されている場合、Issuerまたは特定のフラグに従ってNFTokenMinterを介して承認されたAccountのいずれもがトランザクションを実行していない場合、NFTokenModifyは失敗します。
このアプローチは、NFToken FlagsがNFTokenIDの一部であることを考慮しており、NFTokenIDの一部となっているものの変更は避けなければなりません。
Discussion