Sharding verdeelt een blockchain in kleinere delen, shards genaamd. Elke shard verwerkt zijn eigen transacties en slaat zijn eigen gegevens op. De shards communiceren met elkaar via een coördinatielaag. Het doel is parallellisatie. In plaats van één keten die elke transactie verwerkt, verwerken meerdere ketens transacties tegelijk. De doorvoer neemt toe met het aantal shards. De roadmap van Ethereum omvat sharding, hoewel rollups prioriteit hebben gekregen als schaaloplossing voor de korte termijn.
Sharding is technisch lastig. Het opsplitsen van een blockchain betekent het opsplitsen van de beveiliging. Als één shard gecompromitteerd raakt, loopt het hele netwerk risico. Communicatie tussen shards zorgt voor extra latentie en complexiteit. Validators moeten willekeurig aan shards worden toegewezen en regelmatig worden geroteerd om samenspanning te voorkomen. Het ontwerp moet ervoor zorgen dat een aanvaller niet alle macht in één shard kan concentreren en deze kan overnemen. Ethereums danksharding-voorstel combineert sharding met rollups. De shards slaan rollup-data op, maar voeren geen transacties uit. Rollups verzorgen de uitvoering. Sharding zorgt voor de beschikbaarheid van de data. Deze taakverdeling is eenvoudiger en veiliger dan volledige sharding voor de uitvoering.
Afwegingen bij sharding
- Doorvoer — schaalt mee met het aantal shards
- Complexiteit — communicatie tussen verschillende hardwarecomponenten is moeilijk.
- Beveiliging — elke shard heeft voldoende validators nodig.
- Beschikbaarheid van gegevens — shards moeten gegevens publiceren voor verificatie.
Sharding is geen snelle oplossing. Het is een meerjarig engineeringproject met veel verschillende onderdelen. Rollups zorgen vandaag de dag voor schaalbaarheid. Sharding is voor de toekomst.
Comments
No comments yet. Be the first to share a thought.
Leave a comment