Transactions

如何根據輸入/輸出量確定與給定 BTC 地址關聯的餘額

  • March 19, 2021

我正在編寫一個應用程序,試圖通過查看包括塊高度、輸入量、輸出量等數據來計算給定 BTC 地址的執行餘額。但是,我不確定這裡涉及的邏輯。是否可以通過檢查輸入/輸出地址然後跟踪輸入/輸出量來創建這種執行平衡?

這是我正在查找的數據的快速範例:

BLOCK_DATE | BLOCK_HEIGHT | TRANS_HASH | INPUT_ADDRESS | OUTPUT_ADDRESS | INPUT_AMOUNT | OUTPUT_AMOUNT
01/11/2020    190            15c7853       abc             xyz1             -0.01          0.0001
01/11/2020    190            14v9876       abc             xyz2             -0.50          0.70
01/11/2020    191            19vc842       abc             xyz3             -5.03          0.413
01/12/2020    192            20ff4d3       abc             xyz4             -0.06          0.201
01/12/2020    192            154gf34       xyz1            abc              -0.07          0.18
01/12/2020    192            45f4ti5       ggg             abc              -0.10          0.24
01/12/2020    192            33cv5c5       jjj             abc              -0.08          1.13 

那麼使用這個虛擬數據,我將如何計算地址abc的執行餘額?我知道輸入/輸出不一定是 1:1,這裡有一些細微差別使它比這更複雜。所以我不確定我是否可以做一些簡單的事情,比如對給定地址的所有輸入和輸出求和。

看起來您正在嘗試通過我假設的交易來計算地址餘額。數據在您的表中的顯示方式,我的印像是您假設每筆交易中只有一個輸入地址和一個輸出地址。但事實並非如此。

交易中的每個輸入都會花費一個由先前交易創建的未使用交易輸出 (UTXO)。交易可以有很多輸入,並且不需要所有輸入都被接收到同一個地址。事實上,不建議重用地址,因此大多數時候每個輸入都與不同的地址相關聯。

讓我們看一下這個具有四個輸入和兩個輸出 的隨機交易(通過 blockchair.com ):在此處輸入圖像描述

它使用之前收到的四個不同地址的資金,並將金額重新分配給兩個新地址。因此,您需要稍微修改您的方法:不要將事務視為原子單元來提供腳本,而是分別解析每個輸入和每個輸出。

我不確定我是否可以做一些簡單的事情,比如對給定地址的所有輸入和輸出求和。

你應該這樣做。

輸入/輸出不一定是 1:1

我猜你指的是交易費用?你不需要考慮這一點。

也許您指的是當輸入和輸出中的一個或兩個有多個時,單個輸入和單個輸出之間缺乏有意義的對應關係?這不影響計算。

也許你指的是改變?這不會影響您計算地址餘額的方式。

這裡有一些細微差別使它比這更複雜

沒有我能想到的。

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