Transactions

交易的 vout 數組中的輸出排序背後的標準邏輯是什麼?

  • November 27, 2021

這個問題及其答案詳細討論了交易的 vout 數組的含義和目的。但是,到目前為止,我還沒有找到任何關於輸出如何vout排序的好資訊。

例如,假設一個協作交易涉及兩個輸入和三個輸出,其中兩個輸出是更改 utxos,發送給擁有輸入的各方,那麼 0-index vout 是否總是非更改輸出?或者,它會是最高價值的輸出(即輸出按價值降序排列)?如果兩者都不准確,那麼 vout 排序邏輯是什麼?

對於一般交易,比特幣的共識/約定圍繞 vouts 的順序是否有任何限制(我想是輸入,而我們正在討論這個主題)?即是否有可能由於節點“無效”的 vout 排序而拒絕交易?

對於正常交易¹,輸出順序沒有限制。通用標準似乎是人們在簽名之前組裝交易後隨機化所有輸入和輸出。還有一個比特幣改進提案(BIP69),它建議輸入和輸出的字典順序。統一排序旨在幫助來自不同錢包的交易看起來更相似。它被明確聲明為可選,因為它會干擾其他一些案例,並且一些受訪者認為它比隨機順序更糟糕。


¹有一些例外,例如,如果您使用sighash_singlesighash 標誌,您的輸入將只送出到具有相同索引的一個輸出。

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