Introducing Ethereum and Solidity: Foundations of Cryptocurrency and Blockchain Programming for Beginners is a light introduction to Ethereum and its built-in scripting language, Solidity. At 179 pages, this book is not a comprehensive tutorial about building decentralized apps (also called DAPPS). The book does, however, provide a very brief overview of developing and deploying smart contracts on Ethereum. Author Chris Dannen does an excellent job of including links for more information. The book also has a companion Web site where you can get the scripts that the book discusses.
Ethereum is Bitcoin’s More Adventurous Offspring
Ethereum promises to be many things that Bitcoin isn’t. Bitcoin led the way by proving that it’s possible to create a currency without a central authority, like a government, or gatekeepers, like banks. So if we can have decentralized money, why not decentralized business models or even whole industries? Think Facebook without Facebook and Uber without Uber. There would be no “middleman” collecting a 20% “rent” on every transaction or sucking up everyone’s personal information so that it could make money by putting ads in front of us. Ethereum aims to make decentralization possible by marrying the blockchain with a full programming language called Solidity. The Ethereum blockchain provides the trust element required for any contract. The code you develop in Solidity provides the business logic. To replace gatekeepers, you can build all of the necessary functionality into “smart contracts” that you write in Solidity. But while Ethereum enables you to do cool things with smart contracts, the more complicated code that you have to write to implement a smart contract is far more likely to expose security vulnerabilities. In contrast to Solidity, Bitcoin’s scripting language is much more limited, but it’s also more secure.
The Book’s Content
Introducing Ethereum and Solidity shows you how to install Ethereum’s Mist browser, which functions as a wallet and a full Ethereum node that you can opt to run on the real Ethereum network or the Ethereum test net. Since it’s a full node, you’ll have to synchronize (i.e., download) the entire Ethereum blockchain. It took well over a day for me to sync the Ethereum blockchain and a little less for the test net.
The book shows how to create some elementary Solidity programs that you can deploy to the Ethereum blockchain, or rather, the Ethereum Virtual Machine (EVM). The concept behind the EVM is that it’s essentially a giant computer that runs across all nodes on the Ethereum network. To help ensure that people don’t deploy Solidity programs that run amok, the EVM charges smart contracts a small amount of Ether, which is called “gas,” for every operation that the code performs. If your smart contract runs out of gas, then it will stop.
You’ll also learn how to set up an Ethereum miner. Your miner can compete to create, or “mint,” new “Ether,” which is Ethereum’s currency. But don’t expect to mint a great deal (or any) Ether. Your home workstation is unlikely to be competitive with today’s massive-scale miners in solving Ethereum’s current proof-of-work (POW) puzzle, which is what your miner will have to do to make new Ether. The book finishes with chapters about Ethereum’s development roadmap and use cases for potential real-world DAPPS.
“There be monsters here.”
In the chapter about futures, Dannen discusses some of the enhancements that the Ethereum developers are planning. Those changes should enable the platform to handle more large-scale applications. For example, according to Alcoin Today, the entire Bitcoin network can process a maximum of about four transactions per second while Ethereum tops out at 20 transactions per second. In contrast, Visa actually processed, on average, 1,677 transactions per second during 2016, and claims that it can handle “more than 56,000 transaction messages per second.” So for blockchain-based platforms to challenge the status quo, the technology will have to evolve. One way that the Ethereum developers plan to achieve better throughput is by switching from a POW consensus algorithm to a Proof of Stake (POS) algorithm. POW ensures that anyone who adds transactions to the blockchain had to invest in significant processing power (e.g., build a data center next to a hydroelectric dam in Iceland). But POW also wastes a great deal of electricity and limits transaction throughput. In simple terms, POS requires that someone holds a certain amount of Ether, not solve a puzzle. The Ethereum developers hope that POS will make it possible to scale transaction volumes more efficiently. It is important to note, however, that after six years without any significant compromises, POW has proven remarkably impervious to hackers. Will switching to POS open a “New World” of dramatically increased scalability, or will the ever-present hacker monsters find security holes that they could exploit to damage, or even destroy, Ethereum. Like Columbus setting sail in 1492, the adventure entails substantial risks but also has significant potential rewards. We’ll see in 2018 when Ethereum embarks on its POS voyage.
Reading this book will not prepare you to develop the kind of smart contracts you’ll need to render Google’s business model obsolete, but at least you’ll be familiar with the basic concepts of Ethereum and why it promises to be so disruptive. From there, you can try some of the many online tutorials, or wait until Andreas Antonopoulos’ Ethereum book comes out in early 2018. Introducing Ethereum and Solidity is, however, an excellent place to start by getting “feet wet.”