The (Ethereum) ERC-20 token standard has become the most widely-used way to issue digital assets and assign cryptocurrency or blockchain protocol voting rights on the Ethereum (ETH) blockchain, the world’s largest platform for building decentralized applications (dApps).
Crypto exchange Coinbase notes that when assessing an ERC-20 token for listing purposes, the US-based trading platform conducts a security evaluation during which it tries to determine if the platform’s source code can be verified.
The San Francisco-based firm also checks whether new tokens are following best practices such as supporting the industry-standard library use, have limited or appropriate scope for privileged roles (so that malicious users cannot exploit the platform to steal funds), and incorporates a simple, modular design (so that the code is easily modifiable for timely and secure updates).
The Coinbase team explains that the most critical step for getting a token listed on Coinbase is to provide access to a project’s source code. They explain that without looking at the code, an auditor or IT security engineer is unable to easily or accurately analyze the token’s behavior.
Coinbase says that verifying code is or should be “a low effort” action for an asset issuer, and it’s “the highest leverage step towards getting a token listed.”
The Coinbase team recommends:
“Similar to the adage of ‘don’t roll your own crypto,’ avoid writing smart contract code from scratch as much as possible. A single developer or team may, regardless of experience, miss a crucial detail, compromising the integrity of the token. In comparison, popular and well-vetted open source smart contract standards are rigorously scrutinized and tested, making them the most secure known implementations.”
This can’t be stressed enough, because of the numerous hacks in the crypto space resulting from poorly written code. All it takes is one bad line of code to completely take down a platform and lead to huge losses for users, like we recently saw when the Yam protocol experienced major technical problems.
Coinbase further notes:
“Tokens often have privileged roles, also known as superusers, often termed ‘owner,’ ‘admin,’ or ‘controller.’ In some smart contracts, these roles can wield significant power, such as pausing transactions, modifying balances, or completely changing the token’s logic. Superuser privileges threaten our ability to safely custody customers’ assets, diminishing the likelihood of listing the token on Coinbase.”
This is true, because if a protocol’s developers have full control over it, then they might be able to gain access to all the funds associated with the platform. They can then potentially pull off an exit scam by stealing all the assets locked on the platform or engaging in some other type of malicious activity.
“Our favorite tokens to evaluate from a security perspective are the boring ones: they come with no surprises. Though complex protocols may enable advanced features for tokens, the token itself need not be complicated. ‘Simple’ refers to reducing the number of components composing a token project, and ‘modular’ refers to separating logic and responsibilities between contracts.”
Indeed, these are fundamental software design and development principles that are taught to computer science students who are enrolled in a University level bachelor’s program.
Modular code is easier to maintain and update because the source code really well organized. Writing modular code is not only recommended for blockchain-based apps, but it’s also a widely adopted best practice for developers working on all other types of software solutions.
Coinbase also mentions:
“Smart contract development is laced with subtleties, and failures can cost millions of dollars. An external audit from a reputable security firm, looking for both smart contract vulnerabilities and business logic flaws, can uncover critical issues and increase confidence in the correctness of the token.”
Just like traditional businesses are able to maintain greater transparency and accountability with audits, the developers of open-source software or even certain proprietary software can benefit from regular security checks or audit reports. These periodic checks ensure that operations are running smoothly, and the source code is free of errors which can turn into very costly mistakes if not fixed before publishing new code for thousands of users to run.
The Coinbase team also recommends:
“Well-organized and up-to-date documentation accurately describing a project in thorough detail is every engineer’s dream. Without such documentation, reviewers may be forced to spend excruciating time deciphering the project’s intent and structure.”
Documenting code is very important because when other software developers are trying to understand what you’ve done, they will be able to figure it out easily if they know what the code is supposed to do (which becomes a lot easier if it comes with documentation that clearly explains everything).
“By developing tokens with these security best practices in mind, the path towards building an open financial system becomes much safer. At Coinbase, we look forward to embracing new technology and listing innovative projects on our platform and hope this guidance will be useful both to developers and the community at large.”
Earlier this month, Coinbase Pro announced it would add Band Protocol (BAND), a cross-chain data oracle platform connecting external data to smart contracts.
The exchange recently noted that it’s considering listing Ampleforth, Blockstack, Hedera Hashgraph, Kava, The Graph, among other digital assets.