Nowadays one of the most exciting and emerging technologies is Blockchain, if you have not heard about this, let me introduce you to the main concepts behind blockchain:
· Immutability: Blockchain is a distributed ledger in which each copy is organized in a chain of blocks. Each block has an identification provided by a hash; so if any part in some block is modified then its corresponding hash will also change. In this scheme immutability is achieved by creating a cryptographic link between each block and the previous one. Due to each block refers to the hash of the previous one, then changing content in some block implies the change of the hash of the next block; at the end, whole subsequent blocks will have different hashes. So tampering on the blockchain content can easily be noticed.
· Integrity: In blockchain integrity is achieved through:
Secure and unique account address: Each account address is generated by selecting a number(private key), then a public key is generated through ECDSA(Elliptic Curve Digital Signature algorithm) scheme, once the public key is obtained a hash is computed, this represents the account address.
Authorization of the transaction by the sender through digital signing, the sender includes as part of the transaction the signed content of the transaction hash with their private key.
Verification of the transaction content is not modified. Other participants in the network can easily verify the transaction is authentic by using the correspondent public key to decrypt the signature, which is included in the transaction, and recomputing the hash of the transaction, finally if those match, then the transaction is validated.
· Traceability: By using blockchain we are able to track each record of what is put into the blockchain. This is an important feature that is extensively applied to track different stages that products have gone through.
· Robustness: This is a more complex and technical topic so I only will comment that in case of Ethereum networks it handles the double spend problem by ensuring that a block is added after a strict consensus protocol (in order to handle soft forks) and a combination of nonce transactions and timestamp (to address the issue when two transactions point to the same digital asset).
From an enterprise view there are many other features that are needed.
In order to scale blockchain to a business level, permissions and privacy modules are also needed.
Enterprise Ethereum Alliance and Hyperledger Besu:
EEA is the Enterprise Ethereum Alliance that involves many big companies like JP Morgan Chase Bank, N.A., Intel, BBVA among others. The goal of this organization is to drive the use of Ethereum blockchain technology as an open-standard to empower all enterprises by addressing their requirements.
Hyperledger Besu, scaling Ethereum blockchain to the enterprise level
Hyperledger Besu integrates:
· A new Ethereum client written in java from scratch.
· Improved the IBFT consensus algorithm. The improved protocol is IBFT2.0. IBFT was originally proposed by Qorum.
In an IBFT2.0 network there are special nodes called validators who are responsible for adding new blocks to the network, this process is reached after a round between all validators in the network. Only validators have the capability to add or remove validators in the network.
Other nodes that are not validators are known as regular nodes. These nodes can submit new transactions but are not able to write to the chain; this privilege is only performed by validators.
One advantage of IBFT2.0 is immediate finality, that means there are no forks in the network (No two valid but different blocks with the same height can be added to the chain), so there is no possibility to exist more than one valid block for the same height at some point in time, because a candidate block is only proposed by one of the validators(proposer) and then imported to each chain only if each node has received 2/3n messages from other validators indicating that the block is valid. If so that block is added by each participant node. The proposer is changed constantly after each consensus round; this ensures detachment in the consensus process. Clearly this feature addresses robustness in this kind of network, so now soft forks do not exist anymore.
Technically there is no way to modify the blocks and change the validators, other than the consensus between all validators, where more than 50% of them must vote in order to add or remove a new validator.
Another feature of IBFT2.0 is that in order to continue processing blocks the network must have at least 2/3 of active validator nodes in the network, otherwise the network stops validating blocks.
The following picture shows an IBFT2.0 flowchart for choosing the next block in the network.
· Implementation of the EEA (Enterprise Ethereum Alliance) specifications. Thanks to this implementation it is now possible to use an Ethereum network and create private groups where only participants in that group can create transactions between them. This feature takes relevance because of the variety of possibilities that those private transactions can represent. With this feature participants can trace private transactions and nobody other than the participants in the private group have access to read or write transactions.
Know more about Blockchain to an Enterprise Level in: https://kaytrust.id/
everis Digital Lab:
everis Digital Lab (part of everis — an NTT DATA Company) is intended to investigate and deliver enterprise solutions based on promising technologies. Currently we are actively focused on blockchain technologies, in that way we are investigating and contributing with this community.
Our mission and the potential features that Hyperledger Besu represents actively contribute with this implementation in order to achieve a more sophisticated Ethereum Java solution that can better fit our customer needs.
According to that, we have proposed the following:
1. The capability for users to Fork a network that runs with IBFT2.0 consensus algorithm. Fork is part of the blockchain ecosystem. Even under private environments the possibility for participants to fork the network is required. In a consortium scenario it is possible that one or several nodes (it can be a regular or validator) would want to be independent at some point in the chain. This enhancement was proposed by everis Digital Lab.
2. Testing code related to interaction between private and public smart contracts. Privacy is a feature that Hyperledger Besu has recently released. As part of our research, in the digital lab we are constantly testing those new functionalities to make sure everything works as expected.