The Blockchain Ecosystem
The blockchain is not only a protocol or programming system; it is considered an ecosystem ,as so, it consists of different elements that interact between them and the users to make the platform work. The main factors in this ecosystem are the shared ledger, the node application, the virtual machine and the consensus algorithm. All four of them and their interactions will be covered.
Shared Ledger
A ledger is a term born in the accounting world, which refers to “a book containing accounts to which debits and credits are posted from books of original entry” (Merriam-Webster Dictionary). In the blockchain ecosystem this term was taken and used to denominate its database; which is shared, replicated and synchronized throughout the users of a decentralized network (in this case the blockchain network). These users, or more specifically nodes, are to record peer-to-peer transactions (dynamic data), and registry (static data), while keeping the information available for every other user. In Telos Blockchain, we know these nodes as block producers or witnesses.
A shared ledger also has the added benefit of discarding intermediaries, which add fees and centralize the system, at the same time as it makes data storage efficient, by avoiding duplicate information to go around users, saving time and costs.
To ensure the security and audit ability of the transactions kept in the ledger, every record is time stamped and signed with a unique cryptographic signature; in Telos each BP and auditor has its own identification registered in a smart contract, the “regproduce” and the “regarb”, this way every transaction verified and stored has the signature of the nodes who approved it.
The latter is part of the main asset of the shared ledger: its immutability, which is key for the security that this system offers to its users. It is obtained through the way the transactions are approved and stored: cryptographically, chronologically, and after all nodes agree to it depending on their consensus algorithm. This prevents adjustments to be done in the block after the transaction has been fully verified and the subsequent one is being validated. If any modifications are made to the data, it will be registered.
Consensus Algorithm
In blockchain, the main security feature, and what allows these networks to exist as decentralized entities, are the consensus algorithms. These fault-tolerant systems are used by blockchain to work by unifying all the nodes’ decisions, or contributions, regarding a transaction, thus validating it or not. Therefore they are called consensus algorithms, or mechanisms; they are meant to reach a consensus between the nodes to validate transactions, build blocks and ensure the networks’ appropriate and continuous operation. This is of utmost importance in keeping the ledger safe and ever available while avoiding double spending.
There are three major consensus mechanisms that blockchain networks apply: Proof of Work (PoW), Proof of Stake (PoS) and Delegated Proof of Stake (DPoS). Networks like Bitcoin, Etehreum and Litecoin rely on PoW, NXT relies on PoS and both EOS and Telos rely on the newest mechanism of all, the DPoS.
In the PoW consensus, the network consists of nodes, or miners in this case, that validate and register the transactions in the chain. For this, they must have high computational resources for dealing with complex calculations to create the block; the miner that produces the last hash values receives a reward. Because of the growing numbers of miners, the difficulty of the algorithm for solving the hash is increasing; in consequence, miners need a greater computational level to solve them, which meanwhile means more expensive equipment and a higher energy consumption.
In the PoS consensus there are no miners but block producers, who are chosen according to their token stake; the more coins they own the more blocks they can work on. This method was developed as an alternative to PoW that offered lower costs and energy consumption. The ledger is maintained by these selected users; the issue is that this is why whales were created. Users with high stakes are the chosen ones for validation, giving them much more power than most of the other users. Responding to this issue, DPoS was implemented. Block producers are selected by all the token holders through a voting system. Because of this, the BPs have to show to the community that they are worth their grant by excelling in their transaction validation, block production and overall maintenance of both the mainnet and the testnets. For Telos, the voting system is inverse weighted; this means that the weight of a vote depends on the amount of votes cast. Token holders have a maximum amount of BP candidates for which they can choose, if they vote for that number of candidates their vote will have its full impact, whereas if they vote for fewer candidates the value of the vote diminishes. This procedure avoids favorable voting and encourages higher performance of BPs.
We show a comparison chart between these three consensus algorithms below.
Virtual Machine
Virtual machines were first stablished in 1974 by two computer scientists: Gerald J. Popek and Robert P. Goldberg. They described it as “an efficient, isolated duplicate of a real computer machine”. It is an emulator of a computer that can run as software or hardware to execute programs in a virtual environment.
In blockchain, Ethereum was the first platform to adopt the virtual machine within its environment with the Ethereum Virtual Machine (EVM), allowing users to program their operations or transactions. The idea was to run a protocol through a P2P network to serve as a back-end to execute actions (like smart contracts written in programming languages) and power DApps, with the physical computers being run by the nodes. Ethereum’s EVM, for example, confirms the validity of signatures and values in a transaction, calculates the transaction’s fee and executes the transfer requested in such agreement.
With virtual machines, developers can run their DApps without having to install or hire servers. All the RAM, transactions and data storage is performed by the blockchain; this is the process followed in Telos Blockchain. We build the latter with the EOSIO virtual machine known as WAVM, which is the WebAssembly Virtual Machine; smart contracts are written in C++ and then compiled and executed with WebAssembly (WASM), this binary format is capable of execute other programming languages such as Python, Ruby and Java.
The WAVM is characterized for being a stacking machine, consisting of a last-in, first-out stack, and a program counter. This stacking system allows it to have compact object code, simple compilers, simple interpreters and easier control flow.
Node Application
Last, the node function is the software through which the user (node) communicates with its computer to the blockchain network or shared ledger; the virtual machine and the consensus algorithm are a part of the node application, and the shared ledger is stored in the node application.
“In slightly more technical parlance, the blockchain ecosystem constitutes a service overlay network (SON) and to be a node in the network your computer must be able to process application-specific messages and affect the shared state of the SON”
We do not need it to say that, at the end, the node application is to the blockchain ecosystem as the earth is to our ecosystem.