From 73693b2e51b9ba532a0b0c34cc6a928593683903 Mon Sep 17 00:00:00 2001 From: kopy-kat Date: Mon, 14 Aug 2023 17:43:39 +0100 Subject: [PATCH 01/16] Add EIP: Registry Adapters for Smart Accounts --- EIPS/eip-draft_registry_adapters.md | 238 ++++++++++++++++++++ assets/eip-draft_registry_adapters/flow.png | Bin 0 -> 153902 bytes 2 files changed, 238 insertions(+) create mode 100644 EIPS/eip-draft_registry_adapters.md create mode 100644 assets/eip-draft_registry_adapters/flow.png diff --git a/EIPS/eip-draft_registry_adapters.md b/EIPS/eip-draft_registry_adapters.md new file mode 100644 index 00000000000000..ad41491db9bf49 --- /dev/null +++ b/EIPS/eip-draft_registry_adapters.md @@ -0,0 +1,238 @@ +--- +title: Registry Adapters for Smart Accounts +description: Adapters that allow modular smart contract accounts to verify the security of modules using a module registry +author: Konrad Kopp (@kopy-kat), zeroknots (@zeroknots) +discussions-to: +status: Draft +type: Standards Track +category: ERC +created: 2023-08-14 +requires: 4337 +--- + +## Abstract + +This proposal standardises a registry adapter for modular smart contract accounts. This adapter allows the account to query and verify security attestations about a module through an attestation registry. The adapter is responsible for querying the registry and correctly handling the return values. + +## Motivation + +[ERC-4337](./eip-4337.md) standardises the execution flow of contract accounts and [ERC-6900](./eip-6900.md) aims to standardise the modular implementation of these accounts, allowing any developer to build modules for these modular accounts (hereafter smart accounts). However, adding third-party modules into smart accounts unchecked opens up a wide range of attack vectors on these accounts. + +A proposed solution to these security considerations is a permission framework that allows module developers to define the permissions that their modules require. The counterpiece of these permissions are attestations that assert statements about the security of modules and can be queried onchain. + +This proposal is independent of the exact implementation of the permissioning system and could even be used across different kinds of permissioning systems. Instead, the goal of this proposal is to outline a standard, but flexible, way to create onchain attestations and standardise how these attestations are queried by the smart account during module installation or execution. + +## Specification + +The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 and RFC 8174. + +### Definitions + +- **Smart account** - An ERC-4337 compliant smart contract account that has a modular architecture. +- **Module** - Self-contained smart account functionality. +- **Attestation** - Onchain assertions made about the security of a module. +- **Registry** - An onchain list of attestations about modules. +- **Adapter** - Smart account functionality that handles the fetching and validation of attestations from the registry. +- **Attester** - An entity that makes an attestation about a module. + +### Overview + +![Adapter flow](../assets/eip-draft_registry_adapters/flow.png) + +An Adapter is a piece of functionality that allows smart accounts to query the module registry before using a module. In order to be compatible with this proposal, a smart account MUST implement the adapter either natively in the account or as a default module that is installed during account deployment. + +The adapter: + +- MUST query the registry at least once before calling a module for the first time. +- MUST use one of the functions on the IRegistry interface when querying the registry. +- Is RECOMMENDED to query the registry before module installation. +- MAY query the registry before module execution. + +### Interfaces + +#### IRegistry.sol + +##### `check` + +Checks the attestation of a given module address and attestations made by a single attester. + +Returns two timestamps. `listedAt` is a `uint48` timestamp of when the attestation was made. +The second return parameter `revokedAt` is a `uint48` timestamp of when an attestation was revoked. + +**NOTE**: + +- `listedAt` of 0 MUST be treated as a security risk. +- `revokedAt` of non-0 MUST be treated as a security risk. + +```solidity +function check( + address module, + address attester + ) + public + view + returns (uint48 listedAt, uint48 revokedAt); +``` + +##### `verify` + +Verifies the attestations of a given module and multiple attesters. Additionally a threshold can be provided. + +Returns a boolean value `verified` if threshold `>=` the number of attesters that attested to this module without revoking the attestation. + +_EXAMPLE_: If threshold of 2 is set and 5 attesters are queried, the function will return `true` if 2 or more of the selected attesters have issued an attestation that has not been revoked. + +**NOTE**: + +- `verified` of false MUST be treated as a security risk. + +```solidity +function verify( + address module, + address[] memory attesters, + uint256 threshold + ) + external + view + returns (bool verified); +``` + +### Additional registries + +The reference implementation registry below is designed to be a singleton that is a public good, maximally flexible and gas efficient (see `Rationale`). While it is NOT RECOMMENDED to use a custom registry, there might still exist cases in which the benefits of creating a custom registry outweigh the downsides. In this case, the registry MUST implement the interface above in order to be compatible with adapters. Further, it is RECOMMENDED that an alternate registry also exposes a function that allows an adapter to read the entire data of the attestation (see `findAttestation` in `Reference Implementation`). + +## Rationale + +### Attestations + +Attestations are onchain assertions made about a module. These assertions could pertain to the security of a module (similar to a regular smart contract audit), whether a module adheres to a certain standard or any other kinds of statements about these modules. While some of these assertions can feasibly be verified onchain, the majority of them cannot be. + +One example of this would be determining what storage slots a specific module can write to, which might be useful if a smart account uses DELEGATECALL to invoke the module. This assertion is practically infeasible to verify onchain, but can easily be verified off-chain. Thus, an attester could perform this check off-chain and publish an attestation onchain that attests to the fact that a given module can only write to its designated storage slots. + +While attestations are always certain kinds of assertions made about a module, this proposal purposefully allows the attestation data to be any kind of data, packed into a `bytes` object (see `Reference Implementation`). This ensures that any kind of data can be used as an assertion, from a simple boolean flag specifying that a module is secure to a complex proof of runtime module behaviour. + +### Registry + +In order for attestations to be queryable onchain, they need to be stored in some sort of list in a smart contract. This proposal includes the reference implementation of a singleton registry that functions as the source of truth for attestations. This proposed registry is a public good that is permissionless, ownerless and immutable. + +The reasons for proposing a singleton registry are the following: + +**Security**: A singleton registry creates greater security by focusing account integrations into a single source of truth where a maximum number of security entities are attesting. This has a number of benefits: a) it increases the maximum potential quantity and type of attestations per module and b) removes the need for accounts to verify the authenticity and security of different registries, focusing trust delegation to the onchain entities making attestations. The result is that accounts are able to query multiple attesters with lower gas overhead in order to increase security guarantees and there is no additional work required by accounts to verify the security of different registries. + +**Interoperability**: A singleton registry not only creates a greater level of “attestation liquidity”, but it also increases module liquidity and ensures a greater level of module interoperability. Developers need only deploy their module to one place to receive attestations and maximise module distribution to all integrated accounts. Attesters can also benefit from previous auditing work by chaining attestations and deriving ongoing security from these chains of dependencies. This allows for benefits such as traversing through the history of attestations or version control by the developer. + +However, there are obviously tradeoffs for using a singleton. A singleton registry creates a single point of failure that, if exploited, could lead to serious consequences for smart accounts. The most serious attack vector of these would be the ability for an attacker to attest to a malicious module on behalf of a trusted attester. One tradeoff here is that using multiple registries, changes in security attestations (for example a vulnerability is found and an attestation is revoked) are slower to propagate across the ecosystem, giving attackers an opportunity to exploit vulnerabilities for longer or even find and exploit them after seeing an issue pointed out in a specific registry but not in others. + +Due to being a singleton, the registry needs to be very flexible and thus likely less computationally efficient in comparison to a narrow, optimised registry. This means that querying a singleton registry is likely to be more computationally (and by extension gas) intensive than querying a more narrow registry. The tradeoff here is that a singleton makes it cheaper to query attestations from multiple parties simultaneously. So, depending on the registry architectures, there is an amount of attestations to query (N) after which using a flexible singleton is actually computationally cheaper than querying N narrow registries. However, the reference implementation has also been designed with gas usage in mind and it is unlikely that specialised registries will be able to significantly decrease gas beyond the reference implementations benchmarks. + +### Adapter + +In order for smart accounts to increase security guarantees when adding modules, they must be able to securely query the module registry and handle the return data correctly. In order to achieve this, this proposal aims to provide a standardised interface that may be implemented by smart accounts irrespective of their architecture, execution flows and security assumptions. + +### Related work + +The reference implementation of the registry is heavily inspired by the Ethereum Attestation Service. The specific use-case of this proposal, however, required some custom modifications and additions to EAS, meaning that using the existing EAS contracts as the module registry was sub-optimal. + +## Backwards Compatibility + +No backward compatibility issues found. + +## Reference Implementation + +### IAttestation.sol + +```solidity +/** + * @dev A struct representing the arguments of the attestation request. + */ +struct AttestationRequestData { + address subject; // The module that is the subject of the attestation. + uint48 expirationTime; // The time when the attestation expires (Unix timestamp). + bool revocable; // Whether the attestation is revocable. + bool propagateable; // Whether the attestation is propagateable to L2s. + bytes32 refUID; // The UID of the related attestation. + bytes data; // Custom attestation data. + uint256 value; // An explicit ETH amount to send to the resolver. This is important to prevent accidental user errors. +} + +/** + * @dev A struct representing the full arguments of the attestation request. + */ +struct AttestationRequest { + bytes32 schema; // The unique identifier of the schema. + AttestationRequestData data; // The arguments of the attestation request. +} + +/** + * @dev A struct representing a record for a submitted schema. + * Inspired by schema definitions of EAS (Ethereum Attestation Service) + */ +struct SchemaRecord { + bytes32 uid; // The unique identifier of the schema. + ISchemaResolver resolver; // Optional schema resolver. + bool revocable; // Whether the schema allows revocations explicitly. + string schema; // Custom specification of the schema (e.g., an ABI). + address schemaOwner; // The address of the account used to register the schema. + address[] bridges; // bridges that must be used for L2 propagation +} +``` + +### Adapter.sol + +```solidity +contract Adapter { + IRegistry registry; + + function checkModule(address module, address trustedAttester) internal { + // check module implementation address on registry + (uint48 listedAt, uint48 flaggedAt) = registry.check(module, trustedAttester); + + // revert if module was ever flagged or was never attested to + require(listedAt != 0 && flaggedAt == 0, "Module is insecure"); + } + + function verifyModule(address module, address[] memory attesters, uint256 threshold) internal { + // check module implementation address on registry + bool verified = registry.verify(module, attesters, threshold); + + // revert if module is not verified by enough attesters + require(verified, "Module is insecure"); + } +} +``` + +### Account.sol + +**Note**: This is a specific example that complies to the `Specification` above, but this implementation is not binding. + +```solidity +contract Account is Adapter { + ... + + // installs a module + function installModule(address module, address trustedAttester) public { + checkModule(module, trustedAttester); + ... + } + + // executes a module + function executeTransactionFromModule(address module, address[] memory attesters, uint256 threshold) public { + verifyModule(module, attesters, threshold); + ... + } + + ... +} +``` + +### Registry + +See `https://github.com/rhinestonewtf/registry/` + +## Security Considerations + +Needs discussion. + +## Copyright + +Copyright and related rights waived via [CC0](../LICENSE.md). diff --git a/assets/eip-draft_registry_adapters/flow.png b/assets/eip-draft_registry_adapters/flow.png new file mode 100644 index 0000000000000000000000000000000000000000..02eec630475695844a6b5a89d61b79237f13f005 GIT binary patch literal 153902 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

@XlaU@-KS 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 W;?#tMuOZ7BfWXt$&t;ucLK6VD3Zw!6 literal 0 HcmV?d00001 From 7c9e58c6ee55e37679c26ffb6ba054f033df1c0e Mon Sep 17 00:00:00 2001 From: kopy-kat Date: Mon, 14 Aug 2023 18:02:34 +0100 Subject: [PATCH 02/16] Add eip field and update discussions-to --- EIPS/eip-draft_registry_adapters.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/EIPS/eip-draft_registry_adapters.md b/EIPS/eip-draft_registry_adapters.md index ad41491db9bf49..890c0c37a0825d 100644 --- a/EIPS/eip-draft_registry_adapters.md +++ b/EIPS/eip-draft_registry_adapters.md @@ -1,8 +1,9 @@ --- +eip: 7484 title: Registry Adapters for Smart Accounts description: Adapters that allow modular smart contract accounts to verify the security of modules using a module registry author: Konrad Kopp (@kopy-kat), zeroknots (@zeroknots) -discussions-to: +discussions-to: https://ethereum-magicians.org/t/erc-7484-registry-adapters-for-smart-accounts/15434 status: Draft type: Standards Track category: ERC From 2af686969837c23aaf11b25d2dc90e47a3241daa Mon Sep 17 00:00:00 2001 From: kopy-kat Date: Mon, 14 Aug 2023 18:16:56 +0100 Subject: [PATCH 03/16] change filenames --- .../{eip-draft_registry_adapters.md => eip-7484.md} | 2 +- .../flow.png | Bin 2 files changed, 1 insertion(+), 1 deletion(-) rename EIPS/{eip-draft_registry_adapters.md => eip-7484.md} (99%) rename assets/{eip-draft_registry_adapters => eip-7484}/flow.png (100%) diff --git a/EIPS/eip-draft_registry_adapters.md b/EIPS/eip-7484.md similarity index 99% rename from EIPS/eip-draft_registry_adapters.md rename to EIPS/eip-7484.md index 890c0c37a0825d..87830766dc98d3 100644 --- a/EIPS/eip-draft_registry_adapters.md +++ b/EIPS/eip-7484.md @@ -38,7 +38,7 @@ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "S ### Overview -![Adapter flow](../assets/eip-draft_registry_adapters/flow.png) +![Adapter flow](../assets/eip-7484/flow.png) An Adapter is a piece of functionality that allows smart accounts to query the module registry before using a module. In order to be compatible with this proposal, a smart account MUST implement the adapter either natively in the account or as a default module that is installed during account deployment. diff --git a/assets/eip-draft_registry_adapters/flow.png b/assets/eip-7484/flow.png similarity index 100% rename from assets/eip-draft_registry_adapters/flow.png rename to assets/eip-7484/flow.png From 919c66738a79ddebd5a5bc0852e72d1ae564afeb Mon Sep 17 00:00:00 2001 From: zeroknots Date: Wed, 16 Aug 2023 08:53:34 +0700 Subject: [PATCH 04/16] added sequence diagram to check function --- EIPS/eip-7484.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/EIPS/eip-7484.md b/EIPS/eip-7484.md index 87830766dc98d3..c361a9ab2dca8f 100644 --- a/EIPS/eip-7484.md +++ b/EIPS/eip-7484.md @@ -57,6 +57,9 @@ The adapter: Checks the attestation of a given module address and attestations made by a single attester. + +![Sequence Diagram](../assets/eip-7484/check-sequence.jpg) + Returns two timestamps. `listedAt` is a `uint48` timestamp of when the attestation was made. The second return parameter `revokedAt` is a `uint48` timestamp of when an attestation was revoked. From b27609f6275a3f3ece7053ce2b124e8957213c1f Mon Sep 17 00:00:00 2001 From: zeroknots Date: Wed, 16 Aug 2023 08:53:55 +0700 Subject: [PATCH 05/16] added spec that check function MUST revert --- EIPS/eip-7484.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/EIPS/eip-7484.md b/EIPS/eip-7484.md index c361a9ab2dca8f..3d450b1ef52f2a 100644 --- a/EIPS/eip-7484.md +++ b/EIPS/eip-7484.md @@ -63,6 +63,9 @@ Checks the attestation of a given module address and attestations made by a sing Returns two timestamps. `listedAt` is a `uint48` timestamp of when the attestation was made. The second return parameter `revokedAt` is a `uint48` timestamp of when an attestation was revoked. +The `check()` function implemented in the Registry MUST revert if `listedAt` is 0. +The `check()` function implemented in the Registry MUST revert if `revokedAt` is not 0. + **NOTE**: - `listedAt` of 0 MUST be treated as a security risk. From 709c4b463eb5250b42b9ca29552a458a3385eeda Mon Sep 17 00:00:00 2001 From: zeroknots Date: Wed, 16 Aug 2023 08:54:30 +0700 Subject: [PATCH 06/16] added explanation why this ERC favours uint48 timestamps --- EIPS/eip-7484.md | 1 + 1 file changed, 1 insertion(+) diff --git a/EIPS/eip-7484.md b/EIPS/eip-7484.md index 3d450b1ef52f2a..828e27204c0810 100644 --- a/EIPS/eip-7484.md +++ b/EIPS/eip-7484.md @@ -70,6 +70,7 @@ The `check()` function implemented in the Registry MUST revert if `revokedAt` is - `listedAt` of 0 MUST be treated as a security risk. - `revokedAt` of non-0 MUST be treated as a security risk. +- Timestamps in solidity are natively `uint256`, but storing the attestation timestamp in `uint48` allows for gas savings (packed) while still supporting sufficient timestamps. ```solidity function check( From d394451025570ecbd0601a5ffc8f521b8186176b Mon Sep 17 00:00:00 2001 From: zeroknots Date: Wed, 16 Aug 2023 08:54:54 +0700 Subject: [PATCH 07/16] deleted AttestationRequest and SchemaRecord as its out of scope for this registry --- EIPS/eip-7484.md | 38 -------------------------------------- 1 file changed, 38 deletions(-) diff --git a/EIPS/eip-7484.md b/EIPS/eip-7484.md index 828e27204c0810..ff7f1e5deeedcb 100644 --- a/EIPS/eip-7484.md +++ b/EIPS/eip-7484.md @@ -147,44 +147,6 @@ No backward compatibility issues found. ## Reference Implementation -### IAttestation.sol - -```solidity -/** - * @dev A struct representing the arguments of the attestation request. - */ -struct AttestationRequestData { - address subject; // The module that is the subject of the attestation. - uint48 expirationTime; // The time when the attestation expires (Unix timestamp). - bool revocable; // Whether the attestation is revocable. - bool propagateable; // Whether the attestation is propagateable to L2s. - bytes32 refUID; // The UID of the related attestation. - bytes data; // Custom attestation data. - uint256 value; // An explicit ETH amount to send to the resolver. This is important to prevent accidental user errors. -} - -/** - * @dev A struct representing the full arguments of the attestation request. - */ -struct AttestationRequest { - bytes32 schema; // The unique identifier of the schema. - AttestationRequestData data; // The arguments of the attestation request. -} - -/** - * @dev A struct representing a record for a submitted schema. - * Inspired by schema definitions of EAS (Ethereum Attestation Service) - */ -struct SchemaRecord { - bytes32 uid; // The unique identifier of the schema. - ISchemaResolver resolver; // Optional schema resolver. - bool revocable; // Whether the schema allows revocations explicitly. - string schema; // Custom specification of the schema (e.g., an ABI). - address schemaOwner; // The address of the account used to register the schema. - address[] bridges; // bridges that must be used for L2 propagation -} -``` - ### Adapter.sol ```solidity From 2a336f18cef06f2db10be7a3e436e332aae9c5d7 Mon Sep 17 00:00:00 2001 From: zeroknots Date: Wed, 16 Aug 2023 08:55:13 +0700 Subject: [PATCH 08/16] new file: JPG of check sequence diagram --- assets/eip-7484/check-sequence.jpg | Bin 0 -> 87130 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 assets/eip-7484/check-sequence.jpg diff --git a/assets/eip-7484/check-sequence.jpg b/assets/eip-7484/check-sequence.jpg new file mode 100644 index 0000000000000000000000000000000000000000..061257992d8f6fce1aefbd63872ecf3c1c37ebc5 GIT binary patch literal 87130 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

ByAo8q7y8fHl%B5)r#h7IId)$Xe>kUQJ6?& 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 ms<)2U6$0gDCi64bw~YAW#0@M Date: Wed, 16 Aug 2023 14:13:51 +0100 Subject: [PATCH 09/16] refactor check and verify in specification and implement remaining feedback --- EIPS/eip-7484.md | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/EIPS/eip-7484.md b/EIPS/eip-7484.md index ff7f1e5deeedcb..340874b7566760 100644 --- a/EIPS/eip-7484.md +++ b/EIPS/eip-7484.md @@ -38,7 +38,7 @@ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "S ### Overview -![Adapter flow](../assets/eip-7484/flow.png) +![Adapter flow using check()](../assets/eip-7484/check-sequence.jpg) An Adapter is a piece of functionality that allows smart accounts to query the module registry before using a module. In order to be compatible with this proposal, a smart account MUST implement the adapter either natively in the account or as a default module that is installed during account deployment. @@ -47,7 +47,7 @@ The adapter: - MUST query the registry at least once before calling a module for the first time. - MUST use one of the functions on the IRegistry interface when querying the registry. - Is RECOMMENDED to query the registry before module installation. -- MAY query the registry before module execution. +- Is RECOMMENDED to query the registry before module execution. ### Interfaces @@ -57,20 +57,17 @@ The adapter: Checks the attestation of a given module address and attestations made by a single attester. +Returns two timestamps: `listedAt` is a `uint48` timestamp of when the attestation was made and `revokedAt` is a `uint48` timestamp of when an attestation was revoked. -![Sequence Diagram](../assets/eip-7484/check-sequence.jpg) - -Returns two timestamps. `listedAt` is a `uint48` timestamp of when the attestation was made. -The second return parameter `revokedAt` is a `uint48` timestamp of when an attestation was revoked. +**NOTE**: -The `check()` function implemented in the Registry MUST revert if `listedAt` is 0. -The `check()` function implemented in the Registry MUST revert if `revokedAt` is not 0. +- The Registry MUST revert if `listedAt` is 0 (this means that a queried attester has not made an attestation on the queried module). +- The Registry MUST revert if `revokedAt` is not 0. +- The Adapter MUST treat the registry reverting as a security risk and is RECOMMENDED to revert the transaction. -**NOTE**: +Additionally: -- `listedAt` of 0 MUST be treated as a security risk. -- `revokedAt` of non-0 MUST be treated as a security risk. -- Timestamps in solidity are natively `uint256`, but storing the attestation timestamp in `uint48` allows for gas savings (packed) while still supporting sufficient timestamps. +- The Registry MUST ensure that `revokedAt` can only be changed from 0 to a value greater than 0, but not the other way around. ```solidity function check( @@ -82,17 +79,20 @@ function check( returns (uint48 listedAt, uint48 revokedAt); ``` +Note: Timestamps in solidity are natively `uint256`, but storing the attestation timestamp in `uint48` allows for gas savings (by packing variables) while still supporting sufficiently long timestamps. + ##### `verify` -Verifies the attestations of a given module and multiple attesters. Additionally a threshold can be provided. +Verifies the attestations of a given module and multiple attesters. Additionally a `threshold` can be provided. -Returns a boolean value `verified` if threshold `>=` the number of attesters that attested to this module without revoking the attestation. +Returns if `threshold` `>=` the number of attesters that attested to this module without revoking the attestation (`N`) and reverts otherwise. -_EXAMPLE_: If threshold of 2 is set and 5 attesters are queried, the function will return `true` if 2 or more of the selected attesters have issued an attestation that has not been revoked. +_EXAMPLE_: If a `threshold` of 2 is set and 5 attesters are queried, the function will return if `N` is greater than or equal 2. If `N` is 1, the function will revert. **NOTE**: -- `verified` of false MUST be treated as a security risk. +- The Registry MUST revert if `theshold < N`. +- The Adapter MUST treat the registry reverting as a security risk and is RECOMMENDED to revert the transaction. ```solidity function verify( @@ -102,7 +102,7 @@ function verify( ) external view - returns (bool verified); + returns; ``` ### Additional registries From 00d63e84fb6d099b62a684142cdf8c85ab3117a9 Mon Sep 17 00:00:00 2001 From: kopy-kat Date: Thu, 17 Aug 2023 13:54:31 +0100 Subject: [PATCH 10/16] standardise capitalisation and remove unused asset --- EIPS/eip-7484.md | 40 +++++++++++++++++++-------------------- assets/eip-7484/flow.png | Bin 153902 -> 0 bytes 2 files changed, 20 insertions(+), 20 deletions(-) delete mode 100644 assets/eip-7484/flow.png diff --git a/EIPS/eip-7484.md b/EIPS/eip-7484.md index 340874b7566760..2041199f1fc02b 100644 --- a/EIPS/eip-7484.md +++ b/EIPS/eip-7484.md @@ -1,7 +1,7 @@ --- eip: 7484 title: Registry Adapters for Smart Accounts -description: Adapters that allow modular smart contract accounts to verify the security of modules using a module registry +description: Adapters that allow modular smart contract accounts to verify the security of modules using a Module Registry author: Konrad Kopp (@kopy-kat), zeroknots (@zeroknots) discussions-to: https://ethereum-magicians.org/t/erc-7484-registry-adapters-for-smart-accounts/15434 status: Draft @@ -13,7 +13,7 @@ requires: 4337 ## Abstract -This proposal standardises a registry adapter for modular smart contract accounts. This adapter allows the account to query and verify security attestations about a module through an attestation registry. The adapter is responsible for querying the registry and correctly handling the return values. +This proposal standardises a Registry Adapter for modular smart contract accounts. This Adapter allows the account to query and verify security attestations about a module through an Attestation Registry. The adapter is responsible for querying the registry and correctly handling the return values. ## Motivation @@ -33,21 +33,21 @@ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "S - **Module** - Self-contained smart account functionality. - **Attestation** - Onchain assertions made about the security of a module. - **Registry** - An onchain list of attestations about modules. -- **Adapter** - Smart account functionality that handles the fetching and validation of attestations from the registry. +- **Adapter** - Smart account functionality that handles the fetching and validation of attestations from the Registry. - **Attester** - An entity that makes an attestation about a module. ### Overview ![Adapter flow using check()](../assets/eip-7484/check-sequence.jpg) -An Adapter is a piece of functionality that allows smart accounts to query the module registry before using a module. In order to be compatible with this proposal, a smart account MUST implement the adapter either natively in the account or as a default module that is installed during account deployment. +An Adapter is a piece of functionality that allows smart accounts to query the Module Registry before using a module. In order to be compatible with this proposal, a smart account MUST implement the adapter either natively in the account or as a default module that is installed during account deployment. -The adapter: +The Adapter: -- MUST query the registry at least once before calling a module for the first time. -- MUST use one of the functions on the IRegistry interface when querying the registry. -- Is RECOMMENDED to query the registry before module installation. -- Is RECOMMENDED to query the registry before module execution. +- MUST query the Registry at least once before calling a module for the first time. +- MUST use one of the functions on the IRegistry interface when querying the Registry. +- Is RECOMMENDED to query the Registry before module installation. +- Is RECOMMENDED to query the Registry before module execution. ### Interfaces @@ -63,7 +63,7 @@ Returns two timestamps: `listedAt` is a `uint48` timestamp of when the attestati - The Registry MUST revert if `listedAt` is 0 (this means that a queried attester has not made an attestation on the queried module). - The Registry MUST revert if `revokedAt` is not 0. -- The Adapter MUST treat the registry reverting as a security risk and is RECOMMENDED to revert the transaction. +- The Adapter MUST treat the Registry reverting as a security risk and is RECOMMENDED to revert the transaction. Additionally: @@ -92,7 +92,7 @@ _EXAMPLE_: If a `threshold` of 2 is set and 5 attesters are queried, the functio **NOTE**: - The Registry MUST revert if `theshold < N`. -- The Adapter MUST treat the registry reverting as a security risk and is RECOMMENDED to revert the transaction. +- The Adapter MUST treat the Registry reverting as a security risk and is RECOMMENDED to revert the transaction. ```solidity function verify( @@ -107,7 +107,7 @@ function verify( ### Additional registries -The reference implementation registry below is designed to be a singleton that is a public good, maximally flexible and gas efficient (see `Rationale`). While it is NOT RECOMMENDED to use a custom registry, there might still exist cases in which the benefits of creating a custom registry outweigh the downsides. In this case, the registry MUST implement the interface above in order to be compatible with adapters. Further, it is RECOMMENDED that an alternate registry also exposes a function that allows an adapter to read the entire data of the attestation (see `findAttestation` in `Reference Implementation`). +The Reference Implementation Registry below is designed to be a singleton that is a public good, maximally flexible and gas efficient (see `Rationale`). While it is NOT RECOMMENDED to use a custom Registry, there might still exist cases in which the benefits of creating a custom Registry outweigh the downsides. In this case, the Registry MUST implement the interface above in order to be compatible with Adapters. Further, it is RECOMMENDED that an alternate Registry also exposes a function that allows an Adapter to read the entire data of the attestation (see `findAttestation` in `Reference Implementation`). ## Rationale @@ -121,25 +121,25 @@ While attestations are always certain kinds of assertions made about a module, t ### Registry -In order for attestations to be queryable onchain, they need to be stored in some sort of list in a smart contract. This proposal includes the reference implementation of a singleton registry that functions as the source of truth for attestations. This proposed registry is a public good that is permissionless, ownerless and immutable. +In order for attestations to be queryable onchain, they need to be stored in some sort of list in a smart contract. This proposal includes the reference implementation of a Singleton Registry that functions as the source of truth for attestations. This proposed Registry is a public good that is permissionless, ownerless and immutable. -The reasons for proposing a singleton registry are the following: +The reasons for proposing a Singleton Registry are the following: -**Security**: A singleton registry creates greater security by focusing account integrations into a single source of truth where a maximum number of security entities are attesting. This has a number of benefits: a) it increases the maximum potential quantity and type of attestations per module and b) removes the need for accounts to verify the authenticity and security of different registries, focusing trust delegation to the onchain entities making attestations. The result is that accounts are able to query multiple attesters with lower gas overhead in order to increase security guarantees and there is no additional work required by accounts to verify the security of different registries. +**Security**: A Singleton Registry creates greater security by focusing account integrations into a single source of truth where a maximum number of security entities are attesting. This has a number of benefits: a) it increases the maximum potential quantity and type of attestations per module and b) removes the need for accounts to verify the authenticity and security of different registries, focusing trust delegation to the onchain entities making attestations. The result is that accounts are able to query multiple attesters with lower gas overhead in order to increase security guarantees and there is no additional work required by accounts to verify the security of different registries. -**Interoperability**: A singleton registry not only creates a greater level of “attestation liquidity”, but it also increases module liquidity and ensures a greater level of module interoperability. Developers need only deploy their module to one place to receive attestations and maximise module distribution to all integrated accounts. Attesters can also benefit from previous auditing work by chaining attestations and deriving ongoing security from these chains of dependencies. This allows for benefits such as traversing through the history of attestations or version control by the developer. +**Interoperability**: A Singleton Registry not only creates a greater level of “attestation liquidity”, but it also increases module liquidity and ensures a greater level of module interoperability. Developers need only deploy their module to one place to receive attestations and maximise module distribution to all integrated accounts. Attesters can also benefit from previous auditing work by chaining attestations and deriving ongoing security from these chains of dependencies. This allows for benefits such as traversing through the history of attestations or version control by the developer. -However, there are obviously tradeoffs for using a singleton. A singleton registry creates a single point of failure that, if exploited, could lead to serious consequences for smart accounts. The most serious attack vector of these would be the ability for an attacker to attest to a malicious module on behalf of a trusted attester. One tradeoff here is that using multiple registries, changes in security attestations (for example a vulnerability is found and an attestation is revoked) are slower to propagate across the ecosystem, giving attackers an opportunity to exploit vulnerabilities for longer or even find and exploit them after seeing an issue pointed out in a specific registry but not in others. +However, there are obviously tradeoffs for using a singleton. A Singleton Registry creates a single point of failure that, if exploited, could lead to serious consequences for smart accounts. The most serious attack vector of these would be the ability for an attacker to attest to a malicious module on behalf of a trusted attester. One tradeoff here is that using multiple registries, changes in security attestations (for example a vulnerability is found and an attestation is revoked) are slower to propagate across the ecosystem, giving attackers an opportunity to exploit vulnerabilities for longer or even find and exploit them after seeing an issue pointed out in a specific Registry but not in others. -Due to being a singleton, the registry needs to be very flexible and thus likely less computationally efficient in comparison to a narrow, optimised registry. This means that querying a singleton registry is likely to be more computationally (and by extension gas) intensive than querying a more narrow registry. The tradeoff here is that a singleton makes it cheaper to query attestations from multiple parties simultaneously. So, depending on the registry architectures, there is an amount of attestations to query (N) after which using a flexible singleton is actually computationally cheaper than querying N narrow registries. However, the reference implementation has also been designed with gas usage in mind and it is unlikely that specialised registries will be able to significantly decrease gas beyond the reference implementations benchmarks. +Due to being a singleton, the Registry needs to be very flexible and thus likely less computationally efficient in comparison to a narrow, optimised Registry. This means that querying a Singleton Registry is likely to be more computationally (and by extension gas) intensive than querying a more narrow Registry. The tradeoff here is that a singleton makes it cheaper to query attestations from multiple parties simultaneously. So, depending on the Registry architectures, there is an amount of attestations to query (N) after which using a flexible singleton is actually computationally cheaper than querying N narrow registries. However, the reference implementation has also been designed with gas usage in mind and it is unlikely that specialised registries will be able to significantly decrease gas beyond the reference implementations benchmarks. ### Adapter -In order for smart accounts to increase security guarantees when adding modules, they must be able to securely query the module registry and handle the return data correctly. In order to achieve this, this proposal aims to provide a standardised interface that may be implemented by smart accounts irrespective of their architecture, execution flows and security assumptions. +In order for smart accounts to increase security guarantees when adding modules, they must be able to securely query the Module Registry and handle the return data correctly. In order to achieve this, this proposal aims to provide a standardised interface that may be implemented by smart accounts irrespective of their architecture, execution flows and security assumptions. ### Related work -The reference implementation of the registry is heavily inspired by the Ethereum Attestation Service. The specific use-case of this proposal, however, required some custom modifications and additions to EAS, meaning that using the existing EAS contracts as the module registry was sub-optimal. +The reference implementation of the Registry is heavily inspired by the Ethereum Attestation Service. The specific use-case of this proposal, however, required some custom modifications and additions to EAS, meaning that using the existing EAS contracts as the Module Registry was sub-optimal. ## Backwards Compatibility diff --git a/assets/eip-7484/flow.png b/assets/eip-7484/flow.png deleted file mode 100644 index 02eec630475695844a6b5a89d61b79237f13f005..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153902 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

@XlaU@-KS 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 W;?#tMuOZ7BfWXt$&t;ucLK6VD3Zw!6 From dc56dcb1afa8c7becdbb7e5c2c7d611d57fb6483 Mon Sep 17 00:00:00 2001 From: zeroknots Date: Fri, 18 Aug 2023 14:33:10 +0700 Subject: [PATCH 11/16] changing spec language as discussed --- EIPS/eip-7484.md | 1 + 1 file changed, 1 insertion(+) diff --git a/EIPS/eip-7484.md b/EIPS/eip-7484.md index 2041199f1fc02b..451ea6e613756a 100644 --- a/EIPS/eip-7484.md +++ b/EIPS/eip-7484.md @@ -58,6 +58,7 @@ The Adapter: Checks the attestation of a given module address and attestations made by a single attester. Returns two timestamps: `listedAt` is a `uint48` timestamp of when the attestation was made and `revokedAt` is a `uint48` timestamp of when an attestation was revoked. +Revocations MUST be permanent. To "unrevoke" an attestation, a new attestation has to be issued. **NOTE**: From 7e0b162529082dcf2d9d40c43f4193732ff3efff Mon Sep 17 00:00:00 2001 From: zeroknots Date: Fri, 18 Aug 2023 14:33:30 +0700 Subject: [PATCH 12/16] spec to disable "unrevocation" --- EIPS/eip-7484.md | 1 - 1 file changed, 1 deletion(-) diff --git a/EIPS/eip-7484.md b/EIPS/eip-7484.md index 451ea6e613756a..2041199f1fc02b 100644 --- a/EIPS/eip-7484.md +++ b/EIPS/eip-7484.md @@ -58,7 +58,6 @@ The Adapter: Checks the attestation of a given module address and attestations made by a single attester. Returns two timestamps: `listedAt` is a `uint48` timestamp of when the attestation was made and `revokedAt` is a `uint48` timestamp of when an attestation was revoked. -Revocations MUST be permanent. To "unrevoke" an attestation, a new attestation has to be issued. **NOTE**: From e41eded935fab5372fa12133deac67b6c13acc64 Mon Sep 17 00:00:00 2001 From: zeroknots Date: Fri, 18 Aug 2023 14:37:05 +0700 Subject: [PATCH 13/16] changes in spec terms as dicsussed --- EIPS/eip-7484.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/EIPS/eip-7484.md b/EIPS/eip-7484.md index 2041199f1fc02b..c220c8ce30b132 100644 --- a/EIPS/eip-7484.md +++ b/EIPS/eip-7484.md @@ -46,8 +46,9 @@ The Adapter: - MUST query the Registry at least once before calling a module for the first time. - MUST use one of the functions on the IRegistry interface when querying the Registry. -- Is RECOMMENDED to query the Registry before module installation. -- Is RECOMMENDED to query the Registry before module execution. +- SHOULD query the Registry on module installation +- SHOULD query the Registry on module execution +- MAY evaluate the listedAt timestamp for vendor specific attestation age criteria ### Interfaces @@ -58,6 +59,7 @@ The Adapter: Checks the attestation of a given module address and attestations made by a single attester. Returns two timestamps: `listedAt` is a `uint48` timestamp of when the attestation was made and `revokedAt` is a `uint48` timestamp of when an attestation was revoked. +Revocations MUST be permanent. To "unrevoke" an attestation, a new attestation has to be issued. **NOTE**: @@ -67,7 +69,7 @@ Returns two timestamps: `listedAt` is a `uint48` timestamp of when the attestati Additionally: -- The Registry MUST ensure that `revokedAt` can only be changed from 0 to a value greater than 0, but not the other way around. +- The Registry MUST ensure that `revokedAt` can only be changed from 0 to a value greater than 0, but not the other way around. ```solidity function check( From 897336da011494507fa3b7848aec644f5a924459 Mon Sep 17 00:00:00 2001 From: kopy-kat Date: Fri, 18 Aug 2023 10:52:20 +0100 Subject: [PATCH 14/16] change specifications for check and verify --- EIPS/eip-7484.md | 47 +++++++++++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 20 deletions(-) diff --git a/EIPS/eip-7484.md b/EIPS/eip-7484.md index c220c8ce30b132..9e17a3e55ba928 100644 --- a/EIPS/eip-7484.md +++ b/EIPS/eip-7484.md @@ -38,17 +38,17 @@ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "S ### Overview -![Adapter flow using check()](../assets/eip-7484/check-sequence.jpg) - -An Adapter is a piece of functionality that allows smart accounts to query the Module Registry before using a module. In order to be compatible with this proposal, a smart account MUST implement the adapter either natively in the account or as a default module that is installed during account deployment. +An Adapter is a piece of functionality that allows smart accounts to query the Module Registry before using a module. In order to be compatible with this proposal, a smart account MUST implement the adapter either natively in the account or as a default module that is installed in the same transaction as the account deployment. The Adapter: -- MUST query the Registry at least once before calling a module for the first time. -- MUST use one of the functions on the IRegistry interface when querying the Registry. -- SHOULD query the Registry on module installation -- SHOULD query the Registry on module execution -- MAY evaluate the listedAt timestamp for vendor specific attestation age criteria +- MUST query the Registry about module `A` at least once before or during the transaction in which `A` is called for the first time. +- MUST treat the Registry reverting as a security risk and SHOULD revert the transaction. +- SHOULD query the Registry about module `A` on installation of `A`. +- SHOULD query the Registry about module `A` on execution of `A`. + +Example: Adapter flow using `check` +![Adapter flow using check()](../assets/eip-7484/check-sequence.jpg) ### Interfaces @@ -58,18 +58,19 @@ The Adapter: Checks the attestation of a given module address and attestations made by a single attester. -Returns two timestamps: `listedAt` is a `uint48` timestamp of when the attestation was made and `revokedAt` is a `uint48` timestamp of when an attestation was revoked. -Revocations MUST be permanent. To "unrevoke" an attestation, a new attestation has to be issued. +Returns two timestamps: `listedAt` is a `uint48` timestamp of when the attestation was made and `revokedAt` is a `uint48` timestamp of when the attestation was revoked. +Revocations MUST be permanent. The value of `revokedAt` can only be changed once, from 0 to a value greater than 0. **NOTE**: -- The Registry MUST revert if `listedAt` is 0 (this means that a queried attester has not made an attestation on the queried module). -- The Registry MUST revert if `revokedAt` is not 0. -- The Adapter MUST treat the Registry reverting as a security risk and is RECOMMENDED to revert the transaction. +The Registry: -Additionally: +- MUST revert if `listedAt == 0` (meaning that the queried attester has not made an attestation on the queried module). +- MUST revert if `revokedAt > 0`. -- The Registry MUST ensure that `revokedAt` can only be changed from 0 to a value greater than 0, but not the other way around. +The Adapter: + +- MAY evaluate `listedAt` for vendor specific attestation age criteria. ```solidity function check( @@ -87,14 +88,20 @@ Note: Timestamps in solidity are natively `uint256`, but storing the attestation Verifies the attestations of a given module and multiple attesters. Additionally a `threshold` can be provided. -Returns if `threshold` `>=` the number of attesters that attested to this module without revoking the attestation (`N`) and reverts otherwise. +The `verify` function returns true only if `N >= threshold`, where `N` is the number of attesters that attested to the queried module, and no provided attester has revoked an attestation on the module. -_EXAMPLE_: If a `threshold` of 2 is set and 5 attesters are queried, the function will return if `N` is greater than or equal 2. If `N` is 1, the function will revert. +More concisely, the three conditions for `verify` returning are: + +- for `N` attesters `listedAt > 0`, +- `N >= threshold` and +- for all attesters `revokedAt == 0`. **NOTE**: -- The Registry MUST revert if `theshold < N`. -- The Adapter MUST treat the Registry reverting as a security risk and is RECOMMENDED to revert the transaction. +The Registry: + +- MUST revert if `N < theshold`. +- MUST revert if any of the provided `attesters` has revoked their attestation. ```solidity function verify( @@ -109,7 +116,7 @@ function verify( ### Additional registries -The Reference Implementation Registry below is designed to be a singleton that is a public good, maximally flexible and gas efficient (see `Rationale`). While it is NOT RECOMMENDED to use a custom Registry, there might still exist cases in which the benefits of creating a custom Registry outweigh the downsides. In this case, the Registry MUST implement the interface above in order to be compatible with Adapters. Further, it is RECOMMENDED that an alternate Registry also exposes a function that allows an Adapter to read the entire data of the attestation (see `findAttestation` in `Reference Implementation`). +The Reference Implementation Registry below is designed to be a singleton that is a public good, maximally flexible and gas efficient (see `Rationale`). While it is NOT RECOMMENDED to use a custom Registry, there might still exist cases in which the benefits of creating a custom Registry outweigh the downsides. In this case, the Registry MUST implement the interface above in order to be compatible with Adapters. Further, the alternative registry SHOULD also exposes a function that allows an Adapter to read the entire data of an attestation (see `findAttestation` in `Reference Implementation`). ## Rationale From 20ae8b317d270ad77cf39c016b1686d12e31864c Mon Sep 17 00:00:00 2001 From: kopy-kat Date: Fri, 18 Aug 2023 11:00:24 +0100 Subject: [PATCH 15/16] correct revokedAt permanent definition --- EIPS/eip-7484.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EIPS/eip-7484.md b/EIPS/eip-7484.md index 9e17a3e55ba928..e24dcc1cb45368 100644 --- a/EIPS/eip-7484.md +++ b/EIPS/eip-7484.md @@ -59,7 +59,7 @@ Example: Adapter flow using `check` Checks the attestation of a given module address and attestations made by a single attester. Returns two timestamps: `listedAt` is a `uint48` timestamp of when the attestation was made and `revokedAt` is a `uint48` timestamp of when the attestation was revoked. -Revocations MUST be permanent. The value of `revokedAt` can only be changed once, from 0 to a value greater than 0. +Revocations MUST be permanent, meaning that the value of `revokedAt` can only be changed once, from 0 to a value greater than 0. **NOTE**: From 368b641dd76f9ef4ed84e7e7a0c7878f90cb8a4d Mon Sep 17 00:00:00 2001 From: kopy-kat Date: Wed, 4 Oct 2023 11:29:53 +0100 Subject: [PATCH 16/16] implement feedback on motivation, change structure, iterate on reference implementation --- EIPS/eip-7484.md | 223 +++++++++++++++++++++++++++++------------------ 1 file changed, 139 insertions(+), 84 deletions(-) diff --git a/EIPS/eip-7484.md b/EIPS/eip-7484.md index e24dcc1cb45368..5f41b08c266c90 100644 --- a/EIPS/eip-7484.md +++ b/EIPS/eip-7484.md @@ -1,6 +1,6 @@ --- eip: 7484 -title: Registry Adapters for Smart Accounts +title: Module Registries and Adapters for Smart Accounts description: Adapters that allow modular smart contract accounts to verify the security of modules using a Module Registry author: Konrad Kopp (@kopy-kat), zeroknots (@zeroknots) discussions-to: https://ethereum-magicians.org/t/erc-7484-registry-adapters-for-smart-accounts/15434 @@ -13,15 +13,18 @@ requires: 4337 ## Abstract -This proposal standardises a Registry Adapter for modular smart contract accounts. This Adapter allows the account to query and verify security attestations about a module through an Attestation Registry. The adapter is responsible for querying the registry and correctly handling the return values. +This proposal standardises the interface and functionality of Module Registries, allowing modular smart contract accounts to verify the security of modules using a Registry Adapter. It also provides a reference implementation of a Singleton Module Registry. ## Motivation -[ERC-4337](./eip-4337.md) standardises the execution flow of contract accounts and [ERC-6900](./eip-6900.md) aims to standardise the modular implementation of these accounts, allowing any developer to build modules for these modular accounts (hereafter smart accounts). However, adding third-party modules into smart accounts unchecked opens up a wide range of attack vectors on these accounts. +[ERC-4337](./eip-4337.md) standardises the execution flow of contract accounts and other efforts aim to standardise the modular implementation of these accounts, allowing any developer to build modules for these modular accounts (hereafter Smart Accounts). However, adding third-party modules into Smart Accounts unchecked opens up a wide range of attack vectors. -A proposed solution to these security considerations is a permission framework that allows module developers to define the permissions that their modules require. The counterpiece of these permissions are attestations that assert statements about the security of modules and can be queried onchain. +One solution to this security issue is to create a Module Registry that stores security attestations on Modules and allows Smart Accounts to query these attestations before using a module. This standard aims to achieve two things: -This proposal is independent of the exact implementation of the permissioning system and could even be used across different kinds of permissioning systems. Instead, the goal of this proposal is to outline a standard, but flexible, way to create onchain attestations and standardise how these attestations are queried by the smart account during module installation or execution. +1. Standardise the interface and required functionality of Module Registries. +2. Standardise the functionality of Adapters that allow Smart Accounts to query Module Registries. + +This ensures that Smart Accounts can securely query Module Registries and handle the Registry behavior correctly, irrespective of their architecture, execution flows and security assumptions. This standard also provides a reference implementation of a Singleton Module Registry that is ownerless and can be used by any Smart Account. While we see many benefits of the entire ecosystem using this single Module Registry (see `Rationale`), we acknowledge that there are tradeoffs to using a singleton and thus this standard does not require Smart Accounts to use the reference implementation. Hence, this standard ensures that Smart Accounts can query any Module Registry that implements the required interface and functionality, reducing integration overhead and ensuring interoperability for Smart Accounts. ## Specification @@ -32,91 +35,76 @@ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "S - **Smart account** - An ERC-4337 compliant smart contract account that has a modular architecture. - **Module** - Self-contained smart account functionality. - **Attestation** - Onchain assertions made about the security of a module. -- **Registry** - An onchain list of attestations about modules. +- **Attester** - The entity that makes an attestation about a module. +- **(Module) Registry** - A contract that stores an onchain list of attestations about modules. - **Adapter** - Smart account functionality that handles the fetching and validation of attestations from the Registry. -- **Attester** - An entity that makes an attestation about a module. -### Overview +### Required Registry functionality -An Adapter is a piece of functionality that allows smart accounts to query the Module Registry before using a module. In order to be compatible with this proposal, a smart account MUST implement the adapter either natively in the account or as a default module that is installed in the same transaction as the account deployment. +There are 2 separate required Registry methods: `check` and `checkN` -The Adapter: +- `check` is used to check the attestation on a module by a single attester. +- `checkN` is used to check the attestation on a module by multiple attesters. -- MUST query the Registry about module `A` at least once before or during the transaction in which `A` is called for the first time. -- MUST treat the Registry reverting as a security risk and SHOULD revert the transaction. -- SHOULD query the Registry about module `A` on installation of `A`. -- SHOULD query the Registry about module `A` on execution of `A`. +The core interface for a Registry is as follows: -Example: Adapter flow using `check` -![Adapter flow using check()](../assets/eip-7484/check-sequence.jpg) +```solidity +interface IRegistry { + function check(address module, address attester) public view returns (uint256); -### Interfaces + function checkN(address module, address[] memory attesters, uint256 threshold) external view returns (uint256[] memory); +} +``` -#### IRegistry.sol +The Registry MUST implement the following functionality: -##### `check` +- Verify that an attester is the creator of an attestation, for example by checking `msg.sender` or by using signatures, before storing it. +- Allow attesters to revoke attestations that they have made. +- Store either the attestation data or a reference to the attestation data. +- Implement `check` and `checkN` as specified below. -Checks the attestation of a given module address and attestations made by a single attester. +The Registry SHOULD implement the following additional functionality: -Returns two timestamps: `listedAt` is a `uint48` timestamp of when the attestation was made and `revokedAt` is a `uint48` timestamp of when the attestation was revoked. -Revocations MUST be permanent, meaning that the value of `revokedAt` can only be changed once, from 0 to a value greater than 0. +- Allow attesters to specify an expiry date for their attestations and revert during `check` or `checkN` if an attestation is expired. +- Implement a view function that allows an adapter or offchain client to read the data for a specific attestation. -**NOTE**: +#### `check` -The Registry: +Takes two arguments: `module` and `attester`. -- MUST revert if `listedAt == 0` (meaning that the queried attester has not made an attestation on the queried module). -- MUST revert if `revokedAt > 0`. +- The Registry MUST revert if the `attester` has not made an attestation on the `module`. +- The Registry MUST revert if the `attester` has revoked their attestation on the `module`. -The Adapter: +Returns a `uint256` of the timestamp at which the attestation was created. -- MAY evaluate `listedAt` for vendor specific attestation age criteria. +#### `checkN` -```solidity -function check( - address module, - address attester - ) - public - view - returns (uint48 listedAt, uint48 revokedAt); -``` +Takes three arguments: `module`, `attesters` and `threshold`. -Note: Timestamps in solidity are natively `uint256`, but storing the attestation timestamp in `uint48` allows for gas savings (by packing variables) while still supporting sufficiently long timestamps. +Note: `threshold` may be 0. -##### `verify` +- The Registry MUST revert if the number of `attesters` that have made an attestation on the `module` is smaller than the `threshold`. +- The Registry MUST revert if any `attester` has revoked their attestation on the `module`. -Verifies the attestations of a given module and multiple attesters. Additionally a `threshold` can be provided. +Returns an array of `uint256` of the timestamps at which the attestation by each queried attester was created. -The `verify` function returns true only if `N >= threshold`, where `N` is the number of attesters that attested to the queried module, and no provided attester has revoked an attestation on the module. +Note: The return values of `check` and `checkN` might change in the future, based on community feedback and further exploration of Registries and Adapters. -More concisely, the three conditions for `verify` returning are: +### Adapter behavior -- for `N` attesters `listedAt > 0`, -- `N >= threshold` and -- for all attesters `revokedAt == 0`. +A Smart Account MUST implement the following Adapter functionality either natively in the account or as a module. This Adapter functionality MUST ensure that: -**NOTE**: +- The Registry is queried about module `A` at least once before or during the transaction in which `A` is called for the first time. +- The Registry reverting is treated as a security risk. -The Registry: +Additionally, the Adapter SHOULD implement the following functionality: -- MUST revert if `N < theshold`. -- MUST revert if any of the provided `attesters` has revoked their attestation. +- Revert the transaction flow when the Registry reverts. +- Query the Registry about module `A` on installation of `A`. +- Query the Registry about module `A` on execution of `A`. -```solidity -function verify( - address module, - address[] memory attesters, - uint256 threshold - ) - external - view - returns; -``` - -### Additional registries - -The Reference Implementation Registry below is designed to be a singleton that is a public good, maximally flexible and gas efficient (see `Rationale`). While it is NOT RECOMMENDED to use a custom Registry, there might still exist cases in which the benefits of creating a custom Registry outweigh the downsides. In this case, the Registry MUST implement the interface above in order to be compatible with Adapters. Further, the alternative registry SHOULD also exposes a function that allows an Adapter to read the entire data of an attestation (see `findAttestation` in `Reference Implementation`). +Example: Adapter flow using `check` +![Adapter flow using check()](../assets/eip-7484/check-sequence.jpg) ## Rationale @@ -126,11 +114,11 @@ Attestations are onchain assertions made about a module. These assertions could One example of this would be determining what storage slots a specific module can write to, which might be useful if a smart account uses DELEGATECALL to invoke the module. This assertion is practically infeasible to verify onchain, but can easily be verified off-chain. Thus, an attester could perform this check off-chain and publish an attestation onchain that attests to the fact that a given module can only write to its designated storage slots. -While attestations are always certain kinds of assertions made about a module, this proposal purposefully allows the attestation data to be any kind of data, packed into a `bytes` object (see `Reference Implementation`). This ensures that any kind of data can be used as an assertion, from a simple boolean flag specifying that a module is secure to a complex proof of runtime module behaviour. +While attestations are always certain kinds of assertions made about a module, this proposal purposefully allows the attestation data to be any kind of data or pointer to data. This ensures that any kind of data can be used as an assertion, from a simple boolean flag specifying that a module is secure to a complex proof of runtime module behaviour. -### Registry +### Singleton Registry -In order for attestations to be queryable onchain, they need to be stored in some sort of list in a smart contract. This proposal includes the reference implementation of a Singleton Registry that functions as the source of truth for attestations. This proposed Registry is a public good that is permissionless, ownerless and immutable. +In order for attestations to be queryable onchain, they need to be stored in some sort of list in a smart contract. This proposal includes the reference implementation of an ownerless Singleton Registry that functions as the source of truth for attestations. The reasons for proposing a Singleton Registry are the following: @@ -142,13 +130,9 @@ However, there are obviously tradeoffs for using a singleton. A Singleton Regist Due to being a singleton, the Registry needs to be very flexible and thus likely less computationally efficient in comparison to a narrow, optimised Registry. This means that querying a Singleton Registry is likely to be more computationally (and by extension gas) intensive than querying a more narrow Registry. The tradeoff here is that a singleton makes it cheaper to query attestations from multiple parties simultaneously. So, depending on the Registry architectures, there is an amount of attestations to query (N) after which using a flexible singleton is actually computationally cheaper than querying N narrow registries. However, the reference implementation has also been designed with gas usage in mind and it is unlikely that specialised registries will be able to significantly decrease gas beyond the reference implementations benchmarks. -### Adapter - -In order for smart accounts to increase security guarantees when adding modules, they must be able to securely query the Module Registry and handle the return data correctly. In order to achieve this, this proposal aims to provide a standardised interface that may be implemented by smart accounts irrespective of their architecture, execution flows and security assumptions. - ### Related work -The reference implementation of the Registry is heavily inspired by the Ethereum Attestation Service. The specific use-case of this proposal, however, required some custom modifications and additions to EAS, meaning that using the existing EAS contracts as the Module Registry was sub-optimal. +The reference implementation of the Registry is heavily inspired by the Ethereum Attestation Service. The specific use-case of this proposal, however, required some custom modifications and additions to EAS, meaning that using the existing EAS contracts as the Module Registry was sub-optimal. However, it would be possible to use EAS as a Module Registry with some modifications. ## Backwards Compatibility @@ -163,19 +147,13 @@ contract Adapter { IRegistry registry; function checkModule(address module, address trustedAttester) internal { - // check module implementation address on registry - (uint48 listedAt, uint48 flaggedAt) = registry.check(module, trustedAttester); - - // revert if module was ever flagged or was never attested to - require(listedAt != 0 && flaggedAt == 0, "Module is insecure"); + // Check module attestation on Registry + registry.check(module, trustedAttester); } - function verifyModule(address module, address[] memory attesters, uint256 threshold) internal { - // check module implementation address on registry - bool verified = registry.verify(module, attesters, threshold); - - // revert if module is not verified by enough attesters - require(verified, "Module is insecure"); + function checkNModule(address module, address[] memory attesters, uint256 threshold) internal { + // Check list of module attestations on Registry + registry.checkN(module, attesters, threshold); } } ``` @@ -196,7 +174,7 @@ contract Account is Adapter { // executes a module function executeTransactionFromModule(address module, address[] memory attesters, uint256 threshold) public { - verifyModule(module, attesters, threshold); + checkNModule(module, attesters, threshold); ... } @@ -206,7 +184,84 @@ contract Account is Adapter { ### Registry -See `https://github.com/rhinestonewtf/registry/` +```solidity +contract Registry { + ... + + function check( + address module, + address attester + ) + public + view + returns (uint256) + { + AttestationRecord storage attestation = _getAttestation(module, attester); + + uint48 expirationTime = attestation.expirationTime; + uint48 attestedAt = + expirationTime != 0 && expirationTime < block.timestamp ? 0 : attestation.time; + if (attestedAt == 0) revert AttestationNotFound(); + + uint48 revokedAt = attestation.revocationTime; + if (revokedAt != 0) revert RevokedAttestation(attestation.attester); + + return uint256(attestedAt); + } + + function checkN( + address module, + address[] calldata attesters, + uint256 threshold + ) + external + view + returns (uint256[] memory) + { + uint256 attestersLength = attesters.length; + if (attestersLength < threshold || threshold == 0) { + threshold = attestersLength; + } + + uint256 timeNow = block.timestamp; + uint256[] memory attestedAtArray = new uint256[](attestersLength); + + for (uint256 i; i < attestersLength; i = uncheckedInc(i)) { + AttestationRecord storage attestation = _getAttestation(module, attesters[i]); + if (attestation.revocationTime != 0) { + revert RevokedAttestation(attestation.attester); + } + + uint48 expirationTime = attestation.expirationTime; + if (expirationTime != 0 && expirationTime < timeNow) { + revert AttestationNotFound(); + } + + attestedAtArray[i] = uint256(attestation.time); + + if (attestation.time == 0) continue; + + if (threshold != 0) --threshold; + } + if (threshold == 0) return attestedAtArray; + revert InsufficientAttestations(); + } + + function _getAttestation( + address module, + address attester + ) + internal + view + virtual + returns (AttestationRecord storage) + { + return _moduleToAttesterToAttestations[module][attester]; + } + + ... +} +``` ## Security Considerations