01 · Объяснение

USDTブラックリストの解剖:Tetherはどのようにトークンを凍結するのか

2017年以降、Tetherは40億ドル超を保有する約8,000のブロックチェーンアドレスをブラックリストに登録してきました。通常の送金がどのようにAddedBlackListイベントになるのか、preban → banとは何か、アドレスの確認方法、そして機会の窓がどこにあるのか——その技術的な仕組みを解説します。

explainerCryptoAlert Research

Tetherは、任意のブロックチェーンアドレスに保有されているUSDTを凍結する技術的能力を持っています。そのような凍結の後、アドレスの所有者は、残高に表示され続けているにもかかわらず、もはやUSDTを送金できなくなります。

2017年以降、Tetherは合計 40億ドル 超の価値を持つ約 8,000のブロックチェーンアドレス のブラックリスト登録を開始してきました。

USDT流通の全体規模に対して、これらの数字は小さく見えるかもしれません。しかし個々の市場参加者にとって、ブラックリストは重大な出来事となります——特に、自分が違法なことを何もしていないと確信している場合はなおさらです。そのようなケースは、思われるほど稀ではありません。一部のアドレスが後に解除されるという事実は、個々の決定が時に、発動者の誤った結論に基づいて下されていたことを裏付けています。

ブラックリスト登録は恣意的に行われるものではなく——根拠が存在しなければならず、その手続きには法的側面と運用上の側面の両方があります。これらの側面については、誰が実際に判断を下すのかに関する別の記事で扱っています。本記事の目的は、USDTブラックリスト登録の技術的な仕組みを説明することです。

01基礎

通常のUSDT送金はどのように機能するのか

凍結のプロセスを理解するには、まず通常のUSDT送金が技術的にどのように行われるのかを理解する必要があります。

TRONネットワーク上のUSDTトランザクションの例を考えてみましょう。ユーザーが自分のアドレスから受取人のアドレスへUSDTの送金を開始します。その瞬間、トランザクションはTRON上のUSDTスマートコントラクトと相互作用します:

TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t

スマートコントラクトは、残高の記録とトークン送金の処理を担うものです。送金が実行されると、コントラクト内部のトークン送金ロジックが呼び出されます。コントラクトのイベントレベルでは、これは Transfer イベント——つまり送信者から受取人への資産の移動——として記録されます。

簡略化すると、プロセスは次のようになります:

  1. ユーザーがUSDT送金を開始する;
  2. トランザクションがUSDTスマートコントラクトを呼び出す;
  3. コントラクトが送金条件を検証する;
  4. 制限がなければ、送信者の残高が減少し、受取人の残高が増加する;
  5. Transfer イベントがオンチェーンに記録される。

Ethereum上のUSDTも同様に機能します:送金はトークンのスマートコントラクトを通じて処理され、成功した送金は Transfer イベントとして記録されます。TRONとEthereumの主な違いは技術的環境から生じます:トークン規格、アドレス形式、手数料、トランザクション処理速度。

主要ネットワーク上のUSDTコントラクト
02制御

USDTスマートコントラクトにおける制御メカニズム

通常の送金に加えて、USDTスマートコントラクトには、発行者が特定のアドレスに対するトークンの流通方法を管理できる管理機能があります。発行者は、アドレスをブラックリストに追加し、ブラックリストから削除し、ブラックリスト登録されたアドレスに保有されているUSDTを焼却することができます。

これらの動作はコントラクトのイベントを通じて反映されます。ブラックリストの分析にとって、3つのイベントが鍵となります:

  • AddedBlackList — アドレスをブラックリストに追加すること;
  • RemovedBlackList — アドレスをブラックリストから削除すること;
  • DestroyedBlackFunds — ブラックリスト登録されたアドレスの資金を焼却すること。

簡略化すると、ロジックは次のようになります:

  1. TetherがアドレスをBlackListに追加する;
  2. スマートコントラクトがこのアドレスをブラックリスト登録済みと認識し始める;
  3. 送金が試みられると、コントラクトがアドレスの状態を確認する;
  4. アドレスがBlackListにある場合、送金は拒否される;
  5. アドレスがBlackListにない場合、送金は進行できる。
032段階のブラックリスト

prebanからbanへ:ブラックリストはオンチェーンにどのように現れるのか

TRON上のUSDTブラックリスト登録は、1つではなく2つの関連するオンチェーン段階として記録されます:まずTetherのMultisigWallet内に操作が作成され、次にその操作が実行されてアドレスがBlackListに追加されます。

このシーケンスは、便宜的に2つのイベントに分けることができます:

  1. Preban — TetherのMultisigWallet内での操作の作成。
  2. Ban — 操作の実際の実行、その後アドレスがBlackListに入る。

Preban:TetherのMultisigWallet内での操作の作成

preban段階では、multisigコントラクト上のメソッドが呼び出されます。このトランザクションでは、アドレスはまだ実際にはブラックリストに登録されていません——必要な承認の後にmultisigが実行しなければならない操作を作成するだけです。

prebanトランザクションの主要なパラメータ:

MultisigWallet内のprebanトランザクションのパラメータ

prebanトランザクションのイベントログには、multisigコントラクトのイベントが記録されます。TransactionId は、後で実行されることになるTetherのMultisigWallet内の操作の内部識別子です。

ブラックリスト登録予定のアドレスはどこに隠れているのか

ブラックリスト登録されるアドレスは、prebanトランザクションのイベントログには直接表示されません。それは Data パラメータの内部に隠れており、Solidity ABIの規則に従ってデコードする必要があります。

操作がblacklist関数への呼び出しを準備している場合、データ構造は次のようになります:

0xecb93c0 + 32-byte address argument
(<function selector> + <ABI-encoded arguments>)

最初の4バイトは関数セレクタです。残りはABIエンコードされた引数です。アドレスを抽出するには、引数の最後の20バイトを取り出してデコードします。

TRONでは、アドレスは2つの形式で表示されることがあります:

  • Hex形式41 プレフィックスで始まる;
  • Base58Check形式 — 人間が読める形式で、T で始まる。

Ban:アドレスを実際にBlackListに追加する

実際のブラックリスト登録は後で、作成されたmultisig操作が実行されるときに起こります。banトランザクションでは、USDTコントラクトのログに次が表示されます:

AddedBlackList(address target)

このイベントは、アドレスがBlackListに追加されたというオンチェーンの確認です。

04反応の窓

機会の窓:prebanからbanまでの時間

prebanとbanの間には時間差があります。AddedBlackList イベントが現れる前は、アドレスはまだBlackListになく、技術的にはUSDTを使う能力を保持しています。この間隔こそ、私たちが機会の窓と呼ぶものです。

数日
かつての窓
2017年〜2020年代初頭:prebanとbanの間——最大で数日
数時間
現在の窓
典型的な平均:1〜24時間
数分
協調的なケースでは
バッチのブラックリストイベントでは——数十秒から数分

窓はかつて数日でした。今では著しく短くなり——時には数時間、時には数分です。これはアドレス所有者にとっての予測可能性を低下させ、迅速な対応を極めて重要にします。

AddedBlackList イベントの前は、アドレスはまだUSDTの送金を実行できます。したがって、差し迫ったブラックリストのリスクを見て取る善意のユーザーの観点からは、合理的な行動順序は次のとおりです:まず資金を移動させ、凍結される可能性のあるアドレスから外に出し、それから理由に対処する

05ban後

実際のban後に何が起こるのか

ブラックリスト登録後、アドレスはもはやUSDTを送信できません。送金はスマートコントラクトのロジックによって拒否されます。資金は残高に表示され続け、着金は技術的にはそのアドレスに届く可能性があります。

次に何が起こるかは、ブラックリスト登録の根拠によります:

  • アドレスは無期限にBlackListに残るかもしれない;
  • アドレスは RemovedBlackList を通じて解除されるかもしれない;
  • 資金は DestroyedBlackFunds を通じて焼却され、新しいアドレスへ再発行される可能性がある。

実際のban後、作業は法的および分析的なトラックへと移ります:リスクの源の特定、オンチェーン分析の準備、資金の出所の確認、そしてTetherおよびブラックリストを発動した国家機関との連絡——関連する法律顧問を交えて。

06兆候

あなたのアドレスがTetherにブラックリスト登録されたと見分ける方法

ユーザーはブラックリストにすぐには気づかないことがよくあります。一見すると、すべては正常に見えます:USDTは残高に表示され、ネットワークは動作し、アドレスは正しく、着金は正常に入金されます。しかしUSDTを送ろうとすると、トランザクションが失敗します。

アドレス上の他の操作は正常に機能し続けることがあります。たとえば、ユーザーはTRXや他のトークンを問題なく送信できる一方で、問題はUSDTの送金にのみ現れます。これは重要な兆候です:Tetherのブラックリストは、TRONネットワーク上のアドレス全体にではなく、USDTスマートコントラクトのレベルで適用されます。

USDTの送金は失敗する一方で、他の操作(ネイティブトークンの送信、着金の受け取り)は 正常に機能する。

ブラックリストの主な兆候

アドレスがTetherのBlackListにある場合、USDTスマートコントラクトは送金の試みを拒否します。ウォレットでは、これは送信エラーとして現れることがあり、ブロックエクスプローラーではトランザクションが Failed ステータスで表示されることがあります。

ブラックリスト登録を通常の技術的問題と区別することが重要です:

  • 手数料を支払うためのネイティブトークン(TRX、ETH)が不足している;
  • ウォレットがトランザクションを送信していない(UI、RPC、またはウォレットのバグ);
  • ネットワークの混雑または一時的なインフラの停止。
07確認

USDTスマートコントラクトを通じてブラックリストを確認する方法

ステップ1。 TronscanでTRON上のUSDTスマートコントラクトを開きます:TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t

ステップ2。 Contract タブに移動します。

ステップ3。 Read Contract セクションを開きます。

ステップ4。 getBlackListStatus メソッドを見つけます。Tronscanでは 「8. getBlackListStatus (59bf1abe)」 として表示されることがあります。

ステップ5。 確認したいアドレスを入力し、クエリを実行します。

getBlackListStatus呼び出しの結果

Tronscanを通じた手動確認は、一回限りの検証には適しています。迅速な対応のためには、自動監視を使うほうがよいでしょう:それは AddedBlackList イベントを通じてBlackListへの追加を追跡でき、そして——その機能が利用可能な場合——実際の AddedBlackList イベントの前に、差し迫ったブラックリスト登録の兆候を浮かび上がらせることができます。

08ライブで見る場所

USDTブラックリストの活動をリアルタイムで監視する方法

すべてのイベント——preban、ban、unban、destroy——はオンチェーンに公開で記録されます。これは誰もが監視を構築できることを意味します:

  • 直接的なアプローチ — TRONとEthereumのarchive nodeを実行し、WebSocketを通じてUSDTコントラクトのイベントログを購読する。コスト面で最も安いが、インフラが必要。
  • サードパーティのサービスを通じて — QuickNode Streams、Alchemy webhooks、Infura。有料だが、自前のインフラは不要。
  • 既製の製品を通じて — 私たちは2017年以来これをリアルタイムで行っています:Telegramのアラートフィード、REST API、AIツール向けのMCPサーバー、研究者向けの HuggingFaceデータセット

さらに読む