You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, we have a single SaplingVerificationContext which we initialize, use to verify each Spend and Output description, and then call final_check to verify bindingSig. The reason for this workflow was that there is a data dependency on the entire transaction to fully verify it. However, this data dependency is only a blocker on bindingSig; the remaining components can be verified independently of the whole transaction (after computing sigHash), and also batch-verified.
Furthermore, the data dependency for bindingSig is effectively just on computing bvk. Once we have that, verification of bindingSig is equivalent to verifying a spendAuthSig.
We should extract the per-proof and per-signature verifiers from SaplingVerificationContext, so they can be run independently or batched. SaplingVerificationContext would continue to apply the various consensus checks on each spend and output, and final_check would return bvk, which could then be used to e.g. batch-verify bindingSig alongside the spendAuthSigs.
The text was updated successfully, but these errors were encountered:
str4d
changed the title
Replace SaplingVerificationContext with separate verifiers for proofs, spendAuthSigs, and bindingSig
zcash_proofs: Replace SaplingVerificationContext with separate verifiers for proofs, spendAuthSigs, and bindingSig
May 29, 2020
str4d
changed the title
zcash_proofs: Replace SaplingVerificationContext with separate verifiers for proofs, spendAuthSigs, and bindingSig
zcash_proofs: Extract separate verifiers for proofs, spendAuthSigs, and bindingSig from SaplingVerificationContext
May 29, 2020
Currently, we have a single
SaplingVerificationContext
which we initialize, use to verify each Spend and Output description, and then callfinal_check
to verifybindingSig
. The reason for this workflow was that there is a data dependency on the entire transaction to fully verify it. However, this data dependency is only a blocker onbindingSig
; the remaining components can be verified independently of the whole transaction (after computingsigHash
), and also batch-verified.Furthermore, the data dependency for
bindingSig
is effectively just on computingbvk
. Once we have that, verification ofbindingSig
is equivalent to verifying aspendAuthSig
.We should extract the per-proof and per-signature verifiers from
SaplingVerificationContext
, so they can be run independently or batched.SaplingVerificationContext
would continue to apply the various consensus checks on each spend and output, andfinal_check
would returnbvk
, which could then be used to e.g. batch-verifybindingSig
alongside thespendAuthSig
s.The text was updated successfully, but these errors were encountered: