How do you tell time?

No, really.

Before clocks, telling time was simple: look up, find the sun in the sky, and call it a day. After a while, despite the simplicity and elegance, we humans decided to create devices to help break up the day into smaller, more distinct parts — enter sundials and water clocks.

Now most of us rely on the clocks in our phones, watches, and devices. Communicating a shared time between two people in the same timezone is easy: all we have to do is look at our clocks and say the time.

But how do our devices tell time? And, more importantly, how do our devices communicate a sense of time between each other?

The answer is more complex than it seems. Many, if not most computers rely on a trusted source — an atomic clock, for example — to order events. Because of this, a computer in Cambodia can trust that a computer in London is synchronized to the same time, right?

Not quite.

Because of network delays, effects of relativity, and time dilation (differences between someone on an airplane and someone on the ground), the changes, however small, can prevent accurate synchronicity of time across a network.

This discrepancy is critical when constructing a decentralized payments network; nodes can't rely on a third party system like an atomic clock. To prevent a user from spending the same amount of money twice, a network needs a reliable system that can order transactions.

Proof of work — the enabling mechanism of the Bitcoin protocol — solves this problem through a SHA-256 brute force search. This solution, although monumental, is slow and clumsy. Bitcoin can only handle a max of 7 transactions per second.

Solana is the world’s first blockchain built for web-scale because it solves the distributed time problem without significant overhead. 

The core innovation that makes this possible is Proof of History—a mechanism for continuous ordering that acts as a global clock for the Solana network. 

Proof of History creates a record that proves that an event has occurred at a specific moment in time.

Whereas other networks require participants to communicate in order to agree that time has passed, each Solana node maintains its own clock by encoding the passage of time in a sequential series of events.

With the help of sand, let's learn how this works.

The Beginning

The concept of time on the Solana network is derived from validator nodes constantly hashing a SHA-256 function—creating a kind of cryptographic chain of events.

Picture an hourglass, where each grain of sand represents a unit of time (the time it takes to compute a SHA-256 hash). Each grain of sand has a corresponding ID associated with it, proving that it came before a grain and that a grain that comes after it.

As the hourglass fills, it creates a chain of events through consecutive grains of sand.

Grouping

The hourglass continues to let grains pass through the neck until a certain threshold is reached.

At that point, the hourglass releases the collected grains sequentially into a bucket waiting below.

Dump Me

The individual hourglass continues to produce these buckets until a grouping is ready.

To link the buckets together, the last grain from a given bucket—pictured in the middle—is replicated as the first grain in the next. This creates an overlap between buckets that can quickly determine their correct ordering.

At once, all of the buckets are released to another set of hourglasses below.

The Secret Sauce

The innovation here is within the speed of verification: Even though it took 10 units of time to fill the 10 buckets, it only takes 1 unit of time to verify the ordering of the grains in all of those ten buckets.

By the continual fabrication of the chain of grains, the Solana network solves the distributed timekeeping problem.

Replication

This process is replicated across all the nodes in the network. Individual nodes verify the passage of time, using the grains of sand as a basis to determine how much time passed between buckets, and communicate with other nodes. Thanks to parallel processing via multiple hourglasses, it only takes a fraction of the time to verify the order of grains.

Take a second to think about that. Ten seconds of transactions, for example, can be verified by all nodes on the network in one second.

This simultaneous production of the record of time—extrapolated into thousands of buckets and millions of grains over time—means that the Solana network can synchronize events in a fraction of the time of other blockchain networks.

Now what?

This process creates a relative Proof of History that allows all the nodes in the Solana network to perform at optimal capacity and focus on verifying transactions on the network. 

Proof of History presents a fundamental move forward in the structure of blockchain networks in regards to speed, accommodating transactional throughput of 50,000 per second on current testnets.

How'd we do?

Proof of History is one of the many technical innovations that enable Solana's web-scale blockchain.

We know it's hard to understand.

Was this useful?