7 blockchain technologies to witness out for in two thousand seventeen – Gaurang Torvekar – Medium

7 blockchain technologies to see out for in 2017

“Blockchain”, the underlying technology behind Bitcoin has been gaining momentum for a duo of years now. With so many fresh technologies and DAPPs being written almost every week, there’s a staggering amount of fresh things to look out for. For anyone kicking off out with blockchain development, or just knowing more about blockchain itself, there are a number of technologies to choose from. This brief guide will give you an overview of the landscape and you can choose any of the technologies that is most suitable for your use case.

In this post, I am going to attempt and be unbiased towards any one protocol, and give an overview of the different blockchain protocols from a developer’s point of view as we inject 2017. Since there are so many different sidechains for Bitcoin, and different implementations for Ethereum, I won’t be able to cover the entire gamut, but I will attempt to cover most of the major standalone implementations at least.

Please note that I am just attempting to give a non-partisan view on the technology and the challenges in general. I do not necessarily agree or disagree with any of the views or criticisms levelled against them.

Here’s the list of the implementation I am going to cover –

  1. Bitcoin
  2. ZCash
  3. Ethereum
  4. Ripple
  5. Hyperledger Fabric
  6. Corda
  7. Intel Sawtooth

Let’s commence with the “first” blockchain — Bitcoin

Bitcoin

Bitcoin blockchain was very first introduced by Satoshi Nakamoto in his white paper back in the year 2008. While Bitcoin as a cryptocurrency has caught the attention of the mainstream media, as a developer, far more interesting is the underlying technology — Blockchain! This is where it all embarked. Bitcoin was a superb innovation, because it solved two fundamental problems in a decentralized manner — preventing dual spend and decentralised trust!

Bitcoin blockchain uses UTXOs (Unspent Transaction Outputs) mechanism. The main components of a Bitcoin transaction are Transaction ID, Descriptors and meta data, Inputs and Outputs. Every transaction will receive some input and generate some outputs. Along with this, you can also embed some data in the transaction, in a field called OP_RETURN. This field has been used for many innovative use cases, from writing graffiti on the blockchain, to putting your marriage certificates on the blockchain to the introduction of Colored Coins.

Over the years, as the Bitcoin network has proliferated, and the number of people using Bitcoin has enlargened, we have seen a significant increase in the number of transactions on the network. But the network has been incapable to scale efficiently along with the enhancing number of TXNs, which has led to a significant block time, around 10–15 minutes on an average. there have been several attempts to solve this issue —

  1. Enlargening the block size
  2. Payment channels
  3. Decreasing the transaction data size

Segwit (Segregated Witness)

While there were a lot of discussions and debates going on about enlargening the block size of the Bitcoin blockchain itself, in a Scaling Bitcoin conference in Hong Kong in December 2015, one of the Bitcoin lead developers, Pieter Wuille, introduced the idea of Segwit at that conference. It was an interesting innovation which proposed to eliminate the signature data from transactions and send it separately, thus enlargening the capacity of the blocks to carry more transactions.

In this case, the word ‘segregated’ actually means separation, and the word ‘witness’ stands for signature data. When the signature data is liquidated from the transaction data, it is estimated that the size of transactions will reduce by 40%, enabling more transactions to fit in a single block. While Segwit itself cannot be the only solution for Scaling Bitcoin, when it is used in combination with other solutions like Payment Channels and/or maybe enhancing the block size, it will certainly help make Bitcoin able to treat more transactions and use cases.

Now, considering this awesome innovation, one might question why this isn’t being already implemented? The reason is that, as written in the code of the Segwit release, it will be activated fully only once there is an adoption by 95% of the miners, and then a grace period of two thousand sixteen transaction blocks. As of December 2016, harshly 30% of the knots were on Segwit.

Albeit this is a indeed innovative solution, some people have opined their reservations about it.

“Even with Segregated Witness, the network will reach a point where it needs to scale again,” — Jacob Donelly, in an article in Bitcoin magazine

Zcash

Zcash is the latest shiny thing in the land of Bitcoin and blockchains. Personally, I have always been fascinated by Zero-Knowledge proofs, and Zcash is one of the best embodiments of this technology. Another non-technical challenge of Bitcoin, and one of the criticisms by users has been the public nature of the transactions. All the transactions can be traced back to an originating address (unless you go through a mixing service or some other mechanism) and this can lead to a lot of problems, like exposing how much assets you own. Also, there’s the issue of using ‘tainted Bitcoins’ — the Bitcoins which have been used for illegal or shady purposes before.

Zcash is a decentralized and open-source cryptocurrency that offers privacy and selective transparency of transactions. Zcash payments are published on a public blockchain, but the sender, recipient, and amount of a transaction remain private. -https://z.cash

The implications of this are enormous! Now you have a way of transferring assets on the blockchain without exposing all your private information. It is built on top of Bitcoin Core’s codebase and the major improvement is the addition of privacy. Without exposing the details of the transactions, the users simply prove that the transactions are balanced out, and they’re not dual spending. They use a zero-knowledge proof contruction called Zk-SNARK. This might seem like magic, so let me attempt and explain Zero Skill Proofs in a duo of sentences —

Essentially, a Zero Skill Proof is a way in which a “prover” is able to verify a certain truth so that he doesn’t expose the secret used to prove to the “verifier”. One of the real world examples of this can be a way to “prove” to a website that your login password is the right password without actually exposing the cleartext password to the server itself (which usually hashes the password and compares it with the hash stored in the database).

You can find a wonderful explanation of Zero Skill Proofs at this blog by Prof. Matthew Green from John Hopkins University.

Obviously, Zcash hasn’t been without its problems. Some people have criticized it as being a “corporate” coin, with the mining and deployment centralized with the founding team. Also, there are concerns about the Master private key which is accesible to the six members of the founding team.

Ethereum

Etheruem is a blockchain which was the brainchild of Vitalik Buterin, and the very first public implementation, called Frontier was released in mid-2015. Etheruem has a Turing-complete virtual machine called EVM. The major improvement over the Bitcoin blockchain is the native capability to write Clever Contracts. Ethereum has several languages which can accomplish this — Solidity, Serpent, LLL, etc. albeit Solidity is presently the most supported language by the community.

Ethereum has been observing a growing interest from the community and the industry itself. It also has its native currency called Ether, which is traded on exchanges. A major innovation in Ethereum is the relative plainness of deploying brainy contracts which have been used to create ‘tokens’, which represent certain physical assets like Fiat currency, Gold, company shares, computational hours, to name a few. There are also many companies who have done ICOs (Initial Coin Suggesting) on Etheruem which is similar to an IPO, but with Ethereum’s tokens.

The challenges faced by Etheruem are in a way similar to that of Bitcoin, namely scalability and “wide” adoption from entprises. Etheruem is attempting to solve the problem of scalability by adopting a fresh consensus algorithm called Proof-of-Stake, which will be in a release called Serenity, the final phase of development. But before that, in 2017, we will see the release of Metropolis, which will be a major landmark in Etheruem development. It has to do with simplifying the client implementations, thus making it lighter for non-technical people to deal with Etheruem and also improving the security logic in Brainy Contracts. The other challenge – adoption by enterprises – is solved by implementations like Eris.

Eris is built on top of EVM, but with a different consensus algorithm by Tendermint, which is Proof-of-Stake. Most of the enterprises who want to adopt Ethereum as a private blockchain are presently using Eris, which is being developed by the company Monax. It provides a permissioned layer on top of Ethereum, thus enabling the enterprises to set up and use a private blockchain network.

Ripple

Ripple is a blockchain technology, which concentrates on settlement and financial applications of the technology. It has been built from ground up so that it can integrate lightly with banks’ existing infrastructure, without much integration overhead.

Ripple’s distributed financial technology enables banks to send real-time international payments across networks. – https://ripple.com

Ripple is a private company, which has been developing this protocol for a few years now, and they have raised some substantial rounds of funding. They are also witnessing good adoption in banks and financial institutions. The basic protocol is called Interledger Protocol (ILP), which enables banks to send payments across different ledgers and networks globally. They also have a cryptocurrency with the same name (XRP), which is the third largest in terms of market capitalisation, just behind Bitcoin and Ethereum.

There is also a concept of ILP validators in a Ripple network. The banks have an option of choosing their own centralised ILP validators or else relying on a network of ILP validators already present in the network which rely on a BFT consensus algorithm. While ILP validators provide a central truth and validate the transactions, they also maintain the privacy of the transactions. They just make sure that certain “crypto-conditions” are met. In this example, whether the funds are available for transfer or not. You can find more information about ILP validators in this ILP white paper.

Hyperledger

Just to make things clear, Hyperledger project is an incubation project for different Distributed Ledger Technologies (DLT) by the Linux Foundation. This project presently has three implementations in incubation — namely, Fabric, Sawtooth and recently Corda. While Fabric is the implementation by IBM, Sawtooth is being developed by Intel and Corda by R3.

In this section I am going to talk about the implementation by IBM called Fabric. Fabric is essentially a private version of the blockchain, in which the knots in the network form a private chain and share the data. This blockchain is being primarily used by enterprises for conducting POCs and solve the different problems existing in the enterprise ecosystem. Fabric is an open-source protocol and developers can contribute to the development. It is about to release a v1.0 (mostly Q1-Q2 2017) wherein there will be major switches in the protocol, including the consensus algorithms.

Presently, it has three main modules — Membership services, blockchain services and chaincode services. Membership services is the place where any fresh member has to register while joining the network. This acts like a Certificate Authority (CA) and maintains and blacklists the different knots. Blockchain services has the consensus module, the actual ledger service and the P2P protocol. The chaincode services module contains the “chaincode”, which are Clever Contracts in dockerized containers.

The entire architecture of Fabric is modular and you can ass-plug and play different modules in the system. For example, you can either have a NOOPS (a single validating peer without a need for consensus) or use PBFT consensus algorithm. Another advantage is that, you can write the chaincode using JAVA or Golang, which are familiar to most of the developers instead of learning fresh languages like in the case of Etheruem.

Corda is an implementation of the DLT developed by a company called R3. While they were developing it independently earlier, they became a part of the Hyperledger project later on. In November 2016, they open-sourced the code of the project. This implementation is based on the UTXO model, similar to Bitcoin as opposed to Ethereum.

“We don’t have blocks and we don’t have a chain” -Tim Grant, CEO, R3 Lab and Research Center

In Corda, there is a concept of state switches and transactions instead of blocks and a chain. Corda aims to achieve much more scalability and address the privacy concerns that are required by banks and other financial institutions by including “Notaries” in their network. Notaries essentially perform the function of miners, but without the overhead of performing expensive Proof-of-Work algorithms. They validate all the transactions and only once its timestamped by a notary can it be included in the immutable chain. Notaries can either be centralized (eg. R3 knots themselves or Central banks) or they can be distributed (in this case they will use a consensus algorithm, mostly PBFT, and there would be a trade off with scalability). In Corda, you can write the Brainy Contracts using Java and Kotlin.

According to their documentation, this ledger is specifically meant for Financial applications, and all other non-financial applications are outside the scope.

Sawtooth Lake is an implementation of Hyperledger project being developed by Intel. It is an open source project with an Apache license.

Sawtooth Lake is presently in its version 0.8 and is considered an experimental version. It is NOT advised for use in security sensitive applications in its documentation.

It provides a “Nakamoto consensus” algorithm called PoET (Proof of Elapsed Time) which can be executed in a Trusted Execution Environment (TEE) such as Intel® Software Guard Extensions (SGX). In a way, the principle is similar to that of Bitcoin, wherein the very first validator to win the “lottery” (in case of Bitcoin, solving a cryptographic puzzle) propagates the block. But in case of Sawtooth Lake, the validators request for a ‘wait time’ from a trusted function, possibly a secure processor and the validator with the shortest wait time wins the lottery for that round. It is also called a “proof of processor” algorithm. It has a concept of “transaction family” for indicating the data model and the ledger services. While they expect the users to implement their own transaction family services, they also provide some service out of the box. Another Bitcoin scalability technology, TEECHAN also plans to use such a TEE.

Challenges for Hyperledger implementations

Some of the challenges facing Hyperledger in general are the maturity of the technology itself. Compared to Bitcoin and Ethereum, there is a lesser adoption from the broader community outside the enterprises themselves or their developer community. While protocols like Bitcoin and Ethereum have been around for a few years and survived major switches and attacks on its code, Hyperledger protocols are relatively newer and hence there might be some unknowns when it comes to scalable production grade applications.

7 blockchain technologies to observe out for in two thousand seventeen – Gaurang Torvekar – Medium

7 blockchain technologies to see out for in 2017

“Blockchain”, the underlying technology behind Bitcoin has been gaining momentum for a duo of years now. With so many fresh technologies and DAPPs being written almost every week, there’s a staggering amount of fresh things to look out for. For anyone kicking off out with blockchain development, or just knowing more about blockchain itself, there are a number of technologies to choose from. This brief guide will give you an overview of the landscape and you can choose any of the technologies that is most suitable for your use case.

In this post, I am going to attempt and be unbiased towards any one protocol, and give an overview of the different blockchain protocols from a developer’s point of view as we come in 2017. Since there are so many different sidechains for Bitcoin, and different implementations for Ethereum, I won’t be able to cover the entire gamut, but I will attempt to cover most of the major standalone implementations at least.

Please note that I am just attempting to give a non-partisan view on the technology and the challenges in general. I do not necessarily agree or disagree with any of the views or criticisms levelled against them.

Here’s the list of the implementation I am going to cover –

  1. Bitcoin
  2. ZCash
  3. Ethereum
  4. Ripple
  5. Hyperledger Fabric
  6. Corda
  7. Intel Sawtooth

Let’s commence with the “first” blockchain — Bitcoin

Bitcoin

Bitcoin blockchain was very first introduced by Satoshi Nakamoto in his white paper back in the year 2008. While Bitcoin as a cryptocurrency has caught the attention of the mainstream media, as a developer, far more interesting is the underlying technology — Blockchain! This is where it all commenced. Bitcoin was a good innovation, because it solved two fundamental problems in a decentralized manner — preventing dual spend and decentralised trust!

Bitcoin blockchain uses UTXOs (Unspent Transaction Outputs) mechanism. The main components of a Bitcoin transaction are Transaction ID, Descriptors and meta data, Inputs and Outputs. Every transaction will receive some input and generate some outputs. Along with this, you can also embed some data in the transaction, in a field called OP_RETURN. This field has been used for many innovative use cases, from writing graffiti on the blockchain, to putting your marriage certificates on the blockchain to the introduction of Colored Coins.

Over the years, as the Bitcoin network has proliferated, and the number of people using Bitcoin has enhanced, we have seen a significant increase in the number of transactions on the network. But the network has been incapable to scale efficiently along with the enhancing number of TXNs, which has led to a significant block time, around 10–15 minutes on an average. there have been several attempts to solve this issue —

  1. Enlargening the block size
  2. Payment channels
  3. Decreasing the transaction data size

Segwit (Segregated Witness)

While there were a lot of discussions and debates going on about enlargening the block size of the Bitcoin blockchain itself, in a Scaling Bitcoin conference in Hong Kong in December 2015, one of the Bitcoin lead developers, Pieter Wuille, introduced the idea of Segwit at that conference. It was an interesting innovation which proposed to liquidate the signature data from transactions and send it separately, thus enhancing the capacity of the blocks to carry more transactions.

In this case, the word ‘segregated’ actually means separation, and the word ‘witness’ stands for signature data. When the signature data is liquidated from the transaction data, it is estimated that the size of transactions will reduce by 40%, enabling more transactions to fit in a single block. While Segwit itself cannot be the only solution for Scaling Bitcoin, when it is used in combination with other solutions like Payment Channels and/or maybe enhancing the block size, it will undoubtedly help make Bitcoin able to treat more transactions and use cases.

Now, considering this awesome innovation, one might question why this isn’t being already implemented? The reason is that, as written in the code of the Segwit release, it will be activated fully only once there is an adoption by 95% of the miners, and then a grace period of two thousand sixteen transaction blocks. As of December 2016, harshly 30% of the knots were on Segwit.

Albeit this is a indeed innovative solution, some people have opined their reservations about it.

“Even with Segregated Witness, the network will reach a point where it needs to scale again,” — Jacob Donelly, in an article in Bitcoin magazine

Zcash

Zcash is the latest shiny thing in the land of Bitcoin and blockchains. Personally, I have always been fascinated by Zero-Knowledge proofs, and Zcash is one of the best embodiments of this technology. Another non-technical challenge of Bitcoin, and one of the criticisms by users has been the public nature of the transactions. All the transactions can be traced back to an originating address (unless you go through a mixing service or some other mechanism) and this can lead to a lot of problems, like exposing how much assets you own. Also, there’s the issue of using ‘tainted Bitcoins’ — the Bitcoins which have been used for illegal or shady purposes before.

Zcash is a decentralized and open-source cryptocurrency that offers privacy and selective transparency of transactions. Zcash payments are published on a public blockchain, but the sender, recipient, and amount of a transaction remain private. -https://z.cash

The implications of this are enormous! Now you have a way of transferring assets on the blockchain without exposing all your individual information. It is built on top of Bitcoin Core’s codebase and the major improvement is the addition of privacy. Without exposing the details of the transactions, the users simply prove that the transactions are balanced out, and they’re not dual spending. They use a zero-knowledge proof contruction called Zk-SNARK. This might seem like magic, so let me attempt and explain Zero Skill Proofs in a duo of sentences —

Essentially, a Zero Skill Proof is a way in which a “prover” is able to verify a certain truth so that he doesn’t expose the secret used to prove to the “verifier”. One of the real world examples of this can be a way to “prove” to a website that your login password is the right password without actually exposing the cleartext password to the server itself (which usually hashes the password and compares it with the hash stored in the database).

You can find a wonderful explanation of Zero Skill Proofs at this blog by Prof. Matthew Green from John Hopkins University.

Obviously, Zcash hasn’t been without its problems. Some people have criticized it as being a “corporate” coin, with the mining and deployment centralized with the founding team. Also, there are concerns about the Master private key which is accesible to the six members of the founding team.

Ethereum

Etheruem is a blockchain which was the brainchild of Vitalik Buterin, and the very first public implementation, called Frontier was released in mid-2015. Etheruem has a Turing-complete virtual machine called EVM. The major improvement over the Bitcoin blockchain is the native capability to write Brainy Contracts. Ethereum has several languages which can accomplish this — Solidity, Serpent, LLL, etc. albeit Solidity is presently the most supported language by the community.

Ethereum has been watching a growing interest from the community and the industry itself. It also has its native currency called Ether, which is traded on exchanges. A major innovation in Ethereum is the relative simpleness of deploying wise contracts which have been used to create ‘tokens’, which represent certain physical assets like Fiat currency, Gold, company shares, computational hours, to name a few. There are also many companies who have done ICOs (Initial Coin Suggesting) on Etheruem which is similar to an IPO, but with Ethereum’s tokens.

The challenges faced by Etheruem are in a way similar to that of Bitcoin, namely scalability and “wide” adoption from entprises. Etheruem is attempting to solve the problem of scalability by adopting a fresh consensus algorithm called Proof-of-Stake, which will be in a release called Serenity, the final phase of development. But before that, in 2017, we will see the release of Metropolis, which will be a major landmark in Etheruem development. It has to do with simplifying the client implementations, thus making it lighter for non-technical people to deal with Etheruem and also improving the security logic in Brainy Contracts. The other challenge – adoption by enterprises – is solved by implementations like Eris.

Eris is built on top of EVM, but with a different consensus algorithm by Tendermint, which is Proof-of-Stake. Most of the enterprises who want to adopt Ethereum as a private blockchain are presently using Eris, which is being developed by the company Monax. It provides a permissioned layer on top of Ethereum, thus enabling the enterprises to set up and use a private blockchain network.

Ripple

Ripple is a blockchain technology, which concentrates on settlement and financial applications of the technology. It has been built from ground up so that it can integrate lightly with banks’ existing infrastructure, without much integration overhead.

Ripple’s distributed financial technology enables banks to send real-time international payments across networks. – https://ripple.com

Ripple is a private company, which has been developing this protocol for a few years now, and they have raised some substantial rounds of funding. They are also observing good adoption in banks and financial institutions. The basic protocol is called Interledger Protocol (ILP), which enables banks to send payments across different ledgers and networks globally. They also have a cryptocurrency with the same name (XRP), which is the third largest in terms of market capitalisation, just behind Bitcoin and Ethereum.

There is also a concept of ILP validators in a Ripple network. The banks have an option of choosing their own centralised ILP validators or else relying on a network of ILP validators already present in the network which rely on a BFT consensus algorithm. While ILP validators provide a central truth and validate the transactions, they also maintain the privacy of the transactions. They just make sure that certain “crypto-conditions” are met. In this example, whether the funds are available for transfer or not. You can find more information about ILP validators in this ILP white paper.

Hyperledger

Just to make things clear, Hyperledger project is an incubation project for different Distributed Ledger Technologies (DLT) by the Linux Foundation. This project presently has three implementations in incubation — namely, Fabric, Sawtooth and recently Corda. While Fabric is the implementation by IBM, Sawtooth is being developed by Intel and Corda by R3.

In this section I am going to talk about the implementation by IBM called Fabric. Fabric is essentially a private version of the blockchain, in which the knots in the network form a private chain and share the data. This blockchain is being primarily used by enterprises for conducting POCs and solve the different problems existing in the enterprise ecosystem. Fabric is an open-source protocol and developers can contribute to the development. It is about to release a v1.0 (mostly Q1-Q2 2017) wherein there will be major switches in the protocol, including the consensus algorithms.

Presently, it has three main modules — Membership services, blockchain services and chaincode services. Membership services is the place where any fresh member has to register while joining the network. This acts like a Certificate Authority (CA) and maintains and blacklists the different knots. Blockchain services has the consensus module, the actual ledger service and the P2P protocol. The chaincode services module contains the “chaincode”, which are Brainy Contracts in dockerized containers.

The entire architecture of Fabric is modular and you can butt-plug and play different modules in the system. For example, you can either have a NOOPS (a single validating peer without a need for consensus) or use PBFT consensus algorithm. Another advantage is that, you can write the chaincode using JAVA or Golang, which are familiar to most of the developers instead of learning fresh languages like in the case of Etheruem.

Corda is an implementation of the DLT developed by a company called R3. While they were developing it independently earlier, they became a part of the Hyperledger project later on. In November 2016, they open-sourced the code of the project. This implementation is based on the UTXO model, similar to Bitcoin as opposed to Ethereum.

“We don’t have blocks and we don’t have a chain” -Tim Grant, CEO, R3 Lab and Research Center

In Corda, there is a concept of state switches and transactions instead of blocks and a chain. Corda aims to achieve much more scalability and address the privacy concerns that are required by banks and other financial institutions by including “Notaries” in their network. Notaries essentially perform the function of miners, but without the overhead of performing expensive Proof-of-Work algorithms. They validate all the transactions and only once its timestamped by a notary can it be included in the immutable chain. Notaries can either be centralized (eg. R3 knots themselves or Central banks) or they can be distributed (in this case they will use a consensus algorithm, mostly PBFT, and there would be a trade off with scalability). In Corda, you can write the Clever Contracts using Java and Kotlin.

According to their documentation, this ledger is specifically meant for Financial applications, and all other non-financial applications are outside the scope.

Sawtooth Lake is an implementation of Hyperledger project being developed by Intel. It is an open source project with an Apache license.

Sawtooth Lake is presently in its version 0.8 and is considered an experimental version. It is NOT advised for use in security sensitive applications in its documentation.

It provides a “Nakamoto consensus” algorithm called PoET (Proof of Elapsed Time) which can be executed in a Trusted Execution Environment (TEE) such as Intel® Software Guard Extensions (SGX). In a way, the principle is similar to that of Bitcoin, wherein the very first validator to win the “lottery” (in case of Bitcoin, solving a cryptographic puzzle) propagates the block. But in case of Sawtooth Lake, the validators request for a ‘wait time’ from a trusted function, possibly a secure processor and the validator with the shortest wait time wins the lottery for that round. It is also called a “proof of processor” algorithm. It has a concept of “transaction family” for signifying the data model and the ledger services. While they expect the users to implement their own transaction family services, they also provide some service out of the box. Another Bitcoin scalability technology, TEECHAN also plans to use such a TEE.

Challenges for Hyperledger implementations

Some of the challenges facing Hyperledger in general are the maturity of the technology itself. Compared to Bitcoin and Ethereum, there is a lesser adoption from the broader community outside the enterprises themselves or their developer community. While protocols like Bitcoin and Ethereum have been around for a few years and survived major switches and attacks on its code, Hyperledger protocols are relatively newer and hence there might be some unknowns when it comes to scalable production grade applications.

7 blockchain technologies to observe out for in two thousand seventeen – Gaurang Torvekar – Medium

7 blockchain technologies to see out for in 2017

“Blockchain”, the underlying technology behind Bitcoin has been gaining momentum for a duo of years now. With so many fresh technologies and DAPPs being written almost every week, there’s a staggering amount of fresh things to look out for. For anyone kicking off out with blockchain development, or just knowing more about blockchain itself, there are a number of technologies to choose from. This brief guide will give you an overview of the landscape and you can choose any of the technologies that is most suitable for your use case.

In this post, I am going to attempt and be unbiased towards any one protocol, and give an overview of the different blockchain protocols from a developer’s point of view as we come in 2017. Since there are so many different sidechains for Bitcoin, and different implementations for Ethereum, I won’t be able to cover the entire gamut, but I will attempt to cover most of the major standalone implementations at least.

Please note that I am just attempting to give a non-partisan view on the technology and the challenges in general. I do not necessarily agree or disagree with any of the views or criticisms levelled against them.

Here’s the list of the implementation I am going to cover –

  1. Bitcoin
  2. ZCash
  3. Ethereum
  4. Ripple
  5. Hyperledger Fabric
  6. Corda
  7. Intel Sawtooth

Let’s embark with the “first” blockchain — Bitcoin

Bitcoin

Bitcoin blockchain was very first introduced by Satoshi Nakamoto in his white paper back in the year 2008. While Bitcoin as a cryptocurrency has caught the attention of the mainstream media, as a developer, far more interesting is the underlying technology — Blockchain! This is where it all began. Bitcoin was a superb innovation, because it solved two fundamental problems in a decentralized manner — preventing dual spend and decentralised trust!

Bitcoin blockchain uses UTXOs (Unspent Transaction Outputs) mechanism. The main components of a Bitcoin transaction are Transaction ID, Descriptors and meta data, Inputs and Outputs. Every transaction will receive some input and generate some outputs. Along with this, you can also embed some data in the transaction, in a field called OP_RETURN. This field has been used for many innovative use cases, from writing graffiti on the blockchain, to putting your marriage certificates on the blockchain to the introduction of Colored Coins.

Over the years, as the Bitcoin network has proliferated, and the number of people using Bitcoin has enhanced, we have seen a significant increase in the number of transactions on the network. But the network has been incapable to scale efficiently along with the enhancing number of TXNs, which has led to a significant block time, around 10–15 minutes on an average. there have been several attempts to solve this issue —

  1. Enlargening the block size
  2. Payment channels
  3. Decreasing the transaction data size

Segwit (Segregated Witness)

While there were a lot of discussions and debates going on about enlargening the block size of the Bitcoin blockchain itself, in a Scaling Bitcoin conference in Hong Kong in December 2015, one of the Bitcoin lead developers, Pieter Wuille, introduced the idea of Segwit at that conference. It was an interesting innovation which proposed to liquidate the signature data from transactions and send it separately, thus enhancing the capacity of the blocks to carry more transactions.

In this case, the word ‘segregated’ actually means separation, and the word ‘witness’ stands for signature data. When the signature data is liquidated from the transaction data, it is estimated that the size of transactions will reduce by 40%, enabling more transactions to fit in a single block. While Segwit itself cannot be the only solution for Scaling Bitcoin, when it is used in combination with other solutions like Payment Channels and/or maybe enlargening the block size, it will undoubtedly help make Bitcoin able to treat more transactions and use cases.

Now, considering this awesome innovation, one might question why this isn’t being already implemented? The reason is that, as written in the code of the Segwit release, it will be activated fully only once there is an adoption by 95% of the miners, and then a grace period of two thousand sixteen transaction blocks. As of December 2016, toughly 30% of the knots were on Segwit.

Albeit this is a truly innovative solution, some people have opined their reservations about it.

“Even with Segregated Witness, the network will reach a point where it needs to scale again,” — Jacob Donelly, in an article in Bitcoin magazine

Zcash

Zcash is the latest shiny thing in the land of Bitcoin and blockchains. Personally, I have always been fascinated by Zero-Knowledge proofs, and Zcash is one of the best embodiments of this technology. Another non-technical challenge of Bitcoin, and one of the criticisms by users has been the public nature of the transactions. All the transactions can be traced back to an originating address (unless you go through a mixing service or some other mechanism) and this can lead to a lot of problems, like exposing how much assets you own. Also, there’s the issue of using ‘tainted Bitcoins’ — the Bitcoins which have been used for illegal or shady purposes before.

Zcash is a decentralized and open-source cryptocurrency that offers privacy and selective transparency of transactions. Zcash payments are published on a public blockchain, but the sender, recipient, and amount of a transaction remain private. -https://z.cash

The implications of this are enormous! Now you have a way of transferring assets on the blockchain without exposing all your individual information. It is built on top of Bitcoin Core’s codebase and the major improvement is the addition of privacy. Without exposing the details of the transactions, the users simply prove that the transactions are balanced out, and they’re not dual spending. They use a zero-knowledge proof contruction called Zk-SNARK. This might seem like magic, so let me attempt and explain Zero Skill Proofs in a duo of sentences —

Essentially, a Zero Skill Proof is a way in which a “prover” is able to verify a certain truth so that he doesn’t expose the secret used to prove to the “verifier”. One of the real world examples of this can be a way to “prove” to a website that your login password is the right password without actually exposing the cleartext password to the server itself (which usually hashes the password and compares it with the hash stored in the database).

You can find a wonderful explanation of Zero Skill Proofs at this blog by Prof. Matthew Green from John Hopkins University.

Obviously, Zcash hasn’t been without its problems. Some people have criticized it as being a “corporate” coin, with the mining and deployment centralized with the founding team. Also, there are concerns about the Master private key which is accesible to the six members of the founding team.

Ethereum

Etheruem is a blockchain which was the brainchild of Vitalik Buterin, and the very first public implementation, called Frontier was released in mid-2015. Etheruem has a Turing-complete virtual machine called EVM. The major improvement over the Bitcoin blockchain is the native capability to write Wise Contracts. Ethereum has several languages which can accomplish this — Solidity, Serpent, LLL, etc. albeit Solidity is presently the most supported language by the community.

Ethereum has been observing a growing interest from the community and the industry itself. It also has its native currency called Ether, which is traded on exchanges. A major innovation in Ethereum is the relative simpleness of deploying wise contracts which have been used to create ‘tokens’, which represent certain physical assets like Fiat currency, Gold, company shares, computational hours, to name a few. There are also many companies who have done ICOs (Initial Coin Suggesting) on Etheruem which is similar to an IPO, but with Ethereum’s tokens.

The challenges faced by Etheruem are in a way similar to that of Bitcoin, namely scalability and “wide” adoption from entprises. Etheruem is attempting to solve the problem of scalability by adopting a fresh consensus algorithm called Proof-of-Stake, which will be in a release called Serenity, the final phase of development. But before that, in 2017, we will see the release of Metropolis, which will be a major landmark in Etheruem development. It has to do with simplifying the client implementations, thus making it lighter for non-technical people to deal with Etheruem and also improving the security logic in Clever Contracts. The other challenge – adoption by enterprises – is solved by implementations like Eris.

Eris is built on top of EVM, but with a different consensus algorithm by Tendermint, which is Proof-of-Stake. Most of the enterprises who want to adopt Ethereum as a private blockchain are presently using Eris, which is being developed by the company Monax. It provides a permissioned layer on top of Ethereum, thus enabling the enterprises to set up and use a private blockchain network.

Ripple

Ripple is a blockchain technology, which concentrates on settlement and financial applications of the technology. It has been built from ground up so that it can integrate lightly with banks’ existing infrastructure, without much integration overhead.

Ripple’s distributed financial technology enables banks to send real-time international payments across networks. – https://ripple.com

Ripple is a private company, which has been developing this protocol for a few years now, and they have raised some substantial rounds of funding. They are also observing good adoption in banks and financial institutions. The basic protocol is called Interledger Protocol (ILP), which enables banks to send payments across different ledgers and networks globally. They also have a cryptocurrency with the same name (XRP), which is the third largest in terms of market capitalisation, just behind Bitcoin and Ethereum.

There is also a concept of ILP validators in a Ripple network. The banks have an option of choosing their own centralised ILP validators or else relying on a network of ILP validators already present in the network which rely on a BFT consensus algorithm. While ILP validators provide a central truth and validate the transactions, they also maintain the privacy of the transactions. They just make sure that certain “crypto-conditions” are met. In this example, whether the funds are available for transfer or not. You can find more information about ILP validators in this ILP white paper.

Hyperledger

Just to make things clear, Hyperledger project is an incubation project for different Distributed Ledger Technologies (DLT) by the Linux Foundation. This project presently has three implementations in incubation — namely, Fabric, Sawtooth and recently Corda. While Fabric is the implementation by IBM, Sawtooth is being developed by Intel and Corda by R3.

In this section I am going to talk about the implementation by IBM called Fabric. Fabric is essentially a private version of the blockchain, in which the knots in the network form a private chain and share the data. This blockchain is being primarily used by enterprises for conducting POCs and solve the different problems existing in the enterprise ecosystem. Fabric is an open-source protocol and developers can contribute to the development. It is about to release a v1.0 (mostly Q1-Q2 2017) wherein there will be major switches in the protocol, including the consensus algorithms.

Presently, it has three main modules — Membership services, blockchain services and chaincode services. Membership services is the place where any fresh member has to register while joining the network. This acts like a Certificate Authority (CA) and maintains and blacklists the different knots. Blockchain services has the consensus module, the actual ledger service and the P2P protocol. The chaincode services module contains the “chaincode”, which are Clever Contracts in dockerized containers.

The entire architecture of Fabric is modular and you can butt-plug and play different modules in the system. For example, you can either have a NOOPS (a single validating peer without a need for consensus) or use PBFT consensus algorithm. Another advantage is that, you can write the chaincode using JAVA or Golang, which are familiar to most of the developers instead of learning fresh languages like in the case of Etheruem.

Corda is an implementation of the DLT developed by a company called R3. While they were developing it independently earlier, they became a part of the Hyperledger project later on. In November 2016, they open-sourced the code of the project. This implementation is based on the UTXO model, similar to Bitcoin as opposed to Ethereum.

“We don’t have blocks and we don’t have a chain” -Tim Grant, CEO, R3 Lab and Research Center

In Corda, there is a concept of state switches and transactions instead of blocks and a chain. Corda aims to achieve much more scalability and address the privacy concerns that are required by banks and other financial institutions by including “Notaries” in their network. Notaries essentially perform the function of miners, but without the overhead of performing expensive Proof-of-Work algorithms. They validate all the transactions and only once its timestamped by a notary can it be included in the immutable chain. Notaries can either be centralized (eg. R3 knots themselves or Central banks) or they can be distributed (in this case they will use a consensus algorithm, mostly PBFT, and there would be a trade off with scalability). In Corda, you can write the Clever Contracts using Java and Kotlin.

According to their documentation, this ledger is specifically meant for Financial applications, and all other non-financial applications are outside the scope.

Sawtooth Lake is an implementation of Hyperledger project being developed by Intel. It is an open source project with an Apache license.

Sawtooth Lake is presently in its version 0.8 and is considered an experimental version. It is NOT advised for use in security sensitive applications in its documentation.

It provides a “Nakamoto consensus” algorithm called PoET (Proof of Elapsed Time) which can be executed in a Trusted Execution Environment (TEE) such as Intel® Software Guard Extensions (SGX). In a way, the principle is similar to that of Bitcoin, wherein the very first validator to win the “lottery” (in case of Bitcoin, solving a cryptographic puzzle) propagates the block. But in case of Sawtooth Lake, the validators request for a ‘wait time’ from a trusted function, possibly a secure processor and the validator with the shortest wait time wins the lottery for that round. It is also called a “proof of processor” algorithm. It has a concept of “transaction family” for signifying the data model and the ledger services. While they expect the users to implement their own transaction family services, they also provide some service out of the box. Another Bitcoin scalability technology, TEECHAN also plans to use such a TEE.

Challenges for Hyperledger implementations

Some of the challenges facing Hyperledger in general are the maturity of the technology itself. Compared to Bitcoin and Ethereum, there is a lesser adoption from the broader community outside the enterprises themselves or their developer community. While protocols like Bitcoin and Ethereum have been around for a few years and survived major switches and attacks on its code, Hyperledger protocols are relatively newer and hence there might be some unknowns when it comes to scalable production grade applications.

7 blockchain technologies to witness out for in two thousand seventeen – Gaurang Torvekar – Medium

7 blockchain technologies to witness out for in 2017

“Blockchain”, the underlying technology behind Bitcoin has been gaining momentum for a duo of years now. With so many fresh technologies and DAPPs being written almost every week, there’s a staggering amount of fresh things to look out for. For anyone kicking off out with blockchain development, or just knowing more about blockchain itself, there are a number of technologies to choose from. This brief guide will give you an overview of the landscape and you can choose any of the technologies that is most suitable for your use case.

In this post, I am going to attempt and be unbiased towards any one protocol, and give an overview of the different blockchain protocols from a developer’s point of view as we inject 2017. Since there are so many different sidechains for Bitcoin, and different implementations for Ethereum, I won’t be able to cover the entire gamut, but I will attempt to cover most of the major standalone implementations at least.

Please note that I am just attempting to give a non-partisan view on the technology and the challenges in general. I do not necessarily agree or disagree with any of the views or criticisms levelled against them.

Here’s the list of the implementation I am going to cover –

  1. Bitcoin
  2. ZCash
  3. Ethereum
  4. Ripple
  5. Hyperledger Fabric
  6. Corda
  7. Intel Sawtooth

Let’s embark with the “first” blockchain — Bitcoin

Bitcoin

Bitcoin blockchain was very first introduced by Satoshi Nakamoto in his white paper back in the year 2008. While Bitcoin as a cryptocurrency has caught the attention of the mainstream media, as a developer, far more interesting is the underlying technology — Blockchain! This is where it all embarked. Bitcoin was a excellent innovation, because it solved two fundamental problems in a decentralized manner — preventing dual spend and decentralised trust!

Bitcoin blockchain uses UTXOs (Unspent Transaction Outputs) mechanism. The main components of a Bitcoin transaction are Transaction ID, Descriptors and meta data, Inputs and Outputs. Every transaction will receive some input and generate some outputs. Along with this, you can also embed some data in the transaction, in a field called OP_RETURN. This field has been used for many innovative use cases, from writing graffiti on the blockchain, to putting your marriage certificates on the blockchain to the introduction of Colored Coins.

Over the years, as the Bitcoin network has proliferated, and the number of people using Bitcoin has enhanced, we have seen a significant increase in the number of transactions on the network. But the network has been incapable to scale efficiently along with the enlargening number of TXNs, which has led to a significant block time, around 10–15 minutes on an average. there have been several attempts to solve this issue —

  1. Enhancing the block size
  2. Payment channels
  3. Decreasing the transaction data size

Segwit (Segregated Witness)

While there were a lot of discussions and debates going on about enhancing the block size of the Bitcoin blockchain itself, in a Scaling Bitcoin conference in Hong Kong in December 2015, one of the Bitcoin lead developers, Pieter Wuille, introduced the idea of Segwit at that conference. It was an interesting innovation which proposed to liquidate the signature data from transactions and send it separately, thus enlargening the capacity of the blocks to carry more transactions.

In this case, the word ‘segregated’ actually means separation, and the word ‘witness’ stands for signature data. When the signature data is eliminated from the transaction data, it is estimated that the size of transactions will reduce by 40%, enabling more transactions to fit in a single block. While Segwit itself cannot be the only solution for Scaling Bitcoin, when it is used in combination with other solutions like Payment Channels and/or maybe enlargening the block size, it will undoubtedly help make Bitcoin able to treat more transactions and use cases.

Now, considering this awesome innovation, one might question why this isn’t being already implemented? The reason is that, as written in the code of the Segwit release, it will be activated fully only once there is an adoption by 95% of the miners, and then a grace period of two thousand sixteen transaction blocks. As of December 2016, toughly 30% of the knots were on Segwit.

Albeit this is a indeed innovative solution, some people have opined their reservations about it.

“Even with Segregated Witness, the network will reach a point where it needs to scale again,” — Jacob Donelly, in an article in Bitcoin magazine

Zcash

Zcash is the latest shiny thing in the land of Bitcoin and blockchains. Personally, I have always been fascinated by Zero-Knowledge proofs, and Zcash is one of the best embodiments of this technology. Another non-technical challenge of Bitcoin, and one of the criticisms by users has been the public nature of the transactions. All the transactions can be traced back to an originating address (unless you go through a mixing service or some other mechanism) and this can lead to a lot of problems, like exposing how much assets you own. Also, there’s the issue of using ‘tainted Bitcoins’ — the Bitcoins which have been used for illegal or shady purposes before.

Zcash is a decentralized and open-source cryptocurrency that offers privacy and selective transparency of transactions. Zcash payments are published on a public blockchain, but the sender, recipient, and amount of a transaction remain private. -https://z.cash

The implications of this are enormous! Now you have a way of transferring assets on the blockchain without exposing all your private information. It is built on top of Bitcoin Core’s codebase and the major improvement is the addition of privacy. Without exposing the details of the transactions, the users simply prove that the transactions are balanced out, and they’re not dual spending. They use a zero-knowledge proof contruction called Zk-SNARK. This might seem like magic, so let me attempt and explain Zero Skill Proofs in a duo of sentences —

Essentially, a Zero Skill Proof is a way in which a “prover” is able to verify a certain truth so that he doesn’t expose the secret used to prove to the “verifier”. One of the real world examples of this can be a way to “prove” to a website that your login password is the right password without actually exposing the cleartext password to the server itself (which usually hashes the password and compares it with the hash stored in the database).

You can find a wonderful explanation of Zero Skill Proofs at this blog by Prof. Matthew Green from John Hopkins University.

Obviously, Zcash hasn’t been without its problems. Some people have criticized it as being a “corporate” coin, with the mining and deployment centralized with the founding team. Also, there are concerns about the Master private key which is accesible to the six members of the founding team.

Ethereum

Etheruem is a blockchain which was the brainchild of Vitalik Buterin, and the very first public implementation, called Frontier was released in mid-2015. Etheruem has a Turing-complete virtual machine called EVM. The major improvement over the Bitcoin blockchain is the native capability to write Wise Contracts. Ethereum has several languages which can accomplish this — Solidity, Serpent, LLL, etc. albeit Solidity is presently the most supported language by the community.

Ethereum has been observing a growing interest from the community and the industry itself. It also has its native currency called Ether, which is traded on exchanges. A major innovation in Ethereum is the relative plainness of deploying wise contracts which have been used to create ‘tokens’, which represent certain physical assets like Fiat currency, Gold, company shares, computational hours, to name a few. There are also many companies who have done ICOs (Initial Coin Suggesting) on Etheruem which is similar to an IPO, but with Ethereum’s tokens.

The challenges faced by Etheruem are in a way similar to that of Bitcoin, namely scalability and “wide” adoption from entprises. Etheruem is attempting to solve the problem of scalability by adopting a fresh consensus algorithm called Proof-of-Stake, which will be in a release called Serenity, the final phase of development. But before that, in 2017, we will see the release of Metropolis, which will be a major landmark in Etheruem development. It has to do with simplifying the client implementations, thus making it lighter for non-technical people to deal with Etheruem and also improving the security logic in Brainy Contracts. The other challenge – adoption by enterprises – is solved by implementations like Eris.

Eris is built on top of EVM, but with a different consensus algorithm by Tendermint, which is Proof-of-Stake. Most of the enterprises who want to adopt Ethereum as a private blockchain are presently using Eris, which is being developed by the company Monax. It provides a permissioned layer on top of Ethereum, thus enabling the enterprises to set up and use a private blockchain network.

Ripple

Ripple is a blockchain technology, which concentrates on settlement and financial applications of the technology. It has been built from ground up so that it can integrate lightly with banks’ existing infrastructure, without much integration overhead.

Ripple’s distributed financial technology enables banks to send real-time international payments across networks. – https://ripple.com

Ripple is a private company, which has been developing this protocol for a few years now, and they have raised some substantial rounds of funding. They are also eyeing good adoption in banks and financial institutions. The basic protocol is called Interledger Protocol (ILP), which enables banks to send payments across different ledgers and networks globally. They also have a cryptocurrency with the same name (XRP), which is the third largest in terms of market capitalisation, just behind Bitcoin and Ethereum.

There is also a concept of ILP validators in a Ripple network. The banks have an option of choosing their own centralised ILP validators or else relying on a network of ILP validators already present in the network which rely on a BFT consensus algorithm. While ILP validators provide a central truth and validate the transactions, they also maintain the privacy of the transactions. They just make sure that certain “crypto-conditions” are met. In this example, whether the funds are available for transfer or not. You can find more information about ILP validators in this ILP white paper.

Hyperledger

Just to make things clear, Hyperledger project is an incubation project for different Distributed Ledger Technologies (DLT) by the Linux Foundation. This project presently has three implementations in incubation — namely, Fabric, Sawtooth and recently Corda. While Fabric is the implementation by IBM, Sawtooth is being developed by Intel and Corda by R3.

In this section I am going to talk about the implementation by IBM called Fabric. Fabric is essentially a private version of the blockchain, in which the knots in the network form a private chain and share the data. This blockchain is being primarily used by enterprises for conducting POCs and solve the different problems existing in the enterprise ecosystem. Fabric is an open-source protocol and developers can contribute to the development. It is about to release a v1.0 (mostly Q1-Q2 2017) wherein there will be major switches in the protocol, including the consensus algorithms.

Presently, it has three main modules — Membership services, blockchain services and chaincode services. Membership services is the place where any fresh member has to register while joining the network. This acts like a Certificate Authority (CA) and maintains and blacklists the different knots. Blockchain services has the consensus module, the actual ledger service and the P2P protocol. The chaincode services module contains the “chaincode”, which are Clever Contracts in dockerized containers.

The entire architecture of Fabric is modular and you can cork and play different modules in the system. For example, you can either have a NOOPS (a single validating peer without a need for consensus) or use PBFT consensus algorithm. Another advantage is that, you can write the chaincode using JAVA or Golang, which are familiar to most of the developers instead of learning fresh languages like in the case of Etheruem.

Corda is an implementation of the DLT developed by a company called R3. While they were developing it independently earlier, they became a part of the Hyperledger project later on. In November 2016, they open-sourced the code of the project. This implementation is based on the UTXO model, similar to Bitcoin as opposed to Ethereum.

“We don’t have blocks and we don’t have a chain” -Tim Grant, CEO, R3 Lab and Research Center

In Corda, there is a concept of state switches and transactions instead of blocks and a chain. Corda aims to achieve much more scalability and address the privacy concerns that are required by banks and other financial institutions by including “Notaries” in their network. Notaries essentially perform the function of miners, but without the overhead of performing expensive Proof-of-Work algorithms. They validate all the transactions and only once its timestamped by a notary can it be included in the immutable chain. Notaries can either be centralized (eg. R3 knots themselves or Central banks) or they can be distributed (in this case they will use a consensus algorithm, mostly PBFT, and there would be a trade off with scalability). In Corda, you can write the Brainy Contracts using Java and Kotlin.

According to their documentation, this ledger is specifically meant for Financial applications, and all other non-financial applications are outside the scope.

Sawtooth Lake is an implementation of Hyperledger project being developed by Intel. It is an open source project with an Apache license.

Sawtooth Lake is presently in its version 0.8 and is considered an experimental version. It is NOT advised for use in security sensitive applications in its documentation.

It provides a “Nakamoto consensus” algorithm called PoET (Proof of Elapsed Time) which can be executed in a Trusted Execution Environment (TEE) such as Intel® Software Guard Extensions (SGX). In a way, the principle is similar to that of Bitcoin, wherein the very first validator to win the “lottery” (in case of Bitcoin, solving a cryptographic puzzle) propagates the block. But in case of Sawtooth Lake, the validators request for a ‘wait time’ from a trusted function, possibly a secure processor and the validator with the shortest wait time wins the lottery for that round. It is also called a “proof of processor” algorithm. It has a concept of “transaction family” for signifying the data model and the ledger services. While they expect the users to implement their own transaction family services, they also provide some service out of the box. Another Bitcoin scalability technology, TEECHAN also plans to use such a TEE.

Challenges for Hyperledger implementations

Some of the challenges facing Hyperledger in general are the maturity of the technology itself. Compared to Bitcoin and Ethereum, there is a lesser adoption from the broader community outside the enterprises themselves or their developer community. While protocols like Bitcoin and Ethereum have been around for a few years and survived major switches and attacks on its code, Hyperledger protocols are relatively newer and hence there might be some unknowns when it comes to scalable production grade applications.

7 blockchain technologies to observe out for in two thousand seventeen – Gaurang Torvekar – Medium

7 blockchain technologies to observe out for in 2017

“Blockchain”, the underlying technology behind Bitcoin has been gaining momentum for a duo of years now. With so many fresh technologies and DAPPs being written almost every week, there’s a staggering amount of fresh things to look out for. For anyone beginning out with blockchain development, or just knowing more about blockchain itself, there are a number of technologies to choose from. This brief guide will give you an overview of the landscape and you can choose any of the technologies that is most suitable for your use case.

In this post, I am going to attempt and be unbiased towards any one protocol, and give an overview of the different blockchain protocols from a developer’s point of view as we come in 2017. Since there are so many different sidechains for Bitcoin, and different implementations for Ethereum, I won’t be able to cover the entire gamut, but I will attempt to cover most of the major standalone implementations at least.

Please note that I am just attempting to give a non-partisan view on the technology and the challenges in general. I do not necessarily agree or disagree with any of the views or criticisms levelled against them.

Here’s the list of the implementation I am going to cover –

  1. Bitcoin
  2. ZCash
  3. Ethereum
  4. Ripple
  5. Hyperledger Fabric
  6. Corda
  7. Intel Sawtooth

Let’s embark with the “first” blockchain — Bitcoin

Bitcoin

Bitcoin blockchain was very first introduced by Satoshi Nakamoto in his white paper back in the year 2008. While Bitcoin as a cryptocurrency has caught the attention of the mainstream media, as a developer, far more interesting is the underlying technology — Blockchain! This is where it all began. Bitcoin was a good innovation, because it solved two fundamental problems in a decentralized manner — preventing dual spend and decentralised trust!

Bitcoin blockchain uses UTXOs (Unspent Transaction Outputs) mechanism. The main components of a Bitcoin transaction are Transaction ID, Descriptors and meta data, Inputs and Outputs. Every transaction will receive some input and generate some outputs. Along with this, you can also embed some data in the transaction, in a field called OP_RETURN. This field has been used for many innovative use cases, from writing graffiti on the blockchain, to putting your marriage certificates on the blockchain to the introduction of Colored Coins.

Over the years, as the Bitcoin network has proliferated, and the number of people using Bitcoin has enhanced, we have seen a significant increase in the number of transactions on the network. But the network has been incapable to scale efficiently along with the enlargening number of TXNs, which has led to a significant block time, around 10–15 minutes on an average. there have been several attempts to solve this issue —

  1. Enhancing the block size
  2. Payment channels
  3. Decreasing the transaction data size

Segwit (Segregated Witness)

While there were a lot of discussions and debates going on about enhancing the block size of the Bitcoin blockchain itself, in a Scaling Bitcoin conference in Hong Kong in December 2015, one of the Bitcoin lead developers, Pieter Wuille, introduced the idea of Segwit at that conference. It was an interesting innovation which proposed to eliminate the signature data from transactions and send it separately, thus enhancing the capacity of the blocks to carry more transactions.

In this case, the word ‘segregated’ actually means separation, and the word ‘witness’ stands for signature data. When the signature data is eliminated from the transaction data, it is estimated that the size of transactions will reduce by 40%, enabling more transactions to fit in a single block. While Segwit itself cannot be the only solution for Scaling Bitcoin, when it is used in combination with other solutions like Payment Channels and/or maybe enlargening the block size, it will undoubtedly help make Bitcoin able to treat more transactions and use cases.

Now, considering this awesome innovation, one might question why this isn’t being already implemented? The reason is that, as written in the code of the Segwit release, it will be activated fully only once there is an adoption by 95% of the miners, and then a grace period of two thousand sixteen transaction blocks. As of December 2016, harshly 30% of the knots were on Segwit.

Albeit this is a truly innovative solution, some people have opined their reservations about it.

“Even with Segregated Witness, the network will reach a point where it needs to scale again,” — Jacob Donelly, in an article in Bitcoin magazine

Zcash

Zcash is the latest shiny thing in the land of Bitcoin and blockchains. Personally, I have always been fascinated by Zero-Knowledge proofs, and Zcash is one of the best embodiments of this technology. Another non-technical challenge of Bitcoin, and one of the criticisms by users has been the public nature of the transactions. All the transactions can be traced back to an originating address (unless you go through a mixing service or some other mechanism) and this can lead to a lot of problems, like exposing how much assets you own. Also, there’s the issue of using ‘tainted Bitcoins’ — the Bitcoins which have been used for illegal or shady purposes before.

Zcash is a decentralized and open-source cryptocurrency that offers privacy and selective transparency of transactions. Zcash payments are published on a public blockchain, but the sender, recipient, and amount of a transaction remain private. -https://z.cash

The implications of this are enormous! Now you have a way of transferring assets on the blockchain without exposing all your individual information. It is built on top of Bitcoin Core’s codebase and the major improvement is the addition of privacy. Without exposing the details of the transactions, the users simply prove that the transactions are balanced out, and they’re not dual spending. They use a zero-knowledge proof contruction called Zk-SNARK. This might seem like magic, so let me attempt and explain Zero Skill Proofs in a duo of sentences —

Essentially, a Zero Skill Proof is a way in which a “prover” is able to verify a certain truth so that he doesn’t expose the secret used to prove to the “verifier”. One of the real world examples of this can be a way to “prove” to a website that your login password is the right password without actually exposing the cleartext password to the server itself (which usually hashes the password and compares it with the hash stored in the database).

You can find a wonderful explanation of Zero Skill Proofs at this blog by Prof. Matthew Green from John Hopkins University.

Obviously, Zcash hasn’t been without its problems. Some people have criticized it as being a “corporate” coin, with the mining and deployment centralized with the founding team. Also, there are concerns about the Master private key which is accesible to the six members of the founding team.

Ethereum

Etheruem is a blockchain which was the brainchild of Vitalik Buterin, and the very first public implementation, called Frontier was released in mid-2015. Etheruem has a Turing-complete virtual machine called EVM. The major improvement over the Bitcoin blockchain is the native capability to write Wise Contracts. Ethereum has several languages which can accomplish this — Solidity, Serpent, LLL, etc. albeit Solidity is presently the most supported language by the community.

Ethereum has been witnessing a growing interest from the community and the industry itself. It also has its native currency called Ether, which is traded on exchanges. A major innovation in Ethereum is the relative plainness of deploying clever contracts which have been used to create ‘tokens’, which represent certain physical assets like Fiat currency, Gold, company shares, computational hours, to name a few. There are also many companies who have done ICOs (Initial Coin Suggesting) on Etheruem which is similar to an IPO, but with Ethereum’s tokens.

The challenges faced by Etheruem are in a way similar to that of Bitcoin, namely scalability and “wide” adoption from entprises. Etheruem is attempting to solve the problem of scalability by adopting a fresh consensus algorithm called Proof-of-Stake, which will be in a release called Serenity, the final phase of development. But before that, in 2017, we will see the release of Metropolis, which will be a major landmark in Etheruem development. It has to do with simplifying the client implementations, thus making it lighter for non-technical people to deal with Etheruem and also improving the security logic in Brainy Contracts. The other challenge – adoption by enterprises – is solved by implementations like Eris.

Eris is built on top of EVM, but with a different consensus algorithm by Tendermint, which is Proof-of-Stake. Most of the enterprises who want to adopt Ethereum as a private blockchain are presently using Eris, which is being developed by the company Monax. It provides a permissioned layer on top of Ethereum, thus enabling the enterprises to set up and use a private blockchain network.

Ripple

Ripple is a blockchain technology, which concentrates on settlement and financial applications of the technology. It has been built from ground up so that it can integrate lightly with banks’ existing infrastructure, without much integration overhead.

Ripple’s distributed financial technology enables banks to send real-time international payments across networks. – https://ripple.com

Ripple is a private company, which has been developing this protocol for a few years now, and they have raised some substantial rounds of funding. They are also observing good adoption in banks and financial institutions. The basic protocol is called Interledger Protocol (ILP), which enables banks to send payments across different ledgers and networks globally. They also have a cryptocurrency with the same name (XRP), which is the third largest in terms of market capitalisation, just behind Bitcoin and Ethereum.

There is also a concept of ILP validators in a Ripple network. The banks have an option of choosing their own centralised ILP validators or else relying on a network of ILP validators already present in the network which rely on a BFT consensus algorithm. While ILP validators provide a central truth and validate the transactions, they also maintain the privacy of the transactions. They just make sure that certain “crypto-conditions” are met. In this example, whether the funds are available for transfer or not. You can find more information about ILP validators in this ILP white paper.

Hyperledger

Just to make things clear, Hyperledger project is an incubation project for different Distributed Ledger Technologies (DLT) by the Linux Foundation. This project presently has three implementations in incubation — namely, Fabric, Sawtooth and recently Corda. While Fabric is the implementation by IBM, Sawtooth is being developed by Intel and Corda by R3.

In this section I am going to talk about the implementation by IBM called Fabric. Fabric is essentially a private version of the blockchain, in which the knots in the network form a private chain and share the data. This blockchain is being primarily used by enterprises for conducting POCs and solve the different problems existing in the enterprise ecosystem. Fabric is an open-source protocol and developers can contribute to the development. It is about to release a v1.0 (mostly Q1-Q2 2017) wherein there will be major switches in the protocol, including the consensus algorithms.

Presently, it has three main modules — Membership services, blockchain services and chaincode services. Membership services is the place where any fresh member has to register while joining the network. This acts like a Certificate Authority (CA) and maintains and blacklists the different knots. Blockchain services has the consensus module, the actual ledger service and the P2P protocol. The chaincode services module contains the “chaincode”, which are Clever Contracts in dockerized containers.

The entire architecture of Fabric is modular and you can cork and play different modules in the system. For example, you can either have a NOOPS (a single validating peer without a need for consensus) or use PBFT consensus algorithm. Another advantage is that, you can write the chaincode using JAVA or Golang, which are familiar to most of the developers instead of learning fresh languages like in the case of Etheruem.

Corda is an implementation of the DLT developed by a company called R3. While they were developing it independently earlier, they became a part of the Hyperledger project later on. In November 2016, they open-sourced the code of the project. This implementation is based on the UTXO model, similar to Bitcoin as opposed to Ethereum.

“We don’t have blocks and we don’t have a chain” -Tim Grant, CEO, R3 Lab and Research Center

In Corda, there is a concept of state switches and transactions instead of blocks and a chain. Corda aims to achieve much more scalability and address the privacy concerns that are required by banks and other financial institutions by including “Notaries” in their network. Notaries essentially perform the function of miners, but without the overhead of performing expensive Proof-of-Work algorithms. They validate all the transactions and only once its timestamped by a notary can it be included in the immutable chain. Notaries can either be centralized (eg. R3 knots themselves or Central banks) or they can be distributed (in this case they will use a consensus algorithm, mostly PBFT, and there would be a trade off with scalability). In Corda, you can write the Wise Contracts using Java and Kotlin.

According to their documentation, this ledger is specifically meant for Financial applications, and all other non-financial applications are outside the scope.

Sawtooth Lake is an implementation of Hyperledger project being developed by Intel. It is an open source project with an Apache license.

Sawtooth Lake is presently in its version 0.8 and is considered an experimental version. It is NOT advised for use in security sensitive applications in its documentation.

It provides a “Nakamoto consensus” algorithm called PoET (Proof of Elapsed Time) which can be executed in a Trusted Execution Environment (TEE) such as Intel® Software Guard Extensions (SGX). In a way, the principle is similar to that of Bitcoin, wherein the very first validator to win the “lottery” (in case of Bitcoin, solving a cryptographic puzzle) propagates the block. But in case of Sawtooth Lake, the validators request for a ‘wait time’ from a trusted function, possibly a secure processor and the validator with the shortest wait time wins the lottery for that round. It is also called a “proof of processor” algorithm. It has a concept of “transaction family” for indicating the data model and the ledger services. While they expect the users to implement their own transaction family services, they also provide some service out of the box. Another Bitcoin scalability technology, TEECHAN also plans to use such a TEE.

Challenges for Hyperledger implementations

Some of the challenges facing Hyperledger in general are the maturity of the technology itself. Compared to Bitcoin and Ethereum, there is a lesser adoption from the broader community outside the enterprises themselves or their developer community. While protocols like Bitcoin and Ethereum have been around for a few years and survived major switches and attacks on its code, Hyperledger protocols are relatively newer and hence there might be some unknowns when it comes to scalable production grade applications.

7 blockchain technologies to observe out for in two thousand seventeen – Gaurang Torvekar – Medium

7 blockchain technologies to witness out for in 2017

“Blockchain”, the underlying technology behind Bitcoin has been gaining momentum for a duo of years now. With so many fresh technologies and DAPPs being written almost every week, there’s a staggering amount of fresh things to look out for. For anyone commencing out with blockchain development, or just knowing more about blockchain itself, there are a number of technologies to choose from. This brief guide will give you an overview of the landscape and you can choose any of the technologies that is most suitable for your use case.

In this post, I am going to attempt and be unbiased towards any one protocol, and give an overview of the different blockchain protocols from a developer’s point of view as we inject 2017. Since there are so many different sidechains for Bitcoin, and different implementations for Ethereum, I won’t be able to cover the entire gamut, but I will attempt to cover most of the major standalone implementations at least.

Please note that I am just attempting to give a non-partisan view on the technology and the challenges in general. I do not necessarily agree or disagree with any of the views or criticisms levelled against them.

Here’s the list of the implementation I am going to cover –

  1. Bitcoin
  2. ZCash
  3. Ethereum
  4. Ripple
  5. Hyperledger Fabric
  6. Corda
  7. Intel Sawtooth

Let’s commence with the “first” blockchain — Bitcoin

Bitcoin

Bitcoin blockchain was very first introduced by Satoshi Nakamoto in his white paper back in the year 2008. While Bitcoin as a cryptocurrency has caught the attention of the mainstream media, as a developer, far more interesting is the underlying technology — Blockchain! This is where it all began. Bitcoin was a excellent innovation, because it solved two fundamental problems in a decentralized manner — preventing dual spend and decentralised trust!

Bitcoin blockchain uses UTXOs (Unspent Transaction Outputs) mechanism. The main components of a Bitcoin transaction are Transaction ID, Descriptors and meta data, Inputs and Outputs. Every transaction will receive some input and generate some outputs. Along with this, you can also embed some data in the transaction, in a field called OP_RETURN. This field has been used for many innovative use cases, from writing graffiti on the blockchain, to putting your marriage certificates on the blockchain to the introduction of Colored Coins.

Over the years, as the Bitcoin network has proliferated, and the number of people using Bitcoin has enlargened, we have seen a significant increase in the number of transactions on the network. But the network has been incapable to scale efficiently along with the enhancing number of TXNs, which has led to a significant block time, around 10–15 minutes on an average. there have been several attempts to solve this issue —

  1. Enlargening the block size
  2. Payment channels
  3. Decreasing the transaction data size

Segwit (Segregated Witness)

While there were a lot of discussions and debates going on about enhancing the block size of the Bitcoin blockchain itself, in a Scaling Bitcoin conference in Hong Kong in December 2015, one of the Bitcoin lead developers, Pieter Wuille, introduced the idea of Segwit at that conference. It was an interesting innovation which proposed to eliminate the signature data from transactions and send it separately, thus enhancing the capacity of the blocks to carry more transactions.

In this case, the word ‘segregated’ actually means separation, and the word ‘witness’ stands for signature data. When the signature data is eliminated from the transaction data, it is estimated that the size of transactions will reduce by 40%, enabling more transactions to fit in a single block. While Segwit itself cannot be the only solution for Scaling Bitcoin, when it is used in combination with other solutions like Payment Channels and/or maybe enlargening the block size, it will certainly help make Bitcoin able to treat more transactions and use cases.

Now, considering this awesome innovation, one might question why this isn’t being already implemented? The reason is that, as written in the code of the Segwit release, it will be activated fully only once there is an adoption by 95% of the miners, and then a grace period of two thousand sixteen transaction blocks. As of December 2016, toughly 30% of the knots were on Segwit.

Albeit this is a truly innovative solution, some people have opined their reservations about it.

“Even with Segregated Witness, the network will reach a point where it needs to scale again,” — Jacob Donelly, in an article in Bitcoin magazine

Zcash

Zcash is the latest shiny thing in the land of Bitcoin and blockchains. Personally, I have always been fascinated by Zero-Knowledge proofs, and Zcash is one of the best embodiments of this technology. Another non-technical challenge of Bitcoin, and one of the criticisms by users has been the public nature of the transactions. All the transactions can be traced back to an originating address (unless you go through a mixing service or some other mechanism) and this can lead to a lot of problems, like exposing how much assets you own. Also, there’s the issue of using ‘tainted Bitcoins’ — the Bitcoins which have been used for illegal or shady purposes before.

Zcash is a decentralized and open-source cryptocurrency that offers privacy and selective transparency of transactions. Zcash payments are published on a public blockchain, but the sender, recipient, and amount of a transaction remain private. -https://z.cash

The implications of this are enormous! Now you have a way of transferring assets on the blockchain without exposing all your private information. It is built on top of Bitcoin Core’s codebase and the major improvement is the addition of privacy. Without exposing the details of the transactions, the users simply prove that the transactions are balanced out, and they’re not dual spending. They use a zero-knowledge proof contruction called Zk-SNARK. This might seem like magic, so let me attempt and explain Zero Skill Proofs in a duo of sentences —

Essentially, a Zero Skill Proof is a way in which a “prover” is able to verify a certain truth so that he doesn’t expose the secret used to prove to the “verifier”. One of the real world examples of this can be a way to “prove” to a website that your login password is the right password without actually exposing the cleartext password to the server itself (which usually hashes the password and compares it with the hash stored in the database).

You can find a wonderful explanation of Zero Skill Proofs at this blog by Prof. Matthew Green from John Hopkins University.

Obviously, Zcash hasn’t been without its problems. Some people have criticized it as being a “corporate” coin, with the mining and deployment centralized with the founding team. Also, there are concerns about the Master private key which is accesible to the six members of the founding team.

Ethereum

Etheruem is a blockchain which was the brainchild of Vitalik Buterin, and the very first public implementation, called Frontier was released in mid-2015. Etheruem has a Turing-complete virtual machine called EVM. The major improvement over the Bitcoin blockchain is the native capability to write Wise Contracts. Ethereum has several languages which can accomplish this — Solidity, Serpent, LLL, etc. albeit Solidity is presently the most supported language by the community.

Ethereum has been witnessing a growing interest from the community and the industry itself. It also has its native currency called Ether, which is traded on exchanges. A major innovation in Ethereum is the relative plainness of deploying clever contracts which have been used to create ‘tokens’, which represent certain physical assets like Fiat currency, Gold, company shares, computational hours, to name a few. There are also many companies who have done ICOs (Initial Coin Suggesting) on Etheruem which is similar to an IPO, but with Ethereum’s tokens.

The challenges faced by Etheruem are in a way similar to that of Bitcoin, namely scalability and “wide” adoption from entprises. Etheruem is attempting to solve the problem of scalability by adopting a fresh consensus algorithm called Proof-of-Stake, which will be in a release called Serenity, the final phase of development. But before that, in 2017, we will see the release of Metropolis, which will be a major landmark in Etheruem development. It has to do with simplifying the client implementations, thus making it lighter for non-technical people to deal with Etheruem and also improving the security logic in Wise Contracts. The other challenge – adoption by enterprises – is solved by implementations like Eris.

Eris is built on top of EVM, but with a different consensus algorithm by Tendermint, which is Proof-of-Stake. Most of the enterprises who want to adopt Ethereum as a private blockchain are presently using Eris, which is being developed by the company Monax. It provides a permissioned layer on top of Ethereum, thus enabling the enterprises to set up and use a private blockchain network.

Ripple

Ripple is a blockchain technology, which concentrates on settlement and financial applications of the technology. It has been built from ground up so that it can integrate lightly with banks’ existing infrastructure, without much integration overhead.

Ripple’s distributed financial technology enables banks to send real-time international payments across networks. – https://ripple.com

Ripple is a private company, which has been developing this protocol for a few years now, and they have raised some substantial rounds of funding. They are also observing good adoption in banks and financial institutions. The basic protocol is called Interledger Protocol (ILP), which enables banks to send payments across different ledgers and networks globally. They also have a cryptocurrency with the same name (XRP), which is the third largest in terms of market capitalisation, just behind Bitcoin and Ethereum.

There is also a concept of ILP validators in a Ripple network. The banks have an option of choosing their own centralised ILP validators or else relying on a network of ILP validators already present in the network which rely on a BFT consensus algorithm. While ILP validators provide a central truth and validate the transactions, they also maintain the privacy of the transactions. They just make sure that certain “crypto-conditions” are met. In this example, whether the funds are available for transfer or not. You can find more information about ILP validators in this ILP white paper.

Hyperledger

Just to make things clear, Hyperledger project is an incubation project for different Distributed Ledger Technologies (DLT) by the Linux Foundation. This project presently has three implementations in incubation — namely, Fabric, Sawtooth and recently Corda. While Fabric is the implementation by IBM, Sawtooth is being developed by Intel and Corda by R3.

In this section I am going to talk about the implementation by IBM called Fabric. Fabric is essentially a private version of the blockchain, in which the knots in the network form a private chain and share the data. This blockchain is being primarily used by enterprises for conducting POCs and solve the different problems existing in the enterprise ecosystem. Fabric is an open-source protocol and developers can contribute to the development. It is about to release a v1.0 (mostly Q1-Q2 2017) wherein there will be major switches in the protocol, including the consensus algorithms.

Presently, it has three main modules — Membership services, blockchain services and chaincode services. Membership services is the place where any fresh member has to register while joining the network. This acts like a Certificate Authority (CA) and maintains and blacklists the different knots. Blockchain services has the consensus module, the actual ledger service and the P2P protocol. The chaincode services module contains the “chaincode”, which are Clever Contracts in dockerized containers.

The entire architecture of Fabric is modular and you can ass-plug and play different modules in the system. For example, you can either have a NOOPS (a single validating peer without a need for consensus) or use PBFT consensus algorithm. Another advantage is that, you can write the chaincode using JAVA or Golang, which are familiar to most of the developers instead of learning fresh languages like in the case of Etheruem.

Corda is an implementation of the DLT developed by a company called R3. While they were developing it independently earlier, they became a part of the Hyperledger project later on. In November 2016, they open-sourced the code of the project. This implementation is based on the UTXO model, similar to Bitcoin as opposed to Ethereum.

“We don’t have blocks and we don’t have a chain” -Tim Grant, CEO, R3 Lab and Research Center

In Corda, there is a concept of state switches and transactions instead of blocks and a chain. Corda aims to achieve much more scalability and address the privacy concerns that are required by banks and other financial institutions by including “Notaries” in their network. Notaries essentially perform the function of miners, but without the overhead of performing expensive Proof-of-Work algorithms. They validate all the transactions and only once its timestamped by a notary can it be included in the immutable chain. Notaries can either be centralized (eg. R3 knots themselves or Central banks) or they can be distributed (in this case they will use a consensus algorithm, mostly PBFT, and there would be a trade off with scalability). In Corda, you can write the Wise Contracts using Java and Kotlin.

According to their documentation, this ledger is specifically meant for Financial applications, and all other non-financial applications are outside the scope.

Sawtooth Lake is an implementation of Hyperledger project being developed by Intel. It is an open source project with an Apache license.

Sawtooth Lake is presently in its version 0.8 and is considered an experimental version. It is NOT advised for use in security sensitive applications in its documentation.

It provides a “Nakamoto consensus” algorithm called PoET (Proof of Elapsed Time) which can be executed in a Trusted Execution Environment (TEE) such as Intel® Software Guard Extensions (SGX). In a way, the principle is similar to that of Bitcoin, wherein the very first validator to win the “lottery” (in case of Bitcoin, solving a cryptographic puzzle) propagates the block. But in case of Sawtooth Lake, the validators request for a ‘wait time’ from a trusted function, possibly a secure processor and the validator with the shortest wait time wins the lottery for that round. It is also called a “proof of processor” algorithm. It has a concept of “transaction family” for signifying the data model and the ledger services. While they expect the users to implement their own transaction family services, they also provide some service out of the box. Another Bitcoin scalability technology, TEECHAN also plans to use such a TEE.

Challenges for Hyperledger implementations

Some of the challenges facing Hyperledger in general are the maturity of the technology itself. Compared to Bitcoin and Ethereum, there is a lesser adoption from the broader community outside the enterprises themselves or their developer community. While protocols like Bitcoin and Ethereum have been around for a few years and survived major switches and attacks on its code, Hyperledger protocols are relatively newer and hence there might be some unknowns when it comes to scalable production grade applications.

Related video:

Leave a Reply

Your email address will not be published. Required fields are marked *

*