-
Notifications
You must be signed in to change notification settings - Fork 2
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
Impl clarification: burning bug not prevented by xK_e
uniqueness when using shared xK_e
#5
Comments
A transaction is invalid if it has duplicate K_o, so this is a non-issue. |
That's exactly my point, that's what actually prevents the burning bug: validators checking if the enote components (mainly |
I believe this may be a typo on my part. |
I just don't want people to interpret this passage to mean that ensuring that |
Actually the burning bug is prevented by completely ignoring duplicates. See section 8.3.2. Using input contexts and requiring uniqueness of K_e just reduce the vectors for burning funds, they don't eliminate burning. |
However, I will update the document in the next version to clarify section 8.2.2. |
In section 8.2.2 of Implementing Seraphis, "Secret uniqueness:
input_context
", the paper states "To further ensure uniqueness within a transaction, transaction verifiers must mandate that all valuesxK_e
in a transaction are unique." However, by itself, unique values ofxK_e
within a transaction don't guarantee uniqueness of the other components when a sender doesn't follow the Jamtis rule of having at least one self-send type enote, where each self-send enote type within a transaction is unique. Consider the following situation, which was brought up by @tevador on the jamtis gist:This is possible since Mallory sent only two plain enotes in that transaction, so they shared the same
xK_e
and destination, and thus the sameDHE_1/2/3
, and thus the sameK_o
. As @tevador noted, there are two ways to prevent this burning bug: 1) Binds^sr_1
to the tx output index, or 2) (what is already done by the Seraphis consensus rules) have transaction validators check uniqueness of the enote components manually.Either way, this passage of the specification should be clarified to note that uniqueness of
xK_e
within a transaction is not enough to ensure uniqueness ofK_o
within said transaction, and therefore is not enough by itself to mitigate the burning bug.The text was updated successfully, but these errors were encountered: