Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: tomtomtom7 on May 16, 2017, 10:17:31 AM



Title: SPV with simple Fraud Hints
Post by: tomtomtom7 on May 16, 2017, 10:17:31 AM
I would like to better understand the problem of fraud proofs and false flagging fraud hints with normal SPV (headers only+merkle branch).

I understand the two difficult cases:

* A transaction included that references a non-existing output. Absence of the referenced tx cannot be proven.
* A TXID included of a non-existent transaction, and a transaction is included that references it. This also cannot be proven.

Now both these cases can only be *hinted*, and it is said that to verify such (cheaply faked) hints, the SPV falls back to full node.

But what if the SPV simply registers the hint for a transaction in block N, and uses this hint to ensure every received transaction in block >= N must request all ancestors up to block N-1 for verification?

Requesting ancestors seems no bad practice, so this makes both false flagging attacks as well as attacks using invalid blocks unfeasible, and protected by normal anti-DoS measures.

What am I missing here? Why does the SPV need to fall back to full node?


Title: Re: SPV with simple Fraud Hints
Post by: tomtomtom7 on May 18, 2017, 08:45:34 AM
Can anybody help me with this?

I think we even make it standard for SPV nodes to require the ancestors up to N  blocks in the past, to further the diminish costs of false flags.

I don't understand how either false hinting, or invalid blocks by tx withholding can harm that way.

Doesn't this make SPV fully resilient to any miner attack?