Blockchain is a fairly new technology which has been established by its first world-renowned application - Bitcoin. Bitcoin is the first completely decentralized currency that does not depend on financial institutions or central banks, but that is available on a decentralized network of nodes. Therefore, it is not regulated by governments or regulatory bodies. It can be transferred cross-border seamlessly. Ideally, this would be also secure and fast. All of this is possible through Blockchain technology.
You can find detailed information on the subject of Blockchain on our dedicated page https://chaindev.io
With Blockchain, all transactions happening in the network are combined into blocks. As there is no central body controlling the legitimacy of these transactions to 100%, the peers in the network need to take care of this. It is done through the so-called mining. Miners find and propose blocks which depend on the already existing and saved transaction history and are compatible with those. If there are enough other nodes in the network which confirm the legitimacy of this block, the contained transactions can be perceived as correct and successful. With an increasing number of confirmations the likelihood grows that this block and its successors in the chain will be accepted as the "new truth" by the entire network rather than any other block that has been proposed by another node. The creation of new blocks along with their verification thereby follows cryptographic principles; by chaining correct blocks and their dependency on each other, the history of transactions become immutable and pretty much unhackable.
All blocks combined contain the entire history of transactions ever since the creation of the Blockchain. All of them need to be replicated to all participating nodes. This makes sure that hackers cannot attack the network by altering data on one or multiple central nodes as in centralized, client-server architectures. However, with a growing historic record of transactions and blocks, the amount of data that needs to be replicated among all nodes grows. Therefore, Blockchain technology may not by default be the ideal solution for low-latency of high-frequency applications, as the generation of new blocks and their confirmations always need a little time. In the case of Bitcoin, the protocol is configured to generate a new block roughly every 10 minutes.
Principally, Blockchain protocols use a kind of currency to incentivize the miners to provide their resources to the network. The nodes that generate new blocks get paid a certain amount of that currency for their efforts. There is also a fee for the execution of transactions which is paid to the miners in most Blockchain protocols.
There is another concept of currencies on many blockchains like Ethereum. These are called tokens and are typically used to perform very specialized payments or transactions on a protocol on top of the blockchain. As an example, you can imagine a gambling token to play poker or roulette on top of the Ethereum Blockchain. The stakes and jackpots would then be paid with therse gambling tokens.
Blockchain technology is often described as kind of a distributed database. This term is not fully adequate, as it excludes the consensus mechanisms that form the protocol together with the data held on the Blockchain. While distributed databases also need a way of telling how to replicate data from one node to another, the most common patterns there revolve around master-slave or master-master replication. In master-slave, the master is the only node accepting changes to the data and it replicated these changes to all other slaves. This kind of mechanism isn't feasible for a massively distributed solution like Blockchain, though. In master-master on the other hand, a mechanism to agree on the validity of a certain changes needs to be defined; in case of concurrent and potentially conflicting updates on the data, the network needs to be able to tell which master has the new truth. A popular method of doing so is the leader-election pattern.
However, in Blockchain the consensus mechanism is clearly defined in the protocol. It typically depends on the availability of certain resources which are provided to the network. In general, we distinguish between the following three types.
When using the proof-of-work consensus mechanism, the control of the network and the generation of new blocks is in the hands of the nodes that provide the most computing power. Nodes need to compute a hash value that needs to be derived from the previous blocks. This computational problem is difficult to solve and consume large amounts of computing power. The first node that finds a solutions for the problem creates a new block, so that the likelihood of finding a new block scales linearly with the amount of hashing power provided. In order to ensure that blocks aren't found too quickly, the difficulty of the problem to be solved gets adjusted with the amount of hashing power in the network.
As the amount of needed computing power increases with the number of participating nodes and the computing power they provide, the proof-of-work mechanism can be considered rather wasteful with regard to physical resources like hardware or electricity. In order to avoid this, there is an alteration which is called proof-of-stake. In proof-of-stake it is not the nodes with the most hashing power which decide upon the correctness of the Blockchain, but the nodes with the most units of the underlying currency or token are in charge.
With delegated proof-of-stake, the nodes holding the most tokens don't control the Blockchain directly, but they elect a fixed number of delegates who take over that task. They are mostly represented by people and can be voted out at any time. This mechanism is gaining more and more popularity ever since its emergence in the BitShares protocol because it's very democratic and resource-saving.
Blockchain has a number of characteristics that make this technology so popular.
Per the application of strong cryptography, the distribution of data across all participating nodes and the consensus mechanisms Blockchains are perceived as unhackable. While even big financial institutions are prone to be a single point of failure, an attacker on a Blockchain would need to obtain control over the entire network. This can theoratically be achieved by the so-called 51% attack (an individual or a group controls more than 51% of the resources in the network, e.g. hashing power). Practically though, large Blockchains with a high number of participants are considered safe from these types of attacks.
Because new blocks are generated "on top" of their predecessors, it is ensured that all participants in the network have the same state of the replicated data as all other participants. How it takes to ensure this highly depends on the protocol and its implementation. However, it is almost 100% certain that everybody else in the network has the same information.
In public Blockchains every participant can see all other transactions happening in the network. Through certain services like block explorers this information can even be made available to the public. This leads to a fair and democratic distribution of any information about what's going on in the Blockchain.
An often quoted property of Blockchain in general and specifically Bitcoin is its anonymity. As users in the Blockchain only authenticate with their unique address and their private key it is impossible to directly track a certain person's transactions. This feeling of anonymity is deceptive, though. As described above, all transactions can be viewed by anybody so it's easy to track down a certain address and with a little bit of effort, also possible to find the real-world person this address belongs to. This will even provide additional data about past transactions or behavior of that person, as its entire history is available on the Blockchain. In order to avoid this, the usage of a protocol like Zerocoin (e.g. its implementation Zcash) or Dash can help.
The decentralization of the data storage and verification result in a situation where no central entity is able to control the network. Although the entry and exit points into the physical world can be regulated, the transactions on the Blockchain cannot.
The high redundany of the stored data leads to a maximum in data security on the one hand. It's not a problem if a node loses its data because the data can always be reproduced by downloading it from the network again. On the other hand, this leads to an enormous demand for storage space and network bandwidth. If the Blockchain has an overall size of 10GB, these 10GB need to be replicated to all participating nodes at least once and be stored there. With a growing size of the Blockchain the need for additional storage space grows, as well.
Blockchain is not only able to cater for transaction of a financial kind as in Bitcoin. A number of protocols has emerged with the goal to enable arbitrary transactions like proof of identity, contracts, if-this-then-that relations and many more. Ethereum was the first and is the most mature protocol with the claim that any process that can be computed on a computer can also be executed on the Ehtereum Blockchain. A specific, Turing-complete programming language named Solidity was created. It is used to write so-called Smart Contracts. Other protocols with similar goals have been started, but most of them do not have the reputation and maturity of Ethereum.
Ethereum hasn't only established itself as a platform to execute individual Smart Contracts. It is also widely used as a basis to create entire new, "higher-value" protocols on top of it. These protocols don't need to care about cryptography or the confirmation of transactions on the Blockchain. They benefit from the underlying Ethereum Blockchain and can focus on their core tasks. These protocols typically consist of a set of Smart Contracts written in Solidity to describe the protocol as well as client software which executes certain processes based on the transactions going on on the Blockchain. Thus, the protocol itself doesn't need its own Blockchain. This model appears to mimic the OSI Layer model in networking technology and the respective protocols.
In general, Blockchain can be applied anywhere where data needs to be held distributed and secure. However, the benefits that come with the use of this technology don't always outweigh the increased complexity as compared to more traditional technologies like distributed databases. In addition, the notion of distributed apps and protocols is fairly new to many teams and individuals, so that there is a high need for training. There is a number of "natively distributed" use cases that fit very well into the distributed Blockchain scheme, though. These include the apparent financial transaction use cases like currencies and trading platforms, but also insurance, IoT (Internet of Things), distributed computing, proof of identity and many more, so long as they directly benefit from the distribution and immutability of the data stored on the Blockchain. At the moment of writing, new projects in the space emerge almost every day. How many and which ones of those can work sustainably, time will have to tell.
Apart from Bitcoin and Ethereum, there are some other already successful projects that base on Blockchain.
As the most widely known so-called cryptocurrencies apart from Bitcoin we should mention Litecoin, Ripple, Dash, Zcash, Monero of NEM. There are many more which sometimes only differ from each others in details. In addition, there are some more currencies supporting the emergence of new payment methods like TenX or Stellar.
One of the largest areas with respect to Blockchain is the one of new Blockchain platforms which are meant to form an alternative, an extension or a simplification of Ethereum. The biggest ones are Tezos, Lisk, Stratis or Counterparty.
We see a couple of projects related to the enabling and payment of distributed provisioning of computing power or storage. Some of the most known ones are Storj and Golem.
A number of projects build platforms to facilitate prediction markets which try to predict the outcome of certain events, many of them are based on Ethereum. Examples are Augur and Gnosis.
There are many more projects - for a good overview over the best known or most successful platforms coinmarketcap.com is worth a look.
You can find detailed information on the subject of Blockchain on our dedicated page https://chaindev.io
We at techdev have been following the emergence of the Blockchain technology since 2013. While the sketicism in the industry was huge in the early beginnings, more and more use cases are considered viable for the Blockchain. We can help you with your Blockchain project.
We review your use case and share our expertise regarding the choice of the right platform, the type of project and the best technologies for client software. Apart from that, we support you in the creation of a technical concept for your entire project.
We develop your Smart Contracts in Solidity based on Ehtereum as well as your client software for web, Android, iOS and desktop. From distributed apps to entire protocols based on Ethereum or Bitcoin we can help you bring your project to life.
Are you looking for a reliable partner to support you with your IT projects?
Just get in touch and let us talk about your project.