Hedera is a fully open source public distributed ledger that utilizes the fast, fair, and secure hashgraph consensus. Its network services include Solidity-based smart contracts, as well as native tokenization and consensus services used to build decentralized applications.
AFTER READING THIS, YOU'LL UNDERSTAND:
RELATED TOPICS:
Hedera is a fully open source, proof-of-stake, public network and governing body for building and deploying decentralized applications. It offers developers three primary services: Solidity-based smart contracts, consensus, and token services. Hedera is unique in that it is incredibly fast, energy-efficient (carbon negative), and secure — these advantages can be attributed to its underlying hashgraph consensus algorithm.
The Hedera public network is proof-of-stake and built on the open source hashgraph distributed consensus algorithm, invented by Dr. Leemon Baird, Hedera Co-founder and Chief Scientist. The hashgraph consensus algorithm provides near-perfect efficiency in bandwidth usage and consequently can process hundreds of thousands of transactions per second in a single shard (a fully connected, peer-to-peer mesh of nodes in a network).
Unlike a traditional proof-of-work blockchain, which selects a single miner to choose the next block, the community of nodes running hashgraph come to an agreement on which transactions to add to the ledger as a collective. Through gossip-about-gossip and virtual voting, the hashgraph network comes to consensus on both the validity and the consensus timestamp of every transaction. If the transaction is valid and within the appropriate time, the ledger’s state will be updated to include the transaction with 100% certainty (finality).
In blockchain, consensus rules require that blocks eventually settle in a single, longest chain, agreed upon by the community. If two blocks are created at the same time, the network nodes will eventually choose one chain to continue and discard the other one, lest the blockchain “fork” into two different chains. It is like a growing tree that is constantly having all but one of its branches chopped off.In hashgraph, every container of transactions is incorporated into the ledger — none are discarded — so it is more efficient than blockchains. All the branches continue to exist forever and are woven together into a single whole. Furthermore, blockchain fails if the new containers arrive too quickly, because new branches sprout faster than they can be pruned. That is why blockchain needs proof-of-work or some other mechanism to artificially slow down the growth. In hashgraph, nothing is thrown away.The hashgraph consensus algorithm has been processed as asynchronous Byzantine Fault Tolerant (ABFT) by a math proof checked by computer using the Coq system. This proves the claims stated in the hashgraph tech report that hashgraph is aBFT — mathematically the highest possible level of security for distributed systems. Both the algorithm and Hedera's implementation are open sourced under an Apache 2.0 license.
Hedera enables developers to build decentralized applications using three main services: Smart Contracts, Consensus, and Token, through the easy-to-use API and officially supported / community-supported SDKs.
Smart contracts play a critical role in building the trust layer of the internet. Used to manage autonomous logic that doesn’t rely on a centralized intermediary, server, or custom governance model, smart contracts can power decentralized applications. The Hedera Smart Contract service lets you program in Solidity and utilizes the Besu Ethereum Virtual Machine (EVM). The Besu EVM has been specifically optimized for the Hedera network and hashgraph consensus, allowing for hundreds of transactions per second, low and predictable fees, a carbon-negative footprint, and incredible performance at 15 million gas per second.You can view the full documentation for the Smart Contract service and a "Deploy Your First Smart Contract" tutorial here. Additionally, there's a code example below for creating your very first smart contract transaction on Hedera.
//Create the transaction const transaction = new ContractCreateTransaction() .setGas(100_000_000) .setBytecodeFileId(bytecodeFileId) .setAdminKey(adminKey); //Modify the default max transaction fee (default: 1 hbar) const modifyTransactionFee = transaction.setMaxTransactionFee(new Hbar(16)); //Sign the transaction with the client operator key and submit to a Hedera network const txResponse = await modifyTransactionFee.execute(client); //Get the receipt of the transaction const receipt = await txResponse.getReceipt(client); //Get the new contract ID const newContractId = receipt.contractId; console.log("The new contract ID is " +newContractId);
The Hedera Consensus Service offers applications direct access to the native speed, security, and fair ordering guarantees of the hashgraph consensus algorithm. Using this service, clients can submit messages to the Hedera public ledger for time-stamping and ordering. Clients can also encrypt the message contents, ensuring an application's ability to preserve their user's privacy and prevent the publishing of PII.
Messages can include important actionable information in them, events such as for a money transfer settlement, user engagements in an advertising platform, tracking of provenance in a supply chain, and more. These ordered messages will flow out to mirror nodes or clients of mirror nodes for processing in the consensus order. By using Hedera for tamper-proof and verifiable logging of transactions, disparate participants and systems have a real-time view into application events.
A more thorough explanation of the Hedera consensus can be found in these resources:
You can check out the full tutorial on submitting your first message using Hedera Consensus Service in the official Hedera documentation. For now, here are two code examples of the Java SDK to create a topic and submit your first message:
//Create a new topic final TransactionId transactionId = new ConsensusTopicCreateTransaction() .execute(client); //Grab the newly generated topic ID final ConsensusTopicId topicId = transactionId.getReceipt(client).getConsensusTopicId(); System.out.println("Your topic ID is: " +topicId);
//Submit a message to a topic new ConsensusMessageSubmitTransaction() .setTopicId(topicId) .setMessage("hello, HCS! ") .execute(client) .getReceipt(client);
The native Hedera Token Service offers applications the ability to perform configuration, minting, and management of fungible and non-fungible tokens on Hedera. Tokens on Hedera achieve 10,000 transactions per second, settle with finality immediately, and always cost $0.0001 USD, paid in HBAR, to transfer. Developers have fine-grained control over tokens and accounts on Hedera, with key and token configurations that deliver flexibility for account KYC verification and freeze, token supply management, transfer, and more. For full layer 1 programmability, you can integrate any type of token minted using Hedera Token Service directly into your Solidity smart contract.
Check out the full tutorial on getting started with the Hedera Token Service in the official Hedera documentation. With the Hedera Token Service, it’s incredibly easy to create a new token that can represent anything from a stablecoin pegged to the USD value, or an in-game reward system. Here’s a JavaScript SDK example:
//Create a token //Create the transaction and freeze for manual signing const transaction = await new TokenCreateTransaction(). .setTokenName("Your Token Name") .setTokenSymbol("F") .setTreasuryAccountId(treasuryAccountId) .setInitialSupply(5000) .setAdminKey(adminPublicKey) .freezeWith(client); //Sign the transaction with the token adminKey and the token treasury account private key const signTx = await (await transaction.sign(adminKey)).sign(treasuryKey); //Sign the transaction with the client operator private key and submit to a Hedera network const txResponse = await signTx.execute(client); //Get the receipt of the the transaction const receipt = await txResponse.getReceipt(client); //Get the token ID from the receipt const tokenId = receipt.tokenId; console.log("The new token ID is " + tokenId);
Hedera is governed by the Hedera Governing Council: An expert council consisting of 39 leading global organizations, distributed across 11 different industries and spanning a wide range of geographies. The Governing Council is completely decentralized — every member has an equal vote over software upgrades, network pricing, treasury management, and more. Governing Council members are term-limited and do not receive any profits from Hedera.
The Hedera Governing Council is structured to best fulfill Hedera's vision of a fully decentralized, wise, stable governance in the long-term interests of the network. All governing council members have all taken partial ownership of Hedera LLC, by signing the agreement. This LLC agreement has been made available, in its entirety, at https://www.hedera.com/council/. Minutes from every Governing Council meeting will be provided to the public no later than thirty days after they're accepted by a majority of the members.
This governing model greatly reduces the risk of ideological or personal disputes that have affected the governance of other public networks. In the spirit of fostering a strong developer-focused community and developer-driven roadmap, anyone can submit proposed features, functionalities, standards and other types of proposals through Hedera improvement proposals (HIPs). These proposals are community-driven, evaluated and approved by the Hedera Governing Council, and implemented by a decentralized group of core project engineers. Hedera’s technology and governance make it scalable and well-suited to become the first public network to achieve mainstream adoption.
For the Hedera network to be secure it must provide public utility. As the number of applications, assets, and transactions grows, the Hedera network becomes an integral piece of digital infrastructure, on which the world relies. Providing utility ensures the network's protection by making it even more difficult and expensive to centralize ownership of the native cryptocurrency, HBAR, preventing the consolidation of voting power for network transactions.Applications that utilize Hedera’s network services are a critical aspect of Hedera’s utility — anyone from a single developer, to a startup, to a Fortune 500 enterprise can create an account anonymously and deploy a Hedera-powered application to the mainnet across a variety of use cases found below. Learn more about the hundreds of applications being built on Hedera today.
Payments: Enable secure, instant, and cost-effective peer-to-peer payments with HBAR, stablecoins, or your own token.
Content Authenticity: Manage and make publicly verifiable the authenticity of sensitive documents and other media.
CBDC: Architect central bank digital currencies (CBDCs) for national or international remittance.
Audit Log: Inexpensively create a publicly auditable log of data, including payable events, IoT sensor data, and more.Decentralized Finance: Remove costly intermediaries and build financial markets, lending protocols, oracles, and more with Solidity-based smart contracts.Decentralized Identity: Manage decentralized identity through a secure, standards-based, and privacy-respecting manner.
NFTs: Build NFT marketplaces that mint and issue unique tokens representing digital media, physical assets, and more.
Permissioned Blockchain: Make private transactions on permissioned blockchains, such as Hyperledger Fabric or Corda, publicly verifiable.
Interoperability: Build an interoperable bridge spanning public and private networks. Transact value, data, and identity.
Hedera is a proof-of-stake public distributed ledger which aims to use a combination of a “path to permissionless” (network nodes) and a “path to widespread coin distribution” (HBAR cryptocurrency) to keep the network secure, while working to achieve full decentralization. Let's focus on permissionless nodes and coin distribution, and the role they play in securely achieving and maintaining decentralization. Read more about Hedera's path to permissionless by reading the whitepaper.
Distributed ledgers are categorized as “private” or “public” and “permissioned” or “permissionless” — they can be any combination of the two. At open access of the Hedera mainnet, the Hedera network is public permissioned. But to achieve full decentralization, Hedera believes it must transition to becoming a public permissionless network.
Private / Permissioned: This type of network offers no decentralization. The applications deployed in production, and the network nodes running them, must be invited to join the network and meet certain criteria or provide a form of identification. Any party can also be removed without warning at any time.Private / Permissionless: Requires that applications deployed in production be invited to join the network and can be removed without warning at any time. The nodes which constitute the network and run said applications can freely and anonymously join and contribute, typically in exchange for a network’s native cryptocurrency.Public / Permissioned: Allows applications to be deployed in production or removed, without having to notify anyone, reveal their identity, or meet any application criteria requirements. The nodes which constitute the network and run said applications must be invited to join the network.Public / Permissionless: This type of network is the most decentralized. Applications can be deployed in production or removed, without having to notify anyone, reveal their identity, or meet any application criteria requirements. Additionally, the nodes which constitute the network can freely and anonymously join and contribute, typically in exchange for a network’s native cryptocurrency.
Hedera is starting off at open access in the upper left quadrant, as a public permissioned network — the nodes which constitute the network will be operated by Hedera Governing Council members, which have been invited to join as network operators. As performance, security, stability, and incentives of the Hedera network mature, Hedera will open node operation to more entities and individuals, relaxing permissions.The Hedera network will become public and fully permissionless — any individual or organization can run a node anonymously and earn HBAR cryptocurrency for assisting with network operation. This is the path Hedera will take, ensuring security at every point along the path, to fully realize its mission of becoming the most decentralized public permissionless ledger in the market.