From 0c992ff7795bd8294f8f6aaf9296fc8005f1327e Mon Sep 17 00:00:00 2001 From: vbuterin Date: Sun, 31 Mar 2024 14:24:18 +0900 Subject: [PATCH 1/3] Create eip-7653.md --- EIPS/eip-7653.md | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 EIPS/eip-7653.md diff --git a/EIPS/eip-7653.md b/EIPS/eip-7653.md new file mode 100644 index 0000000000000..a17b149191893 --- /dev/null +++ b/EIPS/eip-7653.md @@ -0,0 +1,45 @@ +--- +eip: XXXX +title: Remove bloom filters +description: Remove bloom filters from the execution block +author: Vitalik Buterin (@vbuterin) +discussions-to: https://ethereum-magicians.org/t/eip-7653-remove-bloom-filters/19447 +status: Draft +type: Standards Track +category: Core +created: 2024-03-31 +--- + +## Abstract + +Require the bloom filters in an execution block, including at the top level and in the receipt object, to be empty. + +## Motivation + +Logs were originally introduced to give applications a way to record information about onchain events, which decentralized applications (dapps) would be able to easily query. Using bloom filters, dapps would be able to quickly go through the history, identify the few blocks that contained logs relative to their application, and then quickly identify which individual transactions have the logs that they need. + +In practice, this mechanism is far too slow. Almost all dapps that access history end up doing so not through RPC calls to an Ethereum node (even a remote-hosted one), but through centralized extra-protocol services. + +This EIP proposes recognizing that reality, and removing bloom filters from the protocol. Applications that need history querying would be encouraged to develop and use decentralized protocols that create provable log indexes using eg. ZK-SNARKs and incrementally-verifiable computation. + +## Specification + +The logs bloom of an execution block is now required to be empty (ie. 0 bytes long). The logs bloom of a transaction receipt is now required to be empty (ie. 0 bytes long). + +## Rationale + +This is a minimally disruptive way to remove the need to handle blooms from clients. A future EIP can later clean up by removing this field entirely, along with other fields that have been deprecated. + +Gas costs of LOG are not reduced, because while the externality of polluting the bloom filter no longer needs to be accounted for, the costs of hashing have increased due to the needs of ZK-SNARK EVM implementations. + +## Backwards Compatibility + +Applications that depend on bloom filters to read events will cease to work. Very few applications depend on this feature today, because at current gas limits the false positive rate is so high and processing the logs in a long history query is so slow, especially for light clients (whom this feature was primarily intended to benefit). + +## Security Considerations + +As no new features are introduced or made cheaper, no security concerns are raised. + +## Copyright + +Copyright and related rights waived via [CC0](../LICENSE.md). From 663fa86193de6acfc0ab8c8a606fd29c135e1434 Mon Sep 17 00:00:00 2001 From: vbuterin Date: Sun, 31 Mar 2024 14:28:58 +0900 Subject: [PATCH 2/3] Update eip-7653.md --- EIPS/eip-7653.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EIPS/eip-7653.md b/EIPS/eip-7653.md index a17b149191893..1eb0288258388 100644 --- a/EIPS/eip-7653.md +++ b/EIPS/eip-7653.md @@ -1,5 +1,5 @@ --- -eip: XXXX +eip: 7653 title: Remove bloom filters description: Remove bloom filters from the execution block author: Vitalik Buterin (@vbuterin) From 301733b40ff339afda081cebab73fbd4eaecd40c Mon Sep 17 00:00:00 2001 From: lightclient Date: Mon, 1 Apr 2024 11:32:27 -0400 Subject: [PATCH 3/3] renumber 7653 to 7668 --- EIPS/{eip-7653.md => eip-7668.md} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename EIPS/{eip-7653.md => eip-7668.md} (99%) diff --git a/EIPS/eip-7653.md b/EIPS/eip-7668.md similarity index 99% rename from EIPS/eip-7653.md rename to EIPS/eip-7668.md index 1eb0288258388..d4df256bda711 100644 --- a/EIPS/eip-7653.md +++ b/EIPS/eip-7668.md @@ -1,5 +1,5 @@ --- -eip: 7653 +eip: 7668 title: Remove bloom filters description: Remove bloom filters from the execution block author: Vitalik Buterin (@vbuterin)