Conversation
| type IE = TargetSumEncoding<MH, TARGET_SUM>; | ||
|
|
||
| pub type SIGAbortingTargetSumLifetime32Dim64Base8 = | ||
| pub type SchemeAbortingTargetSumLifetime32Dim46Base8 = |
There was a problem hiding this comment.
what's the rationale for renaming SIG to Scheme? Naming convention for cryptographic building blocks in this code base was all upper case letters.
| /// Instantiations with Lifetime 2^6. This is for testing purposes only. | ||
| /// Instantiations with Lifetime 2^8. This is for testing purposes only. | ||
| /// | ||
| /// Warning: Should not be used in production environments. |
There was a problem hiding this comment.
with these parameters, I would say this should be changed to "MUST not".
|
|
||
| // now, we hash randomness, parameters, epoch, message using PoseidonCompress | ||
| let combined_input_vec: Vec<F> = randomness | ||
| let combined_input_vec: Vec<F> = message_fe |
There was a problem hiding this comment.
the comment above should be changed as well.
There was a problem hiding this comment.
Also, maybe we can add to the comment that this deviates from the order in the paper and why we do that?
| /// | ||
| /// ### "Replacement" | ||
| /// This means we "replace" the rate elements of the state with the input chunk, instead | ||
| /// of adding (in the sense of finite field addition). |
There was a problem hiding this comment.
similar to the other change: make explicit that this is no longer consistent with the paper, and explain why we do that.
| match message { | ||
| [single] => { | ||
| // we compress parameter, tweak, message | ||
| // we compress message, parameter, tweak |
There was a problem hiding this comment.
see above. Changes should be highlighted and explained.
|
|
||
| ## Deviations from the [original paper](https://eprint.iacr.org/2025/055.pdf) | ||
|
|
||
| - use of 'overwrite' sponge, instead of 'addition' / 'xor' sponge. |
There was a problem hiding this comment.
maybe make a bit more precise. Where exactly, and why?
| use crate::MESSAGE_LENGTH; | ||
| use crate::serialization::Serializable; | ||
|
|
||
| pub use poseidon::encode_message; |
There was a problem hiding this comment.
why is this needed? seems to break some abstraction levels, no?
Changes: