ビットコイン秘密鍵コンバーター(Hex ⇔ WIF)

ビットコインWIF <-> HEXオンラインコンバーター

ビットコイン秘密鍵を、Wallet Import Format(WIF圧縮/非圧縮)と64文字の16進数(HEX)形式の間で簡単に相互変換できます。

このクライアントサイド暗号ツールは、Base58CheckおよびSHA-256アルゴリズムを使用してビットコイン秘密鍵をエンコードおよびデコードします。秘密鍵をネットワーク経由で送信することなく、生の256ビット16進数秘密鍵とWIF形式の間で変換できます。

圧縮WIFの例: L2bWLsmchd4AUaFq56UuQ1u3pdNqz28TcJZBHJjE61J1CEbbzSDj
非圧縮WIFの例: 5K2vmqCvQFWiZyvf5Z49hZNm95AUs5LMywGuB3CqH63wsdRAzcs
HEXの例: a0664b8e95a437a616737ec4a141c4abe15f9548f16b0451e1481c26f33c7025

ビットコイン秘密鍵の変換:HEXからWIFへ、またはその逆

生の256ビット16進数秘密鍵をWallet Import Format(WIF)へエンコードし、再び元の形式へデコードする仕組みを解説する教育用ガイドです。

1. WIF(Wallet Import Format)とは?

ビットコインの生の秘密鍵は256ビットの数値であり、通常は64文字の16進数(HEX)文字列として表現されます。HEXはコンピューターで扱いやすい一方、組み込みのエラーチェック機能を備えていないため、手動で扱う際には入力ミスなどのリスクがあります。

Wallet Import Format(WIF)は、秘密鍵を簡単にコピーしてウォレットソフトウェアへインポートできるよう設計された標準的なエンコード方式です。WIFではBase58Checkエンコードを使用し、ネットワークのバージョンバイトと4バイトのチェックサムを追加することで、入力ミスの検出を可能にします。

2. HEXからWIFへの変換(ステップごとの手順)

64文字の生のHEX秘密鍵を圧縮WIF形式へ変換するには、次の手順を実行します:

  1. メインネットプレフィックスを追加:32バイトのHEX秘密鍵の先頭に、ビットコインメインネットのバージョンバイト(0x80)を付加します。
  2. 圧縮フラグを追加(任意):この秘密鍵が圧縮公開鍵に対応することを示すため、末尾に0x01を追加します。
  3. チェックサムを計算:ペイロードに対してSHA-256を2回適用(SHA256(SHA256(Payload)))し、最初の4バイトをチェックサムとして取得します。
  4. チェックサムを追加:4バイトのチェックサムをペイロードの末尾に付加します。
  5. Base58エンコード:バイト配列全体をBase58形式にエンコードします。
HEXペイロード:0x80 + [32バイトの秘密鍵] + 0x01
チェックサム:SHA256(SHA256(HEXペイロード))の最初の4バイト
WIF出力:Base58Encode(HEXペイロード + チェックサム)

3. WIFプレフィックス一覧

WIF文字列の先頭文字から、ネットワーク環境と、その鍵が圧縮公開鍵に対応しているかどうかを確認できます:

WIF先頭文字 ネットワーク 鍵の種類 長さ
5 メインネット 非圧縮 51文字
K または L メインネット 圧縮 52文字
9 テストネット 非圧縮 51文字
c テストネット 圧縮 52文字

4. WIFからHEXへの変換(デコード)

WIF文字列から元の64文字の生のHEX秘密鍵を復元する場合は、変換処理を逆方向に実行します:

  • ステップ1:Base58のWIF文字列をデコードし、生のバイト列へ戻します。
  • ステップ2:末尾の4バイト(チェックサム)をペイロードから分離します。
  • ステップ3:ペイロードに対してSHA-256を2回適用し、計算されたチェックサムと抽出したチェックサムが一致することを確認します。一致しない場合、そのWIF鍵は無効または破損している可能性があります。
  • ステップ4:先頭のバージョンバイト(0x80)と末尾の圧縮バイト(存在する場合は0x01)を取り除き、元の32バイトのHEX秘密鍵を取得します。