Flyclient Paper

Flyclient: Super-Light Clients for Cryptocurrencies
https://eprint.iacr.org/2019/226

6 Likes

Thank you for sharing. This is great stuff.

I love the name of the “non-interactive proof of proof-of-work (NIPoPoW)” solution. It’s such a marketing masterpiece! :laughing:

EDIT: The important question: can Grin use this? I’m not smart enough to figure it out, help!

1 Like

Yes! Grin can absolutely use this. It’s on our list of things to do over the next few months.

We have done a lot of the prep work for this (headers commit to the root of the full header MMR, not just the previous header hash).

This would allow us to verify the full header chain with log(n) headers downloaded.
i.e. a chain of 1,000,000 headers could be verified by downloading only a handful (~14) of headers.

This has some nice implications for the initial “fast sync” when a new node is started up.
And allows us to start validating full blocks sooner (we can still download the full header chain in the background, but without blocking the rest of the sync process).

5 Likes

problem solved


Hello, I have read the Flyclient paper for several times, but can’t understand why MMR proof can prove that Bi is the i-th block in blockchain.
It’s position binding. How does MMR get that?

And it also say that Merkle trees also provide position binding.
Why?
I just can’t understand :confused:

What did you discover? Thanks.

gitter history:
Antioch Peverell @antioch May 06 16:08
@jasonzhouu A Merkle proof consists of a path (of sibling hashes) and an MMR size. For a given size of MMR the path implicitly defines the left/right direction at each step in the path (is the node the left or right node beneath its parent?) This implicit series of left/right directions fixes the node at a single leaf position.
A call to proof.verify() takes a position and we use this to reconstruct the left/right decision at each step back up tree to the root (and will only verify if the position and the leaf node data are correct).

周宇盛 Yusheng Zhou @jasonzhouu May 06 18:25
@antiochp Get it! Thank you very much!
So the prover provide:
path of sibling
the i-index of this block from genesis

周宇盛 Yusheng Zhou @jasonzhouu May 06 18:30
Then verifier can reconstruct the every direction decision when concatenate siblings, according to the i-index.
Only if the i-index is true, -> then every direction decision is true, -> then the final MMR root is true.

A new flyclient paper is out https://eprint.iacr.org/2019/226.pdf

4 Likes

https://diode.io/burning-platform-pki/blockquick-super-light-blockchain-client-for-trustless-time-19144/