# [ERC7531] NFTのステーキング時に所有権を安全に保持するインターフェースの仕組みを理解しよう！

> ERC721トークン、特にロック機能を持たない古いNFT（例えばCrypto PunksやBored Ape Yacht Club（BAYC）トークン）をプールにステーキングするとき、所有権の認識に関して特有の課題が生じます。

- URL: https://cardene.dev/articles/4aea6f01e0fc71b53e0e
- 公開日: 2024-03-07
- 更新日: 2024-03-07
- トピック: Blockchain
- タグ: ethereum, solidity, smartcontract, ブロックチェーン

## はじめに

初めまして。
**CryptoGames**というブロックチェーンゲーム企業でエンジニアをしている **cardene（かるでね）** です！
スマートコントラクトを書いたり、フロントエンド・バックエンド・インフラと幅広く触れています。

https://cryptogames.co.jp/

代表的なゲームは**クリプトスペルズ**というブロックチェーンゲームです。

https://cryptospells.jp/

今回は、**ERC721**形式のNFTをステーキングする時、所有権を安全に保持しつつインターフェースを提案している**ERC7531**についてまとめていきます！

:::message
以下にまとめられているものを翻訳・要約・補足しながらまとめていきます。
:::

https://eips.ethereum.org/EIPS/eip-7531

他にも様々なEIPについてまとめています。

https://cardene.notion.site/ERC-EIP-2a03fa3ea33d43baa9ed82288f98d4a9?pvs=4

## 概要

**ERC721**トークン、特にロック機能を持たない古いNFT（例えばCrypto PunksやBored Ape Yacht Club（BAYC）トークン）をプールにステーキングするとき、所有権の認識に関して特有の課題が生じます。
この規格は、この課題を解決するためのインターフェースの提案をしています。

:::message
ロック機能を持たない古いNFTとは、主に初期のブロックチェーンプロジェクトで発行された非代替トークン（NFT）のことを指します。
これらのNFTは、ブロックチェーン上で独自のデジタル資産を表し、所有者による譲渡が可能ですが、現代のいくつかのNFTと異なり、特定の機能や状態を「**ロック**」する機能が組み込まれていません。
このロック機能は、NFTが特定の条件下で移動や使用を制限するために使われます。

#### ロック機能の欠如がもたらす課題

ロック機能がないことで、これらの古いNFTはデジタル資産の柔軟な利用においていくつかの制約に直面します。
例えば、DeFiプロジェクトやステーキングプールに参加させる時、現代のNFTと比較して次のような課題があります。

- **所有権の移転**
    - NFTをステーキングするとき、一般にNFTはステーキングコントラクトに「**預けられ**」ます。
    - ロック機能を持つNFTでは、所有権がステーキングプールに移転するのを防ぎつつ、NFTが特定の条件下で「**ロック**」されることを可能にします。
    - しかし、ロック機能を持たない古いNFTでは、ステーキングプールへの移転が実際の所有権の移転を意味し、これにより元の所有者はNFTに関連する特典や権利へのアクセスを失う可能性があります。

- **特典の利用**
    - 特定のNFTは、所有者に特別なイベントへのアクセスや限定コンテンツへの利用権を与えるなど、追加の特典を提供します。
    - 例えば、Bored Ape Yacht Club（BAYC）のNFT所有者は、専用イベントへの招待などの特典を受けられます。
    - これらの特典は通常、NFTの所有権に基づいていますが、ロック機能のないNFTがステーキングプールに預けられると、元の所有者はこれらの特典へのアクセスを失います。

#### 例

- **CryptoPunks**
    - 2017年に発売された、ブロックチェーン上で最初のNFTプロジェクトの一つです。
    - これらはロック機能を持たず、その所有権はEthereumブロックチェーン上のトランザクションによってのみ譲渡されます。
- **Bored Ape Yacht Club (BAYC)**
    - 2021年に発売されたものの、初期の設計ではロック機能を考慮に入れていませんでした。BAYCは特定のコミュニティイベントや特典へのアクセスを所有者に提供します。

古いNFTに限らず、ロック機能がないNFTに当てはまります。
:::

:::message
**ERC721**については以下の記事を参考にしてください。
:::

https://chaldene.net/erc721

#### 背景
**ERC721**トークンは、一意性と所有権を持つデジタルアセットであり、ブロックチェーン上での独自性と希少性を保証します。
しかし、これらのトークンをステーキングする時（例えば、流動性プールや報酬獲得のために）、従来のシステムではNFTがプールに預けられると、その所有権が一時的にプール管理者やスマートコントラクトに移ることがあります。
これにより、オリジナルの所有者がその所有権を失ったように見える問題が発生します。

#### 課題
特に古いNFTで、後から所有権やアクセス権を制御するためのロック機能を追加することができない場合、これらをステーキングするときに所有権の明確な認識が難しくなります。
その結果、所有者は自分のNFTがステーキングされている間、それに対する直接的な制御を失うことになります。

#### 解決策の提案
ここで、ステーキングされたNFTをオリジナルの所有者に認識させるための新しいインターフェースの導入が提案されています。
このインターフェースは以下の特徴を持ちます。

- **所有権の透明性**
    - ステーキングされているNFTが、依然としてオリジナルの所有者に属していることを明確に認識させます。
- **安全なステーキング**
    - NFTをステーキングする時に、所有権を安全に保持しつつ、プールに対して必要なアクセス権を提供します。
- **インターフェースの一般化**
    - 古いNFTでも新しいNFTでも、ステーキング機能を統一的にサポートするための標準化された方法を提供します。

#### 実装の考慮事項
- **スマートコントラクトの拡張**
    - 既存の**ERC721**スタンダードに追加的な機能を持たせるスマートコントラクトを開発し、ステーキングされたNFTの所有権を管理します。
- **互換性**
    - この新しいインターフェースは、既存の**ERC721**トークンと互換性があり、かつ容易に統合できるように設計する必要があります。
- **ユーザーインターフェイスの改善**
    - ユーザーが自分のNFTがステーキングされている状態を容易に認識できるよう、ウェブやモバイルアプリケーションのユーザーインターフェイスを改善します。

この提案は、NFTのステーキングプロセスをより透明で安全にすることを目指しています。
オリジナルの所有者が自分のNFTに対する所有権を明確に保持し続けられるようにし、同時にステーキングの利点を享受できるようにすることが目標です。

## 動機

提案されているインターフェースは、NFTのステーキングと所有権の課題に対する解決策を提供することを目的としています。
特に、CryptoPunks、Bored Ape Yacht Club（BAYC）、EtherRocksのような初期のビンテージNFTは、ロック可能な機能をネイティブに備えていないため、ステーキング時に所有権がステーキングプールのコントラクトに完全に移転します。
これは、元の所有者がNFTに関連する貴重な特権や利益へのアクセスを失うことを意味します。
例えば、BAYCのNFT所有者はステーキングされた時にBAYCやメンバーイベントへのアクセスを失い、CryptoPunksの所有者は検証済みの所有者のみが利用できる特別なエアドロップや展示を逃すかもしれません。
また、EtherRocksのような他の初期NFTの所有者は、ステーキングされた時に所有権の社会的価値を失います。

:::message
EtherRocksなどの初期NFTプロジェクトは、デジタル資産としての希少性や独自性に加えて、コレクターや投資家に社会的地位やアイデンティティの象徴としての価値も提供します。
これらのNFTは、特定のコミュニティ内での認知やステータス、またはデジタル世界における一種のステータスシンボルとして機能します。
例えば、特定のNFTを所有していることで、限定イベントへのアクセス権を得たり、特定のオンラインコミュニティ内での声望を確立したりすることがあります。

しかし、これらのNFTをステーキングする時、技術的には所有権がステーキングコントラクト（またはプール）に移転するため、オリジナルの所有者はそのNFTに関連する特権や社会的地位を一時的に失う可能性があります。
例えば、NFTがアクセス権や特定の特典の鍵となっている場合、そのNFTがステーキングプールに預けられている間は、元の所有者はその特典を享受できなくなります。

この問題は、NFTが単なる投資や収集品以上の価値を持つケースで顕著です。
NFTの所有がコミュニティ内での所属感や認識を生み出す場合、ステーキングによってそれらの社会的価値を一時的に失うことは、所有者にとって大きな損失となり得ます。
したがって、ステーキングされた時にもオリジナルの所有者がその社会的価値やNFTに関連する特権を維持できるようにする仕組みの開発は、NFTコミュニティにとって重要な課題となっています。
:::

この問題を解決するために提案されているインターフェースは、以下の特徴を持ちます。

#### オリジナルの所有者を記録
ステーキングされているNFTのオリジナルの所有者を明確に記録し、これによりNFTがどこか他でステーキングされていても、オリジナルの特典がアクセス可能なままであることを保証します。

#### 既存の機能や所有権の利点に影響を与えない
このインターフェースは、NFTの核となる機能性や所有権の利益に影響を与えずに、レガシーNFTのステーキング互換性を拡張するためのシンプルでエレガントな方法を提供します。

#### 互換性と拡張性
このインターフェースは、ロック可能な機能をネイティブに持たないビンテージNFTプロジェクトにとって重要な互換性を提供し、既存の**ERC721**スタンダードを拡張する形で設計されています。

#### 実装のポイント
このインターフェースの実装には、スマートコントラクトを介してステーキング時にオリジナルの所有者情報を維持する仕組みを含めることが重要です。
具体的には、ステーキングされたNFTに関連するすべての操作（例えば、ステーキングの登録や解除）において、オリジナルの所有者の権利とアクセスを保持するためのロジックが必要です。

:::message
この提案されたインターフェースは、ビンテージNFTの所有者がステーキングを利用しつつ、彼らのNFTに関連する特典や社会的地位を維持できるようにすることで、NFTコミュニティにとって重要な価値を提供します。
このアプローチは、既存のNFTエコシステムの柔軟性と拡張性を高め、将来的なイノベーションへの道を開くものです。
:::

## 仕様

インターフェイスは以下のように定義されています。

```ts
interface IERC7531 {
  /**
   * @dev Emitted when the token's technical owner (the contract holding the token) is different 
   *      from its actual owner (the entity with rights over the token). This scenario is common 
   *      in staking, where a staking contract is the technical owner. The event MUST be emitted 
   *      in the same or any subsequent block as the Transfer event for the token. 
   *      A later Transfer event involving the same token supersedes this RightsHolderChange event.
   *      To ensure authenticity, entities listening to this event MUST verify that the contract emitting
   *      the event matches the token's current owner as per the related Transfer event.
   *
   * @param tokenAddress The address of the token contract.
   * @param tokenId The ID of the token.
   * @param holder The address of the actual rights holder of the token.
   */
  event RightsHolderChange(address indexed tokenAddress, uint256 indexed tokenId, address indexed holder);

  /**
   * @dev Returns the address of the entity with rights over the token, distinct from the current owner.
   *      The function MUST revert if the token does not exist or is not currently held.
   *
   * @param tokenAddress The address of the ERC-721 contract.
   * @param tokenId The ID of the token.
   * @return The address of the entity with rights over the token.
   */
  function rightsHolderOf(
    address tokenAddress,
    uint256 tokenId
  ) external view returns (address);
}
```

#### `RightsHolderChange`

```javascript
event RightsHolderChange(address indexed tokenAddress, uint256 indexed tokenId, address indexed holder);
```

**概要**

トークンの技術的な所有者（トークンを保持しているコントラクト）と実際の所有者（トークンに対する権利を持つエンティティ）が異なる場合に発行されるイベント。

**詳細**

このイベントは、トークンの`Transfer`イベントと同じ、またはその後のブロックで発行する必要があります。
同じトークンに関する後の`Transfer`イベントがこの`RightsHolderChange`イベントを上書きします。
イベントの真正性を保証するために、このイベントを聞いているエンティティは、イベントを発行するコントラクトが関連する`Transfer`イベントにおけるトークンの現在の所有者と一致していることを確認する必要があります。

**引数**

- `tokenAddress`
	- トークンコントラクトのアドレス。
- `tokenId`
	- トークンのID。
- `holder`
	- トークンの実際の権利保持者のアドレス。

#### `rightsHolderOf`

```javascript
function rightsHolderOf(address tokenAddress, uint256 tokenId) external view returns (address);
```

**概要**

現在の所有者とは異なる、トークンに対する権利を持つエンティティのアドレスを返す関数。

**詳細**

この関数は、トークンが存在しない場合や現在保持されていない場合には`revert`（失敗）する必要があります。
これは、実際の所有権と技術的所有権が分離されている場合に、実際の権利保持者を識別するために使用されます。

**引数**

- `tokenAddress`
	- *ERC721*コントラクトのアドレス。
- `tokenId`
	- トークンのID。

**戻り値**

- アドレス
	- トークンに対する権利を持つエンティティのアドレス。

`RightsHolderChange`イベントは、特にトークンがコントラクトにステーキングされるシナリオにおいて、保持されているトークンの実際の所有者を正確に特定するために重要です。
**ERC721**の`Transfer`イベントは、トークンの所有権を技術的にステーキングコントラクト自体に割り当てますが、これは実際の所有権の観点からは正しくありません。
`RightsHolderChange`イベントは、トークン権利の実際の所有者を明示的に示すことで、この不一致を解決します。

### イベント発行のタイミング
`RightsHolderChange`イベントは、対応する`Transfer`イベントと同じブロックで、またはそれに続く任意のブロックで発行される必要があります。
このアプローチは、既存のプールが互換性を損なうことなくシステムをアップグレードできる柔軟性を提供します。
具体的には、ステーキングプールは、以前にステーキングされたトークンに対してこのイベントを発行することも、ユーザーが積極的に所有権を再主張することを許可することもできます。
後者の場合、イベントは所有権の再主張プロセスの一部として発行されるべきです。
この柔軟性により、システムは現在および将来の状態に適応し、保持されているトークンの実際の所有権を正確に反映できるようになります。

### 以前の`RightsHolderChange`イベントの無効化
より広いエコシステムとの互換性を維持し、ガス効率を最適化するために、同じトークンを巻き込む新しい`Transfer`イベントは、以前の`RightsHolderChange`イベントを無効にします。
このアプローチは、最新の`Transfer`イベントが現在の所有権状態を信頼性高く反映することを保証し、アンステーキング時に追加のイベントを必要としないようにします。

このメカニズムにより、ステーキングとアンステーキングのプロセスが進む中で、トークンの所有権と権利の変更を効率的かつ正確に追跡できるようになります。
それは、ステーキングされたNFTの実質的な利用価値を保持しつつ、所有権の流動性と柔軟性を高めるための重要なステップです。

## 補足

### ロック不可能なNFTの課題への対応
ロック不可能なNFTは、特にステーキングや使用権の委譲が関わるシナリオにおいて、分散型エコシステム内でユニークな課題を提示します。
標準の**ERC721**の`ownerOf`関数はNFTの現在の所有者を返しますが、ステーキングの場合、それはステーキングプールのコントラクトになります。
ステーキングプールへの所有権の移転は、たとえ一時的なものであっても、ガバナンスへの参加、独占コンテンツへのアクセス、または特定のエコシステム内でのユーティリティなど、NFTに結びつけられたユーティリティや特権の利用を妨げる可能性があります。

### `rightsHolderOf`メソッドについて

`rightsHolderOf`メソッドは、この課題に対する解決策を提供します。
このメソッドは、NFTに関連する特定の特権の元の所有者または正当な保持者の記録を維持することにより、NFT自体がプール内に保持されている場合でも、NFTの基本的なユーティリティが保持されることを保証します。

#### 所有権と権利の分離
伝統的に、NFTの所有権は特定の特権やユーティリティへのアクセス権と密接に関連しています。
しかし、`rightsHolderOf`メソッドにより、所有権と権利を分離できます。
これにより、ステーキングプールが技術的な所有者になっても、実際の権利（ガバナンス参加、特定のコンテンツへのアクセスなど）はオリジナルの所有者または指定された保持者に留まります。

#### エコシステム内でのユーティリティの維持
**ERC721**トークンは、特定のデジタルエコシステム内でユニークなユーティリティを提供することが多いです。
`rightsHolderOf`メソッドは、たとえそのNFTがステーキングされていても、そのユーティリティが失われないようにします。

#### 分散型ガバナンスと参加の促進
ステーキングされたNFTが関わるエコシステムでのガバナンスや他の参加形式は、通常、そのNFTの所有者によって行われます。
`rightsHolderOf`メソッドによって、ステーキングが行われても、これらの権利が保持され、参加が継続できるようになります。

`rightsHolderOf`メソッドの導入により、ロック不可能なNFTを持つユーザーは、ステーキングという行為がそのNFTに結びつけられた本来の価値や機能を損なうことなく、エコシステム内で活動を続けることができるようになります。
これにより、NFTの流動性は向上し、同時にユーザーはその所有権に伴う特権やユーティリティを保持できるようになります。

#### 技術的な利点

提案されたアプローチは、NFTの所有者がその資産をステーキングプールや他のスマートコントラクトに活用できるようにしながら、NFTに関連する利益へのアクセスを失わないようにする技術的な利点を提供します。

##### ユーティリティの保存

このアプローチにより、NFTの所有者は、NFTが提供する継続的な利益や権利を維持しながら、資産をステーキングプールや他のスマートコントラクトで活用することができます。
これは、ガバナンスへの参加、限定コンテンツへのアクセス、あるいは特定のコミュニティやエコシステム内での特定の権利など、NFTに関連する恒久的な利益や権利を有するNFTにとって特に重要です。

##### 柔軟性の強化

このメソッドは、NFTの所有者に対して、NFTが持つ固有の利益を放棄することなく、ステーキングや他のDeFi活動に参加するような、より大きな柔軟性を提供します。
所有者は、自分のNFTの価値を様々な方法で活用しながら、その基本的な利点やユーティリティを維持することができます。

##### 互換性と相互運用性

既存の`ownerOf`関数を変更するのではなく、新しいメソッドを導入することにより、このEIPは既存の**ERC721**コントラクトとの後方互換性を保証します。
これは、NFTスペース内の様々なプラットフォームやアプリケーション間での相互運用性を維持する上で重要です。
既存の**ERC721**コントラクトやエコシステムに影響を与えることなく、新しい機能や仕組みを導入することができます。

##### イベント駆動の更新

`RightsHolderChange`イベントは、NFTの権利保持者のリアルタイム追跡を容易にします。
これは、最新の所有権情報に基づいてサービスや特権を提供するサードパーティのプラットフォームやサービスにとって特に有用です。
所有権や権利の変更が発生すると、関連するイベントが発生し、これにより即時に情報の更新が可能になります。

これらの技術的利点により、NFTの所有者は、デジタル資産の流動性と利用価値を高める新たな方法を探求できるようになり、同時にNFTエコシステム全体の成長とイノベーションを促進することができます。

### 誤った使用の可能性への対応

このアプローチが権利の分離を可能にし、NFTのユーティリティを保持する新たな機能性を提供する一方で、複雑性の層を導入し、誤用の可能性も伴います。
例えば、不正な権利の割り当てなどがその典型例です。
この問題に対処するために、このEIP（Ethereum Improvement Proposal：イーサリアム改善提案）は、このようなリスクを軽減するためのセキュリティ上の考慮事項とベストプラクティスを概説しています。

#### セキュリティ上の考慮事項

このEIPにおいては、以下のようなセキュリティ上の考慮事項が強調されています。

- **権利保持者の正確な特定**
    - `rightsHolderOf`メソッドの実装は、権利保持者を正確に特定し、誤って権利が割り当てられることのないようにする必要があります。
    - これには、権利保持者の情報が正確かつ透明に管理され、更新されることが求められます。

- **不正利用の防止**
    - スマートコントラクトは、権利の不正な割り当てや不正利用を防止するための機能を備えている必要があります。
    - これには、権利の移転や更新時に権限チェックが含まれます。

- **監査とテスト**
    - スマートコントラクトのコードは、セキュリティ監査を受け、厳格なテストを経ることで潜在的な脆弱性やバグが事前に特定され、修正される必要があります。

#### ベストプラクティス

このEIPでは、リスクを軽減するための以下のようなベストプラクティスが提案されています。

- **透明性の確保**
    - 権利保持者の情報は、オープンで透明な方法で管理されるべきです。
    - これにより、コミュニティメンバーや利害関係者が、権利の割り当てや変更を容易に追跡できるようになります。

- **アクセス制御の実装**
    - 権利の割り当てや変更を行う機能に対するアクセスは、適切に制御されるべきです。
    - これにより、権限のない者が不正に権利を操作することを防ぎます。

- **コミュニティの参加とフィードバックの促進**
    - コントラクトの開発過程において、コミュニティのメンバーや利害関係者からのフィードバックを積極的に求め、それを反映することが重要です。
    - これにより、システムの透明性と信頼性が高まります。

これらの考慮事項とベストプラクティスを通じて、NFTの権利分離のアプローチは、潜在的な誤用やセキュリティ上のリスクを最小限に抑えつつ、そのメリットを最大限に活用するための基盤が提供されます。

## 互換性

この提案された標準は、既存の**ERC721**コントラクトと完全に後方互換性があります。
これは、既存のアップグレード可能なステーキングプールとシームレスに統合できるよう設計されており、これらのプールがこの新標準を採用することを選択した場合に適用されます。
この標準は*ERC721*標準に変更を要求するものではなく、ステーキングプールに対する拡張機能として機能します。

#### 後方互換性の意義

後方互換性は、新しい技術や規格を導入する時に重要な考慮事項です。
これにより、新しい機能や改善が既存のシステムやフレームワークに影響を与えることなく、追加や統合が可能になります。
特に、広く採用されている標準やプロトコルに対しては、互換性を保つことで、エコシステム全体の安定性と採用を促進することができます。

#### ERC721コントラクトとの統合

この提案された拡張機能は、既存の**ERC721**コントラクトと直接的な変更を伴わずに統合できます。
これは、**ERC721**の`ownerOf`関数を変更するのではなく、追加のメソッド（例えば`rightsHolderOf`）を提供することで実現されます。
このメソッドは、NFTのステーキングに関連する所有権と権利の分離を扱うために特別に設計されています。

#### ステーキングプールとの統合

アップグレード可能なステーキングプールは、この新しい標準を採用することを選択でき、これによりNFTの所有者がステーキングプール内でNFTを利用しながらも、特定の権利やユーティリティを保持できるようになります。
ステーキングプールは、この新しいメカニズムを組み込むことで、ユーザーにとってより魅力的な選択肢となり、NFTエコシステム内での流動性と参加を促進することができます。

この後方互換性により、既存のNFTプロジェクトやステーキングプールは、既に構築された基盤の上に新しい機能を追加することができます。
これにより、ユーザーエクスペリエンスの向上とエコシステムの発展が促進されます。

## セキュリティ

イベントの真正性に関しては、偽の`RightsHolderChange`イベントの発生についての懸念があります。
任意のコントラクトがこのようなイベントを発行できるため、所有権の誤情報や誤表現のリスクが存在します。
`RightsHolderChange`イベントを受信するエンティティにとって重要なのは、イベントを発行しているコントラクトが実際にトークンの現在の所有者であることを確認することです。
この検証は、所有権情報の正確性を保証し、欺瞞的なイベント発行に関連するリスクを軽減するために不可欠です。

#### 不正確な所有権記録のリスクの軽減

このインターフェイスの不適切な使用は、不正確な所有権記録のリスクをある程度はらんでいますが、これは任意のステーキング取り決めに固有の問題です。
所有者が所有権を移転するのではなく、保管を維持するという事実によって、このリスクはある程度軽減されます。

#### 注意義務

特権付与NFTの消費者は、ステーキングプロバイダーを評価する時に注意義務を果たすべきです。
管理不良や詐欺の兆候は慎重に対応するべきです。
このインターフェイス自体は新たな操作能力を可能にするものではありませんが、スマートコントラクトやステーキングプールとのやり取りに時には、常に慎重さが求められます。

これらのポイントは、新しいインターフェイスを利用する上でのセキュリティと信頼性を高めるために、開発者、ステーキングプールの運営者、そしてNFTの所有者や利用者が共に考慮すべき重要なガイドラインです。
正確な所有権情報の維持と偽情報のリスクの軽減は、NFTエコシステム全体の健全性と成長を支えるために不可欠です。

提案されたインターフェイスに関連するセキュリティ上の懸念として、偽の`RightsHolderChange`イベントの発生が挙げられます。これらの懸念と、不正確な所有権レコードのリスクを軽減し、デューディリジェンス（適切な注意義務）を果たすための対策について詳しく説明します。

### イベントの真正性

- **懸念点**
    - どんなコントラクトでも`RightsHolderChange`イベントを発行できるため、偽のイベントによる所有権情報の誤報や誤解を招くリスクがあります。
  
- **対策**
    - `RightsHolderChange`イベントを監視するエンティティ（例えば、他のスマートコントラクトやウォレット、サービスプロバイダー）は、イベントを発行したコントラクトがその時点でトークンの実際の所有者であることを確認する必要があります。
    - この確認作業は、所有権情報の正確性を保証し、不正なイベント発行に関連するリスクを軽減するために不可欠です。

### 不正確な所有権レコードのリスクの軽減

- **課題**
    - このインターフェイスの不適切な使用により、所有権レコードの不正確さが生じる可能性があります。
    - しかし、これはステーキング取り決めに共通する固有の問題です。
  
- **軽減策**
    - 所有権の移転ではなく、所有者が引き続きNFTの保管を維持するという事実により、このリスクはある程度軽減されます。
    - 所有者は法的所有権をステーキングプールに移転せず、あくまでも特定の権利のみを一時的に委譲することになります。

### デューディリジェンスの実施

- **必要性**
    - 特権付与NFTの消費者（所有者や利用者）は、ステーキングプロバイダーを評価する時に適切なデューディリジェンスを行うべきです。
    - 管理不足や詐欺の兆候は慎重に評価されるべきです。
  
- **注意点**
    - このインターフェイス自体は新たな操作能力を有効にするものではありませんが、スマートコントラクトやステーキングプールとの相互作用に際しては常に注意が必要です。
    - 利用者は、ステーキングプールの選択にあたっては、その信頼性、過去の実績、コミュニティ内の評判などを慎重に検討する必要があります。

これらのセキュリティ考慮事項を通じて、インターフェイスの安全な使用を促進し、NFTの所有権に関する正確な情報を維持するためのガイドラインが提供されます。

## 引用

Francesco Sullo (@sullof), "ERC-7531: Staked ERC-721 Ownership Recognition [DRAFT]," Ethereum Improvement Proposals, no. 7531, October 2023. [Online serial]. Available: https://eips.ethereum.org/EIPS/eip-7531.

## 最後に

今回は「**ERC721**形式のNFTをステーキングする時、所有権を安全に保持しつつインターフェースを提案している**ERC7531**」についてまとめてきました！
いかがだったでしょうか？

質問などがある方は以下のTwitterのDMなどからお気軽に質問してください！

[Twitter @cardene777](https://twitter.com/cardene777)

他の媒体でも情報発信しているのでぜひ他も見ていってください！

https://chaldene.net/

https://zenn.dev/heku

https://mirror.xyz/0xcE77b9fCd390847627c84359fC1Bc02fC78f0e58

https://cardene.notion.site/ERC-EIP-2a03fa3ea33d43baa9ed82288f98d4a9?pvs=4
