Sharding-ul împarte un blockchain în bucăți mai mici numite shard-uri. Fiecare shard își procesează propriile tranzacții și stochează propriile date. Shard-urile comunică între ele printr-un strat de coordonare. Scopul este paralelismul. În loc ca un singur lanț să proceseze fiecare tranzacție, mai multe lanțuri procesează tranzacțiile în același timp. Randamentul crește odată cu numărul de shard-uri. Foaia de parcurs a Ethereum include sharding-ul, deși cumulările au avut prioritate ca soluție de scalare pe termen scurt.
Fragmentarea este dificilă din punct de vedere tehnic. Divizarea unui lanț înseamnă divizarea securității. Dacă un shard este compromis, întreaga rețea este în pericol. Comunicarea între shard-uri adaugă latență și complexitate. Validatorii trebuie să fie atribuiți shard-urilor aleatoriu și rotiți frecvent pentru a preveni coluziunea. Designul trebuie să se asigure că un atacator nu poate concentra puterea într-un singur shard și să o preia. Propunerea de danksharding a Ethereum combină sharding-ul cu rollup-urile. Shard-urile stochează datele rollup, dar nu execută tranzacții. Rollup-urile se ocupă de execuție. Sharding-ul se ocupă de disponibilitatea datelor. Această diviziune a muncii este mai simplă și mai sigură decât sharding-ul cu execuție completă.
Compromisuri de fragmentare
- Randament — se scalează în funcție de numărul de fragmente
- Complexitate — comunicarea între shard-uri este dificilă
- Securitate — fiecare fragment are nevoie de suficienți validatori
- Disponibilitatea datelor — fragmentele trebuie să publice datele pentru verificare
Fragmentarea nu este o soluție rapidă. Este un efort de inginerie multianual, cu multe componente mobile. Segmentele oferă scalabilitate astăzi. Fragmentarea este pentru mâine.
Comments
No comments yet. Be the first to share a thought.
Leave a comment