We express our gratitude to the Right to Privacy team for the collaborative engagement that enabled the execution of this Smart Contract Security Assessment.
RAILGUN is a privacy system built directly on-chain for Ethereum, BSC, Polygon, and Arbitrum that uses Zero-Knowledge (ZK) cryptography to enable private use of smart contracts and DeFi, all without leaving the security of the user’s preferred chain.
Document
Review Scope
According to the assessment, the Customer's smart contracts are secured but some functions could run out of gas.
Our team performed an analysis of code functionality, manual audit, and automated checks with Mythril and Slither. All issues found during automated analysis were manually reviewed, and important vulnerabilities are presented in the Audit overview section. All found issues can be found in the Audit overview section. As a result of the audit, security engineers found 2 medium and 2 low severity issues.
Graph 1. The distribution of vulnerabilities after the audit.
Smart contracts within the scope were manually reviewed and analyzed with static analysis tools. The audit report contains all found security vulnerabilities and other issues in the reviewed code. As a result of the audit, security engineers found 2 medium and 2 low severity issues.
Code ― | Title | Status | Severity | |
---|---|---|---|---|
F-2021-012 | Too low test coverage | Fixed | Medium | |
F-2021-0121 | Test Unit Failed | Fixed | Medium | |
F-2021-0124 | A public function that could be declared external | Fixed | Low | |
F-2021-0123 | Missing zero address validation | Fixed | Low |
When auditing smart contracts, Hacken is using a risk-based approach that considers Likelihood, Impact, Exploitability and Complexity metrics to evaluate findings and score severities.
Reference on how risk scoring is done is available through the repository in our Github organization:
Severity
Description
Severity
Description
Severity
Description
Severity
Description
The scope of the project includes the following smart contracts from the provided repository:
Scope Details
governance/Delegator.sol
governance/Deployer.sol
governance/Staking.sol
governance/Voting.sol
logic/Commitments.sol
logic/Globals.sol
logic/Poseidon.sol
logic/RailgunLogic.sol
logic/Snark.sol
logic/TokenWhitelist.sol
logic/Verifier.sol
proxy/Proxy.sol
proxy/ProxyAdmin.sol
teststubs/governance/Getter.sol
teststubs/governance/GovernanceTarget.sol
teststubs/governance/StakingStub.sol