Cardano at the Speed of LightApril 15th, 2019
We've written a lot about Cardano's variable k and how it defines desirable stake pools from non-desirable ones. But in the end it will be IOHK's Philipp Kant, Lars Brünjes and Duncan Coutts final words to what k will be, of April 11, 2019, those words were: 1
Even if every user were to run a node that was online all the time, it would be hard to keep all those nodes well enough in sync to avoid forks and still keep a short slot length. Our delegation design is aimed at keeping the number of nodes that produce a significant amount of blocks reasonably small (about 100 or 1000 nodes), so that effective communication between them is feasible.
What is a reasonably small (about 100 or 1000 nodes) for effective communication between them feasible while keeping a short slot length?
Keep in Sync over a Short Slot Length
For Cardano stake pool nodes to be efficient and effective those nodes defined by k, be it 100 or 1,000 must all agree on what is the truth for Cardano's blockchain state. The truth state defined by time.
A slice of time is an epoch, a fundamental constant in Cardano's protocol, divided into 21,600 slots making up each epoch of time.
21,600 slots per epoch 20 sec per slot _______ 432,000 sec per epoch 7,200 min per epoch 120 hours per epoch 5 days per epoch _______ 73 epoch per year
Every 20 seconds a new Cardano slot ticks by, there goes another one and another. Every 20 seconds, like, well clockwork.
Now, the more k increase, the more syncing comes into play because Cardano's Shelley operates as a distributed decentralized network of stake pools, pools spread further apart, over distances that Cardano doesn't have direct control over.
Why? Because data can only travel so fast.
Our benchmark of what fast is capable of is the speed of light, 299,792,458 meters per second (approximately 300,000 km/s (186,000 mi/s).
Cardano's data cannot be expected to move at the speed-of-light; the speed-of-light here is setting a standard for network latency performance.
In measuring network performance time is typically expressed in milliseconds, ml, 1-ml is 1/1,000th of a second.
For light traveling in a vacuum (perfect conditions) to travel 1,860-miles or ~ 3,000-kilometer round-trip would take 20 milliseconds.
1 sec = 1,000 milliseconds 20 sec = 20,000 milliseconds 20 sec = 1 Cardano slot 1 Cardano slot = 20,000 milliseconds
Round-trip time is how long it takes a signal to get to a destination, plus the time it takes to get a received acknowledgment of that signal back. In other words, we have doubled the time requirement by sending data and waiting for acknowledgment that the data arrived.
So, 20ms is our baseline time increment to travel 1,860mi or 3,000km round-trip, which we cannot move faster than because even the speed of light has its latency limit.
Latency in a computer network is how fast data can move, whereas bandwidth is how much data can travel. For Cardano, a slot-of-time doesn't contain much data, so bandwidth is not the critical factor here latency is.
The lower the latency of a Cardano stake pool, faster time to destination, lower number in milliseconds, the better!
Now unless you are a high-frequency trader you probably do not think in terms of latency, shopping around at all of the big-box-cloud providers doesn't help because they mostly don't publish their latency times.
High Frequency Trading
The race to zero is on and every microsecond of incremental latency is the difference between making a market and reading about it in tomorrow's paper. In your firm every microsecond counts, and is counted. Technologies that accelerate the movement of data create competitive advantage and drive increased market liquidity. 2
High-frequency traders have it easy compared to Cardano, a world-class cryptocurrency, which will have stake pool nodes distributed around the globe.
The circumference of the Earth is approximately 40,075 kilometers or 24,900 miles.
24,900 miles circumference of the Earth 1,860 miles/sec speed of light 24,900 miles/186,000 miles/sec = 0.13387 second or 133.87 milliseconds
At the speed of light our Cardano stake pool nodes could make 150 rounds around the Earth every slot length, 20 seconds, 20,000 milliseconds. Wouldn't that be nice, but, it's not that simple.
Even if every user were to run a node that was online all the time, it would be hard to keep all those nodes well enough in sync to avoid forks and still keep a short slot length.
A short slot length happens every 20 seconds, the speed-of-light sets our round-trip unattainable latency distance metric, 20ms to travel 1,860mi or 3,000km.
Knowing all of this allows Cardano stake pool operators to plan the latency equation into their pool. What a significant number of pool operators, k, will pick for latency is another matter.
Picking Cardano's Decentralized Network Latency
The sign above defines what every Cardano stake pool operator faces, picking only two of the three desirable network traits, good, cheap or fast.
We have stated this before, 3 but it bears repeating, Cardano's stake pool variable cost 4 allows for every Cardano stake pool operator to select what is best for Cardano's whole ecosystem and not just their bottom line. 5
At Adaizen we picked fast and good which isn't cheap. We will have more to say about this soon, as well as how we picked our network providers.
In closing, as IOHK grapples with what constitutes a decentralized fast and secure network for Cardano, should k be 100 nodes or 1,000? Perhaps, the marketing of what decentralization means needs to be fleshed out more.
Cardano has the variables to cover this, Pledge, being a big one, why aren't they marketing it? We currently are, because in part it allows for unlimited decentralization of Cardano stake pool owners while keeping reality in view.
Cardano's data cannot be expected to move at the speed of light, changing k doesn't change this.
Do I hear a call for 1,001 Cardano stake pools? How about 2,001, Stanley Kubrick would approve that number. What about 1,000,000 surely that means decentralization right?
See, Operate a Cardano Stake Pool No Cost, for even more on our stance surrounding Cardano stake pool variables get no respect.