Least Authority Performs Security Audit of BEAM’s Mimblewimble Implementation
At the request of BEAM, Least Authority performed a security audit of BEAM’s implementation of the Mimblewimble protocol, written in C++ and uses the Equihash Mining algorithm. Our review followed the launch of Testnet, in which the code was made open source, and preceded the launch of BEAM’s Mainnet. Our team members Ramakrishnan Muthukrishnan, Meejah, and Jan Winkelmann performed the audit in collaboration with the BEAM team members Alex Romanov, Vladislav Gelfer, and Artem Gorbachev from October 1 - November 9, 2018. The initial report was issued on November 14, 2018, and an updated report following the discussion and verification phase was issued on December 24, 2018.
During the audit, our team members performed research, investigation, and review of the BEAM codebase followed by issue reporting.
Their investigation focused on the following areas of concern:
- Implementation of basic cryptography (i.e. bulletproof, Pedersen, schnorr signatures, etc.)
- Implementation bugs (i.e. SecureErase, NoLeak, etc.)
- Logic of the node, node processor, gossip protocol and node.db file that describes SQLite structure
- Attacks that may reduce the difficulty of the writing blocks, attacks that cleverly manipulate timestamps, etc., and other consensus rules
- Significant modifications to third-party open source project code
- Anything else as identified during the initial analysis phase
The team used a standard methodology which consists of manual code review, vulnerability analysis, documenting results and suggesting immediate mitigations that live deployments can take, and also the requirements for remediation engineering for future releases. Issues and suggestions identified throughout the duration of the audit are documented in detail in the “BEAM Implementation Security Audit Report”. We recommended that there be further analysis of the unresolved and partially resolved Issues and Suggestions in the report and that they are addressed as soon as possible. We also recommended further improvement of the codebase by a focus on readability, increasing test coverage report generation, generally increasing the number of comments and properly vendoring dependencies.
The Mimblewimble protocol is touted as a way to make transactions confidential and virtually untraceable and BEAM is reportedly the first cryptocurrency to use this protocol. We commend BEAM’s effort to give users complete control over their privacy and their efforts to make their cryptocurrency more secure. We appreciate that they support third-party reviews and agree that future audits continue as changes and features are introduced to the codebase to optimize the security of the Beam implementation.
Our mission at Least Authority is to bring verifiable end-to-end security to everyone. We continuously work towards this mission by partnering with companies through our security auditing and consulting work to help improve the security of their technologies to minimize serious threats and vulnerabilities. We are committed to supporting projects like Beam - projects that are geared towards empowering users by providing freedom and control of their data. We have done it in the past and we will continue to do so through our security audit and security consulting services. If you have any questions about these results or our security audit process, please firstname.lastname@example.org.