-
Notifications
You must be signed in to change notification settings - Fork 49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
frost-rs may be better suited using Merlin transcripts #3
Comments
Not only would this limit us to a 128-bit security level, which I was hoping to not lock to, the transcripts can't be used as they would desire while maintaining the level of abstraction desired.
The above would be what this would generally end up as, yet within the context of Monero TX signing, we'd be unable to use it for RNG (without having StateMachine take it as an argument which means Monero TX signing as a whole would need to, which I don't care to do) nor as a way to sequentially build inputs (due to the lack of DSTs for segments). I'd rather fix the potential bug (crafted commitments + message overlapping with the offset and and context) and call it a day. |
While working on fixing the existing bug, I decided to move Monero's context to be tag + length + value, and realized it would be helpful to have an API for this. I was going to write a crate which had Transcript... and then realized it'd just be a custom Merlin with the same usage limitations and with a customizable security level. Given the security and widespread adoption of 128-bit security, I'm just biting this bullet. |
merlin doesn't work on big endian which is the nail in the coffin for me. Writing my own simple transcript format which will theoretically still be usable with Merlin as a backend. |
Closing for bf257b3 |
Retroactively updating this to the new labels. This was originally an improvement, not a new feature (no added functionality), even though it ended up being the transcript crate feature. |
Instead of obtaining context and so on, a Merlin transcript could be passed and altered as needed. The issue is that the FROST IETF draft requires a specific serialization format for its binding factor calculation, which must be honored. This presumably means we can only use Merlin transcripts when an offset/context is specified, which may be a pain to manage (or relatively simple).
The inevitable Zcash standard for handling randomization (offsets) also should be considered, yet unfortunately can't be discussed yet as they haven't released anything nor have they answered my questions.
The text was updated successfully, but these errors were encountered: