A mesura que continua el debat d’escala a les criptomonedes, algunes solucions potencials ja estan en desenvolupament des de fa força temps.
Concretament, en el cas d’Ethereum, on es posa un gran focus en la descentralització i la seguretat a costa de l’escalabilitat, l’aplicació del sharding juntament amb la implementació del consens de la prova d’estaca es considera el mecanisme molt necessari a través del qual la xarxa pot escalar nivells pràctics per a aplicacions conservant la descentralització i la seguretat.
El fragment és un tema complex, especialment quan s’aplica a una xarxa descentralitzada, igual a igual, com Ethereum, on l’estat global de la xarxa s’actualitza constantment.
Llavors, què és exactament el sharding i com pot ajudar a escalar les xarxes blockchain?
Contents
Sharding i fons informàtics distribuïts
Sharding és en realitat molt més antic que la tecnologia blockchain i s’ha implementat en diversos sistemes, des d’optimitzacions de bases de dades empresarials fins a Base de dades global de Google Spanner.
- Bàsicament, el sharding és un mètode particular per particionar horitzontalment les dades dins d’una base de dades.
- Més generalment, la base de dades es divideix en petits trossos anomenats “fragments”, que quan s’agrupen formen la base de dades original.
- A les xarxes de cadenes de distribució distribuïdes, la xarxa consisteix en una sèrie de nodes connectats en format peer to peer, sense autoritat central.
- Com passa amb els sistemes de cadena de blocs actuals, cada node emmagatzema tots els estats de la xarxa i processa totes les transaccions.
- Tot i que això proporciona seguretat d’alt nivell mitjançant la descentralització, especialment en sistemes de prova de treball com Bitcoin i Ethereum, comporta problemes legítims d’escala.
Fragment d’Ethereum
Utilitzant Ethereum com a exemple, un node complet de la xarxa Ethereum emmagatzema tot l’estat de la cadena de blocs, inclosos els saldos del compte, l’emmagatzematge i el codi de contracte.
Malauradament, a mesura que la xarxa augmenta de mida a un ritme exponencial, el consens només augmenta linealment. Aquesta limitació es deu a la comunicació necessària entre els nodes necessària per arribar al consens.
Els nodes de la xarxa no tenen privilegis especials i tots els nodes de la xarxa emmagatzemen i processen cada transacció. Com a resultat, en una xarxa de la mida d’Ethereum, qüestions com els costos elevats del gas i els temps més llargs de confirmació de la transacció es converteixen en problemes notables quan la xarxa es tensa. La xarxa només és tan ràpida com els nodes individuals en lloc de la suma de les seves parts.
Sharding ajuda a pal·liar aquests problemes proporcionant una solució interessant però complexa. El concepte consisteix a agrupar subconjunts de nodes en fragments que al seu torn processen transaccions específiques d’aquest fragment. Permet al sistema processar moltes transaccions en paral·lel, augmentant així significativament el rendiment.
Una manera més senzilla de dir-ho seria imaginar la divisió dels Estats Units en estats.
Tot i que cada estat (un fragment en aquest cas) forma part dels Estats Units més gran (xarxa Ethereum), tenen les seves pròpies regles, límits i subconjunts específics de poblacions. Tot i això, comparteixen una llengua i una cultura universals com a part de la seva xarxa més gran que conforma el país.
O encara millor, segons les paraules de Vitalik Buterin:
“Imagineu que Ethereum s’ha dividit en milers d’illes. Cada illa pot fer les seves coses. Cadascuna de les illes té les seves pròpies característiques úniques i totes les persones que pertanyen a aquesta illa, és a dir, els comptes, poden interactuar entre elles i es poden lliurar lliurement de totes les seves característiques. Si volen contactar amb altres illes, hauran d’utilitzar algun tipus de protocol ”.
Com podeu veure, el concepte de fragmentar la xarxa en peces més eficients permet que la xarxa funcioni com la suma de les seves parts, en lloc de limitar-se per la velocitat de cada node individual..
Com funciona Sharding a Blockchains?
Seguirem fent servir Ethereum com a exemple, ja que són els intents de sharding més coneguts i arduos a l’arena blockchain, ja que els desenvolupadors d’Ethereum implementen el que es coneix com a “sharding d’estat”..
L’estat actual de la cadena de blocs d’Ethereum es coneix com a “estat global” i és el que tothom pot veure quan mira la cadena de blocs en una instància específica..
La part complicada de la implementació de la distribució a Ethereum és que, compartint els nodes en subconjunts més petits, aquests subconjunts han de poder processar conjunts específics de transaccions alhora que actualitzen l’estat de la xarxa, tot garantint que sigui vàlida..
El fragment a Ethereum se suposa que s’implementarà en un llançament de dues fases, més que probable després que s’implementi la prova de joc a la xarxa. La primera fase serà la capa de dades que consisteix en el consens de quines dades hi ha en els fragments. La segona fase és la capa d’estat. Tot això és molt fluid, de manera que es mostra a continuació un desglossament general de com pot funcionar.
Ethereum divideix la xarxa en fragments específics. A cada fragment se li assigna un grup específic de transaccions que es determina agrupant comptes específics (inclosos els contractes intel·ligents) en un fragment. Cada grup de transaccions té una capçalera i un cos que consisteixen en el següent.
Capçalera
- Identificador de fragment del grup de transaccions
- Assignació de validadors mitjançant mostreig aleatori (comproveu les transaccions al fragment)
- State Root (estat de l’arrel merkle del fragment abans i després de les transaccions afegides)
Cos
- Totes les transaccions que pertanyen al grup de transaccions que formen part del fragment específic.
Les transaccions són específiques de cada fragment i es produeixen entre comptes natius d’aquest fragment.
Quan es verificen les transaccions, es modifica l’estat de la xarxa i s’actualitzen els saldos, l’emmagatzematge, etc. del compte. Per tal que el grup de transaccions es verifiqui com a vàlid, l’arrel preestatal del grup de transaccions ha de coincidir amb l’arrel fragmentària de l’estat global. Si coincideixen, el grup de transaccions es valida i l’estat global s’actualitza a través de l’arrel d’estat d’identificació de fragment particular.
En lloc de contenir només una arrel d’estat, cada bloc de la cadena de blocs Ethereum ara conté tant una arrel d’estat com l’arrel del grup de transaccions. L’arrel del grup de transaccions és l’arrel merkle de tots els grups de transaccions dels fragments específics d’aquest bloc de transaccions.
Bàsicament, hi ha una arrel merkle de tots els fragments diferents que contenen els grups de transaccions actualitzats i verificats. Aquesta arrel s’emmagatzema a la cadena de blocs juntament amb l’estat arrel actualitzat.
L’ús de conceptes d’arbre merkle en aquesta estructura és vital per garantir la validesa de la cadena de blocs. Comprendre el funcionament d’un arbre de merkle i específicament d’una arrel de merkle us pot ajudar a copsar aquests conceptes amb molta més facilitat.
Llegiu: Què és un arbre de Merkle ?
El consens dins d’un fragment s’aconsegueix mitjançant un consens de prova d’estaca de nodes seleccionats aleatòriament que s’apliquen a un fragment per a una ronda de consens específica.
Això no només proporciona finalitat al consens, que és necessari dins dels fragments, sinó que també proporciona una defensa particular a un atac al qual seria susceptible una cadena de blocs de prova de treball en aquest cas.
La potència de hash necessària per sobrepassar un fragment específic en una xarxa de partició PoW es redueix dràsticament i la possibilitat per a un actor maliciós de fer-se càrrec d’un fragment mitjançant la potència computacional és factible.
Mitjançant això, el mal actor podria atacar altres fragments mitjançant el protocol de comunicació, que és una de les característiques més complicades i importants de l’arquitectura de sharding. La selecció de mostres aleatòries dels validadors d’un fragment aconsegueix sufocar aquest tipus d’atac, ja que un actor dolent no sabrà en quin fragment s’està col·locant abans de col·locar-s’hi realment..
A més, s’utilitzarà un mostreig aleatori per seleccionar els validadors que realment estan validant d’aquest conjunt de validació aleatòria.
El protocol de comunicació és vital perquè l’arquitectura de sharding funcioni correctament al sistema. Podeu pensar en el protocol de comunicació com el llenguatge universal que és coherent entre els estats com a part dels Estats Units més grans.
Tot i això, dissenyar aquest protocol és molt difícil i s’ha de realitzar de manera que només s’utilitzi quan sigui necessari. Es fa necessari quan un node específic requereix informació que no s’emmagatzema dins del seu propi fragment i necessita trobar el fragment amb la informació necessària. Aquesta comunicació es coneix com a comunicació transversal.
La comunicació creuada s’aconsegueix mitjançant l’aplicació del concepte de rebuts de transacció. El rebut d’una transacció s’emmagatzema en una arrel merkle que es pot verificar fàcilment però que no forma part de l’arrel estatal.
El fragment que rep una transacció d’un altre fragment comprova l’arrel merkle per assegurar-se que no s’ha gastat el rebut. Bàsicament, els rebuts s’emmagatzemen en una memòria compartida que pot ser verificada per altres fragments, però no alterada. Per tant, mitjançant un emmagatzematge distribuït de rebuts, els fragments poden comunicar-se entre ells.
Fragments avançant
Es preveu que s’implementin fragments a Ethereum després de l’actualització de Casper PoS. Recentment, allà hi ha hagut algunes novetats sobre Ethereum 2.0 que impliquen implementar tant Casper com sharding.
Sharding també s’ha implementat en algunes altres plataformes, sobretot Zilliqa. Tanmateix, Zilliqa no implementa la compartició d’estats en aquest moment i, en canvi, se centra a proporcionar una cadena de blocs de gran rendiment mitjançant l’ús de transaccions i compartició computacional..
Llegiu la nostra Guia de Zilliqa
Conclusió
Sharding serveix per oferir algunes solucions prometedores a l’elefant a l’habitació de les plataformes blockchain ara mateix, escalabilitat.
Tot i que la xarxa de llamps de Bitcoin es troba en fase de proves i ha demostrat fins ara un progrés molt prometedor, la solució d’Ethereum comporta alguns desafiaments únics, ja que s’adjunta com un ordinador mundial complet de Turing..
Sharding només funcionarà directament a nivell de protocol, de manera que per a l’usuari final o per al desenvolupador de dapp pot ser que no sigui necessàriament rellevant conèixer.
Independentment de tot, l’intent d’Ethereum de compartir estat per a una xarxa descentralitzada vasta és un esforç impressionant i serà una gran fita si s’implementa amb èxit.