Multi-Signature

是否可以僅使用一個私鑰從多重簽名地址簽署交易(以花費)?

  • March 1, 2019

假設有一個使用 3 個不同的私鑰創建的隔離見證地址。

是否有可能存在 1 個(僅一個)其他私鑰(在有效私鑰的宇宙中)可以從該多重簽名地址簽署交易(需要 3 個密鑰才能花費)?

不,這(實際上)不可能。

多重簽名地址依賴於一個小型比特幣腳本程序,其形式為 .

允許參與簽名的公鑰定義為地址創建時間。從該地址簽署交易的任何其他密鑰都只是無效交易。

儘管如此,正如 Pieter 在評論中提到的那樣,如果您能夠創建一個只需要一個密鑰來花費的比特幣腳本(它甚至可能不需要花費任何密鑰),那麼在技術上是可行的,這樣腳本散列到相同的值在多重簽名 UTXO 中編碼。但是,這種原像攻擊也是不可行的。

如果比特幣使用一個簡單的腳本被三個私鑰鎖定,該腳本涉及所有三個私鑰的簽名(3 個中的 3 個),那麼如果不提供所有三個私鑰進行簽名,就無法使用它。

然而,比特幣是一種可程式的貨幣,它允許你創建一個由時間決定的鎖定腳本。我的意思是,你可以在腳本中包含條件,這樣在 x 天后,你只需要 2 個密鑰,在 y 天之後,你只需要一個密鑰來花費比特幣。因此,在您的問題的廣泛範圍內,是的,只有一個私鑰才能使用比特幣,這通常需要三個私鑰,前提是鎖定腳本中的必要條件是合理的。下面是滿足上述條件的鎖定腳本。

IF
   IF
       3
   ELSE
       <x days> CHECKSEQUENCEVERIFY DROP
       2
   ENDIF
   <Pub key 1><Pub Key 2><Pub Key 3> 3 CHECKMULTISIG
ELSE
   <y days> CHECKSEQUENCEVERIFY DROP
   1 <Pub key 1><Pub Key 2><Pub Key 3> 3 CHECKMULTISIG
ENDIF

用於評估的解鎖腳本

  • 3 of 3 將是 < Sig 1>< Sig 2>< Sig 3> 1 1。末尾的 1 和 1 表示同時評估第一個和第二個 IF
  • 2 of 3 將是 <Sig 1><Sig 2> 1 0。1 將觸發第一個 IF,然後在第二個循環中觸發 ELSE
  • 1 of 3 將是 <Sig 1> 0 0。它將觸發第一個循環 ELSE

引用自:https://bitcoin.stackexchange.com/questions/84981