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

Contract continuity & authentication with ST & PTs #181

Closed
4 of 5 tasks
ch1bo opened this issue Jan 30, 2022 · 0 comments · Fixed by #210
Closed
4 of 5 tasks

Contract continuity & authentication with ST & PTs #181

ch1bo opened this issue Jan 30, 2022 · 0 comments · Fixed by #210
Labels
green 💚 Low complexity or well understood feature 💬 feature A feature on our roadmap
Milestone

Comments

@ch1bo
Copy link
Collaborator

ch1bo commented Jan 30, 2022

What & Why

Previous work on the Plutus scripts ensured the Hydra Head is opened & closed on-chain honoring the off-chain agreed UTXO state. However, this was not covering two cases and goal of this feature is to

  • ensure that the Hydra protocol transactions are submitted in order, and
  • ensure that all participants had a chance to commit UTXOs to a Head

For that matter we will need to mint & use so-called state-thread tokens (ST) and participation tokens (PT) as described in the Hydra and eUTXO paper.

This will improve the Hydra Head security.

Functional requirements

  • The Head can only be opened if all participants committed
  • An open head state cannot be created "out of thin air" (skipping initial & commit stages)
  • Only Head participants can do Head life-cycle transitions, e.g. abort a head.

Technical requirements

  • The Hydra Head is uniquely identified by the policy id of the ST
  • The ST is forwarded along the Head validator life cycle
  • Each participant "receives" a PT via the v_initial script
  • All PTs are required to collectCom or abort a Head All Head transactions need to be signed by one of the keys enumerated by spent PTs (token names == pkh)

Tasks

@ch1bo ch1bo added the 💬 feature A feature on our roadmap label Jan 30, 2022
@ch1bo ch1bo added this to the Testnet maturity milestone Feb 2, 2022
@ch1bo ch1bo added green 💚 Low complexity or well understood feature L1 Affects the on-chain protocol of Hydra and removed L1 Affects the on-chain protocol of Hydra labels Feb 3, 2022
@ch1bo ch1bo linked a pull request Feb 11, 2022 that will close this issue
@ch1bo ch1bo reopened this Feb 15, 2022
@ch1bo ch1bo modified the milestones: Testnet maturity, 0.4.0 Mar 8, 2022
@ch1bo ch1bo modified the milestones: 0.4.0, 0.5.0 Mar 22, 2022
@KtorZ KtorZ closed this as completed Apr 6, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
green 💚 Low complexity or well understood feature 💬 feature A feature on our roadmap
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants