The Topology of Blockchain
As indicated in the previous sections, blockchain technology can be viewed from different points of view – blockchain as a distributed application, database, infrastructure or communication network. It is with the last example that we also consider blockchain’s “implementation in space ‘.
Historically, the blockchain was designed as a peer-to-peer network of equal nodes, operated on the same software basis, each of which could, after fulfilling the conditions, become a validator. If the author created a new record, it could be sent to any node in the network.
He made the first validation and forwarded it to its peer-partner node via the appropriate protocol. They, after verification, sent it further. Individual nodes kept a list of so-called unconfirmed transactions. Validator (consensus selected) in a given round, selected from this list a subset of non-conflicting transactions, which it included in the newly created block, which in turn spread through the peer-to-peer network to other nodes.
They then add it to the list of known blocks. Each of these nodes therefore holds a complete blockchain, hence chained list of blocks. The moment the author of the record received the block with his record, he knew that this one was successfully included. Depending on the algorithm, the consensus may be for an increase the probability that the forcing and orphaning of the relevant block will not occur, it is necessary to wait for confirmation by other blocks.
Today, blockchain topologies are much more flexible, in addition to the mentioned nodes, they can appear as so-called a light client, who unlike the aforementioned “full node”, does not keep the entire state in memory blockchain, but only a small part. There are also various cloud applications that provide a more user-friendly environment for a blockchain service.
Active work with blockchain, using asymmetric cryptography signatures, assumes that the user has the appropriate private keys available in some suitable storage.
That can be hard drive on his computer, USB key, cloud storage, special hardware device on which a private key is saved, but also, for example, paper with a printed private key. These repositories are usually referred to as a “wallet”, as in the beginning, repositories were used mainly to access the bitcoin name.
An (intelligent) smart contract is a protocol that ensures the automatic implementation of contracts and agreements.
In a broader sense, an intelligent contract is any software that runs autonomously without user control, or users or any third party processing the delivered inputs to the outputs.
Examples include redirecting 10% of the income that comes to an employee’s account, automatically to a savings account, regularly paying rent for the duration of the lease, keeping a deposit until the conditions for its release or evaluating the conditions for obtaining support are met. The input is typically a new user transaction that starts a smart contract program. It calculates and returns the output, and eventually saves the changed position.
A distributed blockchain network is a suitable environment for running smart contracts. Users can upload their software as a special blockchain entry.
Every computer where a given blockchain runs can then run this software. Each new entry in the blockchain database can be the input for this smart contract. If a new record is started by the smart contract program, the program performs the necessary calculation, returns the output, and saves the changed state as needed. This happens deterministically, always with the same result on any computer where the blockchain is running.
User intelligent contracts uploaded to the blockchain are visible to everyone, like any other record, including all potential bugs and security vulnerabilities.
This transparency and the ability to identify a “different” calculation result (caused by either an unintentional defect or a deliberate compromise of a particular computing node) represents a huge advantage in terms of information security management (especially the risk of unauthorized execution or change of application code functionality).
At the same time, it is necessary to be aware of the increased risk associated with the deployment (in this case on many computing nodes) of incorrect smart contract code (insufficiently tested or intentionally “damaged”), especially in cases where decentralized execution of such contracts (without the possibility of centralized / manual intervention and correction of the result), can have difficult-to-correct consequences (for example, payment of funds and other funds, automatic granting of rights, etc.).
It is also important to mention that there is not yet a standard for creating smart contracts. Their implementation depends on the chosen solution, the used programming language, through the way of working with long-term data to various limitations of the platform on which they run.
Because all blockchain entries are maintained on many nodes, it is not very desirable store large amounts of data in them. In cases where permanent, unchangeable provision of large data files needs to be ensured, these can be stored on some cloud storage. The blockchain then only writes a record of what files were saved, when and where, including a hash of those files.
So, you’re eventual the verifier can verify in the future that the data are original and have not been changed, in other words it can be shown that given the data correspond to the data described in the blockchain. The data storage itself can be, for example, the organization’s website, cloud storage, private FTP server or decentralized storage on a torrent protocol (in which case it would be as a link instead of saving the file he used the so-called magnet link) or IPFS.
Standardization and interoperability
Blockchain is a relatively young technology. Individual implementations to a greater or lesser extent use standardized products and solutions (e.g. in the field of cryptography), various blockchain solutions, applications or smart contracts themselves are not yet standardized. Various implementations bring their own solutions as well as their own limitations.
But that may change in the near future. International Telecommunication Union (ITU), a specialized OSN agency, that aims, among other things, to develop technical standards, as well as the International Organization for Standardization (ISO) has set up working groups for blockchain and DLT, which are already working on the relevant standards.
The interoperability of a blockchain with external applications and / or other blockchains depends on the specific implementation but is generally at a high level. Many projects offer extensive APIs and SDKs for the integration of external applications at the programming level, and several are, or can be without major effort connect with the most used ERP systems.
History of blockchain and current use
First considerations about the possibilities of reaching consensus in computer networks, where the computers themselves or the network are unreliable, appeared before the year 2002. The year of origin can be considered the year 2008, when Satoshi Nakamoto designed and described the operation of the Bitcoin network. Later, in January 2009, he published source code and launched the Bitcoin network.
Bitcoin became the first modern cryptocurrency to follow many other cryptocurrencies (up to the current approximately 1600 – 2000). Attempts to introduce cryptocurrencies existed before (ecash or NetCash), but never gained more popularity.
Bitcoin and other cryptocurrencies have been very popular since about 2013. At present, the total market capitalization publicly traded cryptocurrencies is about $ 211 billion and a daily turnover of about $ 13 billion. In year 2013 the Ethereum network was designed and launched in 2015, supporting smart contracts.
Since about 2014, there have been considerations about the use of blockchain for purposes other than cryptocurrencies and are announced the first projects using blockchain as a distributed database for use in enterprise sphere, state administration, possibly elsewhere.
There are also blockchain networks designed specifically for various business applications, not for cryptocurrencies. In the years 2016-2018, hundreds of beneficial projects are announced using blockchain in all spheres of life. The most interesting of these are described below in this study.