I am reading about verifying SPV proofs of a sidechain where we don’t want to verify all
N blocks of the sidechain. In the example instead of verifying that each block meets the target difficulty (
hash < target), we want to only verify blocks that satisfy
hash < target/4.
The example includes a potential attack where the adversary doesn’t have to produce all valid blocks, but only blocks with
Suppose N = 4, so that without the skiplist solution,
we’d check that there are 4 blocks that satisfy hash < target. The
expected amount of work that an adversary must do to fool us is 4
times the average amount of work needed to find a block.
Suppose the adversary only does half this amount of work. If we
do the math, it turns out that this adversary has a 14 percent chance
of finding 4 blocks that satisfy hash < target. But with a skiplist
solution with a factor of 4, the adversary’s task would be to find a
single block that satisfies hash < target/4. In this scenario, the lazy
adversary who only does half the expected amount of work will be
able to fool us with a probability of 40 percent instead of 14 percent.
I don’t understand where the numbers 14% and 40% come from.