Bitcoin-Core
CHECKSEQUENCEVERIFY 在上次交易的 x 次之後
有沒有一種方法可以讓我擁有一個多重簽名地址,允許其中一個簽名者在每次交易/更新地址後的一段時間後只使用他們的單個密鑰?
我想要一個需要 2 個人簽名才能進行傳出交易的地址。但是,如果 30 天后該地址根本沒有做任何事情,則單個簽名者可以簽署交易。但是,如果有任何事情,例如傳入或傳出交易,則 30 天將被重置。
雖然這似乎不是直接可能的,因為比特幣腳本不允許引用“過去 30 天內”的交易,但可以考慮一種“解決方法”,使用業務邏輯監視 P2SH 地址。一種方法可能是嵌套的“if”,這在比特幣腳本中是允許的。如果在過去 30 天內付款,則需要“重置”這 30 天 - 也許您需要使用兩個 P2SH 地址,並將資金轉移到第二個地址(反之亦然)。如果您的業務邏輯在過去 30 天內發現了一筆交易,則資金將轉移到第二個地址,然後再轉移到第一個地址。對於第二個地址,您將擁有相同的規則集,只是 tx 輸出腳本(對於它的地址)發生了變化。業務邏輯可以有一個“
IF OP_HASH160 <length 0x14> <SECRET> OP_EQUAL <business pubkey> CHECKSIG ELSE IF 2 <Alice's pubkey> <Bob's pubkey> <Escrow's pubkey> 3 CHECKMULTISIG ELSE 30d CHECKSEQUENCEVERIFY DROP <Alice's pubkey> CHECKSIG ENDIF ENDIF
很明顯,在這種情況下會產生費用。這取決於過去 30 天內的交易頻率以及轉移的資金價值。費用不應該耗盡你的資金……再說一次,也許有人可能會考慮使用閃電作為“傳輸機制”來轉移價值?
…在每次交易/更新地址後的一段時間後只使用他們的單個密鑰?
這是不可能的,因為比特幣腳本中沒有規定在另一筆交易中查詢過去的交易,因此您無法檢查到該地址的最後一筆交易的時間。