This project aims to provide a comprehensive analysis of blockchain technologies, focusing on their efficiency, security, and decentralization aspects. It includes comparative studies of systems like Algorand and Beaconchain, offering insights into the blockchain trilemma.
- Comparative analysis of blockchain systems
- Quantitative measurements of decentralization, efficiency, and security
- Data-driven insights into blockchain technologies
Acquire Algorand data from Bitquery, and acquire Beacon data from Beacon Explorer by using SIPDER framework.
The data was stored in the Algorand_data and Beacon_chain_data
We evaluate the decentralization in two layers, the consensus layer and the transaction layer.
For the consensus layer, we use proposer/validator data to represent the staking or voting process.
Column Name | Discription |
---|---|
date |
The specific date for which the data is recorded, formatted as "YYYY-MM-DD". |
proposer_count |
The number of proposers that participated in the block proposal process on the given date. |
reward |
The Reward for block proposal per day. |
Column Name | Discription |
---|---|
date |
The specific date for which the data is recorded, formatted as "YYYY-MM-DD". |
Value |
Average account balance of validators per day. |
For the transaction layer, we use the number of daily transaction data to quantify the decentralization.
Column Name | Discription |
---|---|
Timestamp |
The timestamp when the transactions were recorded |
daily_transaction |
The daily transaction on Beacon (USD). |
Column Name | Discription |
---|---|
time |
The timestamp when the transactions were recorded |
count |
Transaction count per day. |
fees |
Tokens used for transaction. |
A higher value indicates more chaos in authority distribution while a lower value refers to a more centralized system. We define the indice
To execute the Jupyter Notebook and perform the analysis:
- Navigate to the directory where you cloned the repository.
- Start the Jupyter Notebook server by running
jupyter notebook
in your command line. - Open the
experiment.ipynb
file from the Jupyter Notebook interface in your browser. - Execute the notebook cells in sequence to conduct the analysis.
We welcome contributions from the community. If you wish to contribute to the project, please follow these guidelines:
- Fork the repository and create a feature branch.
- Make your changes and ensure that your code adheres to the existing style.
- Submit a pull request with a clear description of your improvements or bug fixes.
This project is licensed under [MIT License]. For more details, see the LICENSE file in the repository.
For any inquiries or potential collaborations, please reach out to the project maintainers at [[email protected]]. We are open to feedback and interested in hearing about how you may want to use or improve the project.