マルチシグウォレットからの交換:2-of-3 の実務
交換サイトはスクリプトを見ず、アドレスと金額だけを見ます。だからマルチシグのコストはバイトです。5ブロックを解析して1,085のマルチシグ入力を見つけ、レガシー P2SH が 294 vB、ネイティブ P2WSH が 104 vB と実測しました。
マルチシグウォレットは「別の種類のウォレット」ではありません。別のロックスクリプトであり、交換サイトはそのスクリプトを一切見ません。注文に必要なのは、送る資産・受け取る資産・数量・受け取りアドレスの四つと、2026年10月25日以降このサイトで必須になった返金アドレスだけです。ウォレット接続も署名要求もアカウントもありません。したがって本当の論点は「2-of-3 から交換できるか」ではありません。できるからです。論点は、スクリプトが何バイト余分に食うか、注文前の検証がそれを理解するか、そして署名の段取りが30分の注文ウィンドウに収まるかです。以下の数字は2026年10月27日にローカルで解析した5つのビットコインブロックに基づきます。
注文フォームが実際に要求するもの。 注文エンドポイントが受け取るのは fromAsset、toAsset、fromAmount、toAddress、refundAddress の5つです。アドレス長は256文字までで、それ以外の妥当性は上流プロバイダの判断です。マルチシグ利用者にとって重要なのは2点。第一に、マルチシグのアドレスはただのアドレスです。3… の P2SH も bc1q の32バイトプログラムも、単一署名のアドレスと同様に受理されます。あなたが署名できるかどうかを誰も確認しないからです。第二に、返金アドレスが必須になり、しかも送金元ネットワークのアドレスでなければなりません。つまり返金先は通常、同じマルチシグウォレットの別アドレスであって、取引所の入金アドレスではありません。交換が失敗すれば、コインは m 個の署名を要するスクリプトに戻ります。それが利点であり、同時に運用上の危険です。他の署名者が揃うまで、返金はそこに留まります。
同じ 2-of-3、3つのスクリプト、3つの値段。 同じ 2-of-3 でも符号化は3通りあり、チェーン上には3つとも存在します。レガシー P2SH は署名とリデームスクリプトを scriptSig に詰める方式で、入力は実測 294 vB(94件の中央値)。ネイティブ P2WSH は署名を witness に移して75%の割引を受け、104.2 vB(224件)。ネストした P2SH-P2WSH の 2-of-3 は 139.2 vB でした。同じ閾値、同じ鍵数で、最古の符号化は2.8倍のバイトを食います。比較として単一署名の P2WPKH 入力は 67.8 vB、Taproot のキーパス入力は 57.5 vB。3-of-5 のレガシースクリプトは1入力 435 vB で、同じ権限の Taproot 署名の約7.6倍です。
3… で始まるという事実は、コストを何も教えてくれません。 固定した公開鍵から2つの本物の 2-of-3 アドレスをオフラインで生成しました。レガシー P2SH が 33ybcg…、ネストした P2SH-P2WSH が 3NBbb… です。どちらも有効なメインネットのアドレスで、すべてのチェックサム検証を通り、どちらも 3 で始まります。入力コストは2倍以上違います。どちらを生成しているかを知る方法はコーディネータのスクリプト種別設定を見ることだけで、いくらかかるかを知る方法は構築されるトランザクションのサイズを見ることだけです。ウォレットを引き継いだり、数年前のバックアップから復元したりすると、多くのコーディネータは今もレガシー符号化を既定にしています。
注文が転送される前にサイトが検証するもの。 2026年10月25日以降、注文ルートは上流を信用せずアドレスをローカルで検証します。データベース内の6件の注文が誤記された受取アドレスを持ち、うち5件がすでに送金済みだったことが発端です。同じ関数を生成したアドレスに対して実行しました。レガシー 3… は受理、32バイトプログラムの bc1q も受理、bech32m の bc1p も受理(上流が Taproot アドレスに支払うかは別問題)。3… のアドレスを1文字変えると「address checksum mismatch — a character was likely mistyped」、bech32 のアドレスを1文字変えると「segwit address fails its bech32 checksum」が返ります。知っておくべき穴が1つあります。Litecoin はまだこの検証の対象外です。チェックサムが壊れた偽の LTC アドレスを渡しても受理されました。未知の資産は正当な注文を弾かないよう意図的に通しているからです。LTC では1文字ずつ突き合わせてください。
2-of-3 の scriptSig が OP_0 で始まる理由。 ブロック 973,353 の実際の 2-of-3 支払いの生の入力スクリプトです。00 47 30 44 02 20 … 4c 69 52 21 <鍵> 21 <鍵> 21 <鍵> 53 ae。先頭の 00 は有名な OP_CHECKMULTISIG の off-by-one で、このオペコードは消費するより1つ多くスタックから取り出すため、ダミーのバイトを積んで整合させます。末尾の 4c 69 は105バイトのリデームスクリプトのプッシュで、中の 52 … 53 ae は OP_2、3つの公開鍵、OP_3、OP_CHECKMULTISIG です。実務上の帰結は2つ。署名はスクリプト内の公開鍵と同じ順序で並ぶ必要があり(PSBT のファイナライザが部分署名を並べ替えるのはこのため)、ファイナライザなしで手組みした scriptSig はローカルでは正しく見えてもブロードキャストで弾かれることがあります。
チェーンデータ:18,574 取引中 1,085 のマルチシグ入力。 ブロック 973,350 から 973,354 までの非コインベース入力は 16,035 件。そのうち 1,085 件(6.77%)がマルチシグスクリプトを消費し、全入力バイトの 9.7%、ブロック全体の重量の 3.7% を占めました。分布はウォレットの実際の使われ方の地図です。ネストした P2SH-P2WSH 2-of-4 が 443 件で最多(おそらくあるサービスの集約)、次いでネイティブ P2WSH 2-of-3 が 224 件、レガシー P2SH 2-of-3 が 94 件、3-of-5 が 17 件。18,574 取引のうち純粋なマルチシグは 70 件だけで、手数料率の中央値は 2.03 sat/vB。その朝、次のブロックに入るには 1 sat/vB で足りていました。単一入力のマルチシグ取引が1件、30 sat/vB(6,480 サトシ、約5.17ドル)を払っていて、本来その取引に必要なのは約0.17ドルでした。
その余分なバイトが今いくらか。 06:00 UTC のメモリプールは 44,475 取引・19.5 MvB、次のブロックの手数料率中央値の予測は 0.122 sat/vB、推奨は 1 sat/vB(次のブロックは 2 sat/vB)でした。BTC が 79,802 ドルなら 1 サトシは 0.000798 ドル。レガシー 2-of-3 の 1入力2出力は約 367 vB で 0.29 ドル、ネイティブ P2WSH 2-of-3 の同じ支出は約 178 vB で 0.14 ドルです。50 sat/vB(よくある混雑水準)ではこれが 14.60 ドルと 7.10 ドルになります。倍率が本当に効くのは集約です。サンプルには 149 のマルチシグ入力を2出力にまとめた取引があり、22,110 vB、1 sat/vB で 22,148 サトシ、約 17.70 ドル。同じ集約が 50 sat/vB なら約 880 ドルです。集約はメモリプールが空のときに行い、急いでいるときにはやらないことです。
30分の窓は署名の段取りより短い。 注文は作成から30分で失効し、その後6時間まで遅延入金を探し、プロバイダが確認できないものは24時間で強制失効します。入金アドレスは注文作成後にしか存在しないので、「先に署名してから注文」はできません。2つの都市に分かれた 2-of-3 の手順は、注文作成、正確な金額で PSBT を構築、署名者Aへ、次に署名者Bへ、ファイナライズ、ブロードキャストです。どこかで電話が必要になれば窓は消え、あとは遅延入金の検索が拾ってくれることを祈るだけになります。実務的には、注文前に両署名者を端末の前に揃え、受け取り・返金アドレスをコーディネータに事前入力し、入金アドレスはクリップボードではなく注文ページと突き合わせ、手数料はウォレット任せにせず 1 sat/vB を指定することです。
チェーンごとの現実。 ビットコインとライトコイン:スクリプトのマルチシグは端から端まで動きます(ライトコインの検証ギャップは前述の通り)。EVM 系:ネイティブなマルチシグはなく、マルチシグはコントラクトです(一般には Safe)。そこからの入金は普通の送金で、アドレスは他の 0x アドレスと同様に検証を通ります。ただし支出はコントラクト呼び出しで、複数のオーナーが承認し、1人の実行者が gas を払うため、通常の送金より高くつきます。Monero:CLI と GUI に M-of-N のマルチシグがありますが多ラウンドのプロトコルで、ツールはビットコインよりずっと薄いです。受け取りは簡単で、マルチシグウォレットのアドレスは普通の 4… アドレスです。難しいのは支出です。Zcash:執筆時点でシールドされた note に閾値署名はなく、シールド送金は構造上単一鍵です。どのチェーンを選ぶかは、署名者が実際に署名できるかで決めてください。 (ZcashとMonero 2026比較)
注文前の6項目チェック。 1つ、受け取りアドレスと返金アドレスを同じマルチシグウォレットから生成し、最初のアドレスが全端末で一致することを確認する(パスフレーズや派生パスの不一致が、マルチシグ復元で最も多い失敗です)。2つ、コーディネータのスクリプト種別を確認し、レガシー P2SH よりネイティブ P2WSH か Taproot を選ぶ(入力あたり2〜3倍の節約が恒久的に効きます)。3つ、モバイルでは受け取りアドレスのチェックサムを手で確認する(クリップボードのマルウェアが最も多い環境です)。4つ、PSBT に正確な金額を入れる(注文はその金額で値付けされ、不足分は比例縮小されません)。5つ、署名中は入金アドレスを画面に出したまま、先頭と末尾6文字を突き合わせる。6つ、コーディネータが期待する順序でファイナライザを使って署名する。そうしないと手数料を払った後に取引が拒否されます。
これが取引の全体像です。マルチシグウォレットが買うのは「1台失ってもコインを動かせる」能力で、代償はバイト数です。そしてバイトが安いのはメモリプールが空のときだけです。執筆時点(2026年10月27日 06:00 UTC)、高いのは交換そのものです。100 USDT-TRC20 は 0.14614999 XMR、1 XMR あたり約684ドル。5,000 USDT は 8.17658023 XMR で 611.5 ドル。1 XMR の売却は 582.55 USDT でした。実勢は動くのでページの表示に従ってください。注意を向けるべきは固定コストと署名の窓であって、レガシー入力の 294 バイト(今日で23セント)ではありません。 (XMR→USDT 出口ルート)