-
Notifications
You must be signed in to change notification settings - Fork 156
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
ZIP 244: Add definitions of "effecting data" and "authorizing data" to the Terminology section #651
Comments
4 tasks
hdevalence
added a commit
to penumbra-zone/penumbra
that referenced
this issue
Dec 16, 2022
Closes #1758 We use the same words as in ZIP-244, namely "effecting" and "authorizing" data, but accidentally use them with opposite meanings, because I misunderstood which was which when originally reading the ZIP. This is a huge source of conceptual confusion, which will surely lead to bugs. The correct definitions are here: zcash/zips#651 > * "Effecting data" is any data within a transaction that contributes to the effects of applying the transaction to the global state (results in previously-spendable coins or notes becoming spent, creates newly-spendable coins or notes, causes the root of a commitment tree to change, etc.). Any change to this data by definition results in a different transaction. > * "Authorizing data" is the rest of the data within a transaction. It does not contribute to the effects of the transaction on global state, but allows those effects to take place. This data can be changed arbitrarily without resulting in a different transaction (but the changes may alter whether the transaction is allowed to be applied or not). [The points about "results in a different transaction" don't perfectly apply to us, because unlike Zcash, where the transaction hash is defined to be a hash of structured data, using Tendermint means we don't get to control the transaction hash, it's just the hash of the bytes of the transaction encoding]
hdevalence
added a commit
to penumbra-zone/penumbra
that referenced
this issue
Dec 17, 2022
Closes #1758 We use the same words as in ZIP-244, namely "effecting" and "authorizing" data, but accidentally use them with opposite meanings, because I misunderstood which was which when originally reading the ZIP. This is a huge source of conceptual confusion, which will surely lead to bugs. The correct definitions are here: zcash/zips#651 > * "Effecting data" is any data within a transaction that contributes to the effects of applying the transaction to the global state (results in previously-spendable coins or notes becoming spent, creates newly-spendable coins or notes, causes the root of a commitment tree to change, etc.). Any change to this data by definition results in a different transaction. > * "Authorizing data" is the rest of the data within a transaction. It does not contribute to the effects of the transaction on global state, but allows those effects to take place. This data can be changed arbitrarily without resulting in a different transaction (but the changes may alter whether the transaction is allowed to be applied or not). [The points about "results in a different transaction" don't perfectly apply to us, because unlike Zcash, where the transaction hash is defined to be a hash of structured data, using Tendermint means we don't get to control the transaction hash, it's just the hash of the bytes of the transaction encoding]
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@hdevalence noted that we hadn't defined these. The definitions I was using when working on ZIP 244 are:
The text was updated successfully, but these errors were encountered: