Balance

網路如何知道我目前的餘額?

  • January 3, 2021

也許我還沒有完全理解事務是如何工作的。如果是這樣,請原諒我的愚蠢問題。

但我認為它“只是”一個數字簽名消息,例如“向Bob發送 1 個 BTC ”,其中Bob由其公鑰標識(當然要遵守某些協議)。然後用我的私鑰對交易進行簽名,防止以後修改,然後發送到網路進行散列和塊建構……

我不確定 Bob 是如何收到交易通知的。他的客戶端軟體真的必須解析區塊鏈才能找到他的公鑰所在的交易嗎?

更有趣的問題是,匯款人如何被限制只能發送他們擁有的錢?這一切都由比特幣客戶端管理嗎?如果是這樣,我可以編寫我自己的軟體,它只使用(或:任何)數量的(比特幣)錢以及接收者的公鑰,並建構協議中指定的交易 ASN。誰檢查餘額以及何時檢查?我的比特幣客戶是否完全潛入區塊鏈併計算餘額?那麼這是否受到網路的信任?或者網路(例如,在建構和散列區塊時)是否也從他們的第一次交易開始驗證所有公鑰?

網路不知道您目前的餘額。

比特幣網路不使用“餘額”的概念。相反,比特幣分類賬跟踪價值分配。因此,存在的每一個比特幣最初都是由礦工認領的,從那以後就一直存在價值分配。

現在,比特幣客戶端可以顯示地址的“餘額”,但該餘額只是查看地址的所有交易並確定對該地址進行的哪些付款分配仍未使用的結果。

未使用的交易稱為 UTXO(未使用的交易輸出)。

因此,一個地址的餘額就是該地址的所有 UTXO。這可以從區塊鏈中確定。這是大量的交易數據,但這就是 Bitcoin-Qt/bitcoind 客戶端使用 LevelDB 的原因,它在從像區塊鏈這樣的數據集中檢索時非常有效。

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