2019年8月に発売されたTornado Cashは、Ethereum上のどこかに預ける必要のないミキサーです。ミキサーとは、後述しますが、文字通りトランザクションをミックスし匿名性を確保する手法です。Ethereum財団からグラントをもらって活動していて、Vitalikもよくツイートしているプライバシー系プロジェクトです。
Tornado Cashでは、送信者と受信者のアドレス間のチェーン上のリンクを切断することにより、取引のプライバシーを強化します。bZxでのDeFiアタックが話題になりましたが、その際も攻撃者のアカウントで、Tornado Cashが使用されたため、話題にしている人がでてきました。
※bZx上での攻撃については以下もご参照ください。
bZxのDeFi攻撃をフロントランとしてみたときの、DeFiの脆弱性を考察するDeFi
本レポートでは、Tornado Cashの利用方法と仕組み、ユーザ状況をみていきます。
Tornado Cashの利用方法
Tornado Cash(トルネード・キャッシュ)は以下のように監査はされていますが、まだ実験プロジェクトであることは彼ら自身も認めているので、他プロジェクトと同様自己責任で触るほうが良いです。
※ 監査結果
- 暗号技術のレビュー https://t.co/MZSkyds5ko?amp=1
- スマコンの監査 https://t.co/5nVXYV7xrc?amp=1
- Zk-SNARK部分の監査 https://t.co/BOakpCoC7L?amp=1
使うためには、いくつかの固定ロットの中からサイズを選び、資産を Tornado コントラクトに預けます。固定ロットサイズにしている理由は、トランザクション同士をミックスしやすく(つまり深い匿名プール作りやすく)するためです。

Tornadoのコントラクトは、デポジットを受け取ると、下の例ような Note をユーザーに発行します。これは「コミットメント」と呼ばれているデポジットの証となり、Tornado のNoteリストに追加されていきます(技術的にはマークルツリーとして埋め込まれます)。
TTornado Cash は 100万の個人デポジットを受付けることができる仕様になっているので、それ以上にスペックを拡張する場合は、新しいコントラクトを展開する必要があります。
デポジットのあとの、Withdraw(引き出し)の際は、「コミットメント」と、出金先のEthereumのアドレスを入力します。

次にコントラクトは、コミットメントのリストを確認し、「コミットメントにリンクされた資産がまだ使用されていない」ということを確認します。このコントラクトは、ゼロ知識証明(zk-SNARK)を利用し、どのコミットメントとどのデポジットが紐付いているかを明かすことなく、コミットメントの正当性を証明することができます。
コミットメントが正当であると判断すると、引き出しのトランザクションが開始され、指定された引き出しアドレスにデポジット額が(匿名性を保った状態で)送金されます。
トランザクション自体は、第三者のリレーヤーが、手数料を対価にEthereumチェーンにブロードキャストします。引き出しトランザクションそのものが第三者のリレーヤーから発行されていることになるため、デポジットした人と引き出し先アドレスの関係がわからなくなる = 匿名性を保つ、というわけです。
その他、匿名性を高める工夫
プライバシー強化のためには、VPNを使用したり、出金トランザクションの完了後に Note を破棄したりするなど、というプラスアルファの手段も使用して、匿名性を高めることもできます。
また引き出す前に、デポジット後すこし待ったほうがベターとされています。Tornadoコントラクトに十分なデポジット量と、他の引き出しトランザクションの数が多いほうが匿名性が強いためです。当然は、プールへの入出金が多いほど、特定しにくくなりますね。
Dune Analytics を使ったユーザーアクティビティ
最近利用できるようになったDune Analytics 2がかなり良くて、自分で分析することもできますし、色々な企業が作ったクエリ結果をみることができます(現在は無料で使うことができます)。ここでは1inchの創業者やTheBlockの作成したクエリや利用してユーザ利用状況を見ていきましょう。
1. デポジットと引き出しの推移 (クエリリンク)

Tornado CashはEthereumのグラントのみで資金を調達していて、他の外部資金は入っていないですが、その割にはローンチ後に多くのユーザを獲得し、毎週200人以上の増えていっています。
金額については、あるイベントに左右されて、変動している様子です。2月10日の週に過去最高の899,000ドルのデポジットと472,000ドルの引き出しを記録していますが、それ以降は減少が続いています。青色がデポジット、黄色が引き出しです(最新の週が少ないのはまだデータが集まっていないからなので無視してください)。
2. リレーヤーの手数料 推移 (クエリリンク)

意外なのは、週あたりのリレーヤー手数料が、引き出しの量とあまり相関していない点です。リレーヤーは、12月30日の週に過去最高の約50万円の収入/週を記録しましたが、この週の処理は 338,000ドルの引き出しが行われたのみです。これは、リレーヤーが増えて競争が激化し、競争力を維持するために手数料率を調整していった結果である可能性が高いです。
3. デポジットロットの割合と推移 (クエリリンク 1)

0.1 ETHのデポジットが人気のサイズとわかります。
4. ERC20のデポジットデータ(リンククエリ)

100 DAIのロットサイズのデポジットが、ERC20トークンの中では最も多い割合を締めます。その後、1000 DAI, 1000USDT, 1000 USDTデポジットと続きます。
続きは会員登録をしてお読みください。
TokenLab(会員限定)ではこの他に良質なレポートを配信しています。
1週間の無料期間がございますので、ぜひお気軽にご登録ください!
- 招待メールが迷惑メールフォルダに送られることもありますので、そちらもご確認下さい。
- 返品・交換・キャンセル等
サービスの性質上、返金はお受けしておりません。 - 中途解約について
月の途中で退会された場合でも、日割りでの返金はできかねます。PayPalで退会処理を行った時点で、Discourseフォーラムでの閲覧が制限されます。 - PayPal決済を使っていますが、PayPalのアカウント持っていない方も、申し込みと同時に登録が可能です。