everis - Scaling blockchain to an enterprise level

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.

In this article I am going to cover part of our contributions to the blockchain community. These contributions help us create advanced and robust solutions for our clients.

This article covers the following:

  • Blockchain overview
  • EEA privacy standard specifications and Hyperledger Besu
  • everis Digital Lab. Contributions to the Hyperledger Besu community (Ethereum client implementation).
  • Conclusion

Blockchain Overview:

Nowadays one of the most exciting and emerging technologies is Blockchain, if you have not listened about this let me introduce you 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) from which 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 matches 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, permissioning and privacy modules are also needed.

Enterprise Ethereum Alliance and Hyperledger Besu:

EEA is the Enterprise Ethereum Alliance, this group 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.

Following this trend Pegasys has totally recreated the Ethereum client. For that, Java programming language has been chosen. The goal is to build an enterprise production solution. The new client was initially released as Pantheon but now it is under the umbrella of Hyperledger and it is now known as Hyperledger Besu.

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 of 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 the same height at some point of 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 this feature addresses robustness in this kind of networks, so now soft forks does 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.

source: Pegasys
  • 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 can access to read or write transactions.

everis Digital Lab:

Because of our mission and the potential features that Hyperledger Besu represents we 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 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. You can find the details here. This capability was implemented by Pegasys and is available from version Besu 1.3.5 it opens the possibility to any member in the network to create its own fork without involving the current validators. The details about the implementation can be found here.
  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 all works as expected. For example we have been testing the capability of a private smart contract to read the state variable of a public smart contract, where we found some bugs that were reported to Hyperledger Besu and fixed immediately by them. https://pegasys1.atlassian.net/browse/PAN-3240 https://pegasys1.atlassian.net/browse/PAN-3222

Conclusion

Ethereum blockchain is opening a wide variety of applications to potentially be developed; on the other hand everis is committed to create new and disruptive enterprise graded products that fits our customer needs, but it is also required to build solutions based on long and supportive community for our developers.

Hyperledger Besu is an Ethereum client, written from scratch in Java, which offers a blockchain solution which addresses privacy features based on high level specifications(EEA). In this context everis Digital Lab is actively contributing to the blockchain community in order to create solutions that help us give the most advanced and robust solutions on behalf of our clients.

Author: Erick Pacheco — Researcher at Digital Lab Blockchain/DLT Peru in everis

Editor: Juan José Miranda — Director at Digital Technology Innovation & labs Peru in everis

--

--