用語集 / トランザクションと手数料
エスクロー契約
- エスクロー契約とは?
- エスクロー契約とは、取引当事者のどちらか一方だけでは使用できない出力にビットコインをロックし、双方が合意した場合、または指定された第三者による裁定が下された場合にのみ解放する仕組みです。
一般的な構成は2-of-3のマルチシグです。買い手、売り手、仲裁人の3者がそれぞれ1つの鍵を保持し、3つのうち任意の2つがあれば資金を動かせます。ビットコインでこれが表現できるようになったのは、2012年4月1日にpay-to-script-hashが有効になってからであり、タイムロック付きの払い戻しブランチは2015年12月のBIP65以降に利用可能になりました。エスクローという言葉を使うプラットフォームのほとんどは、こうした仕組みを一切実装していません。
仕組み
エスクロー契約は、企業のデータベースに記録された約束ではなく、コイン自体に書き込まれた使用条件です。
資金提供トランザクションは、3つの公開鍵と閾値を指定するスクリプトに支払います。問題のない取引では仲裁人は登場しません。買い手と売り手が2人で解放に署名し、3つ目の鍵は引き出しの中に残ります。紛争のある取引では、仲裁人が証拠を確認し、勝った側と並んで署名します。これで閾値に達するためです。3つのうち1つの署名では何も動かせないため、仲裁人が単独で行動してコインを持ち去ることはできません。残るリスクは共謀であり、仲裁人が不正な相手に2つ目の署名を渡すケースです。
適切に構築された契約には、誰も何にも署名しない場合の出口も用意されています。2015年12月のブロック388,381から適用されるOP_CHECKLOCKTIMEVERIFYにより、スクリプトに、合意されたブロック高を過ぎると資金提供者だけにコインを返すブランチを持たせることができます。相対的な類似機能であるOP_CHECKSEQUENCEVERIFYは、固定のブロック高を指定する代わりに、資金提供が確認された時点からの遅延を数えます。これらのいずれかがない場合、メールへの返信をやめた相手によって資金が永久に凍結されます。
コストは2つのトランザクションで、2つ目はサイズが大きくなります。2-of-3のウィットネススクリプトはそれだけで105バイトになるため、segwitのエスクロー出力の使用には、通常の単一鍵入力の68に対して約105仮想バイトのコストがかかります。したがって、取引の資金提供と解放には、20 sat/vBでおよそ6,000サトシかかります。エスクローは数百ドル相当の取引には意味がありますが、小額の取引にはまったく意味がありません。そのため優れた設計では、双方に保証金のロックも求めます。不正を働く側にとって、取引の価値を上回るコストを負うことにする必要があるからです。
利用される場面
エスクロー契約は、2人の見知らぬ相手が何かとビットコインを交換し、どちらも先に動こうとしない場面で用いられます。
個人間取引のマーケットプレイスが一般的な例であり、エスクローが本物かどうかを確かめる簡単な方法があります。アドレスを求めてください。本物の契約は、ブロックエクスプローラーに貼り付けて確認を待つことのできる通常のオンチェーンアドレスに資金を提供し、そのアドレスが約束するスクリプトは公開されています。アカウントページ上の残高しか示されない場合、コインはプラットフォーム自身のウォレットにあり、利用者はビットコインではなく、その支払能力と規制当局を信頼していることになります。この区別は机上の話ではありません。LocalBitcoinsはその方法で顧客資金を保管し、2023年2月にサービスを終了しました。また、Paxful Holdingsは2025年12月9日に連邦の訴因について有罪を認めました。
より堅牢なマーケットプレイスの設計では、3つのうち1つの鍵を保持し、取引当事者の合意なしには何も動かせない状態を保ちます。私人間の売買では同じ形を用い、弁護士や双方が信頼する技術者を3つ目の鍵の保有者とします。ライトニングネットワークもこれを借用しています。チャネルの資金提供出力は2-of-2であり、どちらの当事者も単独では使用できず、タイムロック付きの罰則が仲裁人の役割を担います。
エスクロー契約vs HTLC
エスクロー契約では、決着をつける人間が必要です。ハッシュタイムロック契約(HTLC)では誰も必要ありません。裁定役が秘密であるためです。HTLCは、期限内に正しいプリイメージを明かした相手に自動的に支払いますが、これは取引の両側が同じハッシュを検証できる台帳上にある場合にのみ機能します。銀行振込はハッシュの背後にロックできないため、法定通貨とビットコインの取引は、仲裁人かカストディアンのいずれかを必要とすることになります。エスクロー契約は、取引の片側がオフチェーンで行われる場合に用いる手段です。