Transactions

為什麼餘額不在區塊鏈中?

  • August 8, 2012

目前需要遍歷整個區塊鏈來確定某個地址的餘額。在每筆交易中包含新余額不是更有效嗎?這樣客戶就不需要整個區塊鏈來驗證交易,因為礦工已經驗證了余額。

那是行不通的,因為系統的設計方式,賬戶沒有一堆硬幣可以花。可消耗硬幣以尚未用作後續交易輸入的交易輸出的形式存在。要形成有效交易,您必須從特定交易輸出中提取硬幣,而不是從特定賬戶中提取。

可以想像一個類似比特幣的系統,其中賬戶有餘額。在這樣的系統中,您可以簡單地在修改該帳戶餘額的任何塊中報告該帳戶的新余額。然後交易可以從賬戶而不是特定的交易輸出中提取。但那個系統不會是比特幣。

從本質上講,比特幣並不是圍繞賬戶設計的。賬戶只是人類使用比特幣考慮可以使用相同密鑰聲明的一組交易輸出的便捷方式。(或者形成我們知道只能由特定人聲稱的交易。)

從技術上講,您應該為每筆新的傳入交易使用一個新地址以保護您的匿名性。標準客戶端同樣會在轉移到新的密鑰對後發送剩餘餘額。這將使交易金額與餘額同義。

至於多次使用的地址 - 首先會有點浪費(必須為每筆交易添加一個額外的欄位),此外 - 您不需要每次都為給定地址聲明所有輸入你發送硬幣。有時您不想聲明每個輸入 - 例如低確認交易。假設您有一筆交易有 10 個確認和一個有 1 個確認 - 如果您想確保即使某些塊被覆蓋,您的轉賬也會通過,您將只使用 10 個確認輸入,而讓第 1 個確認輸入成熟。這樣的操作會使天平很快出錯。

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