DESCRIPTION
The target of this audit is the private code repository of atoshi-privacy-contracts of Atoshi. Please refer to the report for the detailed audit scope.
Our audit methodology employs automated vulnerability scans, manual verification, and business logic analysis to uncover potential security issues coupled with gas and code quality optimization recommendations.
In summary, we have found that the codebase contains 3 high-risk issues that require prompt attention. In addition, we have identified other non-critical issues as well as recommendations and notes that should be considered. The atoshi-privacy-contracts team has addressed these issues promptly. It is important to note that our audit covers only the final reported versions of the codebase. Any subsequent updates would require a re-evaluation.
KEY FINDINGS
In total, we find 8 potential issues in the smart contract. We also have 2 recommendations and 3 notes, as follows:
| ID | Severity | Description | Status |
|---|---|---|---|
| 1 | High | Potential DoS due to mismatched verifier contracts | Partially |
| 2 | High | Lack of validation on token and amount in function deposit() |
Fixed |
| 3 | High | Lack of relayer binding in function withdraw() |
Fixed |
| 4 | Medium | Lack of access control in functions recordDeposit() and recordWithdrawal() |
Fixed |
| 5 | Medium | Incorrect fee handling in function withdraw() |
Fixed |
| 6 | Medium | Lack of withdrawal path for removed tokens | Fixed |
| 7 | Medium | Insufficient Merkle tree capacity | Fixed |
| 8 | Medium | Potential privacy leakage | Fixed |
| 9 | - | Remove redundant code | Fixed |
| 10 | - | Revise the misleading annotation | Fixed |
| 11 | - | Assumptions of _encryptedNote |
- |
| 12 | - | Shared Merkle tree across assets | - |
| 13 | - | Potential centralized risk | - |
More details are provided in the audit report.