本文へスキップ
buybitcoinsmart

用語集 / アドレスと鍵

非圧縮公開鍵

非圧縮公開鍵とは?
非圧縮公開鍵は、曲線上の点の両方の座標を0x04のプレフィックスの後ろに書き出し、65バイトを占め、今日では主に2012年より前に生成された鍵に残っています。

Bitcoinの最も初期のソフトウェアはxとyの値を完全に記録していたため、2009年と2010年のコインは65バイトの鍵から導出されたアドレスの後ろにあります。その後SegWitがこの形式に扉を閉じました。BIP-143はバージョン0のウィットネスプログラムで非圧縮鍵を禁じており、bc1qアドレスでこれを使えるものはありません。古いペーパーウォレットを復元している場合、資金が表示されるかどうかを決めるのはこの点です。

仕組み

非圧縮公開鍵は、その名のとおり文字どおりのレイアウトを持っています。0x04の1バイトのプレフィックスが形式を示し、続く32バイトがx座標、さらに32バイトがy座標で、合計65バイトになります。読むために計算する必要はありません。点の両方の半分がすでにそこにあり、当時のハードウェアで最初の実装がこの形式を選んだのはまさにそのためです。

有効性のルールがベースレイヤーでこの形式を特別扱いしたことはありません。従来型のpay-to-public-key-hashやpay-to-script-hashの支払いを検証するノードは、非圧縮鍵を問題なく受け入れ、2010年に非圧縮鍵にロックされたコインは期限なしで使用可能なままです。変わったのはその上に構築されたすべてです。BIP-32のウォレットは圧縮鍵しか導出しないため、シードフレーズから非圧縮鍵が生成されることは決してなく、SegWitはバージョン0のウィットネス支払いの中でこれらを無効にしました。

余分な32バイトのコストは支払い時に発生します。圧縮鍵を伴う従来型のインプットは約148vbytes、同じインプットで非圧縮鍵を伴う場合は約180vbytesで、同一の支払いに対しておおよそ22%増えます。手数料が急騰しているときにこうしたインプットを十数個まとめる場面では、この差はもはや些細な話ではありません。

どこで見られるか

現在も人に非圧縮鍵を渡すものが3つあり、いずれも同じ時代のものです。

2011年から2013年のジェネレーターサイトが印刷したペーパーウォレットは、通常1で始まるアドレスと、5で始まるWallet Import Format文字列(この形式の非圧縮側の目印)を生成しました。2011年から2013年の間に鋳造されたCasasciusシリーズの物理コインは、改ざんが分かるホログラムの下に同じ種類の文字列を隠していました。そして非常に初期のウォレットソフトウェアからエクスポートされた秘密鍵は、この切り替えより完全に前のものです。

古い鍵の復元

罠はエンコーディングではなく、1つの秘密鍵が2つの異なるアドレスを生成することです。65バイトの鍵をハッシュ化すると従来型のアドレスが1つ得られ、同じ鍵の33バイトの圧縮版をハッシュ化するとまったく別のアドレスが得られます。圧縮を前提とする最新のソフトウェアに鍵をインポートすると、コインはもう一方のアドレスに手つかずのまま残っているのに、残高はゼロに見えることがあります。

古い素材をうまく扱うウォレット(Electrumもその1つです)は、鍵をインポートするのではなくスイープするときに両方の導出を確認します。スイープはより安全な操作でもあります。コインが現在のシードフレーズで管理するアドレスに移されるため、引き出しに長くしまわれていた、スマートフォンで撮影された、または以前の所有者に見られた印刷物は、何も支払えなくなります。復元が失敗したと判断する前に、ブロックエクスプローラーで両方のアドレス形式を確認してください。

混同しやすい用語

よくある質問

非圧縮公開鍵の後ろにあるコインは今でも使用できるのでしょうか?

はい。従来型のアウトプットは非圧縮鍵を期限なしで受け入れ、これまでのアップグレードでそれを変えたものはありません。唯一の制限は、ネイティブSegWitの支払いがこれらを拒否することであり、コインはまず従来型のインプットを通す必要があります。

古い秘密鍵で2つの異なるアドレスが表示されるのはなぜですか?

同じ鍵の圧縮版と非圧縮版は異なるバイト列であり、それぞれが独自のアドレスにハッシュ化されるためです。復元が失敗したと結論づける前に、両方の残高を確認してください。

次に読む

関連用語

アドレスと鍵のその他の用語

このページを英語で読む