最新のFinalのERC-6147を解読する:極めてシンプルな半強制的NFT所有権分離標準
著者:十四菌
2023年3月7日、10K Universeが提案したイーサリアム改善提案EIP-6147が最終版(Final)に移行しました!
この標準はERC-721の拡張であり、NFTとSBTの所有権と譲渡権を分離し、新しい設定可能な期限を持つ「ガード」役割を定義しています。これにより、NFTの盗難防止、貸出、賃貸、SBTなどがより柔軟になります。
この記事では、ERC-6147の実装メカニズムを体系的に説明し、過去のNFTレンタルプロトコルであるERC-4907、ERC-5055と比較して、このプロトコルの総合的な分析と適したアプリケーションシーンについて評価します!

1. 背景
NFTはもはや古くからの話題となっています。ブロックチェーン上の改ざん不可能な特性と契約自体の自動化によって、ブロックチェーン上の資産の権利確認と管理が実現されました。筆者も標準プロトコル、レンタル拡張プロトコル、さらにはNFT取引市場のいくつかの主流モデルについて多くの記事を書いてきました。
NFTの利点を証明するためには数ページにわたるリストを挙げることができるかもしれませんが、NFTの欠点を証明する場合、千言万語が一つの言葉に集約されます:流動性!
もちろん、皆さんは流動性不足の困難と所有権分離基準の実現に何の関係があるのか疑問に思うかもしれません。
筆者の見解では、実際にはNFTの流動性の困難はNFTプロトコル自体に起因するものではなく、IDの非同質化メカニズムと限定ID範囲によるものです。たとえERC20トークンがほぼ無限であっても、流動性が不足していることはありませんか?さらに重要なのは、流動性自体が金融商品に対する価格付けの要求から生じる話題であり、NFT自体に使用価値を持たせることが、価値が市場操作に依存するのではなく、依拠することになります。
NFTの使用価値に影響を与えるのも、まさにNFTプロトコル自体です。
1.1、所有権の結合、高価値NFTは安全な避難所を好む
現在、NFTの盗難事例は多く存在しますが、既存のNFT盗難防止策、例えばNFTをコールドウォレットに移すことなどは、NFTの使用を不便にします。
また、現在のNFT貸出において、NFT所有者はNFTをNFT貸出契約に移転する必要があり、NFT所有者は貸出期間中にNFTの使用権を失います。これは所有権の結合の問題であり、実際には私たちが現実で不動産を購入し、不動産を担保に流動資金を得る際、リスク条件がない限り、居住権を占有されることがない状況とは大きく異なります。
記憶に新しいのは、APEのエアドロップ時に攻撃者がフラッシュローンを用いてNFTXを利用して攻撃した事件です。

原事件の分析は以下のリンクで拡張して読むことができます:EIP-5058はNFTプロジェクトの運営者が逃げるのを防げるか?
この件で唯一損害を受けたのは、APEを担保にしたユーザーであり、本来は微々たる時間利差を得るはずが、APEの大量エアドロップを失ってしまいました。
同様に、所有権の結合にはSBTの問題もあります。
SBTに関しては、現在の主流の見解ではSBTは譲渡不可能であり、これによりSBTはイーサリアムアドレスに結びついています。しかし、ユーザーアドレスの秘密鍵が漏洩または紛失した場合、SBTを取り戻すことは複雑な作業となり、相応の基準もありません。SBTは本質的にNFTの所有権と譲渡権を分離しています。SBTが存在するウォレットが盗まれたり使用できなくなった場合、SBTは復元可能であるべきです。
例えば、大学が卒業生に基づいてSBTを授与する場合、大学が後に卒業生に学術的不正行為や大学の評判を損なう行為を発見した場合、その文凭のSBTを回収する能力を持つべきです。
1.2、所有権分離の課題、強制的な次元の制御が難しい
過去に十四は、所有権分離の試みとしてERC-4907やERC-5058を解読したことがありますが、避けられない最大の課題は強制性の程度の測定です。これはプロトコル自体の問題ではなく、プロトコル自体の哲学的理念の問題です。
1.2.1、シンプルな哲学ERC-4907、ビジョンを定義し残りは合意に委ねる
2022年7月、NFTレンタル市場Double Protocolが提出したレンタブルNFT標準「EIP-4907」がイーサリアム開発チームの最終審査を通過し、第30のERC標準として「Final」の状態となりました。
コードは非常にシンプルで72行しかなく、この標準を使用することで、元のERC721の上に新たに
- 1つのイベント(オフチェーンアプリケーションに通知するためのイベント)
- 3つのメソッド(オンチェーンデータ管理機能を実現するためのもの)
原理を追求すると、4907は実際には所有権の概念の外に「ユーザー」の次元を追加したデータオブジェクトUserInfoを新たに追加しただけですが、強制性は限られており、移転すれば賃貸権限を強制的に終了させることができます。
詳細は以下のリンクで拡張して読むことができます:
721レンタルプロトコルの解読:イーサリアム新標準EIP-4907はどのようにNFTレンタルを実現するのか?
1155レンタルプロトコルの解読:NFTレンタル提案EIP-5006が最終審査に入った!
1.2.2、0信頼哲学のERC-5058、コードは法律
彼は本質的にNFTのロック状態を管理し、プロジェクト側が5058を実現したNFTプロジェクトにおいて、ロックして譲渡する機能を提供し、ロイヤリティなどのさらなる機能を実現することができます。
彼は複数の提供方法を封装しており、ユーザーの許可とプロジェクト側の実行後にのみ完全にロックされます。
ユーザーは以下を呼び出すことができます:
- lockApprove(単一NFTのロックを許可)
- setLockApprovalForAll(そのアドレス下のすべてのNFTのロックを許可)
プロジェクト側の契約呼び出し:
- lockFrom(ユーザーのNFTをロック)
- unlockFrom(ユーザーのNFTを解除)
ロック期間の定義も非常に強制的で、ほぼ設定当初の時間点に基づいています。
プロジェクト側(第三者)がNFTをロックする際には、ロックの期限が切れるブロック高を指定する必要があり、その高さは現在のブロック高よりも大きくなければなりません。期限が切れた後、NFTは自動的に解放され、移転が可能になります。
プロジェクトは現在草案段階にあり、強制性が高すぎることやユーザーとプロジェクト側の双方向操作の高コストが原因かもしれません。
詳細は以下のリンクで拡張して読むことができます:EIP-5058はNFTプロジェクトの運営者が逃げるのを防げるか?
上述の完全に強制的でない4907と、完全に強制的な5058について述べた後、この記事のテーマに入ります:最新のイーサリアム財団の審査を通過し、Finalとして確定したERC-6147です。彼の元のタイトルは「NFT/SBTのガード、ERC-721の拡張」ですが、十四君の一連のレンタル研究の経験から、彼は「半強制的なNFT所有権分離基準」と呼ぶべきです。
2. ERC-6147の運用メカニズム
このプロトコルの全体コードも非常に簡潔で高い再利用性を持ち、ERC721の拡張標準に属しますが、注意が必要です。これを使用すると、移転操作が通常の721のロジックとは異なる可能性があり、不適切な操作はフィッシングに遭いやすくなります。具体的には、これから詳しく説明します。
推奨される拡張読書:【ソースコード解読】あなたが購入したNFTは実際に何ですか?
2.1、ガードとは何か?誰が制御できるのか?
まず、ERC-6147は「ガード(Guard)」という役割を定義しており、4907のUserInfoに非常に似ています。
ガードはそのNFTの現在の所有者アドレスと、代わりに引き落とし権限を持つアドレスのみが設定でき、changeGuardを通じて設定できます。ソースコードを見ると、ガードを設定する際のいくつかの詳細があり、誤ってロックされるのを防ぐため、ガードは0アドレスに設定できません。

設定が成功すると、誰でもguardInfoメソッドを通じて特定のNFT IDの現在のガード情報を照会できます。また、ここでも4907と同様にタイムスタンプに基づく設計が採用されているため、期限が来れば二次的なオンチェーン取引なしで自動的に無効になります。ガードの身分を取り除けるのは、ガード自身と時間(期限)だけです。

2.2、ガードは何ができるのか?
まず、強制的な移転権を持ち、ガードが設定されたNFTに対してtransferFromを行う際、取引を開始した者がガードアドレスであるかどうかを確認します。そうでなければ移転できません。

? 特に注意してください1:
ガードが設定されたNFTに対して、元の所有者は所有権のみを持ち、譲渡権(すなわち使用権)は持ちません。他のDappは依然としてこのNFTの所有者が元のユーザーであることを照会できますが、元のユーザーはそれを移転することができません。
したがって、ガードが設定されたNFTは、opensea、x2y2などの取引プラットフォームでの署名は有効ですが(実際の移転はできません。なぜならSeaportなどのプロトコルが移転を実行する際、Seaportプロトコルが引き落としの許可を通じて実行するからです)。
取引市場の運用メカニズムについては、以下のリンクで拡張して読むことができます:
? 特に注意してください2:
もしガードがそのNFTを直接移転した場合、元のtransferFromまたはsafeTransferFromメソッドを使用しても、実際にはガードの設定は自動的にクリアされません。もちろん、ガードがNFTを自分に転送することは問題ありませんが、もし他のユーザーに転送し、その後ガードの設定を利用して再度移転することは可能です。
したがって、今後ガードを使用する場合は、transferAndRemoveメソッドを使用しているかどうかを確認する必要があります。このメソッドは移転後にガード情報を直接クリアします。
さらに、ガードは本質的に高い制御権を持つものであり、住宅の賃貸や担保の瞬間に本質的に銀行に属することと同様です。ただし、銀行が特定の社会的条件(例えば、違約)を満たす場合にのみ、オークションなどの操作を実行します。金融担保の属性を持つ以上、ガード権を再度転送することも可能であり、changeGuardメソッドを使用すればよいのです。
transferRemoveの設計原則は、異なるシーンに適応するためのものです。
例えば、盗難防止のために、NFTがホットウォレットにあり、ホットウォレットが盗まれた場合、コールドウォレットは安全であり、他の安全なアドレスにtransferFromすればよいのです。
または、賃貸の際に、ガードがtransferFromを呼び出して新しい賃貸アドレスに転送することで、賃貸が実現されます。
さらに、SBTのソーシャルリカバリーでは、SBTを新しいアドレスに転送しても、SBTの譲渡不可能な特性には影響しません。
2.3、ガードは何ができないのか?
ソースコードから見ると、ガードに関連するのは付与時のみであり、所有者と承認者が設定できますが、ガードは引き落としを設定することはできません。
一方では、もはや引き落としの許可者を考慮する必要がないためです。なぜなら、本質的にそのNFTの譲渡権はガードに制限されているからです。もう一方では、ガードはApproveを設定できないため、ガードが譲渡権を返還した後に、approveを使用してNFTを移転することを防ぐためです。これにより、元々の意図に反する状況が生じ、ユーザーが気づきにくくなります。
3. まとめ
金融属性に満ちた、やや世俗的な統計を用いて、現在のイーサリアム上のNFTタイプの資産概要を示します。
毎日30万件以上のNFT取引、20万件以上の各種NFT契約、これらの総数は資産の権利確認によってもたらされる金融属性の価値を示しています。

しかし、金融属性は常に徐々に依拠する必要があります。NFTを用いてソーシャル関係を確認するLens、NFTを用いてゲーム資産を作成するさまざまなGamefi、コンテンツ制作を分割クラウドファンディングで行うMirrorなどが見られます。
イーサリアムが誕生してからわずか8年余りの間に、EIPの提案総数は6500件を超えました。
同じく重要な4907と比較すると、6147は互換性の最適化において強みを持っています。
例えば、4907がレンタルを行う場合、ユーザーという役割はプロジェクトの積極的な承認を必要とします。もしゲームがユーザーという役割を考慮せず、所有者のみを考慮している場合、4907は適用できません。しかし、6147は所有者を認めるだけで十分であり、ゲームプロジェクトやNFT自体がレンタルをサポートしているかどうかを気にする必要はありません。現在のほとんどのアプリケーションプロトコルは依然として所有者のみを認めており、これが4907が登場した後も状況を大幅に変えられない理由でもあります。時代の潮流に適応することで、徐々に光を放つことができるのです。
さらに6147は「管理可能なSBT」と「有効なSBT」の概念を提唱しています。現在のSBT提案設計は、Vitalikが提唱した「譲渡不可能」特性に過度に注目していますが、NFTの潜在的な管理シーン、例えばソーシャルリカバリーやSBTの回収(例えば学術的不正行為があった場合、学位を回収する必要がある、またはDAOメンバーがコミュニティで悪事を働いた場合、そのSBT権限を回収する必要がある)を無視しています。













