From 819685fa9e93d85f50f5207409df909ed70a37f3 Mon Sep 17 00:00:00 2001 From: Alex Forshtat Date: Tue, 19 Mar 2024 22:19:41 +0100 Subject: [PATCH 1/4] Move "aggregation" RIP here --- RIPS/rip-9998.md | 305 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 305 insertions(+) create mode 100644 RIPS/rip-9998.md diff --git a/RIPS/rip-9998.md b/RIPS/rip-9998.md new file mode 100644 index 0000000..60992af --- /dev/null +++ b/RIPS/rip-9998.md @@ -0,0 +1,305 @@ +--- +eip: 0 +title: Aggregation for Native Account Abstraction +description: Aggregation allows Smart Contract Accounts to share a single signature data between multiple AA transactions. +author: Yoav Weiss (@yoavw), Alex Forshtat (@forshtat), Dror Tirosh (@drortirosh), Shahaf Nacson (@shahafn) +discussions-to: https://www.google.com/ +status: Draft +type: Standards Track +category: Core +created: 2023-09-01 +--- + +## Abstract + +EIP-XXXX defined a native way to achieve Account Abstraction on Ethereum. However, one big limitation remains: +each transaction must carry its own `signature` or other form of validation input in order to be included. + +We propose an extension to the EIP-XXXX to include a validation frame that is shared by multiple transactions. + +This addition follows the design of [ERC-4337](./eip-4337) signature aggregation and will enable Ethereum transactions to natively +support sharing validation inputs for the first time. + +## Motivation + +Using validation schemes that allow signature aggregation enables significant optimisations and savings on +gas for execution and transaction data cost. This is especially relevant in the context of rollups that publish data on +the Ethereum mainnet. + +Another reason to support aggregation for transactions is snark aggregation. +Some signature schemes, such as the ones relying on `secp256r1`, are expensive to verify. +An aggregated zero-knowledge proof that the signatures of a large number of transactions were verified +may be cheaper to verify on-chain than verifying each of them separately. + +## Specification + +### Transaction version AA_TX_TYPE_AGGREGATED_SIG with aggregated signature data + +A new special version of EIP-XXXX Transaction called `AA_TX_TYPE_AGGREGATED_SIG` is introduced to carry +the aggregated signature data: + +``` + +0x04 || 0x01 || rlp([chainId, transactionCount, aggregator, aggregatedSignature, aggregatedSigValidationGasLimit, accessList]) + +``` + +All on-chain computations that take place during the aggregated signature validation happen within the context +of this transaction. + +### Calculation of Transaction Type AA_TX_TYPE_AGGREGATED_SIG hash + +``` + +keccak256(0x04 || 0x01 || rlp(transaction_payload) + +``` + +### Bundles of aggregated transactions + +As aggregated transactions share their signatures, they form a set of transactions that are only valid together and in +a given order. We refer to this set of transactions as "aggregated bundle". + +Upon inclusion in a block, each bundle consists of the single "Aggregator validation transaction" and an arbitrary +number of individual aggregated AA transactions. + +There may be an arbitrary number of bundles in an Ethereum block, using same or different `aggregator` addresses. + +### Aggregator validation transaction + +The aggregator validation transaction must run before any of the transactions authorized by this `aggregator`. + +If the execution of this transaction results in a revert the block is INVALID. + +We define the following Solidity method and the `aggregator` of the transaction is invoked with a corresponding data: + +```solidity + +function validateSignatures(uint256 version, bytes[] aggregatedTransactions, bytes aggregatedSignature) external view; + +``` + +The `aggregatedTransactions` parameter is interpreted as an array of `TransactionType4` structs. + +It contains an array of all transactions within a bundle that are verified by the `aggregator`. +The transactions' individual `signature` parameters are replaced with the `signatureReplacement` as described below. + +The entire amount of gas consumed by this transaction is referred to as `gasUsedByAggregator`. + +### Individual transaction validity + +We define the following Solidity method in the `aggregator` contract defined in the transaction: + +```solidity + +function validateTransactionSignature(uint256 version, bytes transaction) external view returns (bytes signatureReplacement); + +``` + +The `transaction` parameter is interpreted as a `TransactionType4` struct. + +This function is only ever executed in a view mode to the `aggregator` and it reverts if the signature validation fails. +The gas limit of this view-only frame can be set to the block gas limit. + +Individual transactions are validated for the purposes of mempool propagation and block building by running the +validation steps in the following order: + +* `sender` deployment frame (once per account) +* `sender` validation frame (required) +* `paymaster` validation frame (optional) +* `aggregator` individual signature validation frame (required) + +When block builder is running the 'aggregator individual signature validation frame', it MUST use this frame's +return value as `signatureReplacement` and replace the `signature` transaction parameter with `signatureReplacement` +when the transaction is being included in the block. + +This step allows the `aggregator` to provide any necessary context or metadata to the `sender` validation step without +having to provide the entire signature that has been verified by the `aggregator` already. + +### Generating aggregated signatures + +It is the block builder's job to combine an array of transaction signatures into a single aggregated signature. +Not all signature schemes have solidity implementations for aggregation, therefore not all block producers will be able +to include all kinds of aggregated transactions. + +The `aggregator` contract MAY include an implementation for the aggregation by accepting the following view call: + +```solidity + +function aggregateSignatures(uint256 version, bytes transactions) external returns (bytes aggregatedSignature); + +``` + +The `transactions` parameter is interpreted as an array of `TransactionType4` structs. + +This call returns a value used as `aggregatedSignature` elsewhere. Aggregator MUST revert this call if it is unable to +calculate this value. + +Note that the mempool MUST only include aggregated AA transactions for `aggregators` that have an implementation +of `aggregateSignatures` function. + +A block builder MAY calculate this value using any alternative way. +If the aggregator does not implement `aggregateSignatures` function it is up to block builder to add +support for this `aggregator` and its signature scheme. + +### Execution layer validity of a block with aggregated transactions included + +The `validateAccountAbstractionTransaction` function's logic is not modified compared to EIP-XXXX. + +On the execution layer, the block transactions validity conditions are extended as follows: + +``` + +if type(tx) is AccountAbstractionTransaction { + if (tx.version == AA_AGGREGATED_SIG_TX_VERSION){ + aggregatedTxs := collectTransactions(tx.transactionCount) + aggregatedSignature := aggregateSig(aggregatedTxs) + aggregatorInput := ABI.encodeWithSelector('validateSignatures()', aggregatedTxs, aggregatedSignature) + gasUsedByAggregator := evm.Call( + from: AA_ENTRY_POINT, + to: tx.aggreagor, + input: aggregatorInput, + gas: config.aa_aggregated_sig_validation_gas_limit) + else if (tx.version == AA_AGGREGATED_TX_VERSION){ + // NOTE: we subtract the share of aggregated tx signature valdiation gas used from the validation gas limit + tx.validationGasLimit = tx.validationGasLimit - (gasUsedByAggregator / tx.transactionCount) + validateAccountAbstractionTransaction(tx) + } + } +} + +// note: make sure all transactions are accounted for +assert all_type_x_version_1_transactions_validated() + +// note: 'aggregated signature data' transactions do not pay their own gas +// make sure no such transaction is left 'hanging' in a block without paying 'child' transactions +assert all_type_x_version_1_transactions_gas_paid_for() + +``` + +### Passing cost savings to users via gas cost adjustments + +The EIP-XXXX charges the signature validation cost as part of a transaction gas usage. +It also treats transaction `signature` parameter as an arbitrary length byte arrays input. Its cost is calculated in the +same way the transaction `data` cost is calculated for previous transaction types. + +With signature aggregation, however, the individual transactions no longer carry their own signature. They also share +the cost of validating the aggregated signature. + +Therefore, the gas cost of the aggregated validation transaction is evenly divided by the number of transactions it +validates and is added to each aggregated transaction's gas cost. + +This amount of consumed gas counts towards the `validationGasLimit` of the transaction, meaning that each +transaction's validation cost includes `gasUsedByAggregator / transactionCount`. +This value is referred to as `aggregatedValidationGasUsed`. + +### Sender validation frame + +The `AA_TX_TYPE_AGGREGATED_SIG` type transaction includes a parameter `transactionCount`. +This value indicates a number of transactions whose validation has been aggregated. + +For AA transactions marked as "aggregated" by the `AA_TX_TYPE_AGGREGATED_SIG` type transaction, +the validation method `validateTransaction` return value is interpreted as: + +```solidity + +abi.encodePacked(aggregator, MAGIC_VALUE_SENDER, validBefore, validAfter) + +``` + +The block including this transaction is only valid if the `aggregator` address returned by the `validateTransaction` +matches the `aggregator` address specified in the `AA_TX_TYPE_AGGREGATED_SIG` transaction. + +### RPC methods (eth namespace) + +#### `eth_aggregationFeeHistory` + +We propose the RPC method `eth_aggregationFeeHistory` to be created. +This method behaves similarly to `eth_feeHistory` method used to estimate [EIP-1559](./eip-1559.md) gas fees, +but instead provides history of a per-transaction validation costs, +`aggregatedValidationGasUsed` and `builderFee`, for a given aggregator. +The values are calculated as an average across all transactions. + +Value of `null` indicates there was no bundle with the given `aggregator` in the given block. + +Input: `aggregator address`, `block count` + +Returns: + +```json +{ + "oldestBlock": "100000", + "newestBlock": "100003", + "aggregatedValidationGasUsed": [ + "450000", + null, + "400000", + "500000" + ], + "builderFee": [ + "0x2386f26fc10000", + null, + "0x2386f26fc10000", + "0x2386f26fc10000" + ] +} +``` + +#### `eth_estimateGas` + +In case an `aggregator` address is returned by the `validateTransaction` by the `sender`, relies on a +`eth_aggregationFeeHistory` logic in order to calculate sufficient `validationGasLimit` and `builderFee` values. + +Returns `{validationGasLimit, callGasLimit, builderFee}` object. + +#### `eth_getTransactionReceipt` + +Accepts the Transaction Type `AA_TX_TYPE_AGGREGATED_SIG` hash. + +This is a special kind of transaction with `from` field set to the `coinbase` and `to` field set to `aggregator`. + +## Rationale + +### Fixed transaction order in bundle + +The `aggregator` contract maintains control over the number and order of transactions inside the "bundle". +This means that some of the strategies block builders apply in order to extract MEV from a block become +harder to do or even impossible. + +However, allowing the block builder to arbitrarily reorder transactions in the block, mixing aggregated and regular +transactions, would make this EIP impractically complex while the MEV extraction was never an intended feature +in the first place. + +## Backwards Compatibility + +This EIP creates a new distinct version of EIP-XXXX transactions and does not break backwards-compatibility with the +original specification. + +Same paymasters and factories contracts can be used with signature aggregation. +Sender contracts need to opt in to signature aggregation explicitly by providing the `aggregator` address +as a returned data from the `validateTransaction` function. + +## Security Considerations + +### Bundle size determination + +The proposed design leaves the freedom to determine the size of the "bundle" of aggregated AA transactions +to the block builder. However, accounts retain some control over the "bundle" size as well by setting the +`validationGasLimit` parameter, which may affect the minimal size of the bundle that works for this transaction. + +This may create opposing forces where bundlers are occasionally incentivized to split one "bundle" into two +which pays more priority fee in total. This is somewhat mitigated by the `eth_estimateGas` relying on historic averages +to calculate the best possible `validationGasLimit` for the transaction. + +### Malicious aggregators + +The `aggregator` contracts are among te most trusted contracts in the entire ecosystem. +They can authorize transactions on behalf of accounts, and they can invalidate large numbers of transactions with +a simple storage change. + +Both account developers and block builders should be extremely careful with the selectoin of `aggregotor` contracts +that they are willing to support. + +## Copyright + +Copyright and related rights waived via [CC0](../LICENSE.md). From 9dd9b7cd6aa4576a6ac0e4554b967f0aac96d954 Mon Sep 17 00:00:00 2001 From: Alex Forshtat Date: Tue, 19 Mar 2024 22:41:31 +0100 Subject: [PATCH 2/4] Replace 'EIP-XXXX' with 'RIP-7560', some text changes --- RIPS/rip-9998.md | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/RIPS/rip-9998.md b/RIPS/rip-9998.md index 60992af..01a7428 100644 --- a/RIPS/rip-9998.md +++ b/RIPS/rip-9998.md @@ -8,17 +8,18 @@ status: Draft type: Standards Track category: Core created: 2023-09-01 +requires: 7560 --- ## Abstract -EIP-XXXX defined a native way to achieve Account Abstraction on Ethereum. However, one big limitation remains: +RIP-7560 defined a native way to achieve Account Abstraction on Ethereum. However, one big limitation remains: each transaction must carry its own `signature` or other form of validation input in order to be included. -We propose an extension to the EIP-XXXX to include a validation frame that is shared by multiple transactions. +We propose an extension to the RIP-7560 that introduces a validation frame that is shared by multiple transactions. -This addition follows the design of [ERC-4337](./eip-4337) signature aggregation and will enable Ethereum transactions to natively -support sharing validation inputs for the first time. +This addition follows the design of [ERC-4337](./eip-4337) signature aggregation and will enable +Ethereum transactions to natively support sharing validation inputs for the first time. ## Motivation @@ -35,7 +36,7 @@ may be cheaper to verify on-chain than verifying each of them separately. ### Transaction version AA_TX_TYPE_AGGREGATED_SIG with aggregated signature data -A new special version of EIP-XXXX Transaction called `AA_TX_TYPE_AGGREGATED_SIG` is introduced to carry +A new special version of RIP-7560 Transaction called `AA_TX_TYPE_AGGREGATED_SIG` is introduced to carry the aggregated signature data: ``` @@ -144,7 +145,7 @@ support for this `aggregator` and its signature scheme. ### Execution layer validity of a block with aggregated transactions included -The `validateAccountAbstractionTransaction` function's logic is not modified compared to EIP-XXXX. +The `validateAccountAbstractionTransaction` function's logic is not modified compared to RIP-7560. On the execution layer, the block transactions validity conditions are extended as follows: @@ -179,7 +180,7 @@ assert all_type_x_version_1_transactions_gas_paid_for() ### Passing cost savings to users via gas cost adjustments -The EIP-XXXX charges the signature validation cost as part of a transaction gas usage. +The RIP-7560 charges the signature validation cost as part of a transaction gas usage. It also treats transaction `signature` parameter as an arbitrary length byte arrays input. Its cost is calculated in the same way the transaction `data` cost is calculated for previous transaction types. @@ -267,12 +268,12 @@ This means that some of the strategies block builders apply in order to extract harder to do or even impossible. However, allowing the block builder to arbitrarily reorder transactions in the block, mixing aggregated and regular -transactions, would make this EIP impractically complex while the MEV extraction was never an intended feature +transactions, would make this RIP impractically complex while the MEV extraction was never an intended feature in the first place. ## Backwards Compatibility -This EIP creates a new distinct version of EIP-XXXX transactions and does not break backwards-compatibility with the +This EIP creates a new distinct version of RIP-7560 transactions and does not break backwards-compatibility with the original specification. Same paymasters and factories contracts can be used with signature aggregation. @@ -297,7 +298,7 @@ The `aggregator` contracts are among te most trusted contracts in the entire eco They can authorize transactions on behalf of accounts, and they can invalidate large numbers of transactions with a simple storage change. -Both account developers and block builders should be extremely careful with the selectoin of `aggregotor` contracts +Both account developers and block builders should be extremely careful with the selection of `aggregotor` contracts that they are willing to support. ## Copyright From 101c2fe1aa1d078a6e9b6c884867b30c1b6337cf Mon Sep 17 00:00:00 2001 From: Alex Forshtat Date: Tue, 9 Apr 2024 23:51:38 +0200 Subject: [PATCH 3/4] Update RIPS/rip-9998.md Co-authored-by: Yoav Weiss --- RIPS/rip-9998.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RIPS/rip-9998.md b/RIPS/rip-9998.md index 01a7428..824b87a 100644 --- a/RIPS/rip-9998.md +++ b/RIPS/rip-9998.md @@ -298,7 +298,7 @@ The `aggregator` contracts are among te most trusted contracts in the entire eco They can authorize transactions on behalf of accounts, and they can invalidate large numbers of transactions with a simple storage change. -Both account developers and block builders should be extremely careful with the selection of `aggregotor` contracts +Both account developers and block builders should be extremely careful with the selection of `aggregator` contracts that they are willing to support. ## Copyright From 717b1376cb13fd433398e623f62eda88f96bacd3 Mon Sep 17 00:00:00 2001 From: Alex Forshtat Date: Fri, 3 May 2024 19:32:12 +0200 Subject: [PATCH 4/4] Added the illustration of a block; moved aggreation tx to end of validation --- RIPS/rip-9998.md | 8 +++++++- assets/rip-9998/block_overview.png | Bin 0 -> 63452 bytes 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 assets/rip-9998/block_overview.png diff --git a/RIPS/rip-9998.md b/RIPS/rip-9998.md index 824b87a..34aff31 100644 --- a/RIPS/rip-9998.md +++ b/RIPS/rip-9998.md @@ -68,7 +68,8 @@ There may be an arbitrary number of bundles in an Ethereum block, using same or ### Aggregator validation transaction -The aggregator validation transaction must run before any of the transactions authorized by this `aggregator`. +The aggregator validation transaction must run after all validations of the `AA_TX_TYPE` transactions +that are authorized by this `aggregator`, but before these transactions' execution. If the execution of this transaction results in a revert the block is INVALID. @@ -87,6 +88,11 @@ The transactions' individual `signature` parameters are replaced with the `signa The entire amount of gas consumed by this transaction is referred to as `gasUsedByAggregator`. + +![](../assets/rip-9998/block_overview.png) +*The structure of a block containing multiple Native Account Abstraction Transactions with an Aggregator* + + ### Individual transaction validity We define the following Solidity method in the `aggregator` contract defined in the transaction: diff --git a/assets/rip-9998/block_overview.png b/assets/rip-9998/block_overview.png new file mode 100644 index 0000000000000000000000000000000000000000..fda28abf27e49821a538096e58f2789f6d077ac9 GIT binary patch literal 63452 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 literal 0 HcmV?d00001