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

Optimal satisfaction algorithm is not modelled #2

Open
dgpv opened this issue Nov 29, 2020 · 1 comment
Open

Optimal satisfaction algorithm is not modelled #2

dgpv opened this issue Nov 29, 2020 · 1 comment

Comments

@dgpv
Copy link
Owner

dgpv commented Nov 29, 2020

Early version of the spec had malleable_sat/malleable_dsat and has_sig properties on nodes, but they were specified without full understanding of the satisfaction algorithm, were not correct, and were removed.

It still might be useful to have a specification for the non-malleable satisfaction algorithm. The spec already models instances for valid/empty sigs, correct/wrong preimages, and zero/one witnesses, and models sat/dsat. Would the non-malleable satisfaction algorithm be modelled, an implementations would be able to check against the spec for correctness of their algorithm.

It might make sense to model the algorithm as a separate spec that would import the main spec via open miniscript. Modelling satisfaction algorithm will make the overall model more complex, and therefore it will take more time to check. Having the basic model small will be cheaper. On the other hand, if we have a spec that would correctly detect malleability and has_sig run-time properties, we could check them against s,e,f type modifiers and increase confidence in the consistency of the spec

@dgpv dgpv changed the title Satisfaction algorithm is not modelled Non-malleable satisfaction algorithm is not modelled Nov 30, 2020
@dgpv
Copy link
Owner Author

dgpv commented Dec 5, 2020

The problem with modelling the satisfaction algorithm is that it should chose the optimal satisfaction, and this means choosing between different instances. This means that 'optimal satisfaction' is a hyperproperty, that can't be directly modelled in Alloy. One would have to model all possible non-malleable satisfactions first, and then chose the optimal between them.

@dgpv dgpv changed the title Non-malleable satisfaction algorithm is not modelled Optimal satisfaction algorithm is not modelled Dec 5, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant