General

What is Hashgraph?

Hashgraph is a data structure and consensus algorithm that is faster, fairer, and more secure than blockchain.

 

How does it work?

Hashgraph uses two special techniques (1) Gossip about Gossip and (2) Virtual Voting to achieve fast, fair and secure consensus.

Gossip is a well-known computer science term, which can be defined as calling any random node and telling that node everything you know, that it does not know. In distributed ledger technology, the “baseline” or minimum bandwidth required is that the transactions go to every node. A gossip protocol can achieve this transfer of information / syncing process exponentially fast. Gossip about Gossip refers to attaching a small additional amount of information to this Gossip / transaction payload, which are two hashes containing the last two people talked to (hence, gossiping about the information gossiped). Using this information, a Hashgraph can be built and constantly updated as more information is gossiped, on each node.

Once the Hashgraph is built, it is extremely easy to know what a node would vote, because we know what each node knows, and when they knew it. We now can use this data as an input to a 30 year old voting algorithm (which have strong security guarantees, maths proofs of being Asynchronous Byzantine Fault Tolerant but typically lack the speed necessary for real world implementation), and know which transactions have reached consensus quickly.

The result of using this methodology is that we get the benefit of 30 year old voting algorithms which have have strong math proofs of being Asynchronous Byzantine Fault Tolerant (meaning that we know when we will achieve consensus, guaranteed, and our math proofs make no assumptions about the speed of the internet, due to firewalls, ddos attacks, viruses or botnets), speed (due to use of a gossip protocol) and fair ordering and time stamping on every event.

 

How is Hashgraph different?

There are five different approaches to reaching distributed consensus. Firstly we have Proof-of-Work, which started with Bitcoin. The second is leader-based systems like PBFT, Raft, and Paxos. Then there is economy-based, commonly referred to as Proof-of-Stake, where forgers stake cryptocurrency on votes in order to reach consensus. Then, there’s voting-based which are too slow to be used in real systems. Finally there’s Hashgraph, which uses virtual voting and is incredibly efficient because it does not actually send any votes over the internet.

 

What is bank-grade consensus?

Hashgraph is the only bank-grade consensus algorithm as a result of the following properties:

Mathematical proof of asynchronous Byzantine fault tolerance;

Resilience to DDoS attacks, network partitions, sybil attacks and firewall/virus attacks; and

Mathematical proof of fairness of ordering, access, and timestamps.

 

Is there a cryptocurrency?

Hashgraph is not currently available on a public network / ledger so there is no cryptocurrency at this time. We have not yet announced our plans for a public ledger, but please stay tuned for updates.

 

Why is Hashgraph patented?

Hashgraph is currently only available on a private network so its patents allow for market advantage in enterprise / commercial applications. This is not designed to stifle creativity or expansion of the emerging ecosystem. We are taking all feedback from the community, especially regarding a public ledger/open source interest, and look to address this issue in the near future.

 

How do I use Hashgraph?

If you want to use Hashgraph on a private network, you can apply for an enterprise / commercial license by contacting Swirlds.

 

What is the different between Hashgraph and Swirlds?

Hashgraph is the technology. Swirlds is the organization responsible for handling the licensing of Hashgraph.

 

Is Hashgraph better than blockchain?

The pitching of Hashgraph against Blockchain is a sensationalist angle that we do not endorse. While we do have some advantages over Blockchain based consensus, our intention is not at all to diminish the significance of Blockchain technology. We consider Blockchain to be like a capable older brother who graciously paved the way by bringing the power of Distributed Ledger Technology to the light of day, for which we are very grateful. Articles, talks etc pitching us against Blockchain are not written by us, nor are we generally consulted before articles go live. There is no reason that blockchain and Hashgraph couldn’t live together. While it is true that we have won some enterprise use cases against Blockchain based solutions (e.g. https://www.cujournal.com/news/culedger-swirlds-launch-hashgraph-technology-partnership), blockchain has a massive network effect which we definitely admire and respect. We respect and value the work and efforts of all developers and scientists in the Blockchain space. We also understand that Hashgraph is less well-known and nascent. That being said, every great movement has to start from somewhere and if you are reading this, it has potentially (hopefully) started with you too.

How can I get involved?

If you want to contact us for support or participation, please reach out to contact@hashgraph.com. You can find more informational resources on the website homepage, where you can also sign up to our mailing list and/or follow us on social media. The Hashgraph Community Telegram Channel is also a great place to ask technical questions.

 

Speed

How fast is Hashgraph?

It’s fast. Very fast. But you don’t have to trust us. We will release formal performance results soon, and at the same time provide the software you can use to validate the results for yourself.

Simply providing the number of transactions per second is meaningless unless all of the details are provided as well: number of nodes, bandwidth, latency, CPU, size of transaction, etc. Our performance results will provide the details needed to characterize results for a range of settings.

Does Hashgraph have transaction fees?

Instead of some small subset of participants being responsible for validating transactions and adding to the ledger (like miners in blockchain), all nodes contribute. Consequently,  there is less need to incentivize through fees. Transaction fees are therefore expected to be very small, thereby making Hashgraph viable for micropayments.

 

Security

What are the major security risks of distributed ledger technologies?

For a DLT, the security risks are an attacker:

Freezing the network so the shared data never changes by stopping it from reaching consensus on the transaction order

Confusing the network so some participants think the shared data has one value and others thinking it has a different value by causing some members to think there was one consensus, and causing others to think there was a different consensus on the transaction order

Subverting the network so there is corruption of the shared data such as by changing a supposedly-immutable audit log, or spending the same cryptocurrency twice.

 

Where do the main security risks originate?

The security risks specific to DLTs come from both internal and external attacks. An internal threat can include a computer in the network that is infected with a virus or worm other malware, or is run by a malicious party, or honest corporation that has a malicious insider with access to the computer.

An external threat can include a Distributed Denial of Service (DDoS) attack, where the attacker floods one or more computers with enough messages to temporarily shut it down. Another external attack is if an adversary owns a firewall surrounding some of the nodes in the network, which it can use to block or delay messages.

 

What is Byzantine Fault Tolerance (BFT)?

There are a variety of consensus algorithms and each offer different features and characteristics. A consensus algorithm is characterized as BFT if it guarantees a moment in time where all participants reach consensus, know that consensus has been reached, and they are never wrong. This can be contrasted with consensus algorithms based on PoW, where participants slowly become more and more confident that consensus is near, but may still not be correct. There are different levels of BFT, depending on the sorts of assumptions made about the network and transmission of messages. The strongest type of BFT is asynchronous BFT. Hashgraph is unique in supporting highest degree of BFT while still being very efficient.

 

What is Asynchronous BFT?

When a system is asynchronous BFT, it allows for malicious actors controlling the network, deleting or slowing down messages of their choosing. The only assumption made is that less than ⅓ are attackers, and some messages eventually get transmitted over the internet. Some systems are partially asynchronous, which are secure only if the attackers do not have too much power and do not manipulate the timing of messages too much. For instance, a partially asynchronous system could prove Byzantine under the assumption that messages get passed over the internet in ten seconds. This assumption ignores the reality of botnets, distributed denial of service attacks, and malicious firewalls. If unable to meet the criteria of asynchronous BFT, it is preferable that they be asynchronous less-than-Byzantine, rather than less-than-asynchronous Byzantine. In other words, they should prove they are somewhat secure in the real world instead of proving they are very secure in a fantasy world.

 

How does Hashgraph prevent Sybil attacks?

A Sybil attack refers to an attempt to compromise a network through the creation of large numbers of spurious identities – these are directed to act in collusion to inappropriately impact the network. Sybil attacks are a particular concern for public DLTs in which no special permissions are required to become a node. Protection against Sybil attacks can be provided by appropriately allocating and weighting votes of different nodes. Hashgraph can be deployed in a number of different vote weighting models, e.g. votes could be weighted by a node’s stake in some currency, or its ability to perform some work, or its willingness to risk some value.

A more detailed explanation can be found at    
http://www.swirlds.com/downloads/Swirlds-and-Sybil-Attacks.pdf

 

How does Hashgraph prevent DDoS attacks?

A Distributed Denial of Service (DDoS) attack occurs when it is possible to disrupt the flow of transactions for the entire network by targeting a single or a few computers. Different DLTs vary in their vulnerability to DDoS. Leader-based systems give special permissions to a particular node and are highly susceptible because the current leader is a bottleneck and is vulnerable to being targeted in the DDoS. Even if the role of the leader rotates amongst nodes, other nodes necessarily know the current leader, and so could direct a DDoS. PoW systems are resilient to DDoS because it’s difficult to predict which miner will solve the inverse hash and publish a block. Consequently, the attacker would not know which miner should be targeted. Hashgraph doesn’t use PoW, but neither does it have a Leader. So Hashgraph provides DDoS resilience without the inefficiency and cost of PoW.

 

Fairness

What is fairness?

Fairness refers to the ability of DLTs to prevent the ordering of transactions from being unduly manipulated. Hashgraph is fair in that it serializes all transactions with cryptographic timestamping, unlike blockchains where miners determine the order in which transactions are placed within each block. In certain use cases, the transaction order is important. Consider for instance two different people purchasing shares in a stock – the first order to go through will likely get a cheaper price. Hashgraph orders transactions according to the median timestamp of  when the population of nodes received them – thereby ensuring they are recorded fairly.  

 

Software Development Kit (SDK)

How can I get started developing applications?

Download the SDK and follow the instructions detailed included in the /docs folder, or visit our online version here.

In order to develop a commercial application on Hashgraph using the Swirlds SDK, you will need to contact Swirlds to discuss the appropriate licensing that is required. However, you do not need to ask for permission before downloading the SDK to build small scale, non-commercial applications for personal use and experiment.

 

Why is the platform and SDK written in Java?

Java is a general purpose programming language with a large open source ecosystem and resources for developer support. There are also advantageous security measures in the Java development environment, such as sandboxing,  that will allow the platform in the future to run untrusted applications, while protecting the user and their hard drive from those applications.

 

Can I develop applications in other languages?

In addition to Java, we also want the option for developers who would like to develop in other programming languages, such as Python or JavaScript. This is part of the Hashgraph development roadmap.

Is there a Developer Chat?

Yes, currently it is on Telegram, but will be likely moving to a new place, as our community sees fit.