Bitcoin-Core
新錢包如何知道 P2SH 交易中鎖定的餘額?
如果我的舊錢包創建並送出了一個 P2SH TX 到區塊鏈,然後我遷移到一個完全不同的錢包,新錢包如何檢測到該 UTXO 屬於我?由於腳本是散列的,它可以是任何東西並包含不可預測的資訊,就像多重簽名交易中的其他 PKH
簡而言之,它知道,因為它知道。無論使用什麼資訊來使原始錢包構造地址(是否由種子、一組密鑰、主密鑰、描述符、助記片語成……)也必須導入新錢包。
P2SH 贖回腳本不是隨機創建的:有一個從錢包擁有的密鑰生成它的過程,而這些密鑰本身也可能從這些資訊中生成。這些資訊是什麼取決於所涉及的標准或方案,因此在這裡很難說得非常具體。
確定性錢包自 2013 年左右開始成為標準,幾乎所有錢包都有一些方法可以從一些固定的不可變數據中確定性地構造密鑰。對於單密鑰策略(簡單錢包),錢包還需要將這些密鑰轉換為腳本/地址的資訊。常見的方式包括 P2PKH(地址包含公鑰的雜湊)、P2WPKH(類似,但使用 segwit 進行支出)或 P2SH-P2WPKH(其中地址是包含 segwit 程序雜湊的 P2SH 地址,其中包含公鑰)。錢包需要知道哪個(可能不止一個)用於將密鑰轉換為腳本,這也意味著一種計算所涉及的兌換腳本的方法。有時這種選擇隱含在所遵循的標準中;有時需要專門導入/選擇它。
對於多重簽名或其他策略,它更複雜,因為錢包還需要知道其他參與者如何生成他們的密鑰,但始終需要這些資訊——無論是在第一個錢包還是第二個錢包中。