Tomas via bitcoin-dev
2017-05-05 08:49:35 UTC
I would like some feedback on the idea to use a node type a bit heavier
then SPV (dubbed FSPV) to solve Fraud Proofs.
An FSPV node not only downloads block headers, but also the "spend-tree
blocks", consisting of all TXIDs and all previous output indices and
TXIDs. The latter can be compacted using a scheme similar to Compact
Blocks, which will make the spend-tree block ~80kb in size.
ThIs way the FSPV can track the full transaction graph at little cost.
The advantage is, that Fraud Hint messages for absent/withheld
transactions become feasible. A normal SPV is reduced to Full Node by
such (cheaply faked) hint, but for an FSPV the cost is almost zero.
All it needs to do is add a taint-bit in the tree and propagate the
taint to the transaction graph. It then knows it needs to request the
Fraud Hinted transaction to consider any descendant transaction valid.
This makes it sufficient to punish fraudulent fraud hints or withheld
transactions by normal "banscore" procedures.
All other fraud can be proven by transaction-sets.
More information here: https://bitcrust.org/blog-fraud-proofs