Script

如何編寫腳本,使我的資金鎖定在 2-of-2 多重簽名中,並在 365 天后轉換為 1-of-2 多重簽名?

  • September 29, 2020

我希望我的比特幣具有 2-of-2 多重簽名提供的額外安全性。通過一個單一的簽名,我擔心如果一個密鑰被黑客入侵,我會失去我的資金。但是,對於 2-of-2 的多重簽名,我擔心如果我失去任何一個密鑰,我的資金就會被困住。

如何編寫腳本,使我的資金被鎖定在 2-of-2 多重簽名中,該腳本在 365 天后轉換為 1-of-2 多重簽名?這樣我就可以兩全其美了。我在 365 天內擁有更高的安全性,然後如果我失去了我的一把鑰匙,我仍然可以在 365 天后訪問我的資金。

要建構腳本,您可以使用 Pieter Wuille 的 Miniscript站點

如果您轉到策略到 Miniscript 編譯器部分,則策略中有一個範例,即 2-of-2 多重簽名在 90 天后變成 1-of-2 多重簽名。

and(pk(key_user),or(99@pk(key_service),older(12960)))

您需要根據您想要的範例對其進行調整。適合您需求的政策是:

and(pk(key_1),or(99@pk(key_2),older(52560)))

獲得策略後,您可以將其複制並粘貼到策略到 Miniscript 編譯器部分,並獲得與此策略等效的 Miniscript。Miniscript 輸出為:

and_v(v:pk(key_1),or_d(pk(key_2),older(52560)))

再往下,您可以複製並粘貼此 Miniscript,按分析,您將獲得生成的 Script(78 字節)以及實際 Script 的大小:

<key_1> OP_CHECKSIGVERIFY <key_2> OP_CHECKSIG OP_IFDUP OP_NOTIF
   <50cd00> OP_CHECKSEQUENCEVERIFY
OP_ENDIF

值得注意的是,此範例假設您更關心失去一個特定密鑰(key_2在此範例中),並且您假設仍然可以訪問key 1. 如果您很可能失去任何一個鍵 (key_1key_2),您可能需要一個不同的腳本。

我建議你先在 testnet 或 Signet 上嘗試這個,因為硬幣一文不值。或者,在您可以承受損失的主網上使用少量資金。您不希望由於錯誤或誤解而損失所有資金。

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