用語集 / プライバシーとセキュリティ
マージ回避
- マージ回避とは?
- マージ回避とは、同じトランザクションで自分のコインを2枚使わないようにすることで、ウォレットの異なる部分が公開の場で結び付けられるのを防ぐ実践です。
この用語は、入力のクラスタリングがすでに誰かの保有資産を特定する最も簡単な方法となっていた時期に書かれた、Mike Hearnによる2013年12月のエッセイに由来します。彼の提案は慎重な支出にとどまりませんでした。支払者が受取人の複数のアドレスへ複数の並行したトランザクションを送ることで、どの単一のトランザクションにもすべてが集まらないようにするというものです。今日では、プロトコルとしてではなく規律として残っています。
仕組み
マージ回避のルールは禁止の形をとっており、そのために守るのは簡単で、忘れるのも簡単です。分けておきたい2枚のコインを入力に含むトランザクションを決して作らないことです。
実際には、ウォレットを残高ではなく壺の集まりとして扱うということです。1つの壺には、本人確認済みの取引所の口座から出金したコインが入ります。別の壺には、個人間取引で購入したコインや支払いとして受け取ったコインが入ります。3つ目の壺には長期の貯蓄が入ります。支出は必ず1つの壺だけから行い、その壺に十分な大きさのコインが1枚もない場合は、少ない金額を送るか、別の壺から送るか、この支払いが2枚のコインをマージすることを受け入れてその紐付けを前提に計画するかのいずれかになります。
Hearnのより強い版では、作業を支払者側に負わせていました。3枚のコインから1つのトランザクションを組み立てる代わりに、支払者は受取人が提示した3つのアドレスへ3つの別々のトランザクションをブロードキャストするため、支払いはそのまま届き、チェーンデータ上のどこにも各部分が結び付きません。彼が設計していた支払いプロトコルは、1回の要求で複数の出力アドレスに対応していました。それは何年も前に非推奨となり、現在このパターンを自動化する一般的なウォレットはありません。
コストは現実のものであり、後になって支払うことになります。マージを拒むということは、小さなコインを多数保持するということであり、小さなコインは動かすのに費用がかかります。ネイティブSegWitの入力1つを使うには約68vbyteかかるため、混雑時の150 sat/vBでは10,200サトシとなり、20,000サトシのコインの価値の半分になります。さらに進めると、コインはダストのしきい値を下回り、使うのに保有額以上の費用がかかるようになります。マージ回避は、恒久的な手数料の負担と、コインを実用的に保てる最小の大きさの下限を受け入れることで、プライバシーを守ります。
どこで見られるか
マージ回避は、プライバシーを重視するウォレットの機能として現れます。
Sparrow、Wasabi、Electrumはいずれも、署名する前に支出がどの特定のコインを消費するかを表示するため、見えないマージが目に見える選択に変わります。フリーズは強制的な手段として機能します。支出しない壺のコインをフリーズすれば、自動選択はそれらに届きません。さらに進んで、別々のウォレットを使う人や、1つのシードの下で別々のアカウントを使う人もおり、そうすれば1つの送金画面が両方の山を同時に見ることさえできません。
これが任意でないのは、coinjoinの後です。ミックスされた出力は、他人のミックスされた出力と区別がつかないことによってプライバシーを得ており、その2つを一緒に使えば、同じ人物のものであることが直ちに証明され、結果全体が無駄になります。ミックスに入った際に残るお釣りにも同じことが当てはまります。それは永久に分けておくか、さもなければミックスは意味をなしませんでした。
マージ回避vs CoinJoin
Hearnは元のエッセイで、マージ回避とcoinjoinを代替案として位置づけており、その比較は今も成り立ちます。マージ回避は無料で、相手方を必要とせず、生み出すトランザクションが他の誰のものとも同じに見えるため、注目を集めません。できないことは、すでに存在する紐付けへの対処です。それは未来を守り、過去を決して守りません。coinjoinは逆を行い、実際の費用をかけ、履歴がすでに公開されているコインについて曖昧さを得る代わりに、明らかに共同のトランザクションを生み出します。前者なしで後者を行うのは、無駄な出費です。