Danksharding
Danksharding is hoe Ethereum een echt schaalbare blockchain kan worden, maar er zijn verschillende protocolupgrades nodig om dit te bereiken. Proto-Danksharding is een tussenstap. Beide hebben als doel om transacties op laag 2 zo goedkoop mogelijk te maken voor gebruikers en zullen Ethereum wellicht opschalen naar >100.000 transacties per seconde.
Wat is Proto-Danksharding?
Proto-Danksharding, ook bekend als EIP-4844(opens in a new tab), is een manier voor rollups om goedkopere gegevens aan blocks toe te voegen. De naam komt van de twee onderzoekers die het idee hebben voorgesteld: Protolambda en Dankrad Feist. Historisch gezien zijn rollups beperkt in hoe goedkoop ze gebruikerstransacties kunnen maken door het feit dat ze hun transacties plaatsen in CALLDATA
.
Dit is duur omdat het door alle Ethereum-nodes wordt verwerkt en voor altijd op de chain blijft staan, ook al hebben rollups de gegevens maar korte tijd nodig. Proto-Danksharding gebruikt gegevensblobs die kunnen worden verzonden en aan blocks kunnen worden gekoppeld. De gegevens in deze blobs zijn niet toegankelijk voor de EVM en worden automatisch verwijderd na een vaste tijdsperiode (op het moment van schrijven ingesteld op 4096 epochs, of ongeveer 18 dagen). Dit betekent dat rollups hun gegevens veel goedkoper kunnen verzenden en de besparingen kunnen doorrekenen aan eindgebruikers in de vorm van goedkopere transacties.
Hoe worden blobgegevens geverifieerd?
Rollups plaatsen de transacties die ze uitvoeren in gegevensblobs. Ze zorgen ook voor een "verbintenis" met de gegevens. Ze doen dit door een polynomiale functie in de gegevens te passen. Deze functie kan vervolgens op verschillende punten worden geëvalueerd. Als we bijvoorbeeld een uiterst eenvoudige functie f(x) = 2x-1
definiëren, dan kunnen we deze functie evalueren door x = 1
, x = 2
, x = 3
, wat de resultaten 1, 3 en 5
oplevert. Een bewijzer past dezelfde functie toe op de gegevens en evalueert deze op dezelfde punten. Als de oorspronkelijke gegevens worden gewijzigd, dan is de functie niet identiek, en dus ook de waarden die op elk punt worden geëvalueerd niet. In werkelijkheid zijn de verbintenis en het bewijs gecompliceerder omdat ze verpakt zijn in cryptografische functies.
Wat is KZG?
KZG staat voor Kate-Zaverucha-Goldberg. Dit zijn de namen van de drie originele auteurs(opens in a new tab) van een schema dat een gegevensblob reduceert tot een kleine cryptografische "toezegging"(opens in a new tab). De blob met gegevens die wordt ingediend door een rollup, moet worden geverifieerd om er zeker van te zijn dat de rollup zich niet misdraagt. Dit houdt in dat een bewijzer de transacties in de blob opnieuw uitvoert om te controleren of de verbintenis geldig was. Conceptueel is dit hetzelfde als de manier waarop uitvoeringsclients de geldigheid van Ethereum-transacties op laag 1 controleren met Merkle-bewijzen. KZG is een alternatief bewijs waarbij een polynomiale vergelijking past bij de gegevens. De verbintenis evalueert de polynoom op een aantal geheime gegevenspunten. Een bewijzer past dezelfde polynoom toe op de gegevens en evalueert deze op dezelfde waarden, waarbij hij/zij controleert of het resultaat hetzelfde is. Dit is een manier om de gegevens te verifiëren die compatibel is met zero-knowledgetechnieken die gebruikt worden door sommige rollups en uiteindelijk andere delen van het protocol van Ethereum.
Wat was de KZG-ceremonie?
De KZG-ceremonie was een manier voor veel mensen uit de hele Ethereumgemeenschap om samen een geheime willekeurige getallenreeks te genereren die gebruikt kan worden om bepaalde gegevens te verifiëren. Het is erg belangrijk dat deze getallenreeks niet bekend is en door niemand nagemaakt kan worden. Om hiervoor te zorgen, kreeg iedereen die deelnam aan de ceremonie een string van de vorige deelnemer. Vervolgens creëerden ze een aantal nieuwe willekeurige waarden (bv. door hun browser de beweging van hun muis te laten meten) en combineerden die met de vorige waarde. Vervolgens stuurden ze de waarde door naar de volgende deelnemer en vernietigden deze vanaf hun lokale apparaat. Zolang één persoon in de ceremonie dit eerlijk heeft gedaan, zal de uiteindelijke waarde voor een aanvaller onkenbaar zijn.
De EIP-4844 KZG-ceremonie was open voor het publiek en tienduizenden mensen namen deel om hun eigen entropie (willekeurigheid) toe te voegen. In totaal waren er meer dan 140.000 bijdragen, waardoor het 's werelds grootste ceremonie van dit soort was. Om de ceremonie te ondermijnen zou 100% van de deelnemers actief oneerlijk moeten zijn. Vanuit het perspectief van de deelnemers, als ze weten dat ze eerlijk waren, is het niet nodig om iemand anders te vertrouwen omdat ze weten dat ze de ceremonie veilig hebben gesteld (ze hebben individueel voldaan aan de eis van 1 op de N eerlijke deelnemers).
Wat is Danksharding?
Danksharding is de volledige realisatie van de rollup-opschaling die begon met Proto-Danksharding. Danksharding brengt enorme hoeveelheden ruimte op Ethereum voor rollups om hun gecomprimeerde transactiegegevens te dumpen. Dit betekent dat Ethereum met gemak honderden individuele rollups kan ondersteunen en miljoenen transacties per seconde kan uitvoeren.
De manier waarop dit werkt is door de blobs die aan blocks vastzitten, uit te breiden van zes (6) in Proto-Danksharding naar 64 in volledige Danksharding. De rest van de benodigde wijzigingen zijn allemaal updates aan de manier waarop consensusclients werken om deze in staat te stellen om met de nieuwe grote blobs om te gaan. Verschillende van deze wijzigingen staan al op de planning voor andere doeleinden, onafhankelijk van Danksharding. Danksharding vereist bijvoorbeeld dat de scheiding tussen voorsteller en bouwer is geïmplementeerd. Dit is een upgrade die de taken van het bouwen van blocks en het voorstellen van blocks scheidt over verschillende validators. Op dezelfde manier is data availability sampling nodig voor Danksharding, maar het is ook nodig voor de ontwikkeling van zeer lichte clients die niet veel historische gegevens opslaan (“statusloze clients”).
Huidige vooruitgang
Volledige Danksharding zit er de eerste jaren nog niet aan te komen. Ondertussen is de KZG-ceremonie afgesloten met meer dan 140.000 bijdragen en is de EIP(opens in a new tab) voor Proto-Danksharding helemaal volgroeid. Dit voorstel is volledig geïmplementeerd in alle testnetten en is live gegaan op het hoofdnet met de Cancun-Deneb (“Dencun”) netwerkupgrade in maart 2024.
Verder lezen
- Proto-Danksharding notities(opens in a new tab) - Vitalik Buterin
- Dankrad's notities over Danksharding(opens in a new tab)
- Dankrad, Proto en Vitalik bespreken Danksharding(opens in a new tab)
- De KZG-ceremonie(opens in a new tab)
- De lezing van Carl Beekhuizen op Devcon over vertrouwde systemen(opens in a new tab)
- Meer over data availability sampling voor blobs(opens in a new tab)
- Dankrad Feist over KZG-verbintenissen en bewijzen(opens in a new tab)
- KZG polynomiale verbintenissen(opens in a new tab)