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

Create updated specification for coordinated head protocol #448

Closed
11 of 13 tasks
ch1bo opened this issue Aug 2, 2022 · 2 comments
Closed
11 of 13 tasks

Create updated specification for coordinated head protocol #448

ch1bo opened this issue Aug 2, 2022 · 2 comments
Labels
amber ⚠️ Medium complexity or partly unclear feature 💬 feature A feature on our roadmap
Milestone

Comments

@ch1bo
Copy link
Collaborator

ch1bo commented Aug 2, 2022

Why

While implementing, we have evolved the "Simplified Head protocol" from the version in the paper to an even more simplified form to something we would call the "Coordinated Head Protocol".

Hence, not all specified parts in the paper are relevant anymore. Also, the formalism used in the paper for the on-chain verification (OCV) part is actually mixing off- and on-chain syntax and is different to how Cardano smart contracts (Plutus scripts) work.

What

Goal is to create an updated specification serving as a foundation to discuss & audit the protocol itself, and to validate it from a theoretical standpoint (eg. does it provide the same security as the paper's protocol) and a practical standpoint (verifies the implementation is secure).

How

  • Create a versioned specification document containing

    • overview & introduction to the protocol
    • protocol logic describing the states, transitions and any variables; e.g. what, when, how
      • this can be generic or specific to eUTxO
    • on-chain logic verifying each transition
      • this needs to be specific to eUTxO
    • specification of the primitive functions involved (e.g. the multi-signature scheme)
  • Using a formalism that is clear & unambiguous, but also easy to read & understand; it needs to serve as an interface between hydra researchers and engineers

    • Understandable by the internal auditor
    • Understandable by an IOG engineer which is used to reading papers
  • No simplification, extensions or variants; just describing a single version of the protocol -> that will be Hydra Head V1

  • Also, a list of gaps between implementation and the specification is created (in Align implementation with HeadV1 protocol specification #452)

Tasks

@ch1bo ch1bo added 💬 feature A feature on our roadmap red 💣 💥 ⁉️ Very complex, risky or just not well understood feature labels Aug 2, 2022
@ch1bo
Copy link
Collaborator Author

ch1bo commented Aug 2, 2022

Created this to have less in #194 and allow for more concise definition of done. Still not fleshed out fully so that's why it's 🔴

@ch1bo ch1bo moved this to Next in Hydra Head Roadmap Aug 23, 2022
@ch1bo ch1bo moved this from Next to Now in Hydra Head Roadmap Nov 8, 2022
@ch1bo ch1bo self-assigned this Dec 2, 2022
@ch1bo ch1bo assigned v0d1ch, ffakenz and ghost Dec 21, 2022
@ch1bo ch1bo unassigned v0d1ch, ffakenz and ghost Jan 17, 2023
@ch1bo ch1bo added amber ⚠️ Medium complexity or partly unclear feature and removed red 💣 💥 ⁉️ Very complex, risky or just not well understood feature labels Jan 23, 2023
@ch1bo
Copy link
Collaborator Author

ch1bo commented Jan 23, 2023

Marked 🟡 as we have made great progress and have a good write-up now with clear points what is still left to do. Some open points will remain when we close this and a follow-up is likely also required to round-off some corners on the security definition.

@ch1bo ch1bo removed their assignment Feb 2, 2023
@ghost ghost closed this as completed Feb 3, 2023
@github-project-automation github-project-automation bot moved this from Now to Done in Hydra Head Roadmap Feb 3, 2023
@ch1bo ch1bo added this to the 0.9.0 milestone Mar 2, 2023
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
amber ⚠️ Medium complexity or partly unclear feature 💬 feature A feature on our roadmap
Projects
None yet
Development

No branches or pull requests

3 participants