I do know that Blocksci is not being actively developed however I used to be studying via a number of the documentation about figuring out change addresses and got here throughout this:
change.locktime = <blocksci.heuristics.change.ChangeHeuristic object>
Bitcoin Core units the locktime to the present block top to stop price sniping.
If an output has been spent and it matches this transaction’s locktime conduct, it's
presumably the change output. (This heuristic will return unspent outputs as potential
candidates.)
My understanding is that locktime is often set to the present block + 1 with the intention to stop a price sniping assault carried out by miners the place they remine the present block however with increased price transactions.
Nonetheless, I’m struggling to grasp how Blocksci makes the connection between locktime and whether or not an deal with is change. Is it saying that if the transaction locktime is say 100,000 and one specific output additionally has a locktime of 100,000 then it might be the change output? However why? If I’ve a change output I won’t essentially wish to spend it right away so why would the locktime be the identical as for the preliminary transaction?