Transactions

對於給定的餘額,我似乎有太多未使用的輸出。我錯過了什麼?

  • July 19, 2018

我在測試網上有一個地址。我從 1.3 btc 開始。然後我將 0.5 btc 發送到另一個地址。我的餘額現在是 0.8。好的,這是有道理的。

我希望現在有一個 UTXO,它與之前的交易相比變化了 0.8。但是當我執行 listunspent 時,我看到我有兩個 UTXO。平衡是正確的,但似乎我有兩個輸出。

[
 {
   "txid": 
  "321dab633022a33c3a49b4aab4b13d3c431771ae9402746dbb6dcc21be5fd603",
   "vout": 1,
   "address": "2N4wJG7gs1mVXeMkX2MCuyekZUCSzrW7CjT",
   "redeemScript": "0014221f8d76c5b85e979055e54ac97a0cada38bc4e9",
   "scriptPubKey": "a914803d96c7e19e4a568764f9912fa54499f814cd8e87",
   "amount": 0.79999834,
   "confirmations": 119,
   "spendable": true,
   "solvable": true,
   "safe": true
 }
]

當我使用 txid 和 vout 0 執行 gettxout 時,第一個事務 UTXO 為 0.5。

{
 "bestblock": 
 "0000000000000043a1abc3cf9c778d3adeb417488019a507da871db9df74ffad",
 "confirmations": 119,
 "value": 0.50000000,
 "scriptPubKey": {
    "asm": "OP_HASH160 a43f8a90f292b6be0b487556ac357709a5e86480 OP_EQUAL",
    "hex": "a914a43f8a90f292b6be0b487556ac357709a5e8648087",
    "reqSigs": 1,
    "type": "scripthash",
    "addresses": [
      "2N8Dgvfmgs4fNCi7QatLZJR8ArvhPpMPW8P"
    ]
 },
 "coinbase": false
}

當我使用 vout 1 執行 gettxout 時,第二筆交易 UTXO 為 0.799 (0.8),這是餘額。

{
 "bestblock": 
 "0000000000000043a1abc3cf9c778d3adeb417488019a507da871db9df74ffad",
 "confirmations": 119,
 "value": 0.79999834,
 "scriptPubKey": {
   "asm": "OP_HASH160 803d96c7e19e4a568764f9912fa54499f814cd8e OP_EQUAL",
   "hex": "a914803d96c7e19e4a568764f9912fa54499f814cd8e87",
   "reqSigs": 1,
   "type": "scripthash",
   "addresses": [
     "2N4wJG7gs1mVXeMkX2MCuyekZUCSzrW7CjT"
 ]
},
"coinbase": false

}

並據此:如何檢查輸出是否已用完?

如果 gettxout 返回一些東西,那麼輸出是未使用的。

為什麼我有兩個未使用的輸出,第一個輸出的數量與我發送到另一個地址的數量相同?

根據對OP問題的評論

由於您製作了 wallet.dat 文件的副本(這是一種 HD 格式),因此這兩個地址都將在您的錢包(兩個副本)的控制之下。因此,呼叫命令時將列出兩個 UTXO listunspent,因為每個錢包都能夠花費兩個 UTXO。

如果你使用一個錢包來生成一個新地址,並向它發送一些資金,那麼該listunspent命令應該像你最初預期的那樣執行,因為你的比特幣核心錢包也不會控制你花費硬幣的地址(它只會控制零錢地址)。

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