Multi-Signature

是否可以在多重簽名錢包中指定密鑰而不是多少?

  • April 8, 2018

我搜尋了多重簽名錢包,但似乎非常有限。據我了解,我們可以創建一個包含 N 個密鑰的錢包,並指定創建交易需要多少個密鑰。

因此,我可以創建一個包含 5 個密鑰(K1、K2、K3、K4、K5)的錢包,我可以指定需要多少個密鑰(但不是哪些密鑰!),所以可以說:“你需要 5 個中的 3 個鑰匙”。但是,它使 K1 + K2 + K3 和 K5 + K4 + K2 成為有效簽名。

可以指定需要哪些鍵而不是多少?

想像一下,有三個人(K2、K3、K4)並有一個伺服器(K1)。只有使用 K1 +(K2 或 K3 或 K4)才有效。這意味著 K2 + K3 或 K4 + K3 無法創建有效交易。要成為有效的簽名,我們需要兩個簽名,但其中一個必須是 K1。

這是可能的?


一種替代方法是創建多重多重簽名錢包。我的意思是,創建三個地址,一個是 (K1 + K2),另一個是 (K1 + K3),依此類推。但是,它將有多個地址,這是我試圖避免的。另一種解決方案是需要所有密鑰(4 個中的 4 個),但需要三個客戶端的簽名,但這並不容易,需要等待所有人簽名。


對於歷史背景,我嘗試使用 OP_RETURN。每個人都可以訪問一個地址並查看有關三個客戶端的所有資訊。OP_RETURN 值將由伺服器 (K1) 生成,需要與客戶端 (K2、K3、K4) 之一進行簽名。但是,客戶端本身不能單獨創建交易,所以K2+K3需要是一個無效的簽名。

你是對的,現在在比特幣中實現的多重簽名需要 N 個參與者中的 M 個參與者簽名。但是,您想要的案例可以通過更複雜的腳本來實現。

例如,K1 + (K2 or K3 or K4) 可以通過以下方式完成:

<pk1> CHECKSIGVERIFY 1 <pk2> <pk3> <pk4> 3 CHECKMULTISIG

可以使用 K1 的簽名和 K2、K3 或 K4 之一的簽名來兌換該腳本。

至少對於您的範例,您似乎可以只使用 2 個 m-of-n 等於 2-of-3 的多重簽名錢包。不?

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