Payjoin は、受取人と一緒に Bitcoin の支払いを準備する方法です。双方が同じ取引に自分の資金を持ち寄りますが、秘密鍵は各自で保管し、自分の資金を使うことも各自で承認します。そのため、公開チェーンを見る人は、使われたコインが元々誰のものだったのか推測しにくくなります。別の通貨が生まれるわけではなく、匿名性も保証されません。
アリスがボブに支払います。ウォレットは、ビットコインを受け取ったり送ったりするためのアプリや機器です。ウォレットは銀行口座のような一つの残高から引き落とすのではなく、過去の取引で作られた未使用の出力、UTXO を選びます。それぞれの出力には金額と、使うための条件があります。新しい取引の入力が使用する UTXO を指定し、新しい出力がボブへの支払いと、必要ならアリスへのお釣りを作ります。通常の支払いではアリスだけが資金を出します。Payjoin ではボブも自分の UTXO を追加します。ボブは約束された支払いを受け取りながら、以前から持っていた資金も移動させるのです。双方のウォレットが結果を確認し、それぞれがデジタル署名で自分の入力を使うことを承認します。秘密鍵を送り合うことはありません。秘密鍵は、そのような署名を作るために使う秘密の数値です。 [1] [3] [8] [6]
分析者は、一緒に使われる入力は同じウォレットのものだと推測することがあります。これは common-input-ownership heuristic と呼ばれます。Bitcoin のルールでも身元の証明でもなく、一般的な使われ方に基づく推測です。Payjoin はその推測が当てはまらない有効な取引を作ります。そのため、観察者はすべての入力を自動的にアリスのものと決めつけられません。ただし、別の情報が分析に役立つことはあります。 [1] [3]
金額は、ビットコインの最小単位である sats で表します。 分かりやすくするため、手数料を一度除いて考えます。アリスは 100,000 sats の入力を持ち、ボブに 20,000 sats を払い、80,000 sats をお釣りとして受け取ります。ボブが自分の 50,000 sats の入力を追加すると、彼の出力は 70,000 sats になります。入力と出力の合計は、それぞれ 150,000 sats のままです。ボブが余分な贈り物を受けたわけではありません。50,000 sats は元々彼のもので、増えたのは約束した 20,000 sats だけです。実際の取引では、もちろん手数料も必要です。 [1] [6]
ウォレット同士が協力するには、共通の手順とメッセージ形式が必要です。Nicolas Dorier による技術文書 BIP78 は 2019 年に番号が割り当てられ、PSBT — Partially Signed Bitcoin Transaction を使います。PSBT は取引と、その確認や署名に必要な情報をまとめたデータであり、ネットワークに送信済みの支払いそのものではありません。支払い要求には pj パラメータが入り、ウォレットが接続すべきサービスのアドレスを示します。送金者はまず、元の支払いを完全に署名し、最終処理を済ませた PSBT として相手に送ります。形式名に「partially」とあっても、この取引は既に送信可能です。受取人は自分の入力とその署名を追加した変更案を返します。送金者は確認後、自分の入力に再署名し、完成した取引を Bitcoin ネットワークに送信します。接続は暗号化し、接続先を認証する必要があります。PSBT はウォレットのバックアップではありません。鍵の導出元である seed、秘密鍵、不要な鍵導出情報は送りません。 [1] [5]
送金者のウォレットは、自分の入力と保護すべき出力が残り、お釣りが勝手に減らされず、手数料の負担が許可した上限内にあることを確認します。署名するのは自分の元の入力だけです。プロトコルは厳密な条件で受取人の一部の出力変更を認めますが、支払い全体を自由に別の宛先へ移せるわけではありません。署名端末では金額を理解し、単に次の画面を承認しないことが大切です。 [1] [5]
入力を追加すると容量が増え、その支払いの手数料総額が高くなる場合があります。誰がどこまで負担するかはウォレット間で決めます。一方、受取人は自分の UTXO の統合や、本来別に行う支払いを同時に処理できることもあります。全体の節約は同じ操作同士の比較で判断すべきで、すべての Payjoin が安いという意味ではありません。取引が大きくなっても手数料の satoshi 額が同じなら、手数料率は下がります。 [1] [2]
BIP78 では、受取人がインターネットから接続できるサービスを用意し、双方が同時に通信する必要があります。携帯電話の接続が切れると不便です。そこで BIP77、別名 Payjoin v2 は、サーバーを一時的な郵便受けとして使います。一方のウォレットがメッセージを置き、もう一方が合意したセッションの期限内に後から受け取ります。これが非同期通信です。支払い提案自体はエンドツーエンドで暗号化され、参加するウォレットだけが読めて、郵便受けの運営者は読めません。さらに OHTTP、Oblivious HTTP が通信を保護します。要求を別の中継者経由で送るため、郵便受けのサーバーには通常、ウォレットの IP アドレスが見えません。IP アドレスは、機器がインターネット上で通信するときに使うネットワーク上のアドレスです。この対応関係を隠すには、中継者とサーバーが記録を共有しないことが前提です。どちらにもビットコインを管理する秘密鍵は渡しません。ただし、サーバーはメッセージを遅らせたり破棄したりできます。暗号化だけで配達まで保証されるわけではありません。 [2] [4] [7]
Payjoin で支払いが自動的に匿名になるわけではありません。金額、入力、出力、承認時刻はチェーン上で見えます。相手は交渉の経緯も知っており、店には名前入りの注文があるかもしれません。公開取引に Payjoin という必須の印はありませんが、アドレス再利用やウォレット固有の特徴が手がかりになることはあります。自動受取システムは、完了しない要求を繰り返して UTXO を探り出す攻撃にも備える必要があります。 [1] [2]
元の署名済み取引を、通常の代替支払いとして使えます。正しい手順では、それと Payjoin 提案は同じ元の入力を使うため、承認されるのは最大でもどちらか一方です。ただし、エラー後に確認せず別の独立した支払いを作ってよい理由にはなりません。既に渡した署名で、受取人が元の取引を送信できる場合があります。ウォレットは Payjoin、通常の代替支払い、まだ何も成立していない状態を明確に区別し、チェーンと照合すべきです。 [1] [2]
Payjoin の送信と受信は別の能力であり、実際に使うウォレットとバージョンの組み合わせが対応している必要があります。受取人の入力を追加せず要求を処理するだけでは、ここで説明した所有者推測への効果は得られません。2026 年 10 月 17 日の確認時点で、BIP78 の状態は Deployed、Dan Gould と Yuval Kogman による BIP77 は Draft です。Payjoin は通常の Bitcoin 取引を使ってアプリ間で調整します。Soft Fork を待つ必要はなく、発行ルールも変えません。 [1] [2] [3]
理解を深めるには、この項目とあわせて次もお読みください CoinJoin, Bitcoin のプライバシー, PSBT, 仮名性, UTXO, Satoshi. 次の項目からも参照されています Change Address, Bitcoin のプライバシー, 仮名性, Chain Surveillance.