今回はブロックチェーンのウォレットについて紹介します。
できる限り「Short & Simple」を心がけます。
なお、私もブロックチェーン初学者なので、内容に誤り等ありましたらご指摘いただけると幸いです。
ウォレットとは
ウォレットとはデジタル鍵(秘密鍵、もしくは秘密鍵と公開鍵のペア)を保持する単純なデータベース。ウォレットというとコインなどを管理しているイメージだが、実際はデジタル鍵を管理している。
※秘密鍵や公開鍵については以下の記事をご参照ください。
ウォレットアドレス
ウォレットアドレスは**「お金を受け取るためのアドレス(=お金の送り先のアドレス)」**。公開鍵から一方向ハッシュ関数を用いて生成される。
ウォレットアドレスは、ブロックチェーンの参照やインターネットへのアクセスがなくても生成することができる。
非決定性(ランダム)ウォレット
初期のウォレットはランダムに生成された秘密鍵の集まりを管理しており、このタイプのウォレットを非決定性ウォレットを呼ぶ。
例えばビットコインクライアントの場合、初回起動の時にあらかじめ100個のランダムな秘密鍵を作成する。ここの鍵は1度しか使われないため、ストックがなくなると必要に応じて鍵を追加する。
非決定性ウォレットの欠点は、鍵のすべてをコピー(バックアップ)しておく必要があること。ウォレットにアクセスできなくなった場合、鍵のバックアップがなければその鍵に紐づく資金を永久に失うことになる。
決定性ウォレット
決定性ウォレットまたはSeededウォレットは、1つの共通の「シード(乱数)」から一方向性ハッシュ関数を用いて導出された秘密鍵が入ったウォレット。
決定性ウォレットでは、「シード」があれば生成されたすべての鍵を復活させられるため、「シード」のみを1度バックアップしておけば十分。
「シード」はウォレットのエクスポートやインポートにも適しており、ウォレット間の鍵の移行を容易にしてくれる。
ホットウォレットとコールドウォレト
後日追記します。