Blockchain technology has already gone through a period of formation and hype, dramatic falls, and seems to have entered the phase practical reflection and development.
It is a mistake to assume that the blockchain is universal and able to solve all existing problems. The massive closure of ICO projects that raised considerable funds during 2017 is another confirmation of this.
However, for those areas of activity where there is a real problem of trust between users, blockchain can bring additional value.
Consider the feasibility of using blockchain for business, as well as the most popular networks existing on the market.
In which case is blockchain implementation appropriate?
To begin, we will understand the key advantages and disadvantages of this technology. Usually in this place they write about "decentralization", but what does this mean in practice?
The modern blockchain is softwaresoftware installed on many computers, each of which is independently protected. In this, it differs fundamentally from centralized systems, where to change data you need to access only one account. Blockchain allows you to organize networks where participants want to interact with each other, but do not want to share security risks. In these networks, everyone is for himself.
Blockchain is applicable when there is somethe number of participants whose interaction takes place in a completely untrusted environment (for example, a group of competing companies, private individuals or branches of a large company). The main thing is the distribution of security risks among all participants.
Such networks can really be“Unsinkable”, because a synchronous attack of a large number of computers is required, each of which is protected independently of the others. The more diverse the protection, the more secure the blockchain.
Therefore, one of the main criteria for applying the blockchain is security: “Does your project require operation in a completely untrusted environment and a complete distribution of security risks?”
If in the design of the system you provide“Rescuers”, “emergency engineers” and others who can block transactions and execute smart contracts, you reveal a “weak spot”, an attack on which can break the whole system.
If you are willing to sacrifice a lot for the sake of network security, and have well planned protection of administrative functions, the next question will be: “Are you ready to pay for each transaction?”
Free Transactions Allow Any Membernetworks fill the blockchain with useless information that is replicated hundreds and thousands of times. So without cryptocurrency, transaction fees and execution restrictions, a good secure blockchain for public networks cannot be built.
Payment transaction problems are resolved usingadditional functionality that allows some participants to pay for others. Typically, such a luxury is offered one-time and only to new users of the blockchain, but the owners of the system in any case will have to deal with commissions for each transaction.
The following criteria: “Does the business model have mutual settlements and transfer of ownership of certain information from one participant to another?”
Blockchains are networks in which ownership rightsdigital information is transferred from one blockchain account to another. The simplest type of information is a number, so the data in blockchains resembles bank balances. One identifier is one number. The blockchain protects the “balances” and the methods of transferring them between different addresses.
Blockchain mutual settlements can be not onlypayments, and any exchange of digital values (for example, reputation points, information that allows you to access valuable resources, game items).
If your project provides for the exchange of such digital values - the blockchain can be an excellent foundation, resistant to hacking.
Choose a public or your own blockchain?
If you only need to accept payments incryptocurrencies, create an address for payments and solve legal issues. If for the project it is necessary to automate more complex transactions, it is possible to place smart contracts in one of the public networks (about them below), or launch your own blockchain.
Enough code to work on public blockchainsyour service and smart contracts. Smart contracts are cheaper than the usual database - no need to rent servers and be responsible for the security of user accounts. In addition, public blockchains are more secure: in the event of a failure, the data can be downloaded or transferred to another blockchain.
The disadvantages of the public blockchain includecommissions for transactions in the "native" cryptocurrency of the blockchain. You will not be able to influence its rate or transaction processing speed. Also, at the moment there is no solution that allows you to handle many parallel operations of tens and hundreds of thousands of users, which in turn can provoke a strong increase in fees.
Public blockchains are suitable for projects that require “unsinkability” in any conditions and with fairly valuable transactions in which users are willing to pay for each operation.
An alternative to public blockchains isin-house blockchains To run, in addition to the blockchain's own code, it is necessary to prepare or fork: web services for viewing the blockchain (such as Etherscan), client software (wallets), various tools and interfaces, documentation.
Next is the launch of the test network, eliminationshortcomings, code update procedures and starting the main network. Since the development is conducted publicly, the code will have to be written qualitatively and audited by independent teams.
Another unpleasant propertyBlockchain development is a high cost of ownership: dear developers, tasks that few people have solved for you (therefore, there is not enough documentation and ready-made software), complex testing (it requires a lot of cloud resources and complex test scripts).
Therefore, deciding on your own blockchain, you need to soberly assess your strengths.
Solutions on the market
What decision to take as a basis? The question is akin to choosing an operating system: there are a huge number of parameters, and configuration options too.
To begin, consider a couple of the most reliablesolutions already working on public networks and having open source. First of all, these are networks with support for universal Turing-complete smart contracts that allow you to automate almost any business process, so bitcoin does not get here.
This is the most mature and universal solution,which has been successfully operating for many years and is responsible for large amounts of cryptocurrency. Ethereum has the most developed ecosystem, convenient languages for writing smart contracts, many tools and ready-made algorithms.
In case of any problems, data and smart contractscan be transferred from one Ethereum network to another, and you can choose one of the forks to be placed. For example, in the case of PoA Network or Loom Network, you will get faster and cheaper transactions.
The Ethereum blockchain is more convenient than Bitcoin: in a couple of clicks you can conduct very complex transactions.
If you have few transactions and users need a high degree of security of crypto assets, then public Ethereum is your choice.
EOS - fastest public blockchain, the mostdeveloped from using consensus type “Delegated Proof-of-Stake”. EOS allows you to write smart contract systems of any complexity, has a convenient system of accounts and voting for validators.
Public EOS is also called "Chinese Ethereum,"since the main users and validators of this network are in China. EOS has exchanges, various decentralized financial and gambling applications, and games.
Like the Ethereum ecosystem, EOS isa large complex of ready-made software that has already been tested in real conditions. In EOS, everything is developed in C ++, so you can quickly find good developers.
Use EOS if you need a convenient systemaccount management, fast cryptocurrency payments and many different smart contracts. For example, EOS is well suited for servicing payment networks, terminals, ATMs or crypto machines.
Hyperledger Blockchain Family Initiallysharpened for corporate use. Modern HL projects do not have an internal economy, and are usually used for internal workflow in large companies.
HL is written in Java and built with in mindneeds of corporate clients, therefore, he does not have some advantages of public networks. Nevertheless, the use of a distributed registry may be justified: companies are trying to use Hyperledger for service operations with rare and critical equipment, specialized logistics and internal document management.
Use HL if you need powerful Java logic and you are ready to run your blockchain inside the corporate network.
Parity Substrate & Cosmos SDK
Parity Substrate is a blockchain constructor framework that allows you to quickly and easily assemble your blockchain (in the terminology of Polkadot - a parachain) and run it with its validators and logic.
Architecturally, the parachain can be considered as a blockchain with one arbitrarily large and multi-functional smart contract, which can be updated and modified.
Substrate-based parachain lets you choose fromready-made modules consensus type, the ability to work with smart contracts and implement complex internal logic. In this case, you get a set of open source tools for users.
Cosmos SDK is a software package similar to Parity Substrate for building custom blockchains with arbitrary logic based on Tendermint consensus.
When developing the Cosmos blockchain, Go is used, there is also a large number of ready-made software to support the developed blockchains.
Using solutions like Substrate or Cosmos SDK is the fastest and most reliable way to make your own blockchain.
You can also use new ones for the project.blockchains, which often have only a test network. New projects are a risky way, since there is a very high probability of serious problems in both the software and business parts.
Nevertheless, new solutions often make it possible to solveimportant blockchain issues (Near Protocol, NuCypher, Coda). If the project is relevant to your business logic, it may make sense to rely on its team and code.
Blockchain choice today is limited to threethe main blockchains and their forks: Ethereum, EOS and Hyperledger, as well as the designers of Substrate and Cosmos. If the project requires access to public networks, the choice narrows down to two options: Ethereum and EOS. This is not so small, since both solutions have many forks with wider functionality.
If you choose to work on the public blockchain,You will be spared from a huge number of expensive work on the development and support of the blockchain. In this case, you can focus only on business logic, interfaces, and support services (such as IPFS).
If you decide to develop your own blockchainor fork an existing one, you should well understand that it is expensive and difficult. A fork in the future will have to be supported, bug fixes applied, forks of related software forked and their code updated as well.
Blockchain technologies are extremely specific and havemany internal nuances. It is recommended that you carefully consider how the blockchain will be used by your project, what expenses you will incur and what it will cost users.