Present
- Summarized the status of Peras prototyping and defined next steps.
- Outlined the business value of formal methods.
- Investigated different approaches for representing a voting string in Agda: the first attempt implemented a formal language using equational reasoning and a coalgebraic style.
- Changed the reflexive transitive closure of the small-step semantics to a List-like syntax similar to what has been proposed in
test-demo
. This allows to express execution steps in a concise way and could be used as DSL for specifying test-cases and attack-scenarios.
- Computed the size in bytes of the various keys and certificates involved in Peras, under the assumption that it uses existing keys and crypto available to a Cardano node.
- Sketched a detailed design of what the independent voting layer would look like.
- Designed an Agda+Haskell workflow where Agda formal specifications for Peras can be made decidable and then exported as an executable specification for Haskell
quickcheck-dynamic
tests.
- Met with Max (Quviq) to settle next steps in their support of Peras.
- Suggest improvements in exising Agda+Haskell workflow and code, including identifying changes to
agda
and/or agda2hs
that would streamline the workflow.
- Demonstrate how to convert proofs present in the workflow into property-based tests in
quickcheck-dynamic
.
- Started mapping the spectrum of conformance testing relevant for a Peras CIP and RFP. The overall goal is "conformance without over-specification".
- Discussed strategies for making the Peras specification readable by the broad Cardano commmunity.
Future
- Complete Praos proofs à la Baspitter.
- Model voting and vote diffusion in detail using Dynamic QuickCheck and ΔQ.
- Construct Dynamic QuickCheck tests for adversarial scenarios.
- Continue refining requirements for conformance testing.
- Conduct additional stakeholder interviews, with an aim to define the ideal form of a Peras CIP.
Issues
- The Peras protocol paper is expected to be submitted May 22.
- The target date for the in-person Peras meeting is June 24.