In previous blog post we have started the discussion of the blockchain classifications, such as Blockchain 1.0 and Blockchain 2.0.
Just to recap, under the Blockchain 1.0 it is assumed to understand the implementation that provides the capability to solve the problem of the cryptocurrency creation.
Cryptocurrency that is governed by the network rather than by the trusted 3rd party (government, banks) is the reason the blockchain technology emerged.
Later in 2013 Vitalik Buterin, russian-canadian programmer, has first came up with the white paper of Ethereum - the decentralized software development platform.
The reason for it to emerge was the disagreement with the bitcoin development team and inability to convince them to come up with more sophisticated scripting language, capable to provide the ability for the developers to build the programs on top of the bitcoin network.
Thus the Ethereum blockchain was created, the main notion of that blockchain is the notion of Smart Contract. Smart Contract has defined the new evolutionary stage of the distributed ledger technology and gave it the classification of Blockchain 2.0
Smart Contracts are small computer programs, which “live” on blockchain. One significant advantage of them is the blockchain making it impossible to tamper or hack these applications.
The next snippet contains the complete code of the smart contract that can be deployed to the Ethereum network:
that is the example of the contract that manages the ownership of the digital tokens, makes it possible to transfer those tokens between the token holders.
From the development perspective there is the state that is managed by the code (business logic). In that particular example the state is represented by next variables:
other code defines the business logic that performs the mutation of those variables.
The fact that the smart contract’s logic is immutable opens huge opportunities for us as the software developers to build the completely new set of the solutions, for almost every type of the business.
Blockchain is considered to be trustless, because it is designed in such a way that nobody has to trust anyone. Thus solutions which are based on the distributed ledger technology inherit such feature of it as trustlessness.
Public vs Private
The development community is split into two camps now.
There are people, which think that it’s the transparency and publicity that makes the blockchain technology so attractive. Thus, as of them everything is to be built on top of the public blockchain networks.
On the other side there is the opinion that it’s the blockchain technology (DLT) itself, that is so valuable and will initiate the revolutionary shifts.
Of course, both of them are right to some extent. But the rule of thumb here would rather be to satisfy the business while considering the constraints of public / private approach.
To choose the proper approach one should consider the constraints, which public and private blockchain imply:
Public Blockchain: Pros & cons
As stated previously, public blockchain is so attractive because of the transparency it gives - everyone can join, get the complete copy of the blockchain and analyse it.
But there are the constraints, which limit the applicability of it:
Publicity. Such feature of it is both, positive and negative, while considering the development of commercial solution. Depending on the type of the solution and sensitivity of the data, managed by that solution, the publicity may be considered as a harm to the business rather than benefit.
You could think about the KYC / AML related solutions, which require the customer to submit such sensitive data, as government issued ID, address information and others. As soon as such information becomes available to anyone, the business fails to achieve the goals.
Transaction fee. One of the techniques to sustain attacks is the fee that the transaction creator must pay. Considering the transaction that makes the invocation of one of the Smart Contract functions, the approximate fee may be up to $0.5.
Let’s stop here and just read it again, $0.5 for a single transaction. No doubt, there has to be the huge motivation to perform such expensive transaction.
Cost is probably the biggest issue that prevents developers to do their solutions on top of the public Ethereum network.
Private Blockchain: Pros & cons
The benefits of using the private blockchain - in contrary to non-blockchain application - are defined by the DLT technology itself.
Private nature of blockchain allows us to provide access only to the trusted 3rd parties, thus be able to store the sensitive data on blockchain without the worries of it to be revealed publicly.
As all the parties within the blockchain are known (trusted), there is no need to have the fee-based mechanism to protect the network from DOS attacks.
Thus the cost of the transaction in nothing comparable to the enormous $0.5 and tends to zero.
Permission-based access. Of course, if business would like to benefit from the availability of the data to the public, that’s not possible to do on a private blockchain - anyone is not allowed to join the network.
Considering the pros and cons of the public & private blockchains, the constraints they bring, ones could think of building the hybrid solution, where non-sensitive data is stored on a public blockchain (of course if there is the motivation for such a big fee) and all the sensitive data - on a private blockchain.
That way the business can get the best out of both worlds.
No doubt, the blockchain technology creates the basement for the revolution in future, by rethinking the infrastructure in new way.
Blockchain 2.0 is what gives us the opportunity to develop the applications on top of the distributed, immutable ledger and disrupt the well known businesses.
But not every business problem is suitable to be solved by applying the DLT, there are multiple approaches to think of and multiple constraints to consider to come up with the proper design.