Transactions
如何根據輸入/輸出量確定與給定 BTC 地址關聯的餘額
我正在編寫一個應用程序,試圖通過查看包括塊高度、輸入量、輸出量等數據來計算給定 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
我猜你指的是交易費用?你不需要考慮這一點。
也許您指的是當輸入和輸出中的一個或兩個有多個時,單個輸入和單個輸出之間缺乏有意義的對應關係?這不影響計算。
也許你指的是改變?這不會影響您計算地址餘額的方式。
這裡有一些細微差別使它比這更複雜
沒有我能想到的。