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

Designing an ownership contract


Ownership contracts have a wide number of real-life applications. But what is an ownership contract? Basically, these are smart contracts that can prove the ownership of a file without revealing the content of the file. As the contracts run on a blockchain, they can prove that a contract existed at a particular timestamp and check the document's integrity.

The integrity of a file is achieved by storing a hash of the file along with the file owner's name in the form of a key-value pair. The hash helps us to prevent fraud of ownership because any tampering with the file's content will give rise to a completely new hash value. Figure 7.11 shows a solidity implementation of the ownership contract:

Figure 7.11: Ownership smart contract

The corresponding web3.js file shown in Figure 7.12 can be embedded inside a JavaScript file:

Figure 7.12: Web3.js equivalent of a solidity contract

As you can see, we have not gone into the details of implementing this Web3.js equivalent...