Blockchain for Developers

Why should developers be interested in Blockchain?

Blockchain, Bitcoin, Ethereum and numerous other blockchain-based technologies are lauded by many and are arguably changing the future in countless ways.

I’m interested in blockchain because it’s the perfect combination of finance, coding and research. It’s a whole new field in software development, and it’s opened up numerous ideas as to how we could solve hard, decentralised problems.

There’s vast sums of money being thrown into blockchain by individuals, organisations and large players like VCs, countries (for instance, Singapore), and the big financial institutions. This is largely because of the technology’s potential to disrupt so many industries.

We’re all aware that we can’t foresee what the future holds, whether this “blockchain thing” will be around in a few years but what I can tell you is that it has already made a massive mark on our world and there does not seem to be any slowing it now. As developers, we have the privilege to be at the forefront of this amazing technology and, in this article, I will share a couple of different ways to get started.

How do you develop for the blockchain?

So, what does it mean to be a blockchain developer? There are many ways that a developer can be involved in this field, with a few outlined below, which I will discuss in more detail.

  1. Develop a DApp (Decentralised Application)
  2. Contributing to a specific blockchain protocol
  3. Writing applications for enterprise blockchains
  4. Creating your own blockchain
  5. Cryptography

Develop a DApp (Decentralised Application)

“A DApp has its backend code running on a decentralized peer-to-peer network. Contrast this with an app where the backend code is running on centralized servers.” [8]. With the advent of blockchains like Ethereum, new possibilities have materialised from creating self-sovereign identities [9], decentralised exchanges [11], decentralised crowd-funding [10], microloans and many more.

Eos, “The Most Powerful Infrastructure for Decentralized Applications” [13], is often spoken of in the blockchain world, having raised over $200 million in its ICO [14.] With so much at stake, it would definitely be a platform to start developing on if you have a mind for it.

With blockchain arguably changing the way we use the internet, as the creators of IPFS [12] believe, a whole new world of apps for development are ready to be developed and, as always, first-mover advantage applies.

Contributing to an existing blockchain protocol/software

With most blockchains and their applications being open-sourced, you, as a skilled developer, can also contribute. Although the learning curve for some of these are steep and you have no guarantees of your PR (pull request) being accepted, you can start by helping with small things like contributing to the documentation.

Currently, the space has its fair share of politics, which means that the best solution/PR does not always get accepted, but, if you stick with it and you have a passion for it, it can increase your credibility as a developer, and be extremely rewarding intellectually at the same time.

Writing applications for enterprise blockchains

One of the first applications for blockchain is removing the need for banks. As my colleague Farzam Ehsani explained in “The Advent of Crypto Banking” [16], this is not necessarily the case, however, the banking industry could very well be transformed in a major way. Financial institutions, in order to be not left behind, will need experts in blockchain to research and potentially even use the technology to better serve the organisation and its clients.

There is a lot of work being done on private blockchains/enterpise blockchains [17], and for further reading for the interested developer, I would suggest the following links as a starting point: The Ethereum Foundation [18] and its reference implementation Quorum [19], Chain Core [22] and the Hyperledger foundation [21] with one of its implementations: Hyperledger Fabric [20].

Creating your own blockchain

This heading says it all, and as previously mentioned, with most of the blockchains being open-sourced, you can always fork it (see [15] for examples), and create your own blockchain. There are several new blockchains being created, each with unique flavours that attempt to solve the same problem (or different problems) in a slightly different way.

I need to caveat this statement by explaining that this is by no means a small venture, and just because you fork the Bitcoin code does not mean you will be successful, let alone mimic the success that Bitcoin has enjoyed so far and into the future. Like every entrepreneurial effort, marketing and publicity play a big role and it’s often not what your solution does, but who is involved that makes the difference to your project’s success in the blockchain space.

Cryptography

Blockchain has its roots in a movement called the “cypherpunks” [1], whose manifesto [2] opens with:

“Privacy is necessary for an open society in the electronic age. Privacy is not secrecy. A private matter is something one doesn’t want the whole world to know, but a secret matter is something one doesn’t want anybody to know. Privacy is the power to selectively reveal oneself to the world.”

They are a collective dedicated to solving privacy in a digital age by using software. With the advent of blockchain-based technologies, there has been an increased focus on being able to cryptographically verify that you are the owner of a certain amount of , for example, without giving away too much or any information or compromising the owner’s privacy.

While Bitcoin appears to have solved this, there are still a number of cryptographic challenges being worked on and, as computing power increases, so will our need for stronger and more secure algorithms. After all, in a blockchain world, your money is only as secure as the underlying cryptography.

For interesting topics of research and a starting point into cryptography in Bitcoin, look at Proof of Work [7], Proof of stake [6], ZkSnarks [4] and Secp256k1.

Final thoughts

A good read to understand the inner workings of Bitcoin is Mastering Bitcoin [5], a deep dive into Bitcoin for software developers. This space is such a wonderful world of discovery for developers, technology enthusiasts and many more and the only risk is being sucked in. As developers, we are shaping the future, and it’s exciting.

References:

  1. The rise of the cypherpunks – [https://www.coindesk.com/the-rise-of-the-cypherpunks/]
  2. A Cypherpunk’s manifesto – [https://www.activism.net/cypherpunk/manifesto.html]
  3. Secp256k1 – [https://en.bitcoin.it/wiki/Secp256k1]
  4. zkSNARKs – [https://blog.ethereum.org/2016/12/05/zksnarks-in-a-nutshell/]
  5. Mastering Bitcoin – [https://github.com/bitcoinbook/bitcoinbook/tree/second_edition]
  6. Proof of stake – [https://en.wikipedia.org/wiki/Proof-of-stake]
  7. Proof of work – [https://en.wikipedia.org/wiki/Proof-of-work_system]
  8. What is a DApp – [https://ethereum.stackexchange.com/questions/383/what-is-a-dapp]
  9. Self-Sovereign Identity – [https://www.coindesk.com/path-self-sovereign-identity/]
  10. 7 cool decentralized apps built in Ethereum – [https://www.coindesk.com/7-cool-decentralized-apps-built-ethereum/]
  11. What is a decentralized exchange – [https://www.cryptocompare.com/exchanges/guides/what-is-a-decentralized-exchange]
  12. IPFS – [https://ipfs.io/]
  13. EOS – [https://eos.io/]
  14. ICO – [http://www.investopedia.com/terms/i/initial-coin-offering-ico.asp]
  15. Bitcoin forks – [https://en.wikipedia.org/wiki/List_of_bitcoin_forks]
  16. The Advent of Crypto Banking – [https://www.scribd.com/document/333724882/The-Advent-of-Crypto-Banking-November-2016#from_embed]
  17. Private Blockchains – [https://www.ibm.com/blogs/blockchain/2017/05/the-difference-between-public-and-private-blockchain/]
  18. Ethereum Foundation – [https://www.ethereum.org/foundation]
  19. Quorum – [https://www.jpmorgan.com/global/Quorum]
  20. Hyperledger Fabric – [https://hyperledger-fabric.readthedocs.io/en/latest/]
  21. Hyperledger – [https://www.hyperledger.org/]
  22. Chain – [https://chain.com/]

by Theodore Bohnen

RMB FOUNDeRY

Author RMB FOUNDeRY

More posts by RMB FOUNDeRY