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: IBC consensus verification requirements #25

Closed
cwgoes opened this issue Mar 5, 2019 · 3 comments · Fixed by #20
Closed

ICS 2: IBC consensus verification requirements #25

cwgoes opened this issue Mar 5, 2019 · 3 comments · Fixed by #20
Assignees
Labels
tao Transport, authentication, & ordering layer.

Comments

@cwgoes
Copy link
Contributor

cwgoes commented Mar 5, 2019

Required functions & semantics of the underlying consensus algorithm / blockchain.

  • Security assumptions of the underlying consensus

This ICS should be able to specify exactly the properties & functions a consensus algorithm must be able to provide in order to be compatible with the rest of the IBC protocol. Initially, these will be more or less chosen as the properties that Tendermint has - the most restrictive set we can choose while retaining the properties which are necessary for IBC - that way future possible consensus algorithms can determine what they would need to satisfy in order to support IBC.

@cwgoes cwgoes added tao Transport, authentication, & ordering layer. stage-strawman labels Mar 5, 2019
@cwgoes cwgoes changed the title ICS ?: IBC consensus requirements ICS 2: IBC consensus requirements Mar 5, 2019
@cwgoes cwgoes added this to the Minimum Viable Insecure IBC milestone Mar 19, 2019
@cwgoes cwgoes removed this from the Minimum Viable Insecure IBC milestone Mar 26, 2019
@mossid
Copy link

mossid commented Mar 26, 2019

I think #2 should contain the requirements that the other ICSs are relying on, for example, #3 need a way to verify a header, #6 needs a way to determine whether the chain is malicious or not. The basic concept of "chain" can provide the criteria what is expected and what is wrong.

#7 is more like Tendermint lite client specification, where the tendermint lightclient headers are satisfying the consensus requirements. This way we can build the ICS components, such as connection, channel, and others on the consensus requirements while adding more consensus algorithms(e.g. Nakamoto + FG) to the ICSs.

@cwgoes cwgoes changed the title ICS 2: IBC consensus requirements ICS 2: IBC consensus verification requirements Mar 26, 2019
@cwgoes cwgoes added this to the IBC Preliminaries milestone Mar 26, 2019
@zmanian
Copy link
Member

zmanian commented Mar 26, 2019

Some thoughts on requirements for consensus requirements for IBC.

Consensus should be

  1. Proof Carrying
  2. Asynchronously safe consensus
  3. Finality

@cwgoes
Copy link
Contributor Author

cwgoes commented Mar 28, 2019

Some thoughts on requirements for consensus requirements for IBC.

Consensus should be

1. Proof Carrying

2. Asynchronously safe consensus

3. Finality

Yes; @mossid and I tried to capture these requirements, and others, in discussion, we think we can reason about the lite client verifier as providing information about what must have happened in a full node "full consensus" process - we'll write that up.

@cwgoes cwgoes modified the milestones: IBC Preliminaries, Pre-Implementation Requirements May 14, 2019
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.

3 participants