At EthCC yesterday, Vitalik joked “should we cancel sharding?”
There were no takers.
I raise my hand virtually and make the case for why Ethereum should cancel danksharding.
The danksharding dream is to enable rollups to achieve global scale while being fully secured by Ethereum. We can do it, yes, but no one asked - should we?
Ethereum has higher standards for data sharding, which requires a significantly more complex solution of combining KZG commitments with PBS & crList in a novel P2P layer than alternative data layers like DataLayr, Celestia, zkPorter or Polygon Avail. This will a) take much longer and b) adds significant complexity to a protocol we have been simplifying (indeed, danksharding is the latest simplification, but what if we go one further?).
EIP-4844, aka protodanksharding, is a much simpler implementation that’s making serious progress. Although not officially announced for Shanghai just yet, it’s being targeted for the upgrade after The Merge.
Assuming the minimum gas price is 7 wei, ala EIP-1559, EIP-4844 resets gas fees paid to Ethereum for one transaction to $0.0000000000003 (and that’s with ETH price at $3,000). Note: because execution is a significantly more scarce resource than data, the actual fee you’d pay at the rollup will be more like $0.001 or something, and even higher if congested with high-value transactions (we have seen Arbitrum One fees for an AMM swap extend to as high as $4 recently. Sure, Nitro will increase capacity by 10x, but even that’ll get saturated eventually, and 100x sooner than protodanksharding, more in the next paragraph.) Once again, your daily reminder that data is a significantly more abundant resource than execution and will accrue a small fraction of the value. Side-note: I’d also argue that protodanksharding actually ends up with greater aggregate fees than danksharding, due to the accidental supply control, so those who only care about pumping your ETH bags need not be concerned. But even this will be very negligible compared to the value accrued to ETH as a settlement layer and as money across rollups, sidechains and alt-L1s alike.
With advanced data compression techniques being gradually implemented on rollups, we’d need to roughly 1,000x activity on rollups, or 500x activity on Ethereum mainnet, or 100x the entire blockchain industry today, to saturate protodanksharding. There’s tremendous room for growth without needing danksharding. (Addendum: Syscoin is building a protodanksharding-like solution and estimate a similar magnitude of data being “good enough”.)
Now, with such negligible fees, we could see a hundred rollups blossom, and eventually it’ll be saturated with tons of low value spammy transactions. But do we really need the high security of Ethereum for these?
I think it’s quite possible that protodanksharding/4844 provides enough bandwidth to secure all high-value transactions that really need full Ethereum security.
For the low-value transactions, we have new solutions blossoming with honest-minority security assumptions. Arbitrum AnyTrust is an excellent such solution, a significant step forward over sidechains or alt-L1s. Validiums also enable usecases with honest-minority DA layers. The perfect solution, though, is combining the two - an AnyTrust validium, so to speak. Such a construction would have very minimal trade-offs versus a fully secured rollup. You only need one (or two) honest party (which is a similar trade-off to a rollup anyway) and the validium temporarily switches over to a rollup if there’s dissent. Crucially, there’s no viable attack vector for this construction as far as I can see - the validators have nothing to gain, it’ll simply fall back to a zk rollup and their attacks would be thwarted.
[Addendum, Oct 2022: the criticism for this fall-back mechanism is that the base-layer will be unable to deal with the throughput - true. But it’s important to note that in a failure state all it needs to do is offer mass withdrawals until it recovers. Obviously, it won’t be usable in the same way as a validium. People using these lower value usecases will be quite happy to take the very low risk here.]
I will point out that these honest-minority DA layers can certainly be permissionless. A simple design would be top N elected validators. Also, there are even more interesting designs like Adamantium - which could also be made permissionless.
The end result is with a validium settling to a permissionless honest-minority data layer, you have security that while clearly inferior than a full Ethereum rollup, are also significantly superior than an alt-L1, sidechain, or even a validium settling to an honest-majority data layer (like Avail or Celestia) in varying magnitudes. Finally, with volitions, users get the choice, at a per-user or per-transaction level. This is without even considering those using the wide ocean of alternate data solutions, such as Metis.
Protodanksharding increases system requirements by approximately 8 Mbps and 200 GB hard drive (note: can be hard drive, not SSD, as it’s sequential data). In a world where 5G and gigabit fibre are proliferating, and 30 TB hard drives are imminent, this is a pretty modest increase, particularly relative to the 1 TB SSD required - which is the most expensive bottleneck to Ethereum nodes currently. Of course, statelessness will change this dynamic, and danksharding light clients will be awesome - but they are not urgent requirements. Meanwhile, bandwidth will continue increase 5x faster than compute, and hard drives & optical tapes represent very cheap solutions to historical storage, so EIP-4844 can continue expanding and accommodating more transactions on rollups for the usecases that really need full Ethereum security. Speaking of how cheap historical storage is, external data layers can easily scale up to millions of TPS today when paired with validium-like constructions.
Validity proofs can be quite large. If we have, say, 1,000 zk rollups settling a batch every single slot, they can add up and saturate big parts of protodanksharding. But with recursive proofs, they don’t need to settle every single slot. You effectively have a hybrid - sovereign rollups every second, settled rollups every minute or whatever. This is perfectly fine, and at all times come with only an honest-minority trust assumption assuming a decentralized setup.
One route is to not cancel danksharding outright, but just implement it much later. I think Ethereum researchers should continue developing danksharding, as they are the only team building a no-compromise DA layer. We will see alternate DA layers implement it (indeed, DataLayr is based on danksharding, with some compromises) - let them battle-test it for many years. Eventually, danksharding becomes simple and battle-tested enough - maybe in 2028 or something - we can gradually start bringing some sampling nodes online, and complete the transition over multiple years.
Finally, sincerely, I don’t actually have any strong opinion. I’m just an amateur hobbyist with zero experience or credentials in building blockchain systems - for me this is a side hobby among 20 other hobbies, no more and no less. All I wanted to do here was provide some food for thought. Except that data will be negligibly cheap and data availability sampled layers (basically offering a product with unlimited supply, but limited demand) will accrue negligible value in the current paradigm - that’s the only thing I’m confident about.
Addendum (Dec 2022): An accidental companion piece about exactly what type of demand is expected for maximally decentralized blockspace. It reaffirms my suspicion that EIP-4844 will offer enough for the foreseeable future, and there’s no reason to roll out danksharding till it’s decisively proven it won’t be enough (I would also add current evidence from historical usage dynamics on L2s and alt-L1s):