Repository navigation
Remove nonce accounts as fee payers #726
grod220
started this conversation in
SIMD Discussions
Replies: 1 comment
You should apply the same math to regular system accounts as well. There’s no difference in cpu costs here. And until there’s another type of system account that, for some reason, genuinely can’t be used to pay fees, you shouldn’t even check the account’s Data. |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Problem
A fee payer must normally be a System account with no data. Nonce accounts are the one exception. Fee validation has to recognize them, parse their state and keep their rent-exempt reserve when charging the fee. SIMD-0290 had to define a separate nonce fee-payer category for them.
The exception is a side effect. Nonce accounts originally lived in their own program, so they could not pay fees. When durable nonces moved into the System Program in 2020 (solana#7645), nonce accounts became System accounts and could pay fees as a result. That PR named no specific usecases for nonce accounts paying fees.
Usage
A sample of +500k mainnet transactions over the last 24 hours found only six with a nonce account as fee payer. Also, none of the mainnet validator identities is a nonce account.
Proposal
InvalidAccountForFeelike any other invalid fee payer and pays no fee.WithdrawNonceAccountwhile another account pays the fee.Related
SIMD-0723 removes durable nonce transactions but keeps nonce accounts as fee payers. This proposal removes that remaining exception. The two are independent and can activate in either order.
All reactions