Evaluating Ethereum Account Abstraction: Security, Usability, and Adoption
Authors/Creators
Contributors
Supervisor (2):
- 1. TU Wien
Description
Dataset and scripts
Data and analysis scripts for my master thesis at TU Wien on Ethereum's account abstraction.
Ethereum mainnet data on EIP-7702 and ERC-4337 accounts. First and last block in the data:
- EIP-7702: blocks 22428093 to 24358289 (2025-05-07 to 2026-01-31)
- ERC-4337: blocks 16494438 to 24358289 (2023-01-27 to 2026-01-31)
Sources: Google BigQuery, Alchemy
Files
parquet_eip7702.zip– EIP-7702 tablesparquet_erc4337.zip– ERC-4337 tablesschema_and_load_sql.zip–schema.sqlandload.sqlfor loading everything into DuckDBmasterthesis_scripts.zip– Scripts for data collection and analysis: BigQuery SQL queries, authorization list fetcher, EIP-7702 authority recovery, and the adoption analysis scripts for Chapter 6 of the thesis
DuckDB replaced the digits in the file names with underscores, so traces_eip____.parquet is the table traces_eip7702 and traces_erc____.parquet is traces_erc4337.
| Table | Rows |
|---|---|
| smart_accounts_eip7702 | 6,508,103 |
| smart_accounts_erc4337 | 469,874 |
| transactions_eip7702 | 15,779,531 |
| transactions_erc4337 | 6,836,226 |
| receipts_eip7702 | 15,779,531 |
| receipts_erc4337 | 6,836,226 |
| traces_eip7702 | 243,405,498 |
| traces_erc4337 | 80,268,479 |
| logs_eip7702 | 90,733,645 |
| logs_erc4337 | 25,951,612 |
smart_accounts_eip7702 has one row per authorization (1,643,240 distinct accounts).
How to use it
Unzip parquet_eip7702.zip, parquet_erc4337.zip, and schema_and_load_sql.zip into the same folder. It needs about 38 GB.
The easiest way is to query the files directly, without importing:
SELECT * FROM 'path/to/folder/transactions_eip____.parquet' LIMIT 10;To load everything into a DuckDB database, open a database file first and then import. This needs several hundred GB of free disk space (the imported database is at least 370 GB).
duckdb ~/masterthesis.duckdbIMPORT DATABASE 'path/to/folder';Reproducing the analysis
Unzip masterthesis_scripts.zip and follow its README.md, which lists the requirements and the order in which to run the scripts. The scripts read the database from ~/masterthesis.duckdb . Set the environment variable MASTERTHESIS_DB to use a different path.
Files
masterthesis_scripts.zip
Additional details
Related works
- Is derived from
- Dataset: https://console.cloud.google.com/marketplace/product/bigquery-public-data/blockchain-analytics-ethereum-mainnet-us (URL)
- References
- Conference Paper: 10.1109/BRAINS49436.2020.9223287 (DOI)
- Requires
- Software: https://github.com/gsalzer/ethutils (URL)