BTC・暗号通貨のマルチシグとは? CoincheckがNEMを流失してしまった原因なの??



Coincheck NEM 約690億円相当を流失


2018/01/26 モンスターハンターワールド発売日ですね!無意識にDLしてしまったので1日の4/5の時間を狩人として過ごしていたら、驚きのニュースが...


Coincheck 580億円相当のNEMを流失


どうやら内部のシステムのセキュリティが万全ではなかった様子... 歴史に残る重大インシデントですね(-_-) 現時点で発表されている情報は少ない上に信憑性も確かではないので敢えて色々言いませんが、起きてしまった事象だけは備忘録として記録しておこうかな、と思ったわけです(>A<) まぁ、僕は今回のインシデントで不利益は被っていないのでCoincheckがどのようなセキュリティを行なっていたか冷静に調べられたわけですが...


マルチシグ ( Multisig ) 未対応だった!!


今回の流失を招いた原因として挙げられているのがNEMNEM公式が推奨している(らしい?)マルチシグと呼ばれる署名方法を採用していなかったことが挙げられている。 まぁ、コールドウォレットならマルチシグは当然でしょ...(-∆-)と思っていた皆さんはいろいろ物申したいことが多いはず... でもその前に自分がちゃんとマルチシグという方法をきちんと理解していないな、と感じたので備忘録へ!!


マルチシグとは? 


簡単に言うと、鍵を複数人で持つことによってセキュリティを高めるというやり方。例えば、鍵が5つある金庫に3つの鍵がささらないと中のお金を取り出す事ができない!というイメージでいいと思ってる!その中の1つの鍵が盗まれたとしても、残り二つの鍵を刺さない限りはその金庫が開くことはないので中のお金が盗られることはないという風にセキュリティを高める事ができる。 BTCなどでもう少し具体化して考えると、ある取引所のウォレットAからある取引所の自分のウォレットBに何かしらのコインを送金したい場合、自分のウォレットAの鍵だけでは送金はできない。そのAの取引所の運営側が持つ鍵とさらに別の鍵もささないと自分のウォレットAの扉は開くことはない、という感じ。なので、自分のウォレットAの鍵が万一、盗まれたとしてもハッカーは取引所がもつもう複数の鍵も盗んでウォレットAの扉を開かなければ、ハッカーのウォレットCには送金できない!というわけ!


もう少し詳しく!


正直、技術概要には興味がない("_")という方は上までで理解できたら十分だと思うので、あとは画面すワイプでもして戻ってください...


マルチシグは鍵を持つ全員の署名を必ずしも必要としません。上記の例の通り、5人鍵を持っていた場合でも3人の署名、つまり鍵がさされた場合は扉を開けますよ!ということでもいいということ。 基本的にマルチシグの最小構成は4つのアカウントが必要でそれぞれが鍵を秘密鍵を持っているということ。


それらのアカウントを仮にA,B,C,DとしてBがDのある商品をコインで購入する場合を考えてみましょう!(この場合の取引とは基本的にコインでコインを買うと言う事ですがわかりにくいので今回は商品とします) まずBとDが取引をするにあたって間に中間者であるCが仲介します。AとはマルチシグアドレスというアカウントでBCDが一つだけ作成する「金庫用のアカウント」で2つの鍵が同時にささっていないと扉は開かない施錠機能をもっています。一つの「金庫」として考えていいので以下からは「金庫A」とします。

金庫Aは作成された際は空っぽです。そこにBがコインを入れ金庫Aの鍵をしめます。今後、金庫Aは2つの鍵が同時にささっていないと開くことはありません。このコインを入れる際に金庫AのアドレスにBがコインを送金した、というログはブロックチェーン上に記録され誰でも見る事ができます。Dはブロックチェーンを確認してBからの送金を確認できた場合は金庫Aから自分のアドレスに送金するトランザクション、つまり金庫Aから自分への送金の手配をするため金庫Aに鍵をさしますが、それだけでは金庫Aは開きません。その後、Dは商品をBのもとに送ります。そしてBがDから送られてきた商品の銘柄や数量などの情報が正しいと判断すると、Dの鍵がささったままの金庫AにB自身が持つ鍵をさしてあげることで無事、Dがコインを手にして、取引は終了ということになります!


この取引の際に例えばDが商品を送らなかったとすると、Bは当然金庫Aの中にあるコインを返してもらわないといけません。ですが、鍵は同時に2つさしてないと扉は開かないので、この時は中間者であるCが鍵をさしてあげてBも自分の鍵をさし、無事にお金を取り戻すことができます。

そもそもBが金庫Aに送金しないとDは商品を送らないのでBが悪さをすることもできないです。だがしかし、このやり方をもってしても悪いことをできる存在がいますね。中間者Cです。Cは金庫Aを開けてコインを横取りできる唯一の存在ですよね。2011年のマウントゴックス事件の中間者であるマウントゴックスが悪さをしたとされています。なので中間者は悪さができないように誠実な中間者を複数置くといいでしょう。C,E,F,Gのように中間者4人とかだと悪さはしにくくなりますね!


こういったマルチシグな取引方法で取引している仮想通貨は多いのではないでしょうか?


Summary

さて、ここまで書いてきましたが、マルチシグそのものの技術は理解できたものの今回のCoincheckの流失事件の全容はまだ把握できていないままです。マルチシグを採用していなかったのが原因で盗まれたのか、マルチシグで防げたのか、そもそもマルチシグとか以前の問題だったのか、真相は未だ判明していません。真相がわかり次第、インシデントレポートを公開して欲しいですね!どのように盗まれたのかのアルゴリズムがはよ知りたい!知りたいけど私はこの辺でまた狩人に戻りますので今回はここまで。 今後、時間があればちゃんとイラストなんかで説明したいな...


GOOD PAGE


マルチシグとは?セキュリティが超向上する裏技!使い方・メリットを教えます!

Multisig(マルチシグ)って何?

NEM(ネム)マルチシグ設定方法と落とし穴|xemを安全に保管する