# ディープフリーズ

ディープフリーズは、XRP Ledger上のトークン発行者が、フリーズされたアカウントによるトークンの悪用を防ぐための機能です。これは、フリーズされた資産と支払いのやり取りを強化し、トラストラインがフリーズ解除されない限り、フリーズされたトークン保有者が資金を受け取ることができないようにします。

この変更により、発行者はXRPL上での規制遵守がより容易になります。たとえば、制裁リストに記載されたウォレットへのトークン流通を防ぐことで、規制されたステーブルコインや現実資産（RWA）などのユースケースにおいて、コンプライアンスを強化できます。

ディープフリーズは、支払い、オファー、分散型取引所（DEX）、自動マーケットメイカー（AMM）に関わるトラストラインに影響を与えます。発行者は、ディープフリーズ状態の保有者に対して、送金および受取をブロックできます。

DeepFreeze
## ディープフリーズの仕組み

ディープフリーズは、トラストライン上に設定される機能です。これを有効にするには、発行者がまず通常のフリーズ（Individual Freeze）をそのトラストラインに対して実行しておく必要があります。また、発行者のアカウントで `No Freeze` が有効になっている場合は、ディープフリーズを実行することはできません。

発行者がディープフリーズを実行すると、そのトラストライン上のトークンには以下のルールが適用されます。

- ディープフリーズされたトラストラインの両当事者間の直接決済は、ディープフリーズ後も可能です。
- トラストラインのカウンターパーティは、発行者への直接決済を除き、ディープフリーズされたトラストライン上の残高を増減させることができません。カウンターパーティは、ディープフリーズされた通貨を発行者にのみ直接送ることができます。
- カウンターパーティは、ディープフリーズされたトラストライン上で、他のアドレスとの間で決済を行うことができません。
- カウンターパーティによる、ディープフリーズされたトラストライン上のトークンの売買オファーは資金不足と見なされます。


また、個別のアドレスが、自分から発行者または金融機関へのトラストラインをディープフリーズに設定することも可能です。
これは、その金融機関と他のユーザー間の取引には影響を与えませんが、次の効果があります。

- 他のアドレスが、その金融機関のトークンをその個別アドレスに送信することを防ぎます。
- その個別アドレスが、そのトークンを発行者以外のアドレスに送信することも防ぎます。


### RippleState オブジェクト

ディープフリーズでは、`RippleState`（トラストライン）オブジェクトに、`lsfLowDeepFreeze` と `lsfHighDeepFreeze` の2つのフラグが導入されます。

| フラグ名 | フラグ値 | 説明 |
|  --- | --- | --- |
| `lsfLowDeepFreeze` | `0x02000000` | 低位アカウントがトラストラインをディープフリーズしており、高位アカウントは資産を移動できません。 |
| `lsfHighDeepFreeze` | `0x04000000` | 高位アカウントがトラストラインをディープフリーズしており、低位アカウントは資産を移動できません。 |


[高位vs低位アカウント](/ja/docs/references/protocol/ledger-data/ledger-entry-types/ripplestate#high-vs-low-account)をご覧ください.

### TrustSet トランザクション

ディープフリーズでは、`TrustSet` トランザクションに `tfSetDeepFreeze` および `tfClearDeepFreeze` の2つのフラグが導入されます。

| フラグ名 | フラグ値 | 説明 |
|  --- | --- | --- |
| `tfSetDeepFreeze` | `0x00400000` | トラストラインをディープフリーズします。 |
| `tfClearDeepFreeze` | `0x00800000` | トラストラインのディープフリーズを解除します。 |


`tfSetDeepFreeze` を設定しようとする `TrustSet` トランザクションは、以下のいずれかが当てはまる場合にのみ成功します。

- 保有者はすでにフリーズされており、その状態はトラストライン上の `lsfLowFreeze`/`lsfHighFreeze` フラグによって示されている。
- 同じ `TrustSet` トランザクションで `tfSetFreeze` も同時に設定されている。


ディープフリーズの導入により、`TrustSet` トランザクションには追加の制限が課されます。

トラストラインが発行者によってディープフリーズされている場合（`lsfLowDeepFreeze`/`lsfHighDeepFreeze` フラグが立っている）、発行者が `tfClearDeepFreeze` フラグを設定せずに `tfClearFreeze` フラグだけを設定すると、`TrustSet` トランザクションは失敗します。つまり、発行者はディープフリーズを解除しないかぎり、通常のフリーズを解除することはできません。

## 支払いエンジン

支払いエンジンは、送信者と受信者をつなぐステップで構成されたパスを実行します。一般的に、資金は次の二つのうちいずれかのステップを通じてトラストラインに入金されます。

- [リップリング](#%E3%83%AA%E3%83%83%E3%83%97%E3%83%AA%E3%83%B3%E3%82%B0)
- [オーダーブックまたはAMM](#%E3%82%AA%E3%83%BC%E3%83%80%E3%83%BC%E3%83%96%E3%83%83%E3%82%AF)


### リップリング

リップリングのステップの結果として、ディープフリーズされたトラストラインでの資金受け取りは失敗します。

### オーダーブック

買い注文で指定された `TakerPays` トークンについて、オファー所有者のトラストラインがディープフリーズされていると、そのオファーは資金の裏付けがないと判断され、約定しません。

## OfferCreate トランザクション

ディープフリーズ機能の導入により、`OfferCreate` トランザクションに対して変更が加えられます:

`TakerPays`（購入額）トークンが発行者によってディープフリーズされている場合、`OfferCreate` は `tecFROZEN` を返します。
さらに、`TakerPays` トークンに対してオファー所有者がディープフリーズされている既存のオファーは、もはや約定することはありません。そのようなオファーは資金不足と見なされ、新たにクロスするオファーによって暗黙的にキャンセルされます。

## MPT のフリーズ／ロックの挙動は、IOU とどう異なりますか？

マルチパーパストークン（MPT）のフリーズ／ロック機能は、IOUの挙動とはやや異なります。MPTの保有者がロックされると、MPTの送信および受信の両方ができなくなるため、単一のフラグで対応可能です。

一方、IOUの場合、通常のフリーズでは送信のみが禁止されます。受信もブロックしたい場合は、発行者がディープフリーズを適用する必要があります。