[ad_1]
I know that Blocksci is no longer being actively developed but I was reading through some of the documentation about identifying change addresses and came across this:
change.locktime = <blocksci.heuristics.change.ChangeHeuristic object>
Bitcoin Core sets the locktime to the current block height to prevent fee sniping.
If an output has been spent and it matches this transaction’s locktime behavior, it is
possibly the change output. (This heuristic will return unspent outputs as potential
candidates.)
My understanding is that locktime is usually set to the current block + 1 in order to prevent a fee sniping attack conducted by miners where they remine the current block but with higher fee transactions.
However, I am struggling to understand how Blocksci makes the connection between locktime and whether an address is change. Is it saying that if the transaction locktime is say 100,000 and one particular output also has a locktime of 100,000 then it may be the change output? But why? If I have a change output I might not necessarily want to spend it straight away so why would the locktime be the same as for the initial transaction?
[ad_2]
Source link