「仮想」の「通貨」が「盗まれる」ってどういう意味?誰でも分かるコインチェック騒動を小飼弾が解説
取引所とウォレットの仕組みおよび脆弱性
山路:
仮想通貨のブロックチェーンという仕組みは、とても強力にできている。だけど、取引所に預けたところを狙われてしまう。仮想通貨を扱ったことがないと、なぜ取引所に仮想通貨を預けるのか不思議に思うかもしれません。
小飼:
仮想通貨の帳簿というのは、基本的に仮想通貨の取引だけを書いてあるわけですよ。例えば、麻雀大会のメモだとしたら、点棒の動きしか書いていない。
山路:
わかりやすいですね(笑)。
小飼:
その点棒が実際にいくらだったのかというのは、ブロックには書いていないんですよね。例えば、1000XEMをアドレスAからアドレスBに送ったという記録があっても、そのXEMをいくらで買ったかというのは書いていないわけですよ。
だから、仮想通貨の安全性というのは、あくまでも仮想通貨内の話であって、必ず外との接点というのがあって、そのうちの一番圧倒的にでかい接点が売買所なわけですよ。DEXとも言います。
仮想通貨の仕組みの中に取引所の要素は最初からない
山路:
そもそも最初にブロックチェーンの仕組みを論文にしたサトシ・ナカモトの中では、取引所の要素というのがないわけなんですよね?
小飼:
ないです。あくまでも、ビットコインで物を買って、あるいはものを売ったときにビットコインで受け取ると。仮想通貨の立場に立つと、他の通貨や法定通貨というのは商品になるわけです。
ただし、日本政府の立場というのは、今のところ仮想通貨というのは物品であるという、ちょうど逆になるんですけれども。どの通貨から見るかによって、なにが商品なのかというのは変わっていくわけですね。
山路:
取引所というのは、取引所の持っているウォレットをユーザーに貸しているという、イメージになるんですか?
小飼:
まあ、銀行口座ですよね。
山路:
ユーザーの数だけ、取引所にはウォレットがあるんですか? つまり、取引所のウォレットと、個人とのウォレットの中で行き来しないといけないじゃないですか。
小飼:
そこなんですよ。例えば、個人の口座が1000個あったとして、1000個ウォレットがあるわけではないんです。だからウォレットはそれよりも少なくて、そのウォレットの内訳が「だれにいくら、だれにいくら」というふうに内部的に書いてあるというだけなんですよね。
山路:
あくまでも、大きなひとつのウォレットの中にバーチャルなウォレットを持っているというイメージですか?
小飼:
いや、バーチャルなウォレットですらないの。このウォレットの財産の内訳というのは、その取引所のデータベースにあるだけなのよ。
山路:
じゃあ、それはブロックチェーンとは別の話になってきますね。
小飼:
もちろん本当にアカウントを作ったら、アカウントごとのウォレットが出来ていたというのもあり得ます。
もし、そうだとすると、例えば、取引所の中で、取引所から直接仮想通貨を売った、買ったという場合もそうですし、取引所の中の人に送金した、受けとったという場合にも、ブロックチェーンに書かなきゃいけないんですよ。
ブロックチェーンに書くということは、取引手数料を払うということです。だから、取引所の口座ごとにウォレットを作るというのは、その意味ではあまり得なことではないわけですよ。
山路:
1つ1つのウォレットで取引すると、取引所の儲けが少なくなっちゃうと。
小飼:
こういった場合には、安全になりますけれども。それにもうひとつ問題があって、ウォレットというのには秘密鍵があり、その秘密鍵をだれが預かりますか? ということがあるわけですよ。
単なるパスワードと違って、ずいぶんと人間が覚えるには秘密鍵というのは大きなデータなわけですよ。
仮想通貨は管理体制がまだ不十分
山路:
打ち出しやパソコンに保存をすることくらいはできるわけですよね?
小飼:
もちろんそうなんですけれども、認証とも違うわけですよ。
山路:
その管理というのも取引所に委託というか、任せてしまう人がほとんどなわけですよね?
小飼:
そういうことですね。
山路:
結局、そういうものを取られてしまうと好き勝手に送金されてしまう?
小飼:
それも違うんだ。さっきも言ったように口座の数だけウォレットがあるわけではないと言ったでしょ。今回の問題が深刻なのが、その取引所が持っている金庫のほうの鍵を盗まれて、金庫破りをされちゃったわけ。通帳の暗証番号が盗まれたというのとは、規模が違うわけですよ。
山路:
つまりハッカーが、金庫自体の秘密鍵を。
小飼:
ハッカーとは限らない。だから、こういう場合、内部犯行が一番ありえるので、内部犯行ではないピリオドというだけの材料をきちんと出して欲しいと僕は思う。
ホットウォレット/コールドウォレットって、なに?
山路:
今回XEMが盗まれたことに関して、コールドウォレットにしていなかったということがよく記事に出ていまして、ホットウォレットかコールドウォレットかみたいな話が出てきますけれども、コールドウォレットにしておけば、こんな事件は起こらなかったんでしょうか?
小飼:
起こりにくかったですね。
山路:
ビットコインとかに関しては、コインチェックのほうでも、コールドウォレットにしていたんだけどという話をしていますよね。コールドウォレットというのは、ネットワークには繋がっていなくて。
小飼:
オフラインですね。送金のときだけホット(オンライン)にするわけですね。
山路:
これが取引所であれば、やるべき普通のやり方、コールドウォレットにしておくべきというわけですよね?
小飼:
しておくべきですよね。少なくとも、煩雑に送金したり、入金したりする口座と、預かり資産のほとんどをストックしておくウォレットというのは、当然分けておくべきですよね?
山路:
しかし、そんな大量のものがホットウォレットになっていたというのは。
小飼:
そこが一番びっくりなところですね。
取引所が仮想通貨を運用するバランス感覚とは?
山路:
弾さんもビットコイン、仮想通貨には浅からぬ縁があるじゃないです。VALUのチーフエンジニアをされているので。
小飼:
当然、当座の入出金分というのと大きな預かり資産というのは、分別して管理しているので、取引が活発なときとかは、たいていの場合は24時間ごとにまとめてなんですけれども、「今日は出金が多いから」、「今日は入金が多いから」というので、途中でやることもあります。
ですが、基本的にすぐに動かさなければいけないのに、ちょうど足りる分だけ置いていますね。入金はともかく、出金に関しては、VALUの場合は2BTCまで、1営業日2BTCという制限もあるので、これだけ置いておけば今日の取引をするのに十分だ、というのは予測可能なわけですよね。
山路:
そういうふうにしておくのが普通であれば、そんなに大量の金がホットウォレットになっていたというのは、エンジニアからするとかなり意外な感じがする?
小飼:
意外ではなくて、一番これはありえんでしょう。ひとつの理由として考えられるのは、XEMというのか、この場合はブロックチェーンのことを言うのでNEMですね。
ブロックチェーンを署名するときに、誰の署名を持って正しいのかとするとき、ビットコインの場合は、かなり有名でとにかくハッシュパワーがあるほうが有利だと。
山路:
計算をひたすらさせるという。
小飼:
プルーフ・オブ・ワークと言うんですけれども。NEMの場合は、XEMをいっぱい持っている人が掘るときの優先権を持っているんですよね。だからNEMにおいては、ブロックの検証サインのことはマイニングではなくて、ハーベスティングという言い方をしています。
要は、それだけでも持っている人のほうがハーベストして、手数料収入というのも得やすいという。それだけ大きなウォレットを持っているというのは、そこで有利になるという見方はできるんですよね。
山路:
金持ち有利な仕組みなんですね。
小飼:
なんですけれども、ただそういった場合というのはホットでないとダメという感じがするじゃないですか? 要はこれだけ持っていますよという。
山路:
他から記録が見えて検証できないと。
XEMは第2世代仮想通貨?
小飼:
なんですけれども、NEMの場合はさらに巧妙な仕組みが用意してあって、このウォレットにあるお金をこのウォレットがコールドなままでも掘れると。
例えば、俺はここに5億XEM持っているけれども、5億XEMもホットな状態にしておくのはちょっと問題だから、これでハーベストの権利を行使するけれども、それで得た手数料というのは別のもっと小さい財布のほうに入れてくださいねというのができる仕組みなっていたんですよ。
山路:
巧妙ですね。
小飼:
委任できるようになっていたんですよ。ビットコインが第一世代だとすると、イーサリアムがその次の第二世代で、NEMは第三世代に近いところなんですよね。
だから、僕も実はよくは知らないです。けれども、ビットコインのこういうところが嫌だというのをかなり直したとは言えますね。
山路:
しかし、それがせっかくできるのにその機能が活用されていなかったということなんですか?
小飼:
活用されていなかった一番の理由というのは、オルトだから。
山路:
オルトだから?
小飼:
one of manyだから。
山路:
そこにあんまり開発のコストをかけていなかったという。
小飼:
まあ、そういうことですよね。