-
Notifications
You must be signed in to change notification settings - Fork 397
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
Formalize security properties of IBC in proof assistant #42
Comments
Currently I am leaning towards Agda:
|
|
Also documentation should note relevant resources for understanding the proofs, e.g. this. |
I have been doing some more research into this topic. There are interesting theoretical developments referred to as "session types" (e.g. here, here) which can provide quite nice guarantees of progress & termination in concurrent contexts over channels. I think those might be quite useful in the context of analyzing application-level IBC protocol properties, as the channels provided by IBC have similar behaviour to channels in session types. For formalization of the core IBC protocol I am reasonably convinced that Agda is the best fit. I plan to start on core formalization after v1.0.0 is released. |
I think it makes sense to accelerate this work instead of working on typechecked pseudocode. |
Closing in favour of informalsystems/verification#12. |
I think we should define IBC sufficiently rigorously that important security properties of the protocol can be checked in a proof assistant such as Idris, Coq, or Agda (there are likely other options too).
Some examples of the kinds of properties I think should be formalized:
Open questions:
The text was updated successfully, but these errors were encountered: