Tech

ビットコインのウォレットの技術的解説

  • このエントリーをはてなブックマークに追加

ウォレットは、秘密鍵の入れ物です。

TIP

  • ビットコインのウォレットは、コインではなく、鍵を保存しています。
  • ウォレットは、公開鍵・秘密鍵のペアが入っているキーチェーンです。
  • 鍵で取引にサインすることで、取引出力(コイン)を所有していることを証明します。
  • コインは、取引出力(vout, txout)の形でブロックチェーンに保存されています。

非決定的(ランダム)ウォレット

  • 最初のビットコイン・クライアントでは、ウォレットはシンプルにランダムに作成された秘密鍵の集合でした。
  • この形のウォレットは、Type-o 非決定的ウォレット(nondeterministic)と呼ばれています。
  • ニックネームは、単なる鍵の集まり “Just a Bunch Of Keys”(JBOK)
  • 決定的ウォレットに置き換えられている
    • なぜなら、管理、バックアップ、取り込みが面倒だから
    • ランダムな鍵の不便なところは、鍵を沢山作った場合に全部をコピーしなくてはいけない、つまり頻繁にバックアップをしないといけない

決定的(シード)ウォレット

ニーモニック・コード・ワード

  • ニーモニック・コード・ワード(記憶しやすい単語)
  • Mnemonic Code Words
  • ニーモニック・コード・ワードは、シードウォレットのシードとして使われるランダムな数を表す一連の単語
  • 12〜24の単語
  • BIP-0039: Mnemonic code for generating deterministic keys
  • Electrum やTrezorというウォレットで利用されている
  • ただ、利用される単語が違う場合、互換性がなくなる

作り方

(いつか書く)

RFC 6979

取引署名時に推奨される決定的署名

RFC 6979 – Deterministic Usage of the Digital Signature Algorithm (DSA) and Elliptic Curve Digital Signature Algorithm (ECDSA)

参考

  • オライリー 「Mastering Bitcoin」第4章
  • このエントリーをはてなブックマークに追加