本文へスキップ
buybitcoinsmart

用語集 / アドレスと鍵

お釣りアドレス

別名はお釣りアドレス、お釣り出力です。

お釣りアドレスとは?
お釣りアドレスは、ウォレットが使用しなかったインプットの残りの部分を受け取るアドレスです。ビットコインのアウトプットは丸ごと消費されるため、残った金額はどこかに送られる必要があります。

BIP-32で規定されています。

ビットコインには部分的な支払いという概念がありません。0.05BTCのコインを1枚保有していて0.012BTCを支払うと、その取引はそのコインを破棄し、2枚の新しいコインを作成します。1枚は支払い分で、もう1枚はおおよそ0.038BTCのお釣りで、あなただけが管理するアドレスにロックされます。ブロックエクスプローラー上では、2番目の出力は見知らぬ人への支払いのように見えますが、そうではありません。

仕組み

すべてのビットコインの支払いは、支払いに充てるコインを丸ごと選ぶことから始まります。コイン、正確には未使用トランザクション出力(UTXO)は、その場で分割することはできません。取引はコインを丸ごと消費し、新しい出力を書き込みます。ウォレットは選択したコインの合計を計算し、支払う金額とマイナーが受け取る金額を差し引き、残りをウォレット自身が生成した宛先へ送ります。その宛先がお釣りアドレスです。

現代のウォレットは、これらの宛先を鍵ツリーの別のブランチに保持します。BIP-44はそのレイアウトをm / purpose' / coin_type' / account' / change / address_indexとして定めました。ここで最後から2番目の階層は、外部に渡すアドレスでは0、ウォレットが自身のために保持するアドレスでは1です。したがって、ネイティブSegWitウォレットの最初のお釣りアドレスはm/84'/0'/0'/1/0となり、他のすべてと同じシードフレーズから導出されるため、追加でバックアップするものはありません。

これは常に当てはまるわけではなく、その歴史がこのブランチの存在理由を説明します。初期のBitcoinクライアントは、あらかじめ生成されたランダムな鍵のプールからお釣りを取得しており、その既定数は100個でした。プールの末尾を超えて使用すると、以前に取得したwallet.datのバックアップには、お釣りに割り当てられた鍵がもはや含まれていませんでした。バックアップを復元した人が資金の欠落に気づいたのは、このためです。Bitcoin Coreはバージョン0.16.0以降、階層的決定性ウォレットのみを作成しており、先読みプールの既定数は現在1,000個の鍵です。

お釣りの金額は算術です。入力から支払いと手数料を差し引いた額です。取引の中で出力をお釣りとして示すものは何もありません。ノードは2つの出力を区別なく扱います。まさにそのため、お釣りは会計上の問題ではなくプライバシーの問題なのです。

ビットコインを購入する際にこれが重要な理由

最初のお釣り出力は通常、取引所から出金したコインを初めて使用したときに現れ、その出金が知っているあなたに関する情報をすべて引き継ぎます。

パスポートを本人確認した取引所は、支払ったアドレスを記録しています。後であなたがそのアドレスから使用すると、お釣りは同じ取引によって作成されるため、元の出力を追跡する者は誰でもお釣りも追跡します。取引所が費用を支払っている分析ベンダーも含まれます。出金を2つのウォレットに分けても、その後1つの取引で両方から使用すれば意味がありません。取引所から出金したコインを専用のウォレットに保管し、意図的にそこから支払うことが、身元の広がりを限定する方法です。

ハードウェアウォレットは、より鋭い第2のリスクを防ぎます。侵害されたコンピューターは、お釣り出力があなたではなく攻撃者に送られる取引を構築することができ、合計額は正しく見えるため、画面上には異常が見えません。TrezorやLedgerのデバイスは、すべてのお釣り出力が自身が保持するシードから導出されているかを確認し、そうでない出力に警告を出します。この確認は、ブラウザー上ではなくデバイス自体の画面で金額を確認した場合にのみ機能します。

あなたが影響を与えられるコストもあります。2つの出力は1つより高くつきます。ネイティブSegWitのお釣り出力は取引に31バイトを追加し、15sat/vBでは約465サトシに相当します。また、後で使用する際に約68仮想バイトのコストがかかるコインを作成します。branch and bound方式のコイン選択を実行するウォレットは、支払い額に十分近い入力を見つけてお釣りを完全に省略しようと試み、コインのサイズが均一な切り良く出金されたものばかりの場合よりも、サイズが多様な場合に成功しやすくなります。

お釣りは処分でもありません。自分のコインの残りを自分自身に支払うことは売却ではありませんが、ポートフォリオ追跡ツールは日常的にお釣り出力を入金購入や出金売却として取り込み、取得原価を損ないます。請求書を支払った日に、身に覚えのない取引が追跡ツールに表示される場合、通常はこれが原因です。

0.05BTCの出金でお釣りを追跡する

1枚のコインを取引所から加盟店まで追跡すると、すべての数値がオンチェーンで確認できます。あなたは0.05BTCを自分のウォレットのbech32アドレスへ出金し、それは5,000,000サトシ相当の1つの出力として到着します。

数週間後、あなたは加盟店に1,200,000サトシを支払うことになります。あなたのウォレットにはちょうど1枚のコインしかないため、5,000,000すべてを使用する必要があります。取引は1つの入力と2つの出力を持ち、約141仮想バイトで、15sat/vBでは手数料は2,115サトシです。加盟店は1,200,000を受け取ります。お釣り出力は5,000,000から1,200,000と2,115を差し引いた額、すなわち3,797,885サトシを受け取り、m/84'/0'/0'/1/0に着地します。

その取引の中でどの出力がどちらかを告げるものは何もありません。通常2つのヒューリスティックがそれを明かします。お釣りは端数のない金額ではない出力であり、お釣りは多くの場合、入力のスクリプトタイプと一致する出力です。お釣りを丸めるウォレットや、受取人のスクリプトタイプをコピーするウォレットは、まさにそうした推測を崩すために存在します。

お釣りアドレスvs固有アドレス

お釣りアドレスと新しい受取アドレスはどちらも一度だけ使用され、違いは誰に見せることを意図しているかです。受取アドレスは外部ブランチのチェーンインデックス0から取得され、誰かのウォレットにコピーされるために存在します。お釣りアドレスは内部ブランチのチェーンインデックス1から取得され、支払者に示されることは決してありません。ほとんどのインターフェースは、コインコントロール画面を開かない限り表示しません。どちらも同じプライバシー上の理由でローテーションし、どちらも同じ12語または24語から復元されます。

お釣りアドレスvsダスト

お釣りは残った分すべてです。ダストは、作成する価値がないほど小さな残りです。Bitcoin Coreは、最終的な使用時の仮想バイトあたり3サトシを下回る出力の中継を拒否します。これはレガシー出力で546サトシ、ネイティブSegWitで294サトシに相当します。ウォレットがこのラインを下回るお釣りを計算した場合、出力を一切作成せず、その価値は追加手数料としてマイナーに渡ります。残高全体をわずかに下回る金額を支払うと、提示された手数料よりもはるかに多くのコストがかかることがあるのは、このためです。

混同しやすい用語

よくある質問

私のウォレットが身に覚えのないアドレスにビットコインを送ったのはなぜですか?

その出力はほぼ間違いなく自分のお釣りです。ビットコインはコインを丸ごと消費するため、残りはウォレットの内部ブランチの新しいアドレスに送られます。コインコントロールまたは取引の詳細画面を開くと、ウォレットはその出力をあなたのものとして表示します。

シードフレーズのみをバックアップした場合、お釣りは安全ですか?

はい。お釣りアドレスは同じシードからBIP-32に基づいて、1番のブランチで導出されるため、フレーズを復元すればほかのすべてと一緒に回復できます。2016年より前のウォレットではそうではなく、ランダムな鍵の固定プールからお釣りを取り出していました。

ウォレットがお釣りを生成するのを止められますか?

間接的にのみ可能です。残高全体を送金する(お釣りの出力は生成されません)か、コインコントロールを使って支払額に十分近い入力を選び、ウォレットがお釣りを省くようにしてください。ほとんどのウォレットはすでに2番目の方法を自動的に試みています。

金額がごく少額だったとき、お釣りはどこへ行ったのですか?

ダストしきい値、レガシー出力では546サトシ、ネイティブSegWitでは294サトシを下回ると、ウォレットはお釣りの出力を破棄し、その価値を追加手数料としてマイナーに与えます。コインは回収可能な意味で失われたのではなく、その取引で消費されたのです。

次に読む

関連用語

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

このページを英語で読む