Blockchain
生成新地址時如何檢查交易歷史?
當通過比特幣客戶端執行新交易時,發件人將擁有與之前交易中使用的地址不同的地址。我還知道比特幣網路中的所有完整節點都維護著一個賬本,這基本上是所有比特幣交易的歷史記錄,因此節點可以檢查系統的完整性以及人們錢包中目前可用比特幣的數量。當不斷生成新地址時,如何檢查所有交易?您甚至無法將目前交易連結到之前的交易。有什麼我想念的嗎?
您可能缺少的一件事是“沒有餘額”。網路不知道錢包或餘額,它只知道輸出。這些輸出要麼已使用,要麼未使用。一旦有了這個概念,就更容易理解了。
如果你的錢包說你有 1.2345 BTC 的餘額,這意味著它“認為”有 X 個你“控制”的未使用輸出加起來為 1.2345。它基於它所知道的密鑰和迄今為止看到的交易。可能有 1 個輸出的值為 1.2345 或 100 個輸出的總和為 1.2345,或任何組合。
查看 blockchain.info 上的任何交易,您將在左側看到輸入。這些輸入是以前未使用的輸出。
<https://blockchain.info/tx/ad646bbac1e44e4db199420e12fec2966903a0e078da99fab97b3156455f252a>
右側是新的未使用輸出。一旦使用了輸出,它現在就被消耗掉並且沒有平衡。由於您使用的輸出可能不會完全符合您的要求,因此存在更改的概念。
<https://en.bitcoin.it/wiki/Change>
那麼新地址呢?網路不需要知道任何關於新地址的資訊。當一個節點看到一個新交易時,它只需要驗證正在花費的輸出是否已經花費,即它們沒有被任何其他交易使用(以及其他驗證,如簽名、金額等)
因此,所有交易都以這種方式連結到以前的交易。