コインチェック問題 取引所の本当のコインの流れってどうなってるの?

coin2

ようやく取扱うことにしました。コインチェック問題。こんにちは、ノリヒロです。今回はCryptopiaのことではないです。XEMが流出した事について経緯、問題点、対策、返金など情報は沢山出ています。が、そもそも取引所が注文を受けてからどのようにコインを移動して保管しているのか(秘密キーをどのタイミングで発行、管理しているのか)を説明しているサイトが見つかりません。検索の仕方が悪い可能性はありますが。そこで、その点を考えてみることにします。

コインチェック XEM流出問題

目次
①コールドウォレットとかマルチシグとか

②取引所の中のコインの動き、知ってる?

③想像してみた。

①コールドウォレットとか、マルチシグとか

この部分は、さんざん他のサイトやメディアで取り上げられているからいいですかね。

コールドウォレットインターネットとは完全に切り
離されたウォレット。
ペーパー(秘密鍵を紙に書写す)やハードウォレット(専用デバイスで秘密鍵を管理する)がある。

まず、「ウォレット」って言葉、誤解をうみそうなんで、「秘密キー(鍵)」と解釈しましょう。こうするとブロックチェーンを理解するのがわかりやすいです。ペーパーウォレットということは、「紙の秘密キー」ということです。文字通り、秘密キーが紙に印刷されている訳です。ハッキングはもちろんされませんが、紛失したり、燃やしたりしたら…アウトです。

ハードウォレットは、コインをハードに移動させて保管するイメージがあったのですが、先ほどの解でいうと、違うのがわかりますね。ハードウォレット=「ハードな秘密キー」です。ハード(機械)で「秘密キーを管理する」という事ですね。キーはリカバリーフレーズとも言います。そのほかには、送金する際のPinコード(動作を実行するための暗証番号のようなもの)もあります。Pinコードを忘れても、リカバリーフレーズがあれば再設定可能です。
これに関しては、詐欺が報告されています。ブログで紹介されて、ハードウォレットを購入⇒記載されてあったPinコードを入力してBTCを送金(Pinコードがすでにあるということは、すでに誰かが暗証番号を設定しています。他の人の暗号キーが登録されているのです)⇒他人のアドレスに送金する⇒また被害にあう…。こんなパターンもあったようです。ハードウォレットの初期設定から自分で行います。Pinコードも自分で設定しますので、最初からPinコードが入っている機械は、新品ではありません。詐欺ですので、注意してください!正規品を買いましょう。

マルチシグトランザクションの署名を行うのに複数の秘密鍵が必要となる技術。マルチシグのアカウントを作る際に、署名をする人を複数氏名、そのうち何人の署名が必要か決める。

公証人みたいなもんですかね。送金が正しいかどうかをチェックする役割ですね。ただ、承認する人数が多ければ多いほど、コストと時間がかかるようです。

②取引所の中のコインの動き、知ってる?

原因、対処の方法などはたくさんアップされています。ただ、そもそも論としてコインチェックをはじめとする取引所が、注文を受けてから約定後、個人のコインとして保管する⇒すなわち、個人の秘密キーをいつ発行して、どのように管理しているのか、ブロックチェーンをいつ更新しているのか、この一連の流れが検索しても出てこないんです。その点に関して、国内の大手取引所のHP、関連する場所をピックアップしてみます。

まずは、zaif(ザイフ)から。
zaif
zaif(ザイフ)セキュリティ体制について

次に、GMOコインです。
G1

G2

GMOコイン セキュリティ・顧客資産管理について

いかがでしょうか。

なお、先ほどと同じように「ウォレット」の定義を変えますね。
「ホットウォレット」秘密キーをネットに接続できる状態(オンライン)で管理すること
「コールドウォレット」秘密キーをネットから隔離して(オフライン)で管理すること

各取引所に共通しているのは
1:取引所資産と顧客資産は分けて保管
2:資産で非流動的なものはコールドウォレットへ
3:取引所資産の移動は内部で複数承認が必要
4:移動はマルチシグを使う

これをもとに、コインの流れを考えてみます。

③勝手に想像してみる。

図にしてみました。
簡単にするために、取引所ではなく販売所の流れとして表記しています。また、短期保管をわかりやすく「デイリー保管」としています。必ずしもデイリーで行っている訳ではないと思います。ご了承ください。

G3
これを踏まえ、取引所の「秘密キーの保管方法」を考えてみます。
前提として、「秘密キー」は取引所が保管しています。

①コイン売買の予測をして、ある程度のコインは取引所デイリー管理用に保管(zaifはこのようにいっているように思えます。GMOは言及していないようです。)秘密キーの管理は「ホットウォレット」です。
取引所デイリー管理用のコインの過不足に合わせてオフライン取引所から移動を行う。その際は、取引所内部の複数人の承認が必要。
③売買でデイリー管理用顧客資産に移動した場合
1:すぐにオフライン顧客資産へ移動?
秘密キー管理は「コールドウォレット」
それとも
2:ある程度まとめて移動?
秘密キーの管理は「ホット」⇒「コールド」
ただし、時間差あり

そもそも
3:管理顧客用(個別の)秘密キー発行があるのか?
⇒取引所のシステム上はすでに個別資産となっているがブロックチェーン上では、資産はまだ取引所のもの。移動をしない。

この仮定だと
顧客にとって、オンラインウォレット上では、売買したコインがすぐに自分のものになっているか(自分の顧客資産に移動しているかどうか)は表面上は分からないですね。確認しているのは取引所が提供する画面表示だけですので。コインチェック事件時に、「コインチェックサイト内ではNEMの残高がある表示になっている」けど、NEMが流出した(実際の取引所内のNEMはない)という事象がおこったのは、このことでしょうね。

ノリヒロが取引所運営だったら、「ある程度のトランザクションをまとめて、一定期間で処理してもばれないだろう。時間もコストもかかるしね。表面上は処理してあるように見えるし」って
思うかもしれません。ただ、その間は秘密キーはオンライン上にありますから、ハッカーの餌食になる可能性があります。処理するまでの期間がながければ長いほど。

先ほどのGMOコインのセキュリティ対策文の中でさらに気になる文言が。
「顧客資産と当社資産につきましては、毎営業日過不足がないか算定、照合することにより、分別管理を徹底しております」
これって、「至急移動のないコインの秘密キーは、都度ではなく毎営業日ごとにまとめて、コールド状態に移動してますよ」っていってるように見えなくもないのですが…いかがでしょうか。

この仮定で、「コインチェック問題」を考えてみます。
<コインチェック問題の概略>
顧客から預かっていたNEM約580億円が不正流出
大半のNEMが流出されたのは、約5分間
被害者は約26万人
秘密キーはホットウォレットで管理していた
ハッキングを受けていた

まず、秘密キーがホットウォレットで管理されていたというところからハックされたのは
「取引所資産のデイリー管理用」「顧客資産のデイリー管理用」になりますね。
で次です。

被害者26万人、約5分間というところです。約5分間で26万人のウォレットから26万人分の秘密キーを使って残高を移動させる…というのは、非効率な気がしますけどどうなんでしょうか。また、一連の情報を見る限りでは「コインチェックの口座」から盗まれたという記事が多いです。ですので、「取引所資産のデイリー管理用」から盗まれたというほうが、納得しそうですが、それだと顧客資産と取引所資産を厳密にわけているとはいえないでしょうね。もちろん、顧客資産デイリー管理用のウォレットから個別に盗まれた可能性もあります。判断は難しいです。

最後に、ハッキングを受けていたというところから。「取引所資産のデイリー管理用」のコインアドレスと秘密鍵が盗まれた、もしくは「顧客資産のデイリー管理用」のコインアドレスと秘密鍵が盗まれたということでしょうね。ここもセキュリティが甘かったということですかね。

総合すると
コインチェックは、NEMの販売所を開設していた。
管理の方法として、
顧客資産用の個別秘密キーを作成せず(ブロックチェーンを都度更新はしないで)、あくまで「取引所のデイリー管理用の秘密キー1つ」で一括保管。取引所の画面では、数字が更新されているので個保有になっているようにみえる。個別に秘密キーが必要になった場合、もしくは一定の時間で新規発行で(ブロックチェーン更新)。この際の秘密キーもホットウォレット管理だった。要するに、ブロックチェーンの更新を時系列通りに行っていなかった。もしくはその最中のものが多数あった。
顧客資産用の個別秘密キーは作成されていたが、ホットウォレット管理だった。
①か②が原因で、そこを狙われ、そのアドレスと秘密キーをハッキングされて不正流出となった。こんな感じになりますかね。書いててちんぷんかんぷんになってきました。わかりにくくてすみません…。

よく取引所は「ブラックボックス」といわれているようですが実際のところはどうなんでしょうか。すごい気になるので、そこ間違ってるよ、とか詳しい情報知ってるとか教えていただけると助かります!

本日もよきCryptoLifeを。
ありがとうございました。

コメント