¿Qué es fragmentación? Explicación de este concepto de escalado de Ethereum

¿Qué es fragmentación? Explicación de este concepto de escalado de Ethereum

As el debate de la escala en las criptomonedas continúa, algunas soluciones potenciales han estado en desarrollo desde hace bastante tiempo.

En concreto, en el caso de Ethereum, donde se pone un gran énfasis en la descentralización y seguridad a expensas de la escalabilidad, la aplicación de fragmentación junto con la implementación Prueba de participación el consenso es visto como el mecanismo muy necesario a través del cual la red puede escalar a niveles prácticos para las aplicaciones mientras conserva su descentralización y seguridad.

La fragmentación es un tema complejo, especialmente cuando se aplica a una red descentralizada de igual a igual como Ethereum donde el estado global de la red se actualiza constantemente.

Entonces, ¿qué es exactamente la fragmentación y cómo puede ayudar a escalar las redes blockchain?

Antecedentes de fragmentación y computación distribuida

La fragmentación es en realidad mucho más antigua que la tecnología blockchain y se ha implementado en una variedad de sistemas, desde optimizaciones de bases de datos comerciales hasta Base de datos global de Spanner de Google.

  • Esencialmente, la fragmentación es un método particular para la partición horizontal de datos dentro de una base de datos.
  • En términos más generales, la base de datos se divide en pequeños fragmentos llamados «fragmentos», que cuando se agregan juntos forman la base de datos original.
  • En las redes blockchain distribuidas, la red consta de una serie de nodos conectados en un formato peer to peer, sin autoridad central.
  • Como es el caso de los sistemas blockchain actuales, cada nodo almacena todos los estados de la red y procesa todas las transacciones.
  • Si bien esto proporciona seguridad de alto nivel a través de la descentralización, especialmente en los sistemas de prueba de trabajo como Bitcoin y Ethereum, conduce a problemas de escala legítimos.

Fragmentación de Ethereum

Usando Ethereum como ejemplo, un nodo completo en el Ethereum La red almacena todo el estado de la cadena de bloques, incluidos los saldos de cuenta, el almacenamiento y el código de contrato.

Desafortunadamente, a medida que la red aumenta de tamaño a un ritmo exponencial, el consenso solo aumenta de forma lineal. Esta limitación se debe a la comunicación necesaria entre los nodos necesaria para llegar a un consenso.

Los nodos de la red no tienen privilegios especiales y cada nodo de la red almacena y procesa cada transacción. Como resultado, en una red del tamaño de Ethereum, problemas como los altos costos de la gasolina y los tiempos más largos de confirmación de transacciones se vuelven problemas notables cuando la red está sobrecargada. Él a las es tan rápido como los nodos individuales en lugar de la suma de sus partes.

Sharding ayuda a aliviar estos problemas al proporcionar una solución interesante pero compleja. El concepto implica agrupar subconjuntos de nodos en fragmentos que, a su vez, procesan transacciones específicas de ese fragmento. Permite que el sistema procese muchas transacciones en paralelo, lo que aumenta significativamente el rendimiento.

Una forma más sencilla de decirlo sería imaginar la división de los Estados Unidos en estados.

Si bien cada estado (un fragmento en este caso) es parte de los Estados Unidos más grandes (red Ethereum), tienen sus propias reglas, límites y subconjuntos de poblaciones específicos. Sin embargo, comparten un idioma y una cultura universales como parte de su red más amplia que conforma el país.

O mejor aún, en Vitalik Buterinpropias palabras:

 “Imagínese que Ethereum se ha dividido en miles de islas. Cada isla puede hacer lo suyo. Cada una de las islas tiene sus propias características únicas y todos los que pertenecen a esa isla, es decir, las cuentas, pueden interactuar entre sí Y pueden disfrutar libremente de todas sus características. Si quieren contactar con otras islas, tendrán que usar algún tipo de protocolo”.

Como puede ver, el concepto de fragmentar la red en partes más eficientes permite que la red funcione como la suma de sus partes, en lugar de estar limitada por la velocidad de cada nodo individual.

¿Cómo funciona el Sharding en Blockchains?

Continuaremos usando Ethereum como ejemplo en esto, ya que es el intento de fragmentación más conocido y arduo en el campo de la cadena de bloques, ya que los desarrolladores de Ethereum están implementando lo que se conoce como «fragmentación del estado.

El estado actual de la cadena de bloques de Ethereum se conoce como «estado global” y es lo que todos pueden ver cuando miran la cadena de bloques en una instancia específica.

La parte complicada de implementar la fragmentación en Ethereum es que, al fragmentar los nodos en subconjuntos más pequeños, estos subconjuntos deben poder procesar conjuntos específicos de transacciones y, al mismo tiempo, actualizar el estado de la red, al mismo tiempo que se garantiza que sea válida.

Se supone que la fragmentación en Ethereum se implementará en un lanzamiento de dos fases, muy probablemente después Prueba de participación se implementa en el a las. La fase uno será la capa de datos que consiste en el consenso de qué datos hay en los fragmentos. La fase dos es la capa de estado. Todo esto es muy fluido, por lo que a continuación se muestra un desglose general de cómo puede funcionar.

Ethereum divide la red en fragmentos específicos. A cada fragmento se le asigna un grupo específico de transacciones que se determina agrupando cuentas específicas (incluidos los contratos inteligentes) en un fragmento. Cada grupo de transacciones tiene un encabezado y un cuerpo que consta de lo siguiente.

  • El ID de fragmento del grupo de transacciones.
  • Asignación de validadores a través de muestreo aleatorio (verifique las transacciones en el fragmento)
  • State Root (estado de la raíz merkle del fragmento antes y después de agregar las transacciones)

Cremas corporales

  • Todas las transacciones que pertenecen al grupo de transacciones que forman parte del fragmento específico.

Las transacciones son específicas de cada fragmento y ocurren entre cuentas nativas de ese fragmento.

Cuando se verifican las transacciones, el estado de la red cambia y se actualizan los saldos de las cuentas, el almacenamiento, etc. Para que el grupo de transacciones se verifique como válido, la raíz preestablecida del grupo de transacciones debe coincidir con la raíz del fragmento en el estado global. Si coinciden, el grupo de transacciones se valida y el estado global se actualiza a través de la raíz de estado de ID de fragmento particular.

En lugar de contener solo una raíz de estado, cada bloque de la cadena de bloques de Ethereum ahora contiene una raíz de estado y la raíz del grupo de transacciones. La raíz del grupo de transacciones es la raíz Merkle de todos los grupos de transacciones de los fragmentos específicos para ese bloque de transacciones.

Básicamente, hay una raíz Merkle de todos los diferentes fragmentos que contienen los grupos de transacciones actualizados y verificados. Esta raíz se almacena en la cadena de bloques junto con la raíz de estado actualizada.

El empleo de conceptos de árboles Merkle en esta estructura es vital para garantizar la validez de la cadena de bloques. Comprender cómo un arbol merkle y específicamente un trabajo de raíz de Merkle, puede ayudarlo a comprender estos conceptos mucho más fácilmente.

Leer: ¿Qué es un árbol Merkle?

El consenso dentro de un fragmento se alcanza a través de un consenso de prueba de participación de nodos seleccionados al azar que se aplican a un fragmento para una ronda de consenso específica.

Esto no solo proporciona finalidad al consenso, que es necesario dentro de los fragmentos, sino que también proporciona una defensa particular a un ataque que un Prueba de trabajo blockchain sería susceptible en este caso.

El poder de hash requerido para invadir un fragmento específico en una red fragmentada de PoW se reduce drásticamente y la capacidad de un actor malintencionado para hacerse cargo de un fragmento a través del poder computacional es factible.

A través de esto, el mal actor podría atacar otros fragmentos a través del protocolo de comunicación, que es una de las características más complicadas e importantes de la arquitectura de fragmentación. La selección aleatoria de muestras de los validadores dentro de un fragmento logra sofocar este tipo de ataque, ya que un mal actor no sabrá en qué fragmento se está colocando antes de que realmente se coloque en él.

Además, se utilizará un muestreo aleatorio para seleccionar los validadores que Realmente validando de ese conjunto de validación aleatorio.

El protocolo de comunicación es vital para que la arquitectura de fragmentación funcione correctamente en el sistema. Puede pensar en el protocolo de comunicación como el idioma universal que es consistente entre los estados como parte de los Estados Unidos más grandes.

Sin embargo, diseñar este protocolo es un gran desafío y debe realizarse para que solo se use cuando sea necesario. Se vuelve necesario cuando un nodo específico requiere información que no está almacenada en su propio fragmento y necesita encontrar el fragmento con la información requerida. Esta comunicación se conoce como comunicación entre fragmentos.

La comunicación entre fragmentos se logra mediante la aplicación del concepto de recibos de transacciones. El recibo de una transacción se almacena en una raíz Merkle que se puede verificar fácilmente pero que no forma parte de la raíz estatal.

El fragmento que recibe una transacción de otro fragmento comprueba la raíz de Merkle para asegurarse de que no se haya gastado el recibo. Esencialmente, los recibos se almacenan en una memoria compartida que puede ser verificada por otros fragmentos, pero no alterada. Por lo tanto, a través de un almacenamiento distribuido de recibos, los fragmentos pueden comunicarse entre sí.

Fragmentación avanzando

Se espera que Sharding en Ethereum se implemente después de Casper Actualización de PoS. Recientemente, hay ha habido algunos desarrollos con respecto a Ethereum 2.0 que implican la implementación de ambos Casper y fragmentación.

Sharding también se ha implementado en algunas otras plataformas, más notablemente Zilliqa. Sin embargo, Zilliqa no implementa la fragmentación de estado en este momento y, en cambio, se enfoca en proporcionar una cadena de bloques de alto rendimiento mediante la utilización de fragmentación computacional y de transacciones.Lea nuestras Guía de Zilliqa

Conclusión

Sharding sirve para ofrecer algunas soluciones prometedoras al elefante en la habitación de las plataformas blockchain en este momento, la escalabilidad.

Si bien la red relámpago de Bitcoin se encuentra en la fase de prueba y ha mostrado un progreso muy prometedor hasta el momento, la solución de Ethereum trae consigo algunos desafíos únicos, ya que está vinculado como una computadora mundial que está completa en Turing.

La fragmentación funcionará directamente solo en el nivel de protocolo, por lo que para el usuario final o el desarrollador de dapp puede no ser necesariamente relevante conocerlo.

Independientemente, el intento de Ethereum de fragmentar el estado de una red vasta y descentralizada es un esfuerzo impresionante y será una gran hazaña si se implementa con éxito.

Fuente: https://blockonomi.com/sharding/

   

Fuente

Updated: 23.05.2022 — 04:32

The Author