Tired of ads? Enjoy an ad-free experience by signing up.
Gerald Nash · · 4 min read

Building a blockchain with 50 lines of code

Although some think blockchain is a solution waiting for problems, there’s no doubt that this technology is a marvel of computing. But what exactly is a blockchain?

According to my Google search, it is “a digital ledger in which transactions made in bitcoin or another cryptocurrency are recorded chronologically and publicly.”

In more general terms, it’s a public database where new data are stored in a container called a block and are added to an immutable chain (hence blockchain) with data added in the past. In the case of bitcoin and other cryptocurrencies, these data are groups of transactions. But, the data can be of any type, of course.

Blockchain technology has given rise to new, fully digital currencies like bitcoin and Litecoin that aren’t issued or managed by a central authority. This brings new freedom to individuals who believe that today’s banking systems are a scam or subject to failure. Blockchain has also revolutionized distributed computing in the form of technologies like Ethereum, which has introduced interesting concepts like smart contracts.

In this article, I’ll make a simple blockchain in less than 50 lines of Python 2 code. It’ll be called SnakeCoin.

Creating our own blockchain

We’ll start by first defining what our blocks will look like. In blockchain, each block is stored with a timestamp and an index (optional). In SnakeCoin, we’re going to store both. And to help ensure integrity throughout the blockchain, each block will have a self-identifying hash. Like bitcoin, each block’s hash will be a cryptographic one of the block’s index, timestamp, data, and the hash of the previous block’s hash. The data can be anything you want.

Photo credit: Aunyks.

Awesome! We have our block structure. But since we’re creating a blockchain, we need to start adding blocks to the actual chain. As I mentioned earlier, each block requires information from the previous one. That being said, how does the first block in the blockchain get there? Well, the first block (genesis block) is special. In many cases, it’s added manually or has a unique logic allowing it to be added.

We’ll create a function that simply returns a genesis block to make things easy. This block is of index 0, and it has an arbitrary data value and an arbitrary value in the “previous hash” parameter.

Photo credit: Aunyks.

Now that we’re able to create a genesis block, we need a function that will generate succeeding blocks. This function will take the previous block in the chain as a parameter, create the data for the one to be generated, and return the new one with its appropriate data. When new blocks hash information from previous ones, the integrity of the blockchain increases. If we don’t do this, it would be easier for an outside party to change the past and replace our chain with an entirely new one of their own.

This chain of hashes acts as cryptographic proof and helps ensure that once a block is added to the blockchain it cannot be replaced or removed.

This article was first published on Medium.

Stay ahead in Asia’s tech landscape

You've reached your 2 free content limit for the month. Sign up for free to read the full story.

🏄 For casual readers / 👶 Free

Basic

US$0

Free forever

Get instant access to this article and more every month

0 premium content

Unlimited news briefs

5

5 articles

Ad-free reading experience

Just US$0 per day

⌛Sign up in 20s. No payment details needed.

📖 For learners / 👍 Starter

Lite

US$4.92/month

Billed annually at US$59/year

Get instant access to this article and more every month

4

4 premium content

Unlimited news briefs & articles

Ad-free reading experience

Just US$0.17 per day

Cancel anytime

Our subscriber community includes professionals from these companies:

Stay updated on the go with our mobile app.

Get latest insights with smoother, more personalized experience through TIA mobile app.

Community Writer

Gerald Nash

Technology