有關於比特幣交易發送端的幾個UTXO問題

當要產生一筆新的交易時,我們需要帳號內所有地址所包含的utxo來確定自己的餘額,並輸入交易所需的內容,也就是對方的地址、交易金額、傳送費,接著將以上,也就是這次的交易資料(包含utxo的來源,及交易的input,還有交易的output)經過hash後再由自己的私鑰sign完,產生屬於本次交易的signature,然後將signature及自己的public key broadcast到區塊鏈上的節點,讓節點用public key確認signature的真偽,認證並完成本次交易。

以上是我目前對比特幣交易時發送端的動作的了解,如果有任何不正確或不完整的地方麻煩指教一下,另外還有幾個問題想請問大家:
1.一個電子錢包擁有一個私鑰,可由該私鑰對應到不同的幣別產生不同的公鑰,再依該幣別的演算法產生地址,這樣是對的嗎?
2.用bitcoin testnet交易時發現我送出的地址和交易的餘額,也就是change發送到的地址兩者不一樣,請問比特幣的同一個使用者是如何用同個公鑰產生不同的地址的?
3.上面提到產生signature的方式是將該次交易的內容hash過後,再用私鑰sign完才是signature,那請問要hash的交易內容到底包含甚麼,這我其實不太清楚。

麻煩大家多多指教,謝謝~

先釐清兩點:

1、UTXO 是指交易的 output,而且是還未被花用掉(unspent)。

一筆交易本身可含數個 input、數個output。

input 來自錬區塊錬上某區塊中某交易的output,而且未被花用過的 unspent transaction output (UTXO),UTXO 一但確認變成下手交易的 input,就不再是 UTXO:

image

(圖源:https://bitcoin.org/en/developer-guide#block-chain-overview)

2、一個 input 來自一個地址,每一個 input 都各別被其對應的私鑰 sign 過,產生屬於該 input 的 digital signature。

一個交易中有很多 input , 不同的 input 它的 digital signature 就不一樣。