A blockchain orders transactions by having one producer at a time propose a block, then getting everyone else to agree on it. Hashgraph, the algorithm behind Hedera, skips the proposer entirely. Every node gossips small signed events, each event records who it heard from, and from that shared history every node independently calculates the same order and the same timestamps, without ever sending a vote. The result is asynchronous Byzantine fault tolerant (aBFT) consensus with finality in a few seconds and a fair, timestamped order of transactions.
Events instead of blocks
The unit of data in a hashgraph is an event, created by one node. Each event contains:
| Field | Purpose |
|---|---|
| Transactions | Zero or more client transactions the node wants to submit |
| Self-parent hash | Hash of this node's own previous event |
| Other-parent hash | Hash of the latest event received from the node it just synced with |
| Timestamp | When the creator made the event |
| Signature | The creator's signature over the event |
Because each event references two parents, events form a directed acyclic graph (the "hashgraph") instead of a single chain. There is no block producer, no leader election and no mempool competition for block space. Every node is creating events all the time.
Gossip about gossip
Nodes sync by picking a random peer and sending it every event the peer doesn't have yet. The receiver then creates a new event recording that sync: its self-parent is its own last event, and its other-parent is the sender's last event.
That's gossip about gossip. The network isn't just spreading transactions. It spreads a record of who told whom what, and when. After a few rounds of syncing, every honest node has almost the same graph, and each node knows not only what it has seen but what every other node had seen at each point.
Virtual voting
Classical BFT protocols send explicit vote messages, which gets expensive as the node count grows. Hashgraph uses virtual voting: since each node holds a copy of everyone's history, it can calculate how any other node vote, based on what that node had seen. No vote messages cross the wire.