As requested on the eth 1.x call, I will give an initial take on how Quilt sees oil affecting account abstraction (AA). To do so, I’ll enumerate every area where gas values are used in AA decision making then note how oil changes the behavior. This should all generally be taken with a grain of salt as we’re still understanding and defining the scope of AA ourselves. We also haven’t yet looked into how witness accounting will affect AA and we assume, by definition, that AA contracts are not susceptible to reentrancy.
Transaction validation (no change)
We expect nodes to have some predetermined gas limit they plan to expend while validating AA transactions. In order to support the same set of transactions, the gas limit would need to be adjusted proportionally to any changes in the gas schedule. This would also need to happen if oil is introduced, but since it is an out-of-band requirement set by individual nodes, it would not be an issue.
PAYGAS
op code (no change)
The PAYGAS
opcode is a breakpoint between the validation logic (and post validation and accounting, like incrementing a nonce) and the normal execution of a transaction. It accepts a single parameter which determines the price to pay for the gas limit specified in the overall transaction. The switch to oil won’t affect this process.
Applications of AA (some change)
There are two general categories of AA accounts: owned and unowned.
- owned - an AA contract whose balance is owned by the user(s) transacting with it (e.g. smart contract wallet, multisig).
- unowned - an AA contract whose underlying balance is not explicitly owned by any particular user (e.g. a dapp contract which pays for transactions).
Since we can attribute any action from an owned account to its owner, there is no need for a gas safeguard. However there are some scenarios where an unowned account would benefit from such a guard against calls to untrusted contracts. This would be more difficult with the introduction of oil once the schedule for oil deviates from gas s.t. in the future gas is several orders of magnitude cheaper than oil for the same computation. There are other ways of solving this and this safeguard technique really isn’t a solution to the underlying problem of identifying sybils. So this is most likely okay to lose.
A note on meta-transactions with respect to AA
Although oil would remove the ability for developers to rely on the breakpoint-like property of CALL
on out-of-gas traps, AA would give back some flexibility by allowing developers to perform operations before calling PAYGAS
. These operations (e.g. payment for a meta-tx) would be persisted even in the event of an out-of-oil trap.