Rob Behnke
April 16th, 2021
Blockchains are high-value targets for cybercriminals. These systems are designed to store and process cryptocurrency and valuable information. As demonstrated by numerous incidents, hacking a blockchain can net a significant financial gain for an attacker.
Blockchains can be “hacked” in a variety of different ways. Some blockchain attacks take advantage of poor protection of private keys, either by the owner of a blockchain account or a cryptocurrency exchange. Others target vulnerabilities in the blockchain protocol, like a 51% attack that takes advantage of the fact that Proof of Work consensus is based upon majority vote.
In some cases, cyberattackers take advantage of vulnerabilities within blockchain protocols or their implementations. These code exploitation attacks leverage design or programming errors to break the blockchain system.
Exploitable vulnerabilities in blockchain code can be classified in a few different ways. One is based on the “type” of vulnerability that exists. The other is where the issue is located in the blockchain stack.
Blockchain is commonly (and incorrectly) called “unhackable” because many of its security assumptions are based on cryptographic algorithms believed to be secure against modern systems.
However, blockchain systems can “go wrong” in a couple of different ways:
The blockchain is a complex, multi-layered ecosystem. This means that design and implementation errors can exist at multiple different levels:
Attacks against blockchain systems are increasingly taking advantage of design or implementation protocols in blockchain-related software. As the functionality built into and on the blockchain becomes more sophisticated and complex, the opportunities for exploitation increase.
Minimizing the threat of code exploitation requires a comprehensive security audit before releasing new code. This should include all levels of the blockchain ecosystem and consider both potential design and implementation issues.