Tornado Cash はどのように機能しますか?なぜ物議を醸しているのですか?

Hans-Helmut Kraus
Hans-Helmut Kraus
Ethereum smart contract auditor and security expert; 以太坊智能合约审计师与安全专家。

はい、では暗号資産の世界で非常に有名でありながら、同時に物議を醸しているTornado Cashについてお話ししましょう。


Tornado Cashはどのように機能するのか?

これを「暗号資産のスーパー金庫プール」と想像してみてください。

従来の銀行送金では、例えばあなたが私に100円を送金した場合、銀行の帳簿には「Aさんの口座から-100円、Bさんの口座へ+100円」と明確に記録されます。イーサリアムなどのブロックチェーン上でも、このプロセスは公開されており透明性があります。誰でも「アドレスAがアドレスBへ1ETH送金した」という情報を確認できます。あなたのすべての取引履歴は繋がっており、悪意のある者であれば簡単にあなたの財務状況を分析できてしまいます。

Tornado Cashの目的は、この関連性を断ち切り、あなたのプライバシーを保護することにあります。その機能は大きく分けて三つのステップから成ります。

ステップ1:預け入れ(Deposit)

  • あなたは自身の暗号資産(例えば1ETH)を、Tornado Cashのスマートコントラクトである「資金プール」に預け入れます。
  • 預け入れ時に、あなただけが知るランダムな「秘密のメモ」(a secret note)が生成されます。このメモは将来的に資金を引き出す唯一の証明となるため、非常に重要です。もし紛失してしまうと、資金も失われます。
  • こうして、あなたの1ETHは、他の何百、何千もの人々が預け入れたETHと混ざり合います。この大きなプールの中では、どのコインが誰のものか誰も判別できません。

ステップ2:待機(Wait)

  • これは非常に重要なステップです。預け入れ後、しばらく待つことをお勧めします。待機時間が長ければ長いほど、預け入れと引き出しの取引が増え、あなたの資金は大海の一滴のようになり、追跡がさらに困難になります。

ステップ3:引き出し(Withdraw)

  • 資金を引き出したい時は、完全に新しく、以前のどのアドレスとも関連性のないイーサリアムアドレスを使用する必要があります。

  • その後、あなたはTornado Cashのスマートコントラクトに「ゼロ知識証明」(Zero-Knowledge Proof)を提出します。

    • この「ゼロ知識証明」こそが、この仕組みの魔法の核心です。 これをこう理解することができます。あなたは金庫の管理者に対し、「確かに、ある金庫を開ける有効なメモを持っている」と証明しますが、メモ自体を彼に見せる必要は一切ありません。管理者はあなたの証明が有効であることだけを知り、そのメモがどの預け入れに対応しているのかは知らないのです。
  • スマートコントラクトはあなたの証明が有効であると確認した後、資金プールから同額の暗号資産(例えば1ETH)をあなたの新しいアドレスへ送金します。

最終的な効果: あなたの古いアドレス(預け入れのアドレス)と新しいアドレス(引き出しのアドレス)の間には、いかなる公開された関連性もありません。外部からは「アドレスAがプールに資金を預け入れ、しばらくしてアドレスBがプールから資金を引き出した」としか見えません。しかし、AとBの間に何らかの関係があることを誰も証明することはできません。あなたの取引履歴は、見事に「シャッフル」されたことになります。