After #1213 and #1218 the original purpose of Downgrade trait can no longer be satisfied. It was part of the validate API, allowing to go from malicious to semi-honest setting right after validate in one go.
With validate_record API, it does not seem to be applicable in all cases anymore. Some protocols want to validate and then call reveal (prf_eval), but others may want to validate and get the semi-honest share back. Given that validate_record cannot operate on a batch, the shape of Downgrade trait needs to change.
I don't have a good proposal yet, maybe we can wait until we actually have a need to downgrade (OPRF IPA doesn't need that as of today) and then decide what to do
After #1213 and #1218 the original purpose of
Downgrade
trait can no longer be satisfied. It was part of thevalidate
API, allowing to go from malicious to semi-honest setting right after validate in one go.With
validate_record
API, it does not seem to be applicable in all cases anymore. Some protocols want to validate and then call reveal (prf_eval
), but others may want to validate and get the semi-honest share back. Given thatvalidate_record
cannot operate on a batch, the shape ofDowngrade
trait needs to change.I don't have a good proposal yet, maybe we can wait until we actually have a need to downgrade (OPRF IPA doesn't need that as of today) and then decide what to do