Address
多重簽名地址也可以是虛地址嗎?
如果是這樣,三方是否必須就字元序列達成一致?
是的,這是可能的。
事實上,創建地址的一方是唯一需要就字元序列達成一致的一方。
假設您有一個可以用於 2-of-3 多重簽名的地址。這是一個付費腳本雜湊地址(以 3 而不是 1 開頭)。您的腳本可能看起來像這樣:
2 <pubkey A> <pubkey B> <pubkey C> 3 OP_CHECKMULTISIG
這行得通,但是這個腳本的散列(具有壓倒性的可能性)將相當無聊。
假設甲方想要一個更有趣的地址。她知道她的私鑰 k_A、她的公鑰 Q_A 以及其他所有人的公鑰。她所要做的就是執行以下算法:
while not interesting(address): Q = Q + G k = k + 1 address = hash160('2 <Q> <pubkey B> <pubkey C> 3 OP_CHECKMULTISIG')
此時她的公鑰是 Q,而她的私鑰是 k。G 是 secp256k1 曲線的生成點。然後 Alice 將這個腳本展示給 Bob 和 Charlie,他們驗證該腳本是否包含他們的公鑰以及它是否散列到預期的地址。
Bob 和 Charlie 無法區分以這種特殊方式生成的地址,而 Alice 在第一次嘗試選擇私鑰時很幸運。
當您告訴 vanitygen 生成以 3 開頭的地址時,vanitygen 已經為 1-of-1 簽名實現了類似的功能。