There are various platforms and development kits that complement existing blockchains. For example, Kadena is a new private blockchain with novel ideas such as Scalable BFT. Various concepts such as sidechains, drivechains, and pegging have also been introduced with this growth of blockchain technologies.
This article is an excerpt taken from the book Advanced Blockchain Development by Packt Publishing, written by Imran Bashir, Narayan Prusty. This book covers the basic understanding of decentralized applications, mechanism behind bitcoin, blockchain solutions and much more.
Blockchain solutions, Kadena and Quoram and much more.
is a private blockchain that has successfully addressed
scalability and privacy issues in blockchain systems. A new Turing incomplete
language, called Pact, has also been introduced with Kadena that allows the
development of smart contracts. A key innovation in Kadena is its Scalable BFT
consensus algorithm, which has the potential to scale to thousands of nodes
without performance degradation.
BFT is based on the original Raft algorithm and is a successor of Tangaroa and
Juno. Tangaroa, which is a name given to an implementation of Raft with fault
tolerance (a BFT Raft), was developed to address the availability and safety
issues that arose from the behavior of Byzantine nodes in the Raft algorithm,
and Juno was a fork of Tangaroa that was developed by JPMorgan.
of these proposals have a fundamental limitation—they cannot scale while
maintaining a high level of high performance. As such, Juno could not gain much
traction. Private blockchains have the more desirable property of maintaining
high performance as the number of nodes increase, but the
aforementioned proposals lack this feature. Kadena solves this issue with
its proprietary Scalable BFT algorithm, which is expected to scale up to
thousands of nodes without any performance degradation.
confidentiality is another significant aspect of Kadena that enables privacy of
transactions on the blockchain. This security service is achieved by using a
combination of key rotation, symmetric on-chain encryption, incremental
hashing, and Double Ratchet protocol.
rotation is used as a standard mechanism to ensure the security of the private
blockchain. It is used as a best practice to thwart any attacks if the keys
have been compromised, by periodically changing the encryption keys. There is
native support for key rotation in Pact smart contract language.
on-chain encryption allows encryption of transaction data on the blockchain.
These transactions can be automatically decrypted by the participants of a
particular private transaction. Double Ratchet protocol is used to provide key
management and encryption functions.
BFT consensus protocol ensures that adequate replication and consensus has been
achieved before smart contract execution. The consensus is achieved by
following the process described here.
This is how a transaction originates and flows in the network:
First, a new transaction is signed by the user and broadcasted over the blockchain network, which is picked up by a leader node that adds it to its immutable log. At this point, an incremental hash is also calculated for the log. Incremental hash is a type of hash function that allows computation of hash messages in the scenario where, if a previous original message which is already hashed is slightly changed, then the new hash message is computed from the already existing hash. This scheme is quicker and less resource intensive compared to a conventional hash function where an altogether new hash message is required to be generated even if the original message has only changed very slightly.
Once the transaction is written to the log by the leader node, it signs the replication and incremental hash and broadcasts it to other nodes.
Other nodes after receiving the transaction, verify the signature of the leader node, add the transaction into their own logs, and broadcast their own calculated incremental hashes (quorum proofs) to other nodes. Finally, the transaction is committed to the ledger permanently after an adequate number of proofs are received from other nodes.
simplified version of this process is shown in the following diagram, where the
leader node is recording the new transactions and then replicating them to the
the consensus is achieved, a smart contract execution can start
and takes a number of steps, as follows:
First, the signature of the message is verified.
Pact smart contract layer takes over.
Pact code is compiled.
The transaction is initiated and executes any business logic embedded within the smart contract. In case of any failures, an immediate rollback is initiated that reverts that state back to what it was before the execution started.
Finally, the transaction completes and relevant logs are updated.
can be downloaded as a standalone binary that provides a REPL for Pact language.
An example is shown here where Pact is run by issuing the ./pact command in Linux
smart contract in Pact language is usually composed of
three sections: keysets, modules, and tables. These sections are described
Keysets: This section defines relevant
authorization schemes for tables and modules.
Modules: This section defines the smart contract
code encompassing the business logic in the form of functions and pacts. Pacts within modules
are composed of multiple steps and are executed sequentially.
Tables: This section is an access-controlled
construct defined within modules. Only administrators defined in the admin
keyset have direct access to this table. Code within the module is
granted full access, by default to the tables.
also allows several execution modes. These modes
include contract definition, transaction execution, and querying.
These execution modes are described here:
Contract definition: This mode allows a
contract to be created on the blockchain via a single transaction message.
Transaction execution: This mode entails
the execution of modules of smart contract code that represent
Querying: This mode is concerned with simply probing
the contract for data and is executed locally on the nodes for performance
reason. Pact uses LISP-like syntax and represents in the code exactly what will
be executed on the blockchain, as it is stored on the blockchain in
human-readable format. This is in contrast to Ethereum’s EVM, which compiles
into bytecode for execution, which makes it difficult to verify what code is
in execution on the blockchain. Moreover, it is Turing incomplete,
supports immutable variables, and does not allow null values, which improves
the overall safety of the transaction code execution.
The following example has
been developed using the online Pact compiler available at http://kadena.io/try-pact/.
the code is run, it produces the output shown as follows:
shown in the preceding example, the execution output matches exactly with the
code layout and structure, which allows for greater transparency and limits the
possibility of malicious code execution.
is a new class of blockchains introducing the novel concept of pervasive
in addition to standard public/private key-based data origin security, an
additional layer of fully deterministic consensus is also provided. It provides
cryptographic security at all layers of the blockchain including transactions
and consensus layer.
has also introduced a public blockchain in January, 2018 which is another leap
forward in building blockchains with massive throughput. The novel idea in this
proposal is to build a PoW parallel chain architecture. This scheme works by
combining individually mined chains on peers into a single network. The result
is massive throughput capable of processing more than 10,000 transactions per
is a blockchain solution built by enhancing the existing Ethereum
blockchain. There are several enhancements such as transaction privacy and a
new consensus mechanism that has been introduced in Quorum. Quorum has
introduced a new consensus model known as QuorumChain, which is based on a
majority voting and time-based mechanism. Another feature called Constellation
is also introduced which is a general-purpose mechanism for submitting
information and allows encrypted communication between peers. Furthermore,
permissions at node level is governed by smart contracts. It also provides a
higher level of performance compared to public Ethereum blockchains.
components make up the Quorum blockchain ecosystem. These are listed
in the following subsections.
component enables access to encrypted transaction data. It also
manages local storage on nodes and communication with other transaction
managers on the network.
the name suggests, this component is responsible for providing cryptographic
services to ensure transaction privacy. It is also responsible for performing
key management functions.
is the key innovation in Quorum. It is a BFT
consensus mechanism which allows verification and circulation of
votes via transactions on the blockchain network. In this scheme, a smart
contract is used to manage the consensus process and nodes can be given voting
rights to vote on which new block should be accepted. Once an appropriate
number of votes is received by the voters, the block is considered valid. Nodes
can have two roles, namely Voter or Maker. The Voter node is allowed to
vote, whereas the Maker node is the one that creates a new
block. By design, a node can have either right, none, or only one.
component provides an access control layer for
the permissioned network.
node in the quorum network can take several roles, for example, a Maker node
that is allowed to create new blocks. Transaction privacy is provided using
cryptography and the concept that certain transactions are meant to be viewable
only by their relevant participants.
in a Quorum network consists of various elements such as the recipient, the
digital signature of the sender, which is used to identify the transaction
originator, optional Ether amount, the optional list of participants that are
allowed to see the transaction, and a field that contains a hash in case of
transaction goes through several steps before it can reach its destination.
These steps are described as follows in detail:
User applications (DApps) send the transaction to the Quorum node via an API exposed by the blockchain network. This also contains the recipient address and transaction data.
The API then encrypts the payload and applies any other necessary cryptographic algorithm in order to ensure the privacy of the transaction and is sent to the transaction manager. The hash of the encrypted payload is also calculated at this step.
After receiving the transaction, the transaction manager validates the signature of the transaction sender and stores the message.
The hash of the previously encrypted payload is sent to the Quorum node.
Once the Quorum node starts to validate a block that contains the private transaction, it requests more relevant data from the transaction manager.
Once this request is received by the transaction manager, it sends the encrypted payload and relevant symmetric keys to the requestor Quorum node.
Once the Quorum node has all the data, it decrypts the payload and sends it to the EVM for execution. This is how Quorum achieves privacy with symmetric encryption on the blockchain, while it is able to use native Ethereum protocol and EVM for message transfer and execution respectively.
similar concept, but quite different in a few aspects, has been
proposed before in the form of HydraChain, which is based on
Ethereum blockchain and allows the creation
of permissioned distributed ledgers.
In this article we
learned about the blockchain solutions, Kadena and Quoram and much more. To
know more about decentralized applications and mechanism behind bitcoin, check
out the book Advanced Blockchain Development by Packt Publishing.