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

Decide on in (initial?) TxOut constraint design #4

Closed
uhbif19 opened this issue Sep 26, 2023 · 1 comment
Closed

Decide on in (initial?) TxOut constraint design #4

uhbif19 opened this issue Sep 26, 2023 · 1 comment
Assignees
Labels
backends documentation Improvements or additions to documentation research

Comments

@uhbif19
Copy link
Contributor

uhbif19 commented Sep 26, 2023

There are various reasons affecting their design:

  • L1 scripts might need different constraints and amount of flexibility allowed. Most important is amount of non-determinism of TxOut needed. Coin-selection does imply it. But is this the only case? Is it only related to ADA inputs, or other tokens might need it as well?
  • Another flexibility concern are double-satisfaction, and other attacks related to on-chain checking of some kind of constraints by default.
  • Various backends might support only some subset of constraints, especially L1 indexing
  • L1 code, while supporting probably anything, might have performance considerations
  • Constraint translation/optimization and model-checking might be simpler to do

Options to decide:

  • Constraints might have some "normal form" or might not. It depends on if there is representation, which is "best" for all purposes.
  • Various features or might not be needed. While more powerful features might subsume others, so it might be better to have them.
  • Amount of non-determinism allowed, and if it should be handled generically or in some specific cornercase.

Sources to take a look for:

  • Another constrain languages and their issues with them: plutus-apps, CTL. Same with on-chain languages like plutarch.
  • Usecases: on-chain scripts and specs
  • BMC and constraint languages projects
@uhbif19
Copy link
Contributor Author

uhbif19 commented Sep 27, 2023

My current idea of constraint primitives is:

  • Atomic TxOut filtering predicates: by address, Datum, etc.
  • Their combinations by any logical operators, including imply.
  • exists_n, forall quantifiers over that

@uhbif19 uhbif19 self-assigned this Dec 4, 2023
@uhbif19 uhbif19 added the documentation Improvements or additions to documentation label Feb 28, 2024
@uhbif19 uhbif19 closed this as completed Feb 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backends documentation Improvements or additions to documentation research
Projects
None yet
Development

No branches or pull requests

1 participant