Create your account

Already have an account? Login here


Create account

Smart Contracts and Decentralized Apps 101

By Gary simon - Oct 21, 2017

I've been on the internet since the mid 90's (I was around 12 years old back then), and I can remember just a couple times when new technology excited me as much as the decentralized web, or web3.0. 

First, it was the ability to play awesome first person shooter games like Doom 2, and then learning how to create my own levels.

Next, it was learning Visual Basic to create actual software that interfaced with AOL to punt people offline and chatroom scrollers (wtf?).

Shortly thereafter, I started learning web design and development using Photoshop, Fireworks, HTML, CSS, PHP3 and MySQL.

Then came the various command-line build tools for frontend developers, bringing me to a serious case of nostalgia back in my MS-DOS days of Doom 2 development.

Now, it's the new era of decentralization. A new way to build apps on the underlying technology that empowers cryptocurrencies; the blockchain.

If you prefer watching a video instead..


What is the Blockchain?

"Blockchain", ooo, it sounds alien at first if you don't understand it, right? Well, like almost everything else in life, it's actually really simple.

In short, a blockchain is a distributed database that contains a list of records (data). Distributed means that instead of being stored on a central device somewhere, the entire database is actively synced and stored on a bunch of other devices. This is called a peer-to-peer network, much like how Napster was a peer-to-peer network for sharing music files.

The individual records in this distributed database are referred to as blocks, which are linked together and secured through cryptography. Why should they be secured? Well, in the case of cryptocurrencies, which are built on blockchains (with a few exceptions like the IOTA Tangle), security and immutability are very important for obvious reasons; you're dealing with important data.

The data contained in a blockchain is immutable, which means that it can't be changed. In this context, it's tamper-proof.

There's much more to Blockchains and how they actually work. I advise you to watch the 2 following videos to get a more complete picture of the concepts and technicalities behind Blockchains and how they work:

What is a Smart Contract?

The Bitcoin Blockchain stores data that's specific to keeping track of currency balances between parties.

The Ethereum Blockchain expands on Bitcoin in that it can store and do much more than the Bitcoin Blockchain. Ethereum allows developers like yourself to build DApps (Decentralized Apps).

These decentralized apps are defined by smart contracts. A smart contract allows individuals to exchange data in a trusted, conflict-free manner without relying on a third party like a bank, lawyer or notary.

These Ethereum Smart Contracts are stored as special transactions on the Ethereum Blockchain, which you can then use to build applications. You can think of smart contracts sort of like API's.

Due to smart contracts being stored on the Ethereum Blockchain, they need to be validated (or mined) like a regular transaction. Because of this, there is a small cost associated with deploying a smart contract and also altering its state. Fortunately, we will develop our smart contracts in a test environment that won't cost you a single cent - or ether.

If this is all confusing, don't worry, you will understand it as we progress throughout the course. For now, I'm just planting seeds.

What are Use Cases for Smart Contracts?

Because of the unique properties associated with smart contracts (decentralized, secure, speed, savings as compared to hiring third party intermediaries, backups, etc..), they lend themselves to a variety of use cases.

  • Voting
    Since the dawn of every government, elections have been rigged and tampered with. Smart contracts can make it impossible for individuals to modify voting records.

  • Record Keeping
    This goes hand in hand with voting above, because votes are simply records that detail an individual and their candidate selection. But other types of record keeping include establishing and securing electronic medical records, case history for law, etc..

  • Digital Identities
  • IOT (Internet Of Things)
  • Real Estate & Mortgages
  • Auctions

There are a mess of other potential use cases, but hopefully, you have a decent idea for now.

What is Solidity?

Solidity is the language that you can use to code the actual smart contracts. The syntax is very similar to JavaScript and it's designed with the Ethereum Virtual Machine in mind.

In this course, we will use Solidity to create our smart contracts. We will do this in the next lesson in a web-based IDE called Remix.


Share this post

Say something about this awesome post!