みなりん*氏によるcoincheckクラッカーへのマーキング行為がJK17というバズワードとともに界隈で話題になっている。即応性と根気強さにおいてみなりん*氏を賞賛したい。すごい。
しかし、実は行っていること自体は全てNEMの標準機能を使用しており、しっかり準備すれば誰にでも行えることであるのも確かである。その手軽さもNEMの特徴と言える。みなりん*氏が犯人のアドレスを追跡しマーキングを行った方法を、NEMの機能の説明を交えながら解説する。
特にビットコインなどに詳しい面々もNEMの実際の機能などについては意外と知らなかったりすることがわかったので整理していおきたい。
・coincheckから盗まれたXEMがどこに行ったのかを特定する
匿名性の無い暗号通貨は取引の様子を誰でも確認することができる。coincheckのNEMアドレスがわかればクラッカーのアドレスを特定するのは容易だ。例えば以下のNEMBEX(NEM Block Chain Explorer)で表示されたアカウントがcoincheckのアカウントである。
http://explorer.ournem.com/#/s_account?account=NC3BI3DNMR2PGEOOMP2NKXQGSAKMS7GYRKVA5CSZ
何を見ればいいのかわからない人はスクロールして2018-01-26 00:02:13以降のトランザクションを確認してみよう。
・NEMのモザイクとは
今回マーキングに使用されたNEMのモザイクとは、NEMネットワーク上で独自のトークンを作成できる機能である。トークンというのは「ポイントカードのポイント」や「地域通貨」、もっと身近な例では「肩叩き券」のようなものであり、通貨の域には達していないが、ある限定された範囲で使用できる通貨の「ようなもの」である。NEMのネットワークに手数料を払えば誰でも自由にモザイクと呼ばれるトークンを発行することができる。
NEMのモザイクの作成を行う際には、「名前」、「説明」、「発行数」、「発行数のロックの有無」の他に「徴収」を設定できる。この徴収の設定が今回のマーキングに使用されたモザイクの肝である。
・徴収とは
徴収とはモザイクを送金する時に送信者が支払う手数料のことだ。送信手数料と言ったほうが通りがいいが、モザイクを作成する人が送信手数料を「徴収」することができるという機能なので、こういう言い方になる。
NEMのモザイクを作成すると、徴収の量と種類、送り先を設定することができる。もちろん設定しなくても良い。この機能により、頻繁に独自トークンが取引されるようなサービスの収益化を行うなどの利用が想定されている。
ところでモザイクの徴収の対象は「XEM」というNEMネットワークの基軸通貨だけでなく、自由に「モザイク」を設定できる。
NEMの公式クライアントであるNANOWalletでのモザイク作成画面。徴収するモザイクをXEM以外にも自由に設定できる。
・みなりん*氏のマーキング=アドレスから剥がせないモザイクとは?
別に直接確認したわけではないのでみなりん*氏の手法と細かい部分に違いがある可能性があるが、特定のアドレスに送りつけて剥がせなくするモザイクの作り方を説明する。
まず2種類のモザイクを発行する。
1つは発行者のみが所有し、他の誰にも送金していないモザイクである。これをAモザイクとする。 次に発行するモザイクは徴収にAモザイクを設定したモザイクである。これが今回犯人のアドレスに送られマーキングに使用されたモザイクだ。これをBモザイクとする。
犯人にBモザイクを送信すると手数料としてAモザイクが徴収される。徴収先を自分にしておけば、自分で支払い自分で受け取るのでAモザイクの残高は結果的に変化しない。一方、犯人はAモザイクを持っていないので送られたBモザイクを誰にも送信することができない。 手数料不足で不正なトランザクションとして弾かれてしまう。そもそもAモザイクは発行者が自分のアドレスに全て保有しているため、どこかでAモザイクを手に入れることも不可能である。
犯人が盗みだしたXEMを別のアカウントに移すたびに、常時監視しているみなりん*氏がここで言う「Bモザイク」を犯人の新しいアドレスに送りつけている。そのため他の人間が、あるアドレスについてクラッカーのものかどうかを確認したかったらBモザイクの有無を確認するだけでいい。
もちろん自分でcoincheckのアドレスから盗まれたXEMの流れを調べてアドレスを確認することも可能だが、犯人が大量のアドレスを経由してXEMを送金し撹乱した場合のことを考えると、みなりん*氏がやっていることは非常に効果的であると言える。
これにより取引所やXEMを扱うお店などで犯人が盗みだしたXEMを使用するのは非常に困難になった。
・間違えてマーキングしてしまったら?
間違った人にBモザイクを送ってしまったり、犯人が反省してcoincheckにXEMを返却した場合、モザイクを剥がす必要が出てくるかもしれない。その場合手数料分のAモザイクをそのアドレスに送ってあげれば、みなりん*氏にBモザイクを送り返すことができる(ちなみに譲渡許可という機能があり、みなりん*氏以外に送り返せないようにモザイクを設定することも可能。おそらく実施している。)
・相手のNEMアドレスが犯人のものかを確認する方法
現在犯人は一般人のアドレスに無作為(?)にXEMを送っているようだ。NEMを使用している人は身に覚えのないXEMが知らない誰かから送られて来た時に、それがcoincheckハッキング犯のものなのか、ただの善意の匿名寄付なのか確認する必要がある。
例えばその送金元が、「NDDZVF32WB3LWRNG3IVGHCOCAZWENCNRGEZJVCJI」というアドレスだった場合。それを確認する一番早い方法はNEMBEXで検索することだ。
http://chain.nem.ninja/#/blocks/0
http://chain.nem.ninja/#/search/NDDZVF32WB3LWRNG3IVGHCOCAZWENCNRGEZJVCJI
画面中程に所有するモザイク一覧が表示される。そこにみなりん*氏からのメッセージが読み取れるだろう。
すなわち、これがクラッカーのアドレスであることがわかる。
もし、このようなことがあった場合は、クラッカーから送られた金額分のXEMは保持したままにし、NEM財団やcoincheck側の指示が発表されるのを待つようにとアナウンスされている。監視は行われているものの、普通のアカウントにXEMが送られた場合にみなりん*氏のマーキングが行われるということは無いようなので安心して欲しい。