Skip to content
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

Convert description check is unnecessarily strict #2719

Open
Tracked by #2530 ...
grarco opened this issue Feb 26, 2024 · 1 comment
Open
Tracked by #2530 ...

Convert description check is unnecessarily strict #2719

grarco opened this issue Feb 26, 2024 · 1 comment

Comments

@grarco
Copy link
Collaborator

grarco commented Feb 26, 2024

Convert descriptions could point to older anchors (just like spend descriptions do). This requires keeping in storage old versions of the tree anchor, updating the validation in the validity predicate and the way we build transactions.

@grarco
Copy link
Collaborator Author

grarco commented Aug 19, 2024

I'm not sure this is really needed nor necessarily nice to have. For the commitment tree we need to keep older versions of the tree's root in storage because this can be possibly update with every block and we cannot expect clients to keep up the pace. For the conversions though, we only expect one update per MASP epoch, which is planned to be quite slow (approx. 1 per day). Moreover, clients have an interest in querying and utilizing the latest conversions to extract more values out of their notes.

I'd say that storing older anchors would only help in one case: when a transaction involving conversions is submitted close to the masp epoch change. In this case there's a chance that, by the time the transaction is included in a block, the conversions have been updated and the tx will fail. This can be prevented by a smart client and, on top of that, since conversions are only used for shielded and unshielding operations, which most likely will rely on masp fee payment, there's a good chance that the transaction will not pass the fee check and won't even get included in a block, preventing the submitter from paying the gas fee.

@grarco grarco removed the pre-mainnet Must happen before mainnet. label Aug 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants