Bitcoin Key & Address Explorer

Bitcoinの暗号学的基盤を探求。private key、public key、アドレスの派生を視覚的に確認できる教育ツール。

Bitcoinの暗号学的基盤を探求しましょう。
private key、public key、アドレスがどのように関係しているかを視覚的に確認できます。

この教育用ツールは、Bitcoinのkeyとアドレスタイプの構造とフォーマットを解説します。ランダムなサンプル値を生成して、派生チェーンの各ステップがどのようにデータを変換するかを確認できます——raw entropyから日常的に使用するアドレスまで。

教育目的のみでご使用ください

ウェブサイトに表示されたkeyを実際の資金に絶対に使用しないでください。このツールはBitcoinのkeyとアドレスの構造とフォーマットを示すものであり、実際の暗号学的派生を行うものではありません。ここで生成される値は、正しいprefix、長さ、エンコーディング形式を示すためのランダムなサンプルです。実際のkey派生には、セキュアなオフラインソフトウェアが必要です。

Key & Address Explorer

下のボタンをクリックすると、新しいランダムサンプル値が生成されます。各生成では、Web Crypto APIでランダムなバイト列を取得し、Bitcoinの実際のkeyとアドレス構造に合うようフォーマットします。

1

Private Key(Raw)

ランダムな256ビット数(32バイト)

--

64文字のHEX = 256ビットのentropy、crypto.getRandomValues()で生成されます

2

Wallet Import Format(WIF)

Base58Checkでエンコードされたprivate key

--

構造: versionバイト(0x80) + private keyバイト + 圧縮フラグ(0x01) + 4バイトのchecksum。checksumはSHA-256(SHA-256(payload))の最初の4バイトです。結果はBase58でエンコードされます。Compressed WIF keyはKまたはLで始まり、uncompressedは5で始まります。

注 上記の例は正しいフォーマット構造を示しています。実際のWIF変換には、SHA-256ダブルハッシュを用いたBase58Checkエンコーディングが必要です。

3

圧縮されたPublic Key

secp256k1楕円曲線乗算による33バイト

--

派生: public keyはP = k * Gとして計算されます。ここでkはprivate key、Gはsecp256k1のgenerator pointです。圧縮形式はprefix 02(yが偶数)または03(yが奇数)の後に32バイトのx座標が続きます。これは一方向関数です——public keyからprivate keyを導出することはできません。

4

アドレスフォーマット

public key hashの異なるエンコーディング

Legacy P2PKH サンプルフォーマット

--

1で始まる | 約25-34文字 | Base58Check(0x00 + RIPEMD160(SHA256(pubkey)) + checksum)

SegWit P2SH サンプルフォーマット

--

3で始まる | 約25-34文字 | Base58Check(0x05 + RIPEMD160(SHA256(script)) + checksum)

Native SegWit サンプルフォーマット

--

bc1qで始まる | 約42文字 | Bech32(hrp + witness version 0 + 20バイトkeyhash)

Taproot 最新 サンプルフォーマット

--

bc1pで始まる | 約62文字 | Bech32m(hrp + witness version 1 + 32バイトtweaked pubkey)

派生フロー図

下記の図は、ランダムなentropyからBitcoinアドレスまでの完全なチェーンを示しています。各変換は一方向の暗号学的操作です——順方向には常に進めますが、逆方向には決して進めません。

ランダムな256ビット数

Private Key(HEX)

WIFフォーマット

Base58Checkエンコーディング

Version + Key + Flag + Checksum

Public Key

secp256k1 (k * G)

RIPEMD160(SHA256(pubkey))

20バイトhash

P2PKH

1...

P2SH

3...

SegWit

bc1q...

Taproot

bc1p...

楕円曲線暗号を理解する

Bitcoinはsecp256k1楕円曲線を使用しています。これは有限体上でy² = x³ + 7という式で定義されます。この特定の曲線は、その効率性と既知のバックドアがないことから選ばれました——暗号学のコミュニティで懸念が示されている一部のNIST曲線とは異なります。

点乗算

private key kをgenerator point Gと乗算してpublic key P = k * Gを生成します。これは楕円曲線上で繰り返し点加算を行うものです。この操作は一方向では計算上容易ですが、逆方向では実行不可能です——これが楕円曲線離散対数問題(ECDLP)です。

鍵空間のサイズ

secp256k1曲線の位数は約2256——おおよそ1.16 x 1077個のprivate keyが存在します。参考までに、観測可能な宇宙の原子数は約1080と推定されています。現在または予測可能な技術でprivate keyを総当たりすることは計算上不可能です。

圧縮 vs 非圧縮

楕円曲線の点はx座標とy座標の両方を持ちます(非圧縮で64バイト)。yは曲線の方程式を使ってxから導出できるため、compressed keyはxとyのパリティを示すprefixバイトのみを格納します——サイズは65バイトから33バイトに削減されます。現代のBitcoinはcompressed public keyのみを使用しています。

Schnorr署名(Taproot)

TaprootはSchnorr署名(BIP 340)を導入し、ECDSAに対していくつかの利点を提供します:証明可能に安全で、効率的なマルチシグ集約を可能にし、複雑な支払い条件をチェーン上で単純なものと区別できなくします——プライバシーを大幅に向上させ、手数料を削減します。

Private Keyフォーマットの解説

Bitcoin private keyは本質的には256ビットの数字ですが、いくつかのフォーマットで表現できます。各フォーマットは異なる目的を持ちます——raw計算から人間が読めるインポート/エクスポートまで。

フォーマット Prefix
Raw HEX —
WIF(非圧縮) 5
WIF(圧縮) 推奨 K または L
Mini Private Key S

アドレスエンコーディング: Base58Check vs Bech32

Bitcoinはアドレスに対して根本的に異なる2つのエンコーディングスキームを使用しています。その違いを理解すると、アドレスフォーマットが大きく異なる理由や、新しいフォーマットが優れていると見なされる理由がわかります。

Base58Check Legacy & P2SH
  • Base58アルファベットを使用: 1-9、A-Z、a-z、視覚的な曖昧さを避けるため0、O、I、lを除外
  • SHA-256のダブルハッシュから4バイトのchecksumをpayloadに付加
  • 大文字小文字を区別(混在)するため、QRコードの効率が低下
  • versionバイトがprefixを決定: 0x00 = "1..."、0x05 = "3..."
  • エラーを検出できるが、どの文字が間違っているかは特定できない
Bech32 / Bech32m SegWit & Taproot
  • 32文字の小文字アルファベットを使用: a-z(b、i、oを除く)+ 数字0-9(1を除く)
  • BCH誤り訂正符号が最大4文字のエラーを検出し、位置を特定できる
  • 小文字のみ——QRコードがより効率的(英数字モード)
  • Human-readable part (bc) + separator (1) + data + 6文字のchecksum
  • Bech32m(BIP 350)は、元のBech32の長さ拡張の可変性問題を修正

なぜ異なるアドレスタイプが存在するのか?

Bitcoinのアドレスフォーマットの進化は、ネットワーク全体との下位互換性を維持しながら、特定の制限を解決してきた数年にわたるプロトコル改善の反映です。

2009

P2PKH — オリジナル

Bitcoinと共に導入されました。Pay-to-Public-Key-Hashは、アドレスで使用する前にpublic keyをハッシュ化することで、セキュリティ層を追加します。ECDSAが破られた場合でも、public keyが公開されていないP2PKHアドレスの資金はハッシュ関数によって保護されたままとなります。

2012

P2SH — プログラマブルなスクリプト

BIP 16はPay-to-Script-Hashを導入し、アドレスをシンプルに保ちながら複雑な支払い条件(マルチシグ、タイムロック)を可能にしました。送信者はスクリプトを知る必要はありません——単に"3..."アドレスに送信するだけです。後にSegWit互換性のためのwrapperになりました。

2017

Bech32 — Segregated Witness

SegWitアップグレード(BIP 141/173)は、トランザクションデータから署名データを分離し、トランザクション可変性を修正し、Lightning Networkを可能にしました。Native SegWitアドレスはBech32エンコーディングを使用し、トランザクション重量を約30-40%削減して手数料を下げます。

2021

Bech32m — Taproot

Taprootアップグレード(BIP 340/341/342)は、Schnorr署名、MAST(Merkelized Alternative Script Trees)、プライバシーの改善を導入しました。複雑なマルチシグトランザクションはチェーン上でシンプルな支払いと区別がつかなくなります。元のBech32の微妙なchecksumの問題を修正するため、Bech32mエンコーディング(BIP 350)を使用します。

よくある質問

private keyとpublic keyの関係は何ですか?
private keyはランダムな256ビット数字で、public keyはsecp256k1曲線上での楕円曲線乗算を使用してそこから派生します。数学的関係はP = k * Gであり、kはprivate key、Gは曲線上の固定されたgenerator point、Pは結果のpublic keyポイントです。これは一方向のトラップドア関数です——private keyからpublic keyを計算するのは簡単ですが、逆のプロセス(PとGからkを見つけること)は計算上実行不可能です。この非対称性がBitcoinのセキュリティの基礎となっています。
なぜWIFフォーマットは5、K、またはLで始まるのですか?
先頭の文字はversionバイトと合計payload長によって決まります。Uncompressed WIF keyはversionバイト0x80と33バイトのpayload(version + 32バイトkey)を使用し、常に"5"で始まるBase58文字列を生成します。Compressed WIF keyは追加の0x01バイト(合計34バイト)を加え、Base58エンコーディングが"K"または"L"で始まる文字列を生成するようにシフトされます。これにより、圧縮キーと非圧縮キーを一目で視覚的に区別しやすくなります。
誰かが私のprivate keyを推測できますか?
実質的には不可能です。256ビットのprivate keyは2256通りの値を持ちます——約1.16 x 1077です。地球上のすべてのコンピュータが毎秒数十億のキーを試しても、キー空間の意味のある割合を試すには宇宙の年齢よりも長い時間がかかります。実際のリスクは総当たり攻撃ではなく、不適切な乱数生成、マルウェア、フィッシング、または不適切なキー保存です。常に適切な暗号学的乱数生成器を備えた信頼できるwalletを使用してください。
Bech32とBech32mの違いは何ですか?
Bech32(BIP 173)は、SegWit v0アドレス(bc1q...)に使用された元のエンコーディングです。しかし、微妙な脆弱性が発見されました:Bech32文字列の特定の位置に"q"文字を挿入または削除しても、有効なchecksumが生成される可能性があったのです。Bech32m(BIP 350)は、checksumアルゴリズムで異なる定数を使用することによりこれを修正します。SegWit v0(bc1q)は引き続き元のBech32を使用し、SegWit v1+(Taprootのbc1p)はBech32mを使用します。ユーザーには同じに見えます——違いは純粋にchecksum計算にあります。
なぜBitcoinはpublic keyを直接使わずにハッシュ化するのですか?
Bitcoinアドレスは、SHA-256の後にRIPEMD-160を適用してpublic keyをハッシュ化することで派生します(Hash160と呼ばれる20バイトのハッシュが生成されます)。これには3つの利点があります:(1) アドレスが短くなる——compressed public keyが33バイトなのに対し20バイト;(2) 量子耐性の追加層——アドレスから使うまで、public keyは2つのハッシュ関数の背後に隠されたまま;(3) ECDSAの将来的な潜在的弱点に対する保護——楕円曲線暗号が破られても、未使用のアドレスの資金はハッシュ関数で保護されたままとなります。
このツールは安全に使えますか? 生成された値は本物ですか?
このツールは教育目的のためだけにランダムなサンプル値を生成します。private keyは実際のランダム数字ですが、表示されるアドレスは実際の暗号学的派生(secp256k1乗算、SHA-256、RIPEMD-160、Base58Check/Bech32エンコーディングが必要)を行わずに、正しく見えるようにフォーマットされています(適切なprefix、適切な長さ)。すべてはブラウザのクライアント側で実行されます——いかなるデータもサーバーに送信されません。ウェブサイトに表示されたkeyやアドレスを実際の資金に絶対に使用しないでください。
エンタープライズ級セキュリティ

知識を活用しましょう

Bitcoinのkeyとアドレスの仕組みを理解したところで、NoxHashでマイニングを始めましょう。暗号技術は当社が担当します——あなたは報酬を受け取るだけです。セキュアなkey管理、あらゆるアドレスフォーマットへの即時出金。