Skip to content
This repository has been archived by the owner on Mar 24, 2023. It is now read-only.

Define light client and skipping process #159

Open
adlerjohn opened this issue May 4, 2021 · 2 comments
Open

Define light client and skipping process #159

adlerjohn opened this issue May 4, 2021 · 2 comments

Comments

@adlerjohn
Copy link
Member

adlerjohn commented May 4, 2021

The Tendermint light client allows skipping verification, which includes not only skipping verification, but also skipping downloading entire ranges of block headers. Ref: https://arxiv.org/abs/2010.07031

This is only under and honest majority assumption. In our case, we have two types of light clients:

  1. Superlight clients. These resemble traditional light clients, and can thus leverage skipping verification.
  2. Light clients. These are secure under an honest minority assumption + DaS + fraud proofs. This however means they cannot obviously leverage skipping verification.

Define the differences between Tendermint light clients and our light clients. Analyze to what extend our light clients can use techniques such as skipping verification.

┆Issue is synchronized with this Asana task by Unito

@adlerjohn adlerjohn self-assigned this May 4, 2021
@liamsi
Copy link
Member

liamsi commented May 4, 2021

I'm not sure the spec is the right place for this but we should also clearly articulate the security model for both. I think in some places we do still require an honest majority e.g. when validating commits (even in the light client) but still talk about removing the requirement for an honest majority. The rationale behind this must be communicated as clearly as possible; otherwise it will just stir up confusion in the ecosystem.

The spec must also cover how both these are initialized and if the different light clients need to be re-initialized subjectively (with a "checkpoint") after some time window has passed where they weren't updated.

@liamsi
Copy link
Member

liamsi commented May 5, 2021

Just leaving this here as this briefly summarizes the desired security model - I guess it's kinda obvious but just want to capture it somewhere briefly as I'm sure this will be confusing to others too:

Yes all blockchains do [rely on an honest majority], in order to prevent double spending attacks and censorship
The point is that we're not relying on the honest majority assumption for state validity
e.g. a dishonest majority should only be able to double spend, rather than inject invalid transactions to the chain
And in order to achieve, you need DA guarantees that don't rely on an honest majority assumption (to make fraud proofs availabile)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants