當要產生一筆新的交易時,我們需要帳號內所有地址所包含的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的交易內容到底包含甚麼,這我其實不太清楚。
麻煩大家多多指教,謝謝~