Prover
and Verifier
are **not** type-safe
#713
Labels
team:research
type:enhancement
Issues concerning code or feature improvement (performance, refactoring, etc)
Describe what you want implemented
While these structures are type-safe while in memory, the moment they're serialized and subsequently de-serialized, they cease to be so. This means that it is possible, for example, to de-serialize a
Verifier<C1>
from a payload ofVerifier<C2>
withC1 != C2
.Describe "Why" this is needed
Type-safety is not a requirement per-se, but since it is one of the design goals it should probably be taken seriously.
Describe alternatives you've considered
A solution for this would be to include information about the circuit type with the serialized
Prover
andVerifier
.Additional context
In the process of migrating
rusk-abi
, I came understand that the choosing of the circuit was made more difficult by the newerplonk
API, but also realized how serialization can easily be abused.The text was updated successfully, but these errors were encountered: