Bitcoind
是否可以將 P2SH 地址導入為可使用非標準類型腳本解決的問題?
我正在嘗試使用 importmulti RPC 命令將 P2SH 地址導入為僅限觀看。我提供了 scriptPubKey、時間戳和兌換腳本值。我送出的 scriptPubKey 的值是
P2SH HASH160 <20 byte hash> EQUAL
腳本部分的十六進製表示。我送出的兌換腳本是OP_HASH160
函式原像的十六進製表示,當散列時,等於<20 byte hash>
.導入成功,但我收到警告:
“導入為不可解:無法辨識的腳本。如果這是故意的,請不要提供任何密鑰、公鑰、見證腳本或贖回腳本。”
如果同時提供scriptPubKey 和redeemscript 這不是可以解決的嗎?如果沒有,我錯過了什麼?
您似乎正在嘗試導入非標準的redeemScript。根據定義,這些是不可解決的。
在比特幣核心的術語中,關於地址/腳本/輸出可以有幾個“級別”的知識:
- 沒什麼。我們對地址一無所知,也不認為它是我們的。
- 看著。一個地址被導入到錢包中,因此錢包將支付給它的款項視為影響其餘額的傳入(僅限觀看)付款。但是,關於地址的其他資訊一無所知。
- 可解。就像被觀察的一樣,但除此之外,我們實際上知道如何構造一個交易來花費這樣的輸出,除了訪問私鑰。這意味著錢包可以對支出進行費用估算(因為它可以預測支出需要多大的見證人/scriptSig),並且可以參與 PSBT 建構以進行支出(然後可以將其交給硬體錢包或其他有私鑰的錢包)。這些事情僅靠一個監視地址是不可能的。
- 可簽。就像 solvable 一樣,但錢包實際上也可以訪問用於簽名的私鑰,因此可以直接建構花費它的交易,而無需與任何其他實體互動。
非標準的redeemScript 只能被觀看,因為很明顯Bitcoin Core 不知道如何為這樣的腳本/地址構造輸入。您收到的警告是讓您知道,儘管您為導入命令提供了腳本或公鑰(通常有助於實現可解決性的資訊),但結果實際上是不可解決的,因此您會像還好只是導入地址而已。