MSTR Cat

ブロックチェーン/レベル II · 仕組み/2.2 トランザクション/レッスン 4

お釣り(チェンジ)アウトプット

送信者を明かしてしまう残額と、それを隠そうとするアルゴリズム

用意するものブロックエクスプローラー(例:mempool.spaceやblockchain.com)少なくとも2つのUTXOを持つビットコインウォレットトランザクションID、インプットの金額、アウトプットの構造を記録するスプレッドシート

問い

  1. ちょうどの金額を支払うトランザクションが、お釣りを必要とするトランザクションと見た目が異なることが多いのはなぜでしょうか?
  2. 分析者は、ウォレットの内部状態を見ることなく、どのアウトプットが支払いでどれがお釣りかをどのように判断できるのでしょうか?
  3. 何がコイン選択アルゴリズムに、より低い手数料よりもわずかに高い手数料を選ばせるのでしょうか?

探究

  1. ビットコインのトランザクションのインプットは、分割できない紙幣のように機能します。アリスが5 BTCを支払いたいのに、20 BTCのUTXOを1つしか持っていない場合、そのインプットを分割することはできません。20 BTC全額を使い、手数料を考慮したうえで、15 BTCをお釣りとして受け取る必要があります。そのため、ほとんどのトランザクションには2つのアウトプットがあります。1つは受取人へ、もう1つはお釣りの返却用です。
  2. プロトコルレベルでは、「支払い」アウトプットと「お釣り」アウトプットに区別はありません。どちらもP2PKHやP2WPKHなどの標準的なロッキングスクリプトで、使用条件が満たされるのを待っています。どちらがどちらなのかを知っているのは、トランザクションの作成者だけです。この区別のなさこそが中核的なプライバシーの仕組みです。チェンジアドレスと支払い先アドレスが同じように見えれば、外部の観察者はそれらを確実に見分けることができません。
  3. ウォレットはコイン選択アルゴリズムを使って、どのインプットを使用するかを決めます。アリスが50,000サトシのUTXOを2つ持っていて、ボブに85,000サトシを支払いたい場合、両方のインプット(100,000 sats)を使い、2つのアウトプットを作成します。1つはボブへ(85,000 sats)、もう1つは自分自身へ(15,000 satsから手数料を引いた額)です。1つ以上のインプットとちょうど2つのアウトプットというこの形は、チェーン上で最も一般的な形の1つです。
  4. プライバシーのため、お釣りはウォレットのキープールにある、一度も使われたことのない新しいアドレスに割り当てるのが標準です。お釣りに古いアドレスを再利用すると、チェーン分析者が過去のトランザクション活動を新しいトランザクションと結びつけられるようになります。理想的には、支払いアウトプットとお釣りアウトプットの両方が新しいアドレスに割り当てられ、外部の観察者からは同じように見えます。
  5. すべての支払いにお釣りが必要なわけではありません。2016年にマーク・エアハート(Mark Erhardt)が記述し、Bitcoin Coreで使われているBranch and Boundのようなコイン選択アルゴリズムは、合計額が支払額と手数料の合計に十分近く、わずかな残りをそのまま手数料に回せるインプットの組み合わせを探します。お釣りのないトランザクションは安く済み、新たな少額アウトプットを生まず、分析者に与える手がかりも1つ減ります。
  6. 非常に小さなアウトプットには、それ特有の問題があります。ダスト閾値(デフォルトでP2PKHアウトプットは約546サトシ、P2WPKHは294サトシ)を下回るアウトプットは、使用するコストがその価値を上回るため、ノードはそれを作成するトランザクションを中継しません。分析者は、お釣りを示す典型的なパターンも探します。キリのよい金額のアウトプットは通常は支払いで、アドレスタイプがインプットと一致するアウトプットはお釣りであることが多いのです。

重要な事実

  • トランザクションのインプットは分割できません。支払額と手数料を超える残りは、手数料に加えられるほど少額でない限り、お釣りとして返されます。
  • プロトコルレベルでは、チェンジアウトプットと支払いアウトプットに技術的な違いはなく、どちらがどちらかを知っているのはトランザクションの作成者だけです。
  • Branch and Boundによるコイン選択(Erhardt, 2016)は、チェンジアウトプットを必要としないインプットの組み合わせを探します。
  • お釣りのないトランザクションには、送信者に資金を戻すアウトプットがありません。わずかな残りはすべて手数料になります。
  • お釣りに、これまで一度も使われたことのない新しいアドレスを使うことで、第三者がそれを支払いアウトプットと簡単に見分けられないようにできます。
  • Bitcoin Coreのデフォルトのダスト閾値は、P2PKHアウトプットで約546サトシ、P2WPKHで294サトシです。

演習 九・六・三・一

9集める自分が観察した、または作成した最近のビットコインのトランザクションを9件挙げてください。それぞれのインプット数とアウトプット数、そしてチェンジアウトプットがあったかどうかを記録してください。
6まとめる9件を構造に基づいて6つのカテゴリーに分類してください:1インプット・1アウトプット、複数インプット・2アウトプット(チェンジあり)、複数インプット・1アウトプット(チェンジなし)、コインベース、OP_RETURN、その他の複雑な構造。
3絞り込む分析者がアウトプットを特定のユーザーの身元にどれだけ容易に結びつけられるかという観点から、6つのグループを3つの異なるプライバシー上の影響に絞り込んでください。
1結晶化する支払いアウトプットとチェンジアウトプットに技術的な区別がないことが、なぜ代替可能性にとっては利点であり、同時に個人のプライバシーにとっては課題でもあるのかを、1文で説明してください。

事実確認

日付、数字、主張は、下記に記載された公表資料と照合して確認しました。

インタラクティブ版で開く →

EN PT ES ZH KO RU DE FR MS