Tornado Cashとは?動き方と資金洗浄によく使われる理由?
イーサリアムブロックチェーンにおいて、手数料が高騰したり、取引に時間がかかり過ぎたりするスケーラビリティ問題と並んで課題となってきたのが、「プライバシー問題」です。
アカウント残高や送金額、過去の取引履歴などをだれでも確認できる透明性の高さが、ブロックチェーンの良さである反面、プライベートな情報が明らかとなる秘匿性の低さは大きなデメリットにもなりえます。この問題を解決するべく開発されたのが、「Tornado Cash」です。
Tornado Cashは、ETHやERC-20トークンを使った取引を完全に匿名化できるので、プライバシーソリューションとしての利便性が評価されています。ただそこには思わぬ深刻な副産物も発生しました。「資金洗浄(マネーロンダリング)」への悪用です。
そこで今回は「Tornado Cash」について、その仕組みや動き方、さらに資金洗浄に多用される理由について詳しく解説します。
「Tornado Cash」とは
「Tornado Cash」とは、ミキサーサービス大手「Tornado Cash」によって提供されている イーサリアムブロックチェーン上のDeFiミキシングサービスの一種です。暗号資産取引における「ミキシング」とは、複数のアカウントによる取引データを混ぜ合わせて、個別の取引内容やアドレスが特定できないようにすることで、プライバシー保護が主たる目的です。
Tornado Cashの場合は、データをミックスさせるのではなく、送受信者のアドレスのつながりを断ち切ることで、誰と誰の間でどれだけの取引が行われたかを完全に匿名化することができるスマートコントラクトです。
イーサリアムブロックチェーン上の取引は、たとえば「Etherscan」といったブロックエクスプローラーを使えば、アドレスやトランザクション内容を追跡することが可能です。これにより透明性が確保されることは、大きなメリットである一方で、取引内容がすべて公開されるため、競合に重要な情報を知られてしまう欠点も伴います。
また、イーサリアムブロックチェーンのミキシングには、すでに「Ete Mixer」が存在しました。ただ、Ete Mixerは、カストディアル(中央集権的管理者あり)であるために、完全な匿名性を確保するのは困難でした。管理者を介することで、情報が漏えいしたり、ハッキングによる盗難が発生したりする可能性があるからです。
以上の欠点やデメリットを補うべく開発されたのが、Tornado Cashです。Tornado Cashは、ノンカストディアル(管理者なし)で、ミキシングの一部は、スマートコントラクトによって行われるため、上記の様なリスクを心配する必要はありません。Tornado Cashの特異性や具体的な動き方について、以下でさらに詳しく解説しましょう。
Tornado Cash の動き方
Tornado Cashのスマートコントラクトは、暗号資産の送信者と受信者のアドレス間のブロックチェーン上のリンクを完全に切断することでプライバシーを保護します。そしてこのシステムは、後述する「zk-SNARK」を使ったゼロ知識証明により、誰が誰にいくら送金したか、ということを証明しつつも、一切第三者にはその内容が確認できないようにすることで成立します。
ブロックチェーンの透明性は、全ノードがすべてのルールや取引を承認することで保たれます。よって、取引内容やその送受信者を秘匿するのは、このシステムに反するように見えるかもしれません。しかし、その透明性よりも機密性を優先したのが、「zk-SNARK」なのです。
Tornado Cashはイーサリアムブロックチェーンが基盤で、ETHとERC-20トークンが対象です。ETHやERC-20トークンをTornado Cashに預けると、独自トークンTORNがすべてのユーザーにエアドロップされます。エアドロップとは、無償でトークンが配布されるイベントのことです。
TORNはガバナンストークンのため、これを所有することでTornado Cashのルール変更等のガバナンスに関わる投票権が付与されます。加えてTORNは上場されたトークンなので、所有することでインカムゲインが、売ればキャピタルゲインが得られる点もインセンティブとなっています。
つまり、大まかな動きとしては、ユーザーが、Tornado CashにETHやERC-20トークンを預けてTORNを受け取ります。送金など、依頼した取引は、スマートコントラクトに任せ、全ノードがその内容は分からないものの、「zk-SNARK」によって正しいと証明された事実を全ノードが承認すると取引が実行される、という流れになります。
Tornado Cash を支えるzk-SNARK
先に述べた、取引を機密化するのに活用される「ゼロ知識証明(ZKIP)」は、1985年に提唱された概念で決して最近の考え方ではありません。これは、「自分のもっている情報が何であるかを第三者に一切伝えることなく、その情報の真実性を証明する」ことを意味するプロトコルです。
Tornado Cashが登場する以前より、イーサリアムブロックチェーンでもハッシュ値を使った取引の機密化は行われていました。ハッシュ値とは、入力されたデータをもとに決まった数式(ハッシュ関数)で計算し、規則性がなく逆算もできないデータとして出力された値のことです。データに改ざんなどの不正がないかを確認するにはうってつけです。
しかし、これが活用できるのは単純な取引に限ったことで、イーサリム特有の複雑なスマートコントラクトに対応できるレベルではありませんでした。そこで昨今のイーサリアムを基盤とする分散型金融「DeFi」の多様化する取引に耐えうる、柔軟な秘匿技術として脚光を浴びたのが、ゼロ知識証明を応用化して作られた「zk-SNARK」です。
「zk-SNARK」を使えば、Tornado Cash内で実行されるスマートコントラクトによるトランザクションが、誰から誰へのもので、その金額がいくらか、またそれぞれの残高や過去の履歴も一切あきらかにすることなしに、正しいと証明できます。これが全ノードから承認されればトランザクションは実行されますが、これに万が一偽りがあれば、嘘と分かるので、全ノードから承認されることはありません。
「zk-SNARK」の仕組みを簡単に説明しましょう。
まず「zk-SNARK」は、3つのアルゴリズムで構成されています。
- 承認者が「証明鍵」と「承認鍵」を作成するアルゴリズム
- 証明者が証明を行うアルゴリズム
- 承認者が承認を行うアルゴリズム
以上の3つです。それぞれを上から「アルゴリズム1」「アルゴリズム2」「アルゴリズム3」として説明していきます。
送金者がA、受信者がBとし、両者はzk-SNARKを使用するうえでの「証明者となります。
まず承認者がオフチェーン上の「アルゴリズム1」に、秘密の値Sと独自プログラムをインプットしたうえで「証明鍵」と「承認鍵」を作って公開します。秘密値Sは、絶対に証明者AとBに知られてはなりません。知れば、AもBも偽ったデータを使って正しいと証明することができてしまうからです。
Aは、自分のアドレスを伏せて、この「証明鍵」と取引前のAとBのアカウント残高や取引額からなる機密情報T、さらにTのハッシュ値tをオフチェーン上で「アルゴリズム2」にインプットして証明Xを作成。このXを承認者に送ります。
承認者は、自ら作成した冒頭の「承認鍵」とハッシュ値tおよび証明Xをオンチェーン上で「アルゴリズム3」にインプットして、Aの証明に間違いがないかを確かめ、間違いなければ承認します。誤っていれば承認はしません。これと同じことをBもzk-SNARKの「アルゴリズム2」を使って実行し、真であることを証明、「アルゴリズム3」で真偽が確認され、正しいと承認されれば、そこではじめて取引が実行されるわけです。
大まかではありますが、以上の様な流れでTornado Cashを経由して行われるトランザクションが、誰と誰の間で、いくらの取引が行われたのかが、過去の取引履歴も含めてすべて秘匿化されます。
関連記事:DeFiとは?仕組みや注目されている理由を徹底解説!
なぜTornado Cashが資金洗浄に多用されるのか
Tornado Cashは、イーサリアム上の取引を完全に匿名化することに成功したわけですが、皮肉なことに、その秘匿可能なメカニズムゆえに、資金洗浄に悪用される例が多発しました。
例えば、世界的な人気NFTゲームの「Axie Infinity」は、北朝鮮のハッカー集団に700億円超相当の暗号資産をハッキングされ、Tornado Cashが資金洗浄に利用されました。
日本のLiquid取引所を運営する「QUOINE社」も、約100億円相当のハッキング被害に遭い、その資金が同じくTornado Cash を使ってマネーロンダリングされました。Tornado Cashを使えば、送り手も受け手も、その取引額すら誰も確認できないため、一旦取引が実行されてしまうと、取り返しようがないのです。
ただ、サービス提供者の「Tornado Cash」も、この状況を見過ごすわけにはいかず、特定の怪しいユーザーをブロックする処置を講じています。具体的には、2022年4月に上記の北朝鮮のハッカー集団「ラザルス」をはじめとする、米財務省・外国資産管理室から制裁対象に指定された暗号資産ウォレットのアドレスをスクリーニングできるチェイナリシス社のツールを導入したと発表しました。
チェイナリシス社は、ロシアによるウクライナ侵攻を機に暗号資産をめぐる不正取引が増加するのを阻止すべく、同年3月に上記サービスを開発のうえ無償提供を始めています。
Tornado Cashは安全なのか
Tornado Cashに限らず、他にもミキシングサービス会社は多数存在しますが、中にはすでに強制停止や閉鎖に追い込まれている例もあります。理由は言うまでもなく、資金洗浄の温床となっていることと、それを阻止する有効な手立てがなかったことによります。
Tornado Cashについては、マネーロンダリングをくい止めるべく、上記のスクリーニングツールを活用していますが、これが完全な問題解決につながるかどうかは、今後の動向を見て判断するしかないでしょう。
まとめ
Tornado Cashは、イーサリアムブロックチェーンの課題であった「プライバシー問題」を解決する画期的なスマートコントラクトです。しかしその反面、資金洗浄に悪用される事態を招いているのも事実で、これを回避するための取り組みが強く求められています。
銀行口座を活用した一般的な金融取引では、誰が誰にいくら送金したか、というのは決して漏えいしてはならない機密情報になります。もし外部に流出すれば、金融機関は重大な責任を負うことになるでしょう。それを考えると、ブロックチェーンで全取引が誰でも確認できるというのは、個人、法人にかかわらず、大きなリスクとなりえます。
以上の意味で、秘匿性を確保しつつ、セキュリティの面でも安心して活用できるシステムのニーズがいかに高いかがわかるでしょう。
レリパでは、ブロックチェーンサービスの構築をお手伝い致します。日本語に精通した経験豊富なエンジニアが、DeFiやDapps、NFTやIDOなど、スマートコントラクトを活用した先進的なビジネス展開を全力でサポートします。
ご用命の際は、ぜひ気軽にお声掛けください。心よりお待ち申し上げております。
出典:https://relipasoft.com/blog/tornado-cash-money-laundering/