Book Image

Ethereum Smart Contract Development

By : Mayukh Mukhopadhyay
Book Image

Ethereum Smart Contract Development

By: Mayukh Mukhopadhyay

Overview of this book

Ethereum is a public, blockchain-based distributed computing platform featuring smart contract functionality. This book is your one-stop guide to blockchain and Ethereum smart contract development. We start by introducing you to the basics of blockchain. You'll learn about hash functions, Merkle trees, forking, mining, and much more. Then you'll learn about Ethereum and smart contracts, and we'll cover Ethereum virtual machine (EVM) in detail. Next, you'll get acquainted with DApps and DAOs and see how they work. We'll also delve into the mechanisms of advanced smart contracts, taking a practical approach. You'll also learn how to develop your own cryptocurrency from scratch in order to understand the business behind ICO. Further on, you'll get to know the key concepts of the Solidity programming language, enabling you to build decentralized blockchain-based applications. We'll also look at enterprise use cases, where you'll build a decentralized microblogging site. At the end of this book, we discuss blockchain-as-a-service, the dark web marketplace, and various advanced topics so you can get well versed with the blockchain principles and ecosystem.
Table of Contents (18 chapters)
Title Page
Dedication
Packt Upsell
Contributors
Preface
Index

The rise and fall of DAO


The original, vulnerable DAO had many complex contracts but the essence was the same as that of the simple DAO we created in the previous section. In May 2016, DAO was formed by a huge crowdsourcing of funds, where stakeholders bought Initial coin offers (ICO) worth more than 150 million USD. But in the next month, June 2016, a hacker (one of the users) exploited the vulnerability to siphon out around 50 million to their own wallet. This amount was later taken back by blockchain reorganization but led to the hard fork of ETH/ETC. Calling this a "hack" is technically a misnomer because there was no break-and-enter violation of the fundraiser. It just exploited a vulnerable line of code logic present in the DAOFundraiser contract by changing the wallet logic.

This is quite possible because wallets are normally separate modules and can have any custom logic and interface. Figure 4.10 represents the function block that is vulnerable to an exploit. Please note, we have...