go-schnorrkel
go-schnorrkel copied to clipboard
Merlin transcript RNG
Right now, sign and verify won't interoperate with don't fully match the implementation in rust library, since in rust schnorrkel uses the transcript RNG to generate randomness when signing. The Go merlin library we're using doesn't have that yet: see https://github.com/gtank/merlin/issues/2
See: https://github.com/w3f/schnorrkel/blob/798ab3e0813aa478b520c5cf6dc6e02fd4e07f0a/src/sign.rs#L161 https://github.com/w3f/schnorrkel/blob/798ab3e0813aa478b520c5cf6dc6e02fd4e07f0a/src/context.rs#L153 for the relevant code in schnorrkel.
Note that transcript-assisted RNG is not required for interoperability. Verifiers will never know how the signers generate nonces. Using transcript-based RNG is only a matter of securing the prover against weak RNGs or rowhammer attacks.
@oleganza that is true, I should specify that it would be needed for a complete/equivalent implementation.