暗号通貨ウォレット

暗号通貨ウォレットは、暗号通貨取引のための公開鍵および/または秘密鍵を格納するデバイス 、物理媒体 、プログラムまたはサービスである。

さらに鍵を格納するという基本的な機能に加えて、暗号通貨ウォレットは情報を暗号化または署名する機能を提供することが多い。署名の例としてスマート・コントラクト実行、暗号通貨取引、本人確認、法的な文書へのサイン機能が挙げられる。

ウォレットと比喩されるが、後述のとおり暗号通貨ウォレットには価値そのものの情報は書かれていない。正しく例えれば、口座番号と暗証番号が記録されたようなものである。

1. 技術背景
-------

1.1. 秘密鍵と公開鍵
------------

暗号通貨ウォレットは、秘密鍵と公開鍵を持つ。公開鍵は第三者に公開され、暗号通貨を受け取るために使用される。一方秘密鍵は、暗号通貨所有者が送金するために使用する。暗号通貨ウォレットないし関連ソフトは、任意の乱数、もしくは後述のシードから秘密鍵と公開鍵のペアを生成する。これら鍵の生成アルゴリズムは公開されており、生成したアドレスはランダムな英数字として手で書き留めることが出来る。

ここで、誰かが秘密鍵と公開鍵のペアを生成しても、ブロックチェーンや他者はその時点では知ることが出来ない。そのアドレスに暗号通貨が送られて初めて、公開アドレスと取引内容がブロックチェーン台帳に記載される。すなわち暗号通貨ウォレットはネットワーク上にある台帳へのアクセス手段で、ウォレット自体には資産情報や取引内容は記録されていない。

1.2. 生成アドレスの衝突
--------------

各アドレスは任意のシードからオフラインで生成できるため、2つのウォレットが偶々同じアドレスを持つ「衝突」が理論上は起こりうる。しかし、この確率は極めて低く、現実世界では問題とならない。例えばビットコインでは、生成可能なウォレットの数は2^256≒10^77で、これは宇宙の素粒子の数よりわずかに少ない程度である。

1.3. シードフレーズ
------------

逆に、全く同一のシードが用意できれば、不意に秘密鍵を持ったウォレットを失っても、鍵生成アルゴリズムにより秘密鍵を復元できる。 このため、シードフレーズが用意されている。これは、2048の単語から選ばれた12ないし24のランダムなリストであるが、それを利用するとアドレスにアクセスすることが可能になり、暗号化されていない秘密鍵と言える。

ウォレットを初めて使用する際は、乱数によりシードフレーズを用意する。ハードウエアウォレットや、時にオンラインのウォレットでさえ、シードフレーズを記録することが推奨される。もし、ウォレットが紛失、破損、などのリスクにさらされた場合、シードフレーズを使用して先のウォレットと関連するキーおよび暗号通貨全体に再アクセスすることが出来る。また、コインの銘柄ごとにアドレス生成のアルゴリズムは異なるが、多くのウォレットは一つのシードフレーズから様々な銘柄のアドレス生成に対応している。

1.4. ウォレット
----------

後述するように、紙に秘密鍵と公開鍵のペアを書いただけ、あるいはシードフレーズを書き留めただけでもウォレットの機能を認められるが、ウォレットに鍵やシードを保存する方法はそれにかぎらない。ネットワークに接続されたソフトウェアがアドレスを管理する場合、残高確認や送金などの処理が容易に行えるようになっている。

DAppブラウザというソフトは、ブロックチェーン技術に基づいて動作する分散型アプリケーションにアクセスする為の手段を提供する。暗号通貨ウォレットがデジタル資産の交換・購入・販売に特化し、対象を絞ったアプリケーションをサポートするのに対し、DAppブラウザは交換、ゲーム、NFTsマーケットプレイスなど、様々な形式のアプリケーションをサポートする 。

また取引所が提供するウォレットとは異なり、取引所以外のウォレットはウォレット機能が独立しているためセキュリティレベルを高めることができる。

2. 特徴
-----

鍵を格納するという基本的な機能に加えて、暗号通貨ウォレットは下記の特徴を持っていることが多い。

2.1. シンプルなウォレット
---------------

シンプルな暗号通貨ウォレットには、公開暗号鍵と秘密暗号鍵のペアが含まれている。それらの鍵は所有権を追跡したり、暗号通貨を受け取ったり使ったりするのに利用できる 。公開鍵を使用すると、他のユーザーはそれから派生したアドレスに支払いを行うことができ、秘密鍵を使用すると、そのアドレスから暗号通貨を使用できる

暗号通貨自体はウォレットには存在しない。ビットコインとそれに由来する暗号通貨の場合、暗号通貨は分散的に保存され、ブロックチェーンと呼ばれる公的に利用可能な分散型台帳に維持される

2.2. eIDウォレット
-------------

いくつかの暗号通貨ウォレットは、フレームワークに互換性を持たせるように特別に作られている。ヨーロッパ連合は、ヨーロピアンブロックチェーン・サービス・インフラストラクチャ上で動作するeIDAS互換のヨーロピアンアイデンティティ・フレームワークを作成している。

2.3. マルチシグニチャウォレット
------------------

マルチシグネチャウォレットは、1人の署名者が必要なシンプルな暗号通貨ウォレットとは異なり、複数の署名者が取引に署名することを必要とするスマートコントラクトである マルチシグネチャ  ウォレットは、セキュリティを高めるように設計されている

2.4. スマートコントラクト
---------------

暗号通貨の分野でスマート・コントラクトは、暗号通貨取引が署名されるのと同じ方法でデジタル署名される。そして署名キーは暗号通貨ウォレットに保持されている。

2.5. 鍵導出方法
----------

2.5.1. 決定論的ウォレット
----------------

階層型決定論的ウォレットは、BIP32で公に説明された。決定論的ウォレットとして、単一のマスタールートシードから鍵を導き出すが鍵ペアの単一の「チェーン」を持つのではなく、HDウォレットは複数の鍵ペアチェーンをサポートしている。BIP39は、ウォレットのマスタ－・プライベート・キーを導き出すために、人間が読みやすい言葉のセットを使用することを提案した。このフレーズは、ウォレットのすべての鍵が単一の平文文字列から導出可能であるため、ウォレットのバックアップとリカバリーを容易にすることが出来る。

2.5.2. 非決定論的ウォレット
-----------------

非決定論的ウォレットでは、各鍵はそれ自体でランダムに生成される。秘密鍵の再利用によるリスクを減らすため、各ウォレットは将来使う物を含め100ほどの鍵の組を持つ。

3. 種類
-----

仮想通貨ウォレットには「ホットウォレット」と「コールドウォレット」があり、各ウォレットはさらに細かく分かれている。

「ホットウォレット」と「コールドウォレット」の大きな違いはインターネットへの接続の有無と利便性である。

3.1. ホットウォレット
-------------

3.1.1. オンラインウォレット
-----------------

ウェブウォレットともいう。ブラウザを通して使うウォレット。利用者に代わってウォレットを管理する交換所、両替所などのウェブサービスのウォレット。端末の種類にかかわらず利用できるので利便性は高いが、セキュリティ面はサービス提供機関に任せることになる。

3.1.2. ソフトウェアウォレット
------------------

Windows、MacOS、iOS、Androidなどのオペレーティングシステム上で動作するソフトウェアのウォレットをソフトウェアウォレットという。デスクトップPCにソフトウェアをインストールする場合はデスクトップウォレットといい、モバイル端末にインストールする場合はモバイルウォレットという。

3.1.3. モバイルウォレット
----------------

スマホなどモバイルにインストールする。スマホ用のアプリとして使われる。

3.1.4. デスクトップウォレット
------------------

ソフトをパソコンにインストールする。最初に出たウォレットはBitcoin Coreであり、2009年にサトシ・ナカモトによってオープンソースソフトウェアとしてリリースされた。Bitcoin Coreはウォレットとしての機能だけでなく、フルノードとしてビットコインネットワークに参加してマイニングを行う事ができる機能を持つ。

3.2. コールドウォレット
--------------

3.2.1. ハードウェアウォレット
------------------

専用のハードウェアの端末を用いるウォレット。ハードウェアウォレットは、取引ネットワークに接続された外部のマシンに接続して利用する。ハードウェアウォレットの内部には秘密鍵が保存されているが、ウォレットは署名だけを行って接続先のマシンに送信するので、秘密鍵の漏洩の可能性はソフトウェアウォレットにくらべて低い。使用時は例えばPCにデバイスを接続し、専用のソフトから操作する。

不正アクセスへ対抗するため、ハードウェア自体の画面表示の確認や、物理ボタンの操作が要求される。送金時は、専用ソフトがリクエスト内容をハードウェア内のマイクロコンピュータICに送り、そこでマイコン内に記録された秘密鍵により署名コードを生成し、PCの専用ソフトに送り返される。そして、専用ソフトが署名済みの送金情報をネットワークに公開する流れとなっており、設計上は秘密鍵がハードウェアウォレットを出ることはない。一方で、デバイスはUSBメモリーほどの大きさであり、第三者の手に渡った場合、自由に暗号通貨を引き出せてしまう。デバイス自体をPINコードでロックすることで、コードを知らない物の不正利用を防げるが、特殊な電圧操作などでハードウェアウォレットから情報が抜き取れるという報告もある。

3.2.2. ペーパーウォレット
----------------

秘密鍵にアクセスするために必要なコードなどを印刷して用いるウォレット。クラッキングなどで秘密鍵が漏洩する危険性がないので、最も安全である。ただし、インクや紙の劣化、盗難に注意が必要となる。なお、ペーパーと言うが材質は紙に限らない。プラスチックカード型やコイン形状に仕立てられた物も販売されている。基本的には公開鍵と秘密鍵を生成して印刷するだけであり、ウェブブラウザ上で自作可能なツールすら公開されているが、ハッキングに備えてオフラインで生成することが推奨される。

また、秘密鍵を平文でペーパーウォレットに書いた場合、ウォレット盗難時に直ちに暗号通貨を引き出せてしまうため、別途用意したパスフレーズにより秘密鍵を暗号化するという機能を実装した物もある。この場合、ペーパーウォレットに印刷されているのは暗号化された秘密鍵のため、ペーパーウォレットだけでは出金できず、パスフレーズを入力して正しい秘密鍵を復元する必要がある。第三者から秘密鍵入りのペーパーウォレットを購入する場合、原理的に製造者は秘密鍵を知り得るため、信用に足る製造者か確認する必要がある。製造原価がほとんどかからず物理的にやりとり可能なことから、少量の暗号通貨のプレゼント手段として用いられたことがあるほか、暗号通貨の登録業者以外の販売が規制される前には、販売手段としても用いられた。

3.3. ホットウォレットとコールドウォレット
-----------------------

ホットウォレットとコールドウォレットの一番大きな違いは、オンラインであるか否かである。ホットウォレットは常にオンラインであるのに対し、コールドウォレットは常にオフラインである。ホットウォレットはオンラインであるため、資金を動かしやすいというメリットがあるが、ハッキング被害に遭いやすいというデメリットがある。一方コールドウォレットはオフラインであるため、資金を動かしにくいというデメリットがあるが、ハッキング被害に遭う危険性を最小限にして秘密鍵を保管出来るというメリットがある。

4. 使用方法
-------

4.1. 受け取り
---------

暗号通貨を受け取るためには、送金者にアドレスを伝える必要がある。これは、ペーパーウォレットでは直接印字されているほか、各ウォレットでも簡単な操作で表示できる。後述のようにアドレスを間違えると永遠に暗号通貨を失うため、QRコードなどを利用してアドレスの正確性に万全を期す必要がある。ビットコインなど一部の暗号通貨ウォレットは複数のアドレスを持つため、同じアカウントのウォレットでも送金のたびに違うアドレスが表示されることがある。この場合、ウォレットの残高は関連するアドレスを合計した物になる。

4.2. 確認
-------

ホットウォレットであれば、インターネットから情報を取得して自動的に残高が集計される。コールドウォレットの残高は、ブロックチェーン可視化ビューワーにアドレスを入力することで表示される。ブロックチェーンを確認する方法はソフトウェアウォレットにも有効であるが、先述のようにウォレットがアドレスを複数持つ場合、自分で各アドレスの残高を足し合わせる必要がある。

4.3. 送金
-------

基本的にはソフトウェアが内部の秘密鍵を読み出し自動的に認証して送金するが、ペーパーウォレットの場合、秘密鍵を入力する必要がある。秘密鍵入力の際、すなわちペーパウォレットを使用する際は、別途対応した信頼できるソフトウェアウォレットが必要となる。 ソフトウェアに送金する手法としてインポートとスイープがあるが、しばし区別されずにどちらもインポートと呼ばれる。ソフトウェアウォレットに秘密鍵を読み込ませたあと、その時点では送金せず、ウォレット内に秘密鍵を登録するのがインポートである。使用時には、ソフトウェアウォレット内に登録された複数のウォレットを組み合わせ、必要な額面をそろえて送金を行う。これにより手数料を抑えることが可能であるが、インポート元のペーパーウォレットの廃棄が不適切などで秘密鍵が漏洩した場合、暗号通貨を失う恐れがある。一方、既存のソフトウェアウォレットのアドレスに直接ペーパーウォレットから送金することをスイープという。この場合、ソフトウェアウォレットにペーパウォレットの秘密鍵を入力し、ソフトウェアウォレットがそれを元に送金の承認コードを発行する流れになる。手数料がかかる反面、ペーパウォレットの暗号通貨がすべてソフトウェアウォレットのアドレスに移動するため、安全性はより高くなる。

コインのハードフォークにより一つのアドレスに複数の暗号通貨銘柄が対応している場合、秘密鍵を入力する際はソフトウェアウォレットの対象銘柄をよく確認する必要がある。ハードウェアウォレットの故障などで秘密鍵を失った場合で、事前にその元になったシードフレーズが控えてあれば、それを対応した、ハードウェアウォレットやソフトウェアウォレットに入力してリカバリーすることになる。一般に秘密鍵の生成には共通の公開アルゴリズムを使用するため、シードフレーズから、たとえ違うメーカーのウォレットであっても、同じ秘密鍵が再生成できる。ただし、複数の種類の暗号通貨を所持していた場合でも、シードフレーズにその銘柄情報は記録されていない。あらかじめ自分で所持しているコイン銘柄を控えた上で、ウォレットをリカバリーする際にはその銘柄ごとにウォレットに設定、追加していく必要がある。

5. 注意点
------

目的に合ったウォレットを選ぶため、それぞれの特徴やメリット・デメリットを理解して置く必要がある。

5.1. ウォレットの紛失
-------------

ハードウェアウォレットやペーパーウォレットなどのコールドウォレットを使うときはウォレットをなくさないことが大事である。ハードウェアウォレットに関しては、秘密鍵・パスフレーズを忘れると復元できないので、注意が必要である。

5.2. 間違ったアドレスに送らない
------------------

取引所からウォレットに送ることやウォレットを変える場合に間違ったアドレスに送金するとお金を取り戻せなくなる。これは、例えば銀行口座なら誤送金に対しても、銀行が送り先の情報を持ち、引き出し前なら現金も銀行が持つため、適切に連絡を取ることで対応できる可能性がある。一方、暗号通貨では誤送金の送り先は凡そまだ誰のアドレスでもない場所であり、そこからの移動に必要な秘密鍵も誰も分からない。

5.3. ウイルス対策
-----------

パソコンがウイルスに感染してないか確認が必要である。特にホットウォレットでは、端末が不正アクセスを受けると致命的である。

5.4. ウォレットへのアクセス権限
------------------

ウォレットを選択する際は、暗号通貨所有者は誰が秘密鍵にアクセスできるかに留意する必要がある。特にホットウォレットの場合、プロバイダーが暗号通貨を安全に保管することについて、銀行に現金を預けるのと同じ水準での信頼を必要とする。暗号通貨のウォレットをパソコンやスマートフォンにインストールしても、それは自分だけが秘密鍵を持っていることを意味しない。例えばCoinbaseはスマートフォンにウォレットをインストールしても、ウェブサイトから同じウォレットにアクセス可能である。これは、秘密鍵がスマートフォン上だけでなく、Coinbaseによっても保管されていることを意味する。

もっとも、秘密鍵がプロバイダーによって保管されている場合、自身が不意に秘密鍵を失ってもプロバイダーの情報により暗号通貨を引き出し可能である、という利点もある。逆に、自身で一切の秘密鍵を、バックアップ含め保管する場合、それらが失われたら暗号通貨を引き出すのは不可能になる。

5.5. 匿名性
--------

暗号通貨は、ウォレット内の暗号通貨が人に結びついているのではなくアドレスに結びついているため、第三者は取引記録からただちに暗号通貨所有者を特定できない。しかしすべての取引はブロックチェーンに記録されており、先述のように公開されている。さらに、暗号通貨取引所は法律に基づき、ユーザーの個人情報の収集や取引の確認を行う。MoneroやZerocoin、Zerocash、CryptoNoteなどの追跡の難しい暗号通貨もあるが、概ねこれらは規制される方向にある。

5.6. 脆弱性
--------

ウォレットないし関連ソフト、ハードウェア含め製造者、販売者、運送者に悪意があった場合や、致命的なバグが含まれていた場合、暗号通貨を失うことがある。ハッキング等によりパスワード、秘密鍵、シードフレーズいずれかが漏洩した場合、暗号通貨を失うことがある。

6. 脚注
-----

7. 関連項目
-------

モバイル決済
暗号通貨

8. 外部リンク
--------

[1] - かそ部
[2] - かそ部
[3] - DMM Bitcoin
[4] - Curvegrid