Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ICS 2.a: IBC minimum viable Tendermint lite client #13

Closed
cwgoes opened this issue Feb 11, 2019 · 7 comments · Fixed by #332
Closed

ICS 2.a: IBC minimum viable Tendermint lite client #13

cwgoes opened this issue Feb 11, 2019 · 7 comments · Fixed by #332
Assignees
Labels
tao Transport, authentication, & ordering layer.
Milestone

Comments

@cwgoes
Copy link
Contributor

cwgoes commented Feb 11, 2019

Will cover:

  • Algorithm & data structures for minimum correct (probably not optimal) IBC lite client
  • Encoding specification for proofs
@cwgoes cwgoes added tao Transport, authentication, & ordering layer. stage-strawman labels Feb 11, 2019
@cwgoes cwgoes self-assigned this Mar 5, 2019
@cwgoes cwgoes changed the title ICS ?: IBC minimum viable lite client ICS 7: IBC minimum viable lite client Mar 5, 2019
@cwgoes
Copy link
Contributor Author

cwgoes commented Mar 19, 2019

Maybe we don't need this; it seems like #25 will define the requirements of lite-client verification.

Alternatively, this could be a protocol specification for a safe PBFT-class (e.g. Tendermint) lite client.

@ebuchman
Copy link
Member

Not sure, but might be valuable to differentiate the full and lite node abstractions. That said the full node abstraction isn't really relevant to IBC, so it probably makes sense to specify the Tendermint-level lite client requirements as part of ICS-2 as well. This would need to capture everything we've talked about re dynamic validator sets, bisection, counterfactual slashing, etc, which could become quite a bit, and might make sense to split it up (eg. ICS-2a is the core for static-validator sets, ICS-2b supports dynamic validator sets with < 1/3 change over epoch, and ICS-2c supports arbitrary dynamic validator sets) ?

@cwgoes
Copy link
Contributor Author

cwgoes commented Mar 26, 2019

Splitting up ICS-2 sounds prudent, and would be useful for IBC implementations by simpler networks (which might not need techniques such as counterfactual slashing).

I think we should include the requisite consensus properties (~ full node abstractions) to make definitive statements about precisely which Byzantine behaviors by which fractions of validators could break the high-level guarantees provided by IBC, but probably not more than that.

This was referenced Mar 26, 2019
@cwgoes cwgoes modified the milestones: Minimum Viable Insecure IBC, IBC Preliminaries Mar 26, 2019
@cwgoes
Copy link
Contributor Author

cwgoes commented May 15, 2019

This will become a sub-standard of ICS 2.

@cwgoes cwgoes changed the title ICS 7: IBC minimum viable lite client ICS 2.a: IBC minimum viable Tendermint lite client May 15, 2019
@cwgoes cwgoes modified the milestone: IBC 1.0.0-rc2 Aug 17, 2019
@cwgoes
Copy link
Contributor Author

cwgoes commented Aug 24, 2019

Blocked on Tendermint spec work at present.

@cwgoes
Copy link
Contributor Author

cwgoes commented Sep 17, 2019

The main specification will live in the Tendermint repository, I think.

Perhaps there ought to be a "bridge specification" in this repository as well (how to hook up the functions exposed by the Tendermint light client to the interface required by ICS 2).

@cwgoes
Copy link
Contributor Author

cwgoes commented Jan 2, 2020

The "bridge spec" is ICS 7 - #332.

@cwgoes cwgoes mentioned this issue Jan 2, 2020
1 task
@cwgoes cwgoes added this to the IBC 1.0.0-rc6 milestone Jan 4, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
tao Transport, authentication, & ordering layer.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants