Book Image

Securing Blockchain Networks like Ethereum and Hyperledger Fabric

By : Alessandro Parisi
Book Image

Securing Blockchain Networks like Ethereum and Hyperledger Fabric

By: Alessandro Parisi

Overview of this book

Blockchain adoption has extended from niche research to everyday usage. However, despite the blockchain revolution, one of the key challenges faced in blockchain development is maintaining security, and this book will demonstrate the techniques for doing this. You’ll start with blockchain basics and explore various blockchain attacks on user wallets, and denial of service and pool mining attacks. Next, you’ll learn cryptography concepts, consensus algorithms in blockchain security, and design principles while understanding and deploying security implementation guidelines. You’ll not only cover architectural considerations, but also work on system and network security and operational configurations for your Ethereum and Hyperledger Fabric network. You’ll later implement security at each level of blockchain app development, understanding how to secure various phases of a blockchain app using an example-based approach. You’ll gradually learn to securely implement and develop decentralized apps, and follow deployment best practices. Finally, you’ll explore the architectural components of Hyperledger Fabric, and how they can be configured to build secure private blockchain networks. By the end of this book, you’ll have learned blockchain security concepts and techniques that you can implement in real blockchain production environments.
Table of Contents (15 chapters)
1
Section 1: Blockchain Security Core Concepts
5
Section 2: Architecting Blockchain Security
8
Section 3: Securing Decentralized Apps and Smart Contracts
11
Section 4: Preserving Data Integrity and Privacy

Preventing smart contract attacks

We have seen how many attacks on smart contracts are often due to bugs contained within the source code. To prevent the occurrence of these bugs, it is thus appropriate to use specialized library functions that help the developer in the safe implementation of the most common functions. One of these libraries is the SafeMath library of the OpenZeppelin package (available at https://github.com/OpenZeppelin/openzeppelin-solidity).

By using the SafeMath library, it is possible to prevent bugs such as integer overflows and underflows.

In the following example, we show an excerpt of the implementation of the add() function offered by the SafeMath library:

pragma solidity ^0.4.24;

library SafeMath {

...

/**
* @dev Function to add two numbers
*/
function add(uint256 a, uint256 b)
internal pure returns (uint256 c) {
c = a + b;
assert(c >= a);
...