Have you noticed that delay when accessing funds sent to an exchange? That’s because of finality, the fact that blocks aren’t 100% set in stone until some time has passed and more blocks have been added on top. Ethereum’s next objective is eliminating this delay, making blocks concrete the moment they’re added to the blockchain. The concept is called single slot finality, and it has huge impacts to the consensus model and rewards for validators. Let’s dive in. Why is Finality Even a Question?Since blockchains are distributed (i.e. spread around the world), there may often be two nodes trying to create a block at the same time in different places. Each node could do the work involved so that both blocks that are created are valid. Then they start broadcasting those blocks to all the other nodes, but soon the network realizes there are two options to choose from. How does the network choose? How Does the Network Choose Blocks?Satoshi solved this on Bitcoin by associating a “difficulty” with block mining. As the name implies, a higher difficulty on a block means more work was involved in creating it. This is the single element Bitcoin nodes care about when choosing which option matters between two blocks: which option has the higher difficulty (i.e. most work involved)? The highest one always wins. The losing block, the one that isn’t chosen, is called an orphan block. But this comes with a problem. There’s always a possibility that a block could be replaced with another one - until enough time passes that the work to replace it is practically impossible. This is the time until finality. How Does Ethereum's Finality Work?Since switching to Proof-of-Stake, Ethereum blocks don’t require work to create - therefore there isn’t a concept of difficulty to decide against. That also means that creating blocks is so easy that any computer could do it. If every computer could create a valid block, the network would be overloaded with options. To avoid that chaos, and to answer which block is correct, Ethereum appoints validators to add blocks at random. Only blocks created by appointed validators can be considered valid. Those blocks are broadcast to the network, and the network votes to confirm that the block came from an appointed validator. Once the block has two-thirds of the vote (also known as attestations), its considered safe and the network can switch focus to the next block. Here you might start to notice a problem. Aren’t there hundreds of thousands of validators? Indeed, there are just under 680,000 validators at the time of writing. If every block requires two-thirds of them to confirm, the data and time that would take to move across the network could be enormous. To limit that, Ethereum splits the entire network into committees. Each committee has one block proposer and a bunch of other validators that are simply voters. So blocks need two-thirds of the vote in their committee, not the entire network. Every 32 blocks is a cycle, where 32 committees are created to be responsible for the next set of 32 blocks, called an epoch. Since only a small portion of the network needs to confirm any given block, some time is allowed for their information to be communicated to the rest of the network while the next committees are selected. On Ethereum, this duration is currently set at 2 epochs. In Ethereum’s case, this is the time until finality. What's Single Slot Finality?To have blocks be final the moment they’re created and confirmed, Ethereum wants to reduce the number of validators responsible for confirming them. Involving so many validators is the reason finality takes time. As a result, there appear to be 2 options:
The first option is effective, but too complex to implement. Instead, Ethereum’s gravitating towards the second option. In its coming Deneb upgrade, Ethereum plans to increase the maximum stake each validator can have from 32 ETH up to 2048 ETH. The hope is that validators will consolidate their balances so there are far fewer of them (up to 10x less). There is fear among Ethereum developers that the maximum balance increase won’t keep the count of validators small enough. As a result, developers are currently discussing changing queue times or rewards rates. One proposal involves penalizing all validators on the network if the validator count grows beyond a certain amount. The proposal to penalize all validators was actually introduced by Vitalik. He admitted, though, that there’s a risk involved: once the maximum balance is increased, validators with large balances can suddenly inflate the validator count to penalize everyone (but they can handle it), and drive out all the others that have smaller balances than they do. Closing ThoughtsWhile a great ideal, single slot finality comes with costs. Quicker finality times can only be realistically achieved with fewer validators, and we’ll likely see a push towards that in the near future. The trade-off between finality time and validator count takes us back to the blockchain trilemma; scalability at the cost of decentralization. Do you think it’s worth it? --- Thank you for reading! Though I post my write-ups on Reddit, consider subscribing to my free newsletter. Pure blockchain content; no ads, shills, or affiliations. Stay kind. Stay curious. ????????️ https://ramiwrites.substack.com/p/single-slot-finality?sd=pf [link] [comments] |
You can get bonuses upto $100 FREE BONUS when you:
💰 Install these recommended apps:
💲 SocialGood - 100% Crypto Back on Everyday Shopping
💲 xPortal - The DeFi For The Next Billion
💲 CryptoTab Browser - Lightweight, fast, and ready to mine!
💰 Register on these recommended exchanges:
🟡 Binance🟡 Bitfinex🟡 Bitmart🟡 Bittrex🟡 Bitget
🟡 CoinEx🟡 Crypto.com🟡 Gate.io🟡 Huobi🟡 Kucoin.
Comments