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

Reject unsupported transactions #182

Closed
1 of 4 tasks
ch1bo opened this issue Jan 30, 2022 · 5 comments
Closed
1 of 4 tasks

Reject unsupported transactions #182

ch1bo opened this issue Jan 30, 2022 · 5 comments
Labels
feedback needed green 💚 Low complexity or well understood feature 💬 feature A feature on our roadmap

Comments

@ch1bo
Copy link
Collaborator

ch1bo commented Jan 30, 2022

What & Why

Although the ledger implementation used in the hydra-node is the same as in cardano-node, not all ledger rules make sense in a Hydra Head. For example, stake pool registrations and submitting delegation certificates have no meaning on Layer 2.

Furthermore, there are still some temporary gaps (#196) which need to be closed and corner-cases of PlutusV1 shortcomings (byron addresses). To provide a good user experience, these transactions shall be filtered at the API, but also need to be checked for when receiving them from another hydra-node.

Requirements

  • Commit Hydra protocol transactions do not use byron addresses.
  • Transactions received via API are checked and an explanatory response is sent
  • Transactions received via Network are checked and errors are only logged
  • Transactions to be filtered (not supported):
    • using tx validity bounds ("timed transactions", for now)
    • using byron addresses
    • anything kind of certificates
    • withdrawals
    • protocol updates
    • minting/burning (at least for now)

Tasks

@ch1bo ch1bo added the 💬 feature A feature on our roadmap label Jan 30, 2022
@ch1bo ch1bo added this to the Testnet maturity milestone Jan 30, 2022
@ch1bo ch1bo added the green 💚 Low complexity or well understood feature label Feb 3, 2022
@ch1bo ch1bo removed this from the Testnet maturity milestone Mar 8, 2022
@abailly-iohk
Copy link
Contributor

Rather than adding complexity in the off-chain ledger, we could add those checks where they belong, in the on-chain ledger interface, and prevent CloseTx transaction from being posted depending on various conditions. This would not prevent someone to craft such a transaction outside of the Hydra node though.

@ch1bo ch1bo added this to the 0.5.0 milestone Apr 19, 2022
@KtorZ KtorZ self-assigned this Apr 20, 2022
@ch1bo
Copy link
Collaborator Author

ch1bo commented Apr 26, 2022

We consider pausing this effort, after solving the first requirement, and revisit this when we have more feedback for or against this feature.

@ch1bo ch1bo removed this from the 0.5.0 milestone Apr 26, 2022
@ch1bo ch1bo unassigned KtorZ Apr 26, 2022
@ch1bo
Copy link
Collaborator Author

ch1bo commented May 3, 2022

We discussed this again and realize that the most important bit of this would be

Double-check that any close transaction snapshot we sign can be fanned out, reject them otherwise.

We aim to create a follow-up/alternative feature which mostly focuses on that and delays snapshot signing instead of rejecting transactions. This would allow minting "outside of snapshots", i.e. not having snapshots covering the txs with minted tokens, unless they are burned.

@ch1bo ch1bo added this to the 0.6.0 milestone May 3, 2022
@ch1bo ch1bo changed the title Reject unsupported transactions Only sign closable snapshots May 31, 2022
@ch1bo ch1bo changed the title Only sign closable snapshots Reject unsupported transactions May 31, 2022
@ch1bo
Copy link
Collaborator Author

ch1bo commented May 31, 2022

Created #370 to capture more directly the security concern of unclosable Heads, whereas this item here aims at improving the UX on unsupported transactions.

@ch1bo ch1bo removed this from the 0.6.0 milestone May 31, 2022
@ch1bo
Copy link
Collaborator Author

ch1bo commented Mar 21, 2023

Closed in favor of #370

@ch1bo ch1bo closed this as completed Mar 21, 2023
@ch1bo ch1bo closed this as not planned Won't fix, can't repro, duplicate, stale Mar 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feedback needed green 💚 Low complexity or well understood feature 💬 feature A feature on our roadmap
Projects
None yet
Development

No branches or pull requests

3 participants