CCの事件の最中、その裏では盗まれたxemが転送されたアドレスが特定され、@minarin_氏によりアドレスの監視が行われていました。
その中で「動かせないモザイクでマーキングをした」という話が上がっていました。
おそらくはそのモザイクを持っているアドレスから取引所に送られたxemを保護するためのマーキングでしょう。
(実際にどうゆうことが行われたか、具体的なことはわかりません。時期がきたら公表されるかもしれませんが)
それはそうと、「動かせないモザイク」ってどうゆうことだろう?と思ったのですが、確認して見たところ Levy
機能を応用したやり方でそれを実現していました。
動かせないモザイクの作り方
モザイクにはLevy
という、そのモザイクを転送するために必要なモザイク(xemを含む)を設定できます。
Levy
が設定されたモザイク、転送手数料とは別に、Levy
で設定されたモザイクが転送する際に必要です。
いままでよくあったのは、高額のxem
を設定して、うっかりそのモザイクを転送するとxemがLevy
指定のアドレスへ送られてしまう(事実上奪われる)という罠めいたものがありました。
その際、残高が足りなければ当然送信はできません。
それを応用して、Levy
に流通していない、絶対に手に入らないモザイク(自分で発行してどこにも転送しない)を設定します。
そうすれば、送りつけられたモザイクを転送するためのLevy
モザイクが手に入らないので、モザイクを転送できなくなっちゃいます。
この方法で、盗まれたアドレスへこのモザイクを送りつけることでマーキングを実現していたわけですね。
具体的に、こちらがそのトランザクションの一部です。
mizunashi.coincheck_stolen_funds_do_not_accept_trades.owner_of_this_account_is_hacker
というモザイクを送りつけています。
そしてそのモザイクのLevy
にはmizunashi.coincheck_stolen_funds_do_not_accept_trades.levy_to_lock_assets
が1
必要だと定義されています。
このmizunashi.coincheck_stolen_funds_do_not_accept_trades.levy_to_lock_assets
がどこにも流通しない限り、owner_of_this_account_is_hacker
を受け取ったアドレスからは動かせません。
マーキング
みなりん氏は犯人のアドレスを監視し、そこからxem
が転送されたら、その転送先アドレスにもモザイクを送りつけるbotを稼働させ追跡しているようです。
nemのパブリックチェーンを追えば全ての取引は確認できますが、トランザクションを遡るのはなかなか大変です。
取引所で資金をロックさせるために(もしくは犯人の逃げ場を塞ぐために)、簡単に確認する方法としてはとても優れた方法だと思います。
これで、なんとか良い方向で騒動が収束するとよいのですが…。
誤解
この方法はあくまで疑いのある転送が行われた宛先アドレスを特定する手法です。
窃取されたxem
自体を追跡するものではありませんし、それは仕組み上不可能です。
取引所など、一つのアドレスへ送られてまとめられるような、ブロックチェーン外での残高管理が行われた場合はロンダリングされてしまいます。
※
いまいちLevy
の応用が思いつかず、あまり注目していなかったのですが、こんなこともちょっとした応用でできてしまうところはアポスティーユ同様、相変わらず応用が効くプラットフォームだなぁと感じました。
また、言わずもがなだとは思いますが、今回の事件はnemの脆弱性を攻撃されたわけではありません。
事件の詳細は現時点では不明ですが、何らかの方法で秘密鍵が流出したのが可能性が高いでしょう。
(もし秘密鍵をクラックされた(逆算された)、というならばもうそれどころではないレベルです…)
nemのテクノロジー自体はなにも揺らいでいません。それだけは誤解のないように。