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

[AIP-35][Charging Invariant Violation Errors] #144

Closed
thepomeranian opened this issue May 17, 2023 · 1 comment
Closed

[AIP-35][Charging Invariant Violation Errors] #144

thepomeranian opened this issue May 17, 2023 · 1 comment

Comments

@thepomeranian
Copy link
Collaborator

thepomeranian commented May 17, 2023

AIP Discussion

Summary

Charge transactions that triggered invariant violation error instead of discarding them.

Motivation

Invariant violation error is a special type of errors that gets triggered in the Aptos VM where some unexpected invariants are being violated. Right now transactions that triggered such error will be marked as discarded which could potentially be a DDoS vector for our network as it leaves users to be able to submit computations without being charged.

Examples of transactions that could trigger an invariant violation errors are transactions that violates MoveVM's paranoid type checker.

Read more about it here: https://github.com/aptos-foundation/AIPs/blob/main/aips/aip-35.md

@chen-robert
Copy link

We @otter-sec are in favor of this change.

This change would allow Aptos to introduce more robust security controls, gated by invariant violations which otherwise might incidentally introduce unintended denial of service security risks. This helps protect the chain more comprehensively, resulting in stronger guarantees for chain uptime and robustness.

We also don't believe there are material downsides for users. While users could in theory be subject to paying more gas, we note that in practice these errors represent critical invariant violations and will almost never be triggered by normal usage. More practically, we do not believe there has been an instance of this error triggered by normal usage to date.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants