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とアドレス構造に合うようフォーマットします。
Private Key(Raw)
ランダムな256ビット数(32バイト)
--
64文字のHEX = 256ビットのentropy、crypto.getRandomValues()で生成されます
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エンコーディングが必要です。
圧縮された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を導出することはできません。
アドレスフォーマット
public key hashの異なるエンコーディング
--
1で始まる | 約25-34文字 | Base58Check(0x00 + RIPEMD160(SHA256(pubkey)) + checksum)
--
3で始まる | 約25-34文字 | Base58Check(0x05 + RIPEMD160(SHA256(script)) + checksum)
--
bc1qで始まる | 約42文字 | Bech32(hrp + witness version 0 + 20バイトkeyhash)
--
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 | — | 64文字 | プレーンな16進数、32バイト |
| WIF(非圧縮) | 5 | 51文字 | Base58Check、圧縮フラグなし |
| WIF(圧縮) 推奨 | K または L | 52文字 | Base58Check、0x01圧縮フラグ付き |
| Mini Private Key | S | 30文字 | コンパクトなフォーマット、物理コインで使用 |
アドレスエンコーディング: Base58Check vs Bech32
Bitcoinはアドレスに対して根本的に異なる2つのエンコーディングスキームを使用しています。その違いを理解すると、アドレスフォーマットが大きく異なる理由や、新しいフォーマットが優れていると見なされる理由がわかります。
- Base58アルファベットを使用: 1-9、A-Z、a-z、視覚的な曖昧さを避けるため0、O、I、lを除外
- SHA-256のダブルハッシュから4バイトのchecksumをpayloadに付加
- 大文字小文字を区別(混在)するため、QRコードの効率が低下
- versionバイトがprefixを決定: 0x00 = "1..."、0x05 = "3..."
- エラーを検出できるが、どの文字が間違っているかは特定できない
- 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のアドレスフォーマットの進化は、ネットワーク全体との下位互換性を維持しながら、特定の制限を解決してきた数年にわたるプロトコル改善の反映です。
P2PKH — オリジナル
Bitcoinと共に導入されました。Pay-to-Public-Key-Hashは、アドレスで使用する前にpublic keyをハッシュ化することで、セキュリティ層を追加します。ECDSAが破られた場合でも、public keyが公開されていないP2PKHアドレスの資金はハッシュ関数によって保護されたままとなります。
P2SH — プログラマブルなスクリプト
BIP 16はPay-to-Script-Hashを導入し、アドレスをシンプルに保ちながら複雑な支払い条件(マルチシグ、タイムロック)を可能にしました。送信者はスクリプトを知る必要はありません——単に"3..."アドレスに送信するだけです。後にSegWit互換性のためのwrapperになりました。
Bech32 — Segregated Witness
SegWitアップグレード(BIP 141/173)は、トランザクションデータから署名データを分離し、トランザクション可変性を修正し、Lightning Networkを可能にしました。Native SegWitアドレスはBech32エンコーディングを使用し、トランザクション重量を約30-40%削減して手数料を下げます。
Bech32m — Taproot
Taprootアップグレード(BIP 340/341/342)は、Schnorr署名、MAST(Merkelized Alternative Script Trees)、プライバシーの改善を導入しました。複雑なマルチシグトランザクションはチェーン上でシンプルな支払いと区別がつかなくなります。元のBech32の微妙なchecksumの問題を修正するため、Bech32mエンコーディング(BIP 350)を使用します。
よくある質問
private keyとpublic keyの関係は何ですか?
なぜWIFフォーマットは5、K、またはLで始まるのですか?
誰かが私のprivate keyを推測できますか?
Bech32とBech32mの違いは何ですか?
なぜBitcoinはpublic keyを直接使わずにハッシュ化するのですか?
このツールは安全に使えますか? 生成された値は本物ですか?
知識を活用しましょう
Bitcoinのkeyとアドレスの仕組みを理解したところで、NoxHashでマイニングを始めましょう。暗号技術は当社が担当します——あなたは報酬を受け取るだけです。セキュアなkey管理、あらゆるアドレスフォーマットへの即時出金。