Introduction
We express our gratitude to the Dione Protocol team for the collaborative engagement that enabled the execution of this Security Assessment of the project's implementation.
title | content |
---|---|
Platform | Dione Protocol |
Language | Golang |
Timeline | 26/03/2024 - 26/04/2024 |
Methodology | Blockchain Protocol and Security Analysis Methodology→ |
Review Scope | |
---|---|
Repository | https://github.com/DioneProtocol/odysseygo→ |
Commit | b44df2531bd9b33cbc8e778f64f1f8cfb5d8c602 |
Remediation Commit | a89aef3b66c01cd02ce1d32194655386f9747a77 |
Repository | https://github.com/DioneProtocol/coreth→ |
Commit | f9d2ba69b402b761854f09413cb270110e65333c |
Remediation Commit | 4ed7a414f7f5175c91d300069da5d56195323efc |
Repository | https://github.com/DioneProtocol/sfxdx__orion-sc→ |
Commit | 5755426b9d309993d96b27c6eb4240d36249deb9 |
Review Scope
- Commit
- b44df2531bd9b33cbc8e778f64f1f8cfb5d8c602
- Remediation Commit
- a89aef3b66c01cd02ce1d32194655386f9747a77
- Repository
- https://github.com/DioneProtocol/coreth→
- Commit
- f9d2ba69b402b761854f09413cb270110e65333c
- Remediation Commit
- 4ed7a414f7f5175c91d300069da5d56195323efc
- Commit
- 5755426b9d309993d96b27c6eb4240d36249deb9
Audit Summary
10/10
10/10
9/10
10/10
The system users should acknowledge all the risks summed up in the risks section of the report
Document Information
This report may contain confidential information about IT systems and the intellectual property of the Customer, as well as information about potential vulnerabilities and methods of their exploitation.
The report can be disclosed publicly after prior consent by another Party. Any subsequent publication of this report shall be without mandatory consent.
Document | |
---|---|
Name | Blockchain Protocol Code Review and Security Analysis Report for Dione Protocol |
Audited By | Yaroslav Bratashchuk |
Approved By | Luciano Ciattaglia |
Website | https://www.dioneprotocol.com/→ |
Changelog | 06/04/2024 - Preliminary Report |
26/04/2024 - Final Report |
Document
- Name
- Blockchain Protocol Code Review and Security Analysis Report for Dione Protocol
- Audited By
- Yaroslav Bratashchuk
- Approved By
- Luciano Ciattaglia
- Changelog
- 06/04/2024 - Preliminary Report
- 26/04/2024 - Final Report
System Overview
Odyssey Chain is a composite of three primary blockchains (Delta, Alpha, and Omega Chains), each fulfilling specific roles in asset creation, trading, and smart contract execution within the ecosystem.
Infi-Nets are modular networks that extend the core architecture, providing scalability and customization for different business requirements.
Parent Network: Acts as a central Infi-Net containing all validators, which includes those from every other Infi-Net, facilitating network-wide governance and coordination.
Delta Chain (D): Supports Ethereum Virtual Machine (EVM) compatible contracts, focusing on Solidity-based dApps, easing developer onboarding and integration.
Alpha Chain (A): Manages the issuance and exchange of Dione coins along with other digital assets, enabling the creation of tokens, NFTs, and stablecoins.
Omega Chain (O): Offers infrastructure for launching and customizing Infi-Nets, allowing for unique blockchain rules and logic definitions by developers.
Customization and Independence: Infi-Nets provide tools for developers to tailor virtual machines, tokenomics, validator requirements, and security settings, ensuring each network can operate as a standalone entity.
Network Efficiency: Validators can be part of multiple Infi-Nets, maintaining performance and compliance with each network's specific rules, thus preventing any single Infi-Net's issues from affecting others.
Private Networks and Efficiency: The Odyssey Chain's architecture supports the creation of private networks with specific validator rules, promoting efficient transaction processing and reduced network congestion.
Executive Summary
This report presents an in-depth analysis and scoring of the customer's newly developed blockchain protocol project.
Initially, we encountered significant challenges with the previous code, including unnecessary layers, critical bugs, and errors introduced by earlier developers. These issues were so severe that we were unable to continue with their codebase. Consequently, this report is based on a completely new code generated from scratch, reflecting both the innovative approach and the rigorous standards now implemented.
Detailed scoring criteria can be referenced in the corresponding section of the Blockchain Protocol and Security Analysis Methodology →.
Documentation quality
The total Documentation Quality score is 10 out of 10.
Repositories features clear and comprehensive documentation that effectively details the implemented changes. While the documentation is user-friendly and well-organized, it could be further improved by repairing three broken links and updating one outdated link in the odysseygo to ensure complete and accurate resource accessibility.
Code quality
The total Code Quality score is 9 out of 10.
At the start of our audit on November 20, 2023, we encountered significant code quality issues within the odysseygo and coreth repositories. These issues ranged from documentation inconsistencies to compilation errors. Specifically:
Both repositories exhibited numerous compilation errors. In coreth, unused imports and undefined constants were prevalent, while in odysseygo, interface implementation errors and syntax mistakes were common.
Numerous unit and end-to-end tests were failing, indicating underlying issues within the codebase.
In response to our initial feedback, DioneProtocol temporarily halted the audit to rectify these deficiencies, leading to a significantly improved codebase built from a clean fork of the Avalanche repositories, with the latest updates integrated. This updated version demonstrated considerable improvements:
No serious flaws or issues were found, indicating a significant enhancement in code stability and functionality.
We successfully ran the testnet, verifying the intended code behavior, and executed end-to-end, unit, and fuzz tests effectively.
To further improve the codebase and ensure ongoing quality and security, we recommend:
Establish a comprehensive CI pipeline to automate the detection and rectification of build failures, test suite issues, and linting problems.
Set up continuous fuzzing for the existing fuzz tests to proactively identify and mitigate potential vulnerabilities and logic errors.
Address all testing-related observations mentioned in this report to ensure comprehensive code quality and reliability.
Overall, we are satisfied with the quality of the repositories, recognising the significant strides made in improving the codebase's integrity and operational efficiency.
Architecture quality
The total Architecture Quality score is 10 out of 10.
The Odyssey Chain's design is strong and makes sense. The way it handles money, rewards, and fees is smart and doesn't have any big problems. Its use of validators and delegators, which are common in blockchain, works well and is similar to other successful projects. The method it uses to reach agreement, or consensus, is also well done. The overall design, which includes different types of networks, is well thought out. Any changes made to the original code fit in nicely and are well integrated, showing that the system's design is solid and well-planned.
Security score
Upon auditing, the code was found to contain 0 critical, 0 high, 1 medium, and 1 low severity issues, leading to a security score of 10 out of 10.
All identified issues are detailed in the “Findings” section of this report.
Summary
The comprehensive audit of the customer's blockchain protocol yields an overall score of 9.5. This score reflects the combined evaluation of documentation, code quality, architecture quality, and security aspects of the project.
Findings
Code ― | Title | Status | Severity | |
---|---|---|---|---|
F-2024-2036 | Update Outdated External Dependencies in Coreth and Odysseygo Repositories | fixed | Medium | |
F-2024-2042 | Potential Exposure of Staking Node Keys | fixed | Low | |
F-2024-2043 | Test Coverage and High Failure Rate in Genesis Package | fixed | Observation | |
F-2024-2041 | E2E Suite: Virtuous Transfer Transaction Failure on A-Chain | fixed | Observation | |
F-2024-2040 | E2E Suite: Permissionless Subnet Operations on O-Chain | fixed | Observation | |
F-2024-2039 | E2E Suite: Interchain Transfer Failure on A-Chain | fixed | Observation | |
F-2024-2038 | E2E Suite: Interchain Transfer Failure on D-Chain | fixed | Observation | |
F-2024-2037 | Comprehensive Code Quality Issues in Coreth and Odysseygo | fixed | Observation |
Appendix 1. Severity Definitions
Severity | Description |
---|---|
Critical | Vulnerabilities that can lead to a complete breakdown of the blockchain network's security, privacy, integrity, or availability fall under this category. They can disrupt the consensus mechanism, enabling a malicious entity to take control of the majority of nodes or facilitate 51% attacks. In addition, issues that could lead to widespread crashing of nodes, leading to a complete breakdown or significant halt of the network, are also considered critical along with issues that can lead to a massive theft of assets. Immediate attention and mitigation are required. |
High | High severity vulnerabilities are those that do not immediately risk the complete security or integrity of the network but can cause substantial harm. These are issues that could cause the crashing of several nodes, leading to temporary disruption of the network, or could manipulate the consensus mechanism to a certain extent, but not enough to execute a 51% attack. Partial breaches of privacy, unauthorized but limited access to sensitive information, and affecting the reliable execution of smart contracts also fall under this category. |
Medium | Medium severity vulnerabilities could negatively affect the blockchain protocol but are usually not capable of causing catastrophic damage. These could include vulnerabilities that allow minor breaches of user privacy, can slow down transaction processing, or can lead to relatively small financial losses. It may be possible to exploit these vulnerabilities under specific circumstances, or they may require a high level of access to exploit effectively. |
Low | Low severity vulnerabilities are minor flaws in the blockchain protocol that might not have a direct impact on security but could cause minor inefficiencies in transaction processing or slight delays in block propagation. They might include vulnerabilities that allow attackers to cause nuisance-level disruptions or are only exploitable under extremely rare and specific conditions. These vulnerabilities should be corrected but do not represent an immediate threat to the system. |
Severity
- Critical
Description
- Vulnerabilities that can lead to a complete breakdown of the blockchain network's security, privacy, integrity, or availability fall under this category. They can disrupt the consensus mechanism, enabling a malicious entity to take control of the majority of nodes or facilitate 51% attacks. In addition, issues that could lead to widespread crashing of nodes, leading to a complete breakdown or significant halt of the network, are also considered critical along with issues that can lead to a massive theft of assets. Immediate attention and mitigation are required.
Severity
- High
Description
- High severity vulnerabilities are those that do not immediately risk the complete security or integrity of the network but can cause substantial harm. These are issues that could cause the crashing of several nodes, leading to temporary disruption of the network, or could manipulate the consensus mechanism to a certain extent, but not enough to execute a 51% attack. Partial breaches of privacy, unauthorized but limited access to sensitive information, and affecting the reliable execution of smart contracts also fall under this category.
Severity
- Medium
Description
- Medium severity vulnerabilities could negatively affect the blockchain protocol but are usually not capable of causing catastrophic damage. These could include vulnerabilities that allow minor breaches of user privacy, can slow down transaction processing, or can lead to relatively small financial losses. It may be possible to exploit these vulnerabilities under specific circumstances, or they may require a high level of access to exploit effectively.
Severity
- Low
Description
- Low severity vulnerabilities are minor flaws in the blockchain protocol that might not have a direct impact on security but could cause minor inefficiencies in transaction processing or slight delays in block propagation. They might include vulnerabilities that allow attackers to cause nuisance-level disruptions or are only exploitable under extremely rare and specific conditions. These vulnerabilities should be corrected but do not represent an immediate threat to the system.
Appendix 2. Scope
The scope of the project includes the following components from the provided repository:
Scope Details | |
---|---|
Repository | https://github.com/DioneProtocol/odysseygo→ |
Commit | b44df2531bd9b33cbc8e778f64f1f8cfb5d8c602 |
Repository | https://github.com/DioneProtocol/coreth→ |
Commit | f9d2ba69b402b761854f09413cb270110e65333c |
Repository | https://github.com/DioneProtocol/sfxdx__orion-sc→ |
Commit | 5755426b9d309993d96b27c6eb4240d36249deb9 |
Whitepaper | https://www.dioneprotocol.com/whitepaper.pdf→ |
Requirements | DP-Blockchain Customizations-110324-102732.pdf |
Technical Requirements | DP-Blockchain Customizations-110324-102732.pdf |
Scope Details
- Commit
- b44df2531bd9b33cbc8e778f64f1f8cfb5d8c602
- Repository
- https://github.com/DioneProtocol/coreth→
- Commit
- f9d2ba69b402b761854f09413cb270110e65333c
- Commit
- 5755426b9d309993d96b27c6eb4240d36249deb9
- Requirements
- DP-Blockchain Customizations-110324-102732.pdf
- Technical Requirements
- DP-Blockchain Customizations-110324-102732.pdf