ハードウェアウォレットはクレジットカード(ICカードタイプね)

暗号通貨の値段が上がったり、メディアへの露出が増えると、新たに手を出す人もたくさんいるようで、
そんなことも知らずによく大金をつっこめるなぁ、というような疑問・質問で溢れかえることもある。
理解のあやふやなところを再認識できるきっかけでもあるので、ありがたいことである。

今回のネタはledger nano sなどのハードウェアウォレット。
ICカードタイプのクレジットカードの仕組みを暗号通貨に適用したものがハードウェアウォレット、と言ってみたい。

ブログで以前免許証にアクセスしたりしましたが、
ICカードというのは、要求(コマンド)を送るとカードに埋め込まれたチップが何らか処理して応答(レスポンス)を返してくれる。
コマンドの送り方やアクセス手順なんかはカードの仕様であって、クレジットカードのはEMV(2020年までに100%普及を目指しているあれ)という。 非接触(EMVCo)もある。
仕様書は閲覧できる。(接触非接触QRCodeなんてのもありますね)

仕様においては カード(ICC)側と装置(IFD)側それぞれ色々書いてありますが、つまりは、
決済用トランザクションデータを作ってカードへ署名を依頼すると、カードが署名データを計算して教えてくれるので、
これらをサーバ(例えばVISAとか)に送ると取引が完了する、ということである。
当たり前だけど、カードのチップにはハード的なクラック耐性もあるセキュアなものが使われる。
このセキュアの度合いを示すCC認証というものがあって、CC EALx と書いてたりするのがそれである。 (例えば、FeliCaが EAL6+を取っていましたね)
そしてもちろんPINとかの本人認証しないと署名の依頼なんて受け付けてくれない。

この手でいくと、
知られてはならない秘密情報は強固なセキュリティに守られており、
そこから出てくることもなければ、盗みだすことも困難だということになる。
ハードウェアウォレットでも全く同じ話である。

暗号通貨では、
自分だけが知っている秘密鍵で署名を行ったトランザクションデータがブロードキャストされ、台帳に記録されると所有権の移転(送金など)が完了する。
アプリがトランザクションデータを作り、
ハードウェアウォレットが署名データを生成する。
アプリは二つを合わせてネットワークへブロードキャストすれば完了だ。
奪われたりはしない。実に安全である。

違いは一つ、(誰のも知られてはならない)リカバリ用のフレーズを控える。
暗号通貨のウォレット・アカウントの生成に使うから、暗号通貨を直接扱っている以上は仕方がない。
(詳しく知りたいなら暗号通貨ウォレットの仕組みを確認しよう。このブログではWavesの話しかしてないが、どの暗号通貨でも大体同じだろう)


See also