決定性ウォレット(Deterministic wallet)とは~ビットコインを支える技術~

決定性ウォレット(Seededウォレットおも呼ばれる)とはシードと呼ばれる一つの起点からキーを一方向的にハッシュ関数で生成された秘密鍵は入ったウォレットである。このシードはユーザーに追加の情報をなく簡単にウォレットのバックアップや復元を可能します。また場合によっては、暗号鍵の知識なく、公開鍵を生成します。
このシードはシードフェーズと呼ばれる人間が読める英単語としてシリアライズされます。この人が読める英単語の並びをMnemonic Code Words(ニーモニック・コード・ワード / 記憶しやすい単語)と呼びます。代表的な決定性ウォレット(Deterministic wallet)はBIP0032と呼ばれるものがあります。

決定性ウォレット(Deterministic wallet)の恩恵

サトシクライエントなどの初期のクライエントは新しいランダムな暗号鍵のバッファーを生成して受け取り用に使用し、将来アドレスを変更できる仕様になっている。これはキープールバッファーを完全に使い切ってから暫くすると、バックアップが無効になる仕様でした。この頃のウォレットの仕様を非決定性ウォレット(Nondeterministic wallet)またはランダムウォレット(Random wallet)と呼ばれます。
一方、決定性ウォレット(Deterministic Wallets)は無制限のアドレス数をすぐに発行するので上のような問題で苦しむこともありません。
アドレスが分かり切った方法で発行されるよりランダムで発行される方が、クラアントは資産を失うことなく多くのデバイスを使用することができます。
この方法はユーザーが人間の読める形式のフォーマットシードのバックアップを一つ発行するだけなのでとても便利です。また、シードのバックアップは永久的で、古くなり使用できなくなる心配もありません。

BIP0032、Armory、CoinKiteなどのいくつかの種類の決定ウォレット(Deterministic Wallet)はより良いセキュリティと便利さを追求して暗号鍵と公開鍵が完全な分離にしているものもあります。このモデルだとサーバーは特定の決定性ウォレットのマスター公開鍵で設定されています。これにより、資金を受け取る際に多くの公開鍵を発行するを可能にしていますが、マスター公開鍵を外部に晒しても外部のハッカーから攻撃を許しません。
ElectrumやArmonyのなかで使用されるマスター公開鍵は完全なオフラインストレージと支払いを可能にします。

決定性ウォレット(Deterministic wallet)の弱点

一度、シードの情報が漏洩するとウォレットの中身をアドミン権限を取られたも同然の状態になり、通貨を安全に保てなくなる。

決定性ウォレット(Deterministic wallet)の種類

1.決定性ウォレット(deterministic wallet)

決定性ウォレット(Deterministic Wallet)は始まりの文字列からシンプルにアドレスを発行する方法で、マスター公開鍵のような拡張機能を持っていません。暗号鍵を生成するのにSHA256というハッシュ関数で生成されます。記憶しやすい英単語の並びになっています。

2. 階層的決定性ウォレット / HDウォレット(hierarchical deterministic wallet / HD wallet)

階層的決定性ウォレット(HDウォレット)とは現状、決定性ウォレット(deterministic wallet)の中で最も先進的な形式としてBIP-32の標準のものとして定義されています。
このウォレットは親鍵、子供鍵、孫鍵と親鍵から派生した階層を持っている鍵です。非決定性ウォレット(Nondeterministic wallet)に対して利点を持っています。それはツリー構造上に鍵が分岐しているために鍵とアドレスを細かく管理しやすいことです。
また、この種のウォレットは以下のウォレットに組み込まれています。
・TREZOR
・Electrum
・CarbonWallet

このウォレットではシードはランダムな128bitの値です。ユーザーには英語で12単語のフレーズが表示されます。

Gregory Maxwellにより提唱され、実装されました。

3.Armory deterministic wallet

Armoryは独自の2種類の決定性ウォレット(deterministic wallet)のフォーマットを持っています。一つはRoot Keyで、もう一つはChainnodeです。初期のころのArmonyはroot keyとchainnodeを両方ともバックアップしましたが、一方で新しいバージョンはchainnodeを暗号鍵から不可逆な形で生成します。0.89+以降の新しいArmonyは256-bitの一つのroot keyだけが必要になります。
以前の古いフォーマットはBIP0032基準に準拠するために廃止が進められています。

参照

https://en.bitcoin.it/wiki/Deterministic_wallet

You may also like...

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA