Open source blockchain platforms
What is blockchain platform?
A blockchain platform is a software or infrastructure that enables the creation, deployment, and management of blockchain networks and applications. It provides the necessary tools, protocols, and frameworks for developers, businesses, and organizations to build and operate blockchain-based solutions.
A blockchain platform typically includes the following components:
- Blockchain Network: The platform establishes and manages the underlying blockchain network, which is a distributed and decentralized network of nodes that maintain a shared ledger of transactions.
2. Consensus Mechanism: The platform defines the consensus algorithm or mechanism that governs how nodes in the network agree on the validity and order of transactions. Common consensus mechanisms include proof-of-work (PoW), proof-of-stake (PoS), and practical Byzantine fault tolerance (PBFT).
3. Smart Contracts: Most blockchain platforms support the execution of smart contracts, which are self-executing contracts with predefined rules and conditions. Smart contracts enable the automation and enforcement of agreements on the blockchain.
4. Development Tools: The platform provides software development kits (SDKs), programming interfaces (APIs), and other tools to facilitate the development of blockchain applications. These tools often include libraries, compilers, and frameworks that simplify the creation of smart contracts and dApps.
5. Security and Privacy: Blockchain platforms offer security measures to protect the network and its participants from attacks and unauthorized access. They may implement encryption, cryptography, digital signatures, and access control mechanisms. Some platforms also address privacy concerns by offering features like private transactions or permissioned networks.
6. Governance and Upgrades: Many blockchain platforms incorporate governance mechanisms that enable stakeholders to participate in decision-making processes. This can include voting on protocol upgrades, proposing changes, and managing the platform’s evolution. Some platforms have self-amending capabilities that allow for protocol upgrades without requiring hard forks.
7. Integration Capabilities: Blockchain platforms often provide integration options to connect with external systems, databases, or APIs. This allows developers to leverage existing infrastructure and interact with off-chain data sources or services.
Key examples
1. Ethereum: Ethereum is a decentralized, open-source blockchain platform that supports smart contracts and the development of decentralized applications (dApps). It uses its native cryptocurrency called Ether (ETH) and is known for its programmable functionality, which allows developers to build complex applications on top of the blockchain.
2. Hyperledger Fabric: Hyperledger Fabric is an open-source permissioned blockchain platform developed by the Linux Foundation. It provides a modular architecture that enables enterprises to build private, scalable, and secure blockchain networks. Fabric supports smart contracts written in various programming languages and offers features like channel-based privacy, flexible consensus mechanisms, and membership services.
3. Corda: Corda is an open-source blockchain platform designed for enterprise use cases. It focuses on privacy and security by using a permissioned network architecture. Corda enables businesses to transact directly, securely, and privately using smart contracts. It also provides a unique “notary” service for validating transactions without exposing sensitive data.
4. Stellar: Stellar is an open-source blockchain platform designed for cross-border transactions and digital asset issuance. It offers fast, low-cost transactions and supports the creation of tokens and assets on the network. Stellar uses a consensus protocol called the Stellar Consensus Protocol (SCP) and has a built-in decentralized exchange for asset trading.
5. Quorum: Quorum is an open-source blockchain platform built on Ethereum but tailored for private enterprise networks. It incorporates features like private transactions, network permissions, and enhanced data privacy. Quorum is widely used in industries such as finance and supply chain management, where privacy and confidentiality are critical.
6. IOTA: IOTA is an open-source blockchain platform specifically designed for the Internet of Things (IoT). It utilizes a directed acyclic graph (DAG) called the Tangle instead of a traditional blockchain. IOTA aims to provide a scalable, feeless, and secure infrastructure for machine-to-machine transactions and data transfer in IoT ecosystems.
7. Tezos: Tezos is an open-source blockchain platform that features a self-amending governance mechanism. It allows stakeholders to vote on proposed protocol upgrades without the need for hard forks. Tezos supports smart contracts and offers formal verification, a technique for mathematically proving the correctness of the code.
Case study: Hyperledger
Hyperledger Fabric is an open source enterprise-grade permissioned distributed ledger technology (DLT) platform, designed for use in enterprise contexts, that delivers some key differentiating capabilities over other popular distributed ledger or blockchain platforms.
One key point of differentiation is that Hyperledger was established under the Linux Foundation, which itself has a long and very successful history of nurturing open source projects under open governance that grow strong sustaining communities and thriving ecosystems. Hyperledger is governed by a diverse technical steering committee, and the Hy- perledger Fabric project by a diverse set of maintainers from multiple organizations. It has a development community that has grown to over 35 organizations and nearly 200 developers since its earliest commits.
Fabric has a highly modular and configurable architecture, enabling innovation, versatility and optimization for a broad range of industry use cases including banking, finance, insurance, healthcare, human resources, supply chain and even digital music delivery.
Fabric is the first distributed ledger platform to support smart contracts authored in general-purpose programming languages such as Java, Go and Node.js, rather than constrained domain-specific languages (DSL). This means that most enterprises already have the skill set needed to develop smart contracts, and no additional training to learn a new language or DSL is needed.
The Fabric platform is also permissioned, meaning that, unlike with a public permissionless network, the participants are known to each other, rather than anonymous and therefore fully untrusted. This means that while the participants may not fully trust one another (they may, for example, be competitors in the same industry), a network can be operated under a governance model that is built off of what trust does exist between participants, such as a legal agreement or framework for handling disputes.
One of the most important of the platform’s differentiators is its support for pluggable consensus protocols that enable the platform to be more effectively customized to fit particular use cases and trust models. For instance, when deployed within a single enterprise, or operated by a trusted authority, fully byzantine fault tolerant consensus might be considered unnecessary and an excessive drag on performance and throughput. In situations such as that, a crash fault-tolerant (CFT) consensus protocol might be more than adequate whereas, in a multi-party, decentralized use case, a more traditional byzantine fault tolerant (BFT) consensus protocol might be required.
Fabric can leverage consensus protocols that do not require a native cryptocurrency to incent costly mining or to fuel smart contract execution. Avoidance of a cryptocurrency reduces some significant risk/attack vectors, and absence of cryptographic mining operations means that the platform can be deployed with roughly the same operational cost as any other distributed system.
The combination of these differentiating design features makes Fabric one of the better performing platforms avail- able today both in terms of transaction processing and transaction confirmation latency, and it enables privacy and confidentiality of transactions and the smart contracts (what Fabric calls “chaincode”) that implement them.
Architecture
The major components of hyperledger are as follows:
- Assets – Asset definitions enable the exchange of almost anything with monetary value over the network, from whole foods to antique cars to currency futures.
- Chaincode – Chaincode execution is partitioned from transaction ordering, limiting the required levels of trust and verification across node types, and optimizing network scalability and performance.
- Ledger Features – The immutable, shared ledger encodes the entire transaction history for each channel, and includes SQL-like query capability for efficient auditing and dispute resolution. Some features of a Fabric ledger:
1. Query and update ledger using key-based lookups, range queries, and composite key queries
2.Read-only queries using a rich query language (if using CouchDB as state database)
3. Read-only history queries – Query ledger history for a key, enabling data provenance scenarios
4. Transactions consist of the versions of keys/values that were read in chaincode (read set) and keys/values that were written in chaincode (write set)
5. Transactions contain signatures of every endorsing peer and are submitted to ordering service
6. Transactions are ordered into blocks and are “delivered” from an ordering service to peers on a channel
7. Peers validate transactions against endorsement policies and enforce the policies
8. Prior to appending a block, a versioning check is performed to ensure that states for assets that were read have not changed since chaincode execution time
9. There is immutability once a transaction is validated and committed
10. A channel’s ledger contains a configuration block defining policies, access control lists, and other pertinent information
11. Channels contain Membership Service Provider instances allowing for crypto materials to be derived from different certificate authorities
- Privacy – Channels and private data collections enable private and confidential multi-lateral transactions that are usually required by competing businesses and regulated industries that exchange assets on a common net- work.
- Security & Membership Services – Permissioned membership provides a trusted blockchain network, where participants know that all transactions can be detected and traced by authorized regulators and auditors.
- Consensus – A unique approach to consensus enables the flexibility and scalability needed for the enterprise.
How a hyperledger looks like?
Three organizations, R1, R2, and R0 have jointly decided that they will establish a network. This network has a configuration, CC1, which all of the organizations have agreed to and which lists the definition of the organizations as well as the policies which define the roles each organization will play on the channel.
On this channel, R1 and R2 will join peers, named P1 and P2, to the channel, C1, while R0 owns O, the ordering service of the channel. All of these nodes will contain a copy of the ledger (L1) of the channel, which is where transactions are recorded. Note that the copy of the ledger kept by the ordering service does not contain a state database. R1 and R2 will also interact with the channel through the applications A1 and A2, which they own. All three organizations have a Certificate Authority that has generated the necessary certificates for the nodes, admins, organizations definitions, and applications of its organization.
How hyperledger works?
For each and every transaction in the fabric, the following steps are followed-
- Creation of the proposal: Imagine a deal between a smartphone manufacturer company and a smartphone dealership. The transaction begins when a member organization proposes or invokes a transaction request with the help of the client application or portal. Then the client application sends the proposal to peers in each organization for endorsement.
- Endorsement of the transaction: After the proposal reaches the endorser peers (peers in each organization for endorsement of a proposal) the peer checks the fabric certificate authority of the requesting member and other details that are needed to authenticate the transaction. Then it executes the chain code (a piece of code that is written in one of the supported languages such as Go or Java) and returns a response. This response indicates the approval or rejection of the following transaction. The response is carried out to the client.
- Submission to ordering service: After receiving the endorsement output, the approved transactions are sent to the ordering service by the client-side application. The peer responsible for the ordering service includes the transaction into a specific block and sends it to the peer nodes of different members of the network.
- Updating the ledger: After receiving this block the peer nodes of such organizations update their local ledger with this block. Hence the new transactions are now committed
References
1.Hyperledger
2.Blockchain platforms