Shardeum y la fragmentación de estado dinámico: otra posibilidad de fragmentación
El 15 de septiembre de 2022, Ethereum completó la tan esperada fusión (Merge). Este es un momento histórico, Ethereum se preparó para esto durante 5 años y lo retrasó 6 veces. Debido a la depuración repetida y al desarrollo a largo plazo, muchas personas asumieron erróneamente que la fusión traería naturalmente una mayor escalabilidad, seguridad y sostenibilidad, pero en realidad no es así. La transición de PoW a PoS solo cambió las vías y las ruedas, no traerá directamente mayor velocidad, mayor capacidad o menores costos. Lo que realmente puede lograr eso es un conjunto completo de soluciones: una red principal con capacidad de Fragmentación combinada con soluciones Layer2 que mejoran la escalabilidad.
Como señaló el fundador de Ethereum, Vitalik Buterin, la Fragmentación es una solución de escalabilidad en el dilema de la escalabilidad, que consiste en dividir los nodos de la red en grupos más pequeños, procesando diferentes conjuntos de transacciones y logrando procesamiento en paralelo. Al aliviar la carga de manejar la gran cantidad de datos que se requieren para el resumen en toda la red, al igual que cuando hacemos compras en el supermercado y pagamos, al abrir más cajas de cobro, se puede reducir visualmente el tiempo de espera y mejorar la eficiencia en el pago.
Esta es la lógica de la fragmentación, directa y simple, sin embargo, el diablo está en los detalles. El principio y la dirección son correctos, pero siempre surgen muchos problemas durante la implementación. Este artículo busca aclarar la dirección y los dilemas en el camino de la "fragmentación", dibujando un mapa de exploradores de fragmentación que mire hacia las estrellas y esté enraizado en la realidad. Al mismo tiempo, al comparar las soluciones de fragmentación existentes, se buscarán algunos problemas comunes y se propondrá una dirección de exploración viable: Shardeum y fragmentación dinámica.
Uno, sobre "Fragmentación"
En resumen, considerando las restricciones del triángulo imposible, partiendo de Ethereum como el punto de origen del sistema de coordenadas (0,0), según dos enfoques: "vertical" y "horizontal", clasificaremos los métodos de escalabilidad actuales de blockchain en dos grandes categorías:
Escalado Vertical (: Se logra al mejorar el rendimiento del hardware existente del sistema. Se establece una red descentralizada en la que cada nodo de la red tiene una capacidad de computación superpoderosa, es decir, cada nodo necesita hardware "mejor". Este método es simple y efectivo, y puede lograr una mejora preliminar en el rendimiento, especialmente adecuado para aplicaciones de comercio de alta frecuencia, juegos y otras situaciones donde la latencia es sensible. Sin embargo, este método de escalado limita el nivel de descentralización de la red, ya que el costo de operar nodos de validación o nodos completos aumenta. Mantener el nivel de descentralización está limitado por la velocidad de crecimiento aproximada del rendimiento del hardware de computación ), lo que se conoce como la "Ley de Moore": el número de transistores en un chip se duplica aproximadamente cada dos años, y el costo de computación se reduce a la mitad (.
Escalado Horizontal )Horizontal Scaling(: El escalado horizontal generalmente tiene varias ideas. Una es, en el contexto de la blockchain, dispersar la carga de cálculo de transacciones de un ecosistema particular a múltiples blockchains independientes, cada una con su propio productor de bloques y capacidad de ejecución. Este enfoque permite personalizar completamente la capa de ejecución de cada cadena, como los requisitos de hardware de los nodos, funciones de privacidad, tarifas de gas, máquinas virtuales y configuraciones de permisos, entre otros. Otra opción de escalado horizontal es la blockchain modular, que divide la infraestructura de la blockchain en capas de ejecución, capas de disponibilidad de datos )DA( y capas de consenso. El mecanismo de modularidad blockchain más popular es el rollup. Otra forma es dividir una blockchain en muchas fragmentaciones, ejecutándose en paralelo. Cada fragmento puede considerarse como una blockchain, lo que significa que muchas blockchains pueden ejecutarse en paralelo. Además, generalmente también habrá una cadena principal, cuya única tarea es mantener la sincronización de todos los fragmentos.
Es importante señalar que las ideas de escalabilidad mencionadas anteriormente no existen de forma aislada; cada solución encuentra un punto de equilibrio en el triángulo imposible, combinándose con el diseño de mecanismos de incentivos creados por las fuerzas económicas del sistema, para lograr un equilibrio efectivo a nivel macro y micro.
Para discutir la "Fragmentación", necesitamos empezar desde el principio.
Aún suponiendo este escenario, el pago en el supermercado, para mejorar la eficiencia del pago y reducir el tiempo de espera del cliente, ampliamos de un solo canal de pago a 10 ventanas de pago. Para evitar errores en los libros, en este momento necesitamos establecer reglas uniformes:
Primero, si tenemos 10 cajeros, ¿cómo los asignamos a qué ventana trabajar?
Segundo, si tenemos 1000 clientes en fila esperando, ¿cómo decidimos a qué ventana debe ir cada cliente para pagar?
Tercero, ¿cómo se deben resumir los 10 libros contables individuales correspondientes a estas 10 ventanas?
Cuarto, ¿cómo se puede evitar que los cajeros cometan errores para prevenir la desincronización de cuentas?
Estas preguntas corresponden en realidad a varias cuestiones clave en la fragmentación, que son:
¿Cómo determinar a qué fragmentación pertenecen los nodos/validadores de toda la red? Es decir: ¿cómo realizar la fragmentación de red )Network Sharding(;
¿Cómo determinar a qué fragmentación se asigna cada transacción? Es decir: ¿cómo realizar la fragmentación de transacciones )Transaction Sharding(;
¿Cómo se almacenan los datos de blockchain en diferentes Fragmentación? Es decir: ¿cómo se realiza la fragmentación de estado )State Sharding(?
La complejidad implica riesgos, sobre la base de todo lo anterior, ¿cómo evitar la fragmentación de la seguridad del sistema en su totalidad?
![Explicación detallada de la nueva cadena de bloques Shardeum: Fragmentación de otra posibilidad])https://img-cdn.gateio.im/webp-social/moments-7aa1677db6b8128b68accfe04fcda738.webp(
) 01 Fragmentación###Network Sharding(
Si entendemos la blockchain simplemente como un libro de contabilidad descentralizado, ya sea el mecanismo de consenso PoS o PoW, ambos están destinados a permitir que cada nodo compita por el derecho a llevar la contabilidad de acuerdo a ciertas reglas establecidas, garantizando la corrección del libro de contabilidad en este proceso. La Fragmentación de la red se refiere a que se necesita otra regla establecida para fragmentar la red blockchain, permitiendo que cada fragmento maneje las transacciones en cadena, compitiendo por el derecho a llevar la contabilidad, es decir, la regla de agrupamiento de nodos.
Y el problema que se encuentra en este proceso es que, a medida que los nodos internos de la blockchain se dividen en diferentes fragmentos, la dificultad y el costo para los atacantes disminuyen drásticamente. Podemos inferir que, suponiendo que las reglas y resultados de este proceso de agrupamiento son fijos y predecibles, un atacante que quiera controlar toda la red de blockchain solo necesita controlar de manera dirigida uno de los fragmentos y sobornar a algunos nodos dentro de ese fragmento.
Un fundador de una cadena pública describió el problema de la siguiente manera: si una cadena única con X validadores decide bifurcarse en una cadena de fragmentación y dividir los X validadores en 10 fragmentos, cada fragmento ahora solo tiene X/10 validadores, destruir un fragmento solo requiere destruir el 5.1%)51% / 10( del número total de validadores. Esto plantea el segundo punto: ¿quién elige los validadores para cada fragmento? Solo cuando todos estos 5.1% de validadores están en el mismo fragmento, controlar el 5.1% de los validadores es perjudicial. Si los validadores no pueden elegir en qué fragmento validar, es extremadamente poco probable que los participantes que controlan el 5.1% de los validadores pongan a todos los validadores en el mismo fragmento, lo que reduce drásticamente su capacidad para dañar el sistema.
El sistema de fragmentación debe desarrollar un mecanismo para confiar en que la red no revertirá estas transacciones desde fragmentos externos. Hasta ahora, la mejor respuesta posible es asegurar que el número de validadores dentro de un fragmento sea superior a un umbral mínimo, de modo que la probabilidad de que validadores deshonestos abrumen un solo fragmento sea muy baja. La forma más común es construir un grado de aleatoriedad imparcial, utilizando métodos matemáticos para reducir al mínimo la probabilidad de éxito de un atacante. Por ejemplo, Ethereum, la solución de Ethereum es seleccionar aleatoriamente a los validadores de un fragmento de entre todos los validadores, y cada 6.4 minutos ) la longitud de un epoch ( se cambian los validadores.
Dicho de manera simple, consiste en agrupar aleatoriamente los nodos y asignar el trabajo para que cada grupo de nodos verifique de forma independiente.
Sin embargo, es necesario señalar que la aleatoriedad en blockchain es un tema muy desafiante. Lógicamente, el proceso de generación de este número aleatorio no debería depender del cálculo de ninguna fragmentación específica. Para este cálculo, muchas de las ideas de diseño existentes se centran en desarrollar una blockchain separada que mantenga toda la red. Tal cadena se llama cadena Beacon en Ethereum y Near, cadena Relay en PolkaDot, y Cosmos Hub en Cosmos.
![Explicación detallada de la nueva cadena pública Shardeum: Fragmentación de otra posibilidad])https://img-cdn.gateio.im/webp-social/moments-6e8d3331d7d68cb512eb2eb47bd9064d.webp(
La fragmentación de transacciones se refiere a la formulación de reglas sobre "qué transacciones deben asignarse a qué fragmentos", lo que puede lograr el objetivo del procesamiento en paralelo y evitar la aparición del problema del doble gasto. Las diferencias en el modelo de libro mayor de la blockchain pueden afectar el desarrollo de la fragmentación de transacciones.
Actualmente, en la red blockchain existen dos tipos de métodos de contabilidad, que son el modelo de Salidas de Transacción No Gastadas ) (UTXO) y el modelo de cuenta/saldo. El primero tiene como representante típico al BTC, mientras que el segundo es representado por el ETH.
Modelo UTXO: En las transacciones de BTC, cada transacción puede tener una o más salidas, UTXO se refiere a las salidas de transacciones en la cadena de bloques que aún no han sido gastadas y pueden ser utilizadas como entradas para nuevas transacciones, mientras que las salidas de transacciones ya gastadas no pueden ser utilizadas de nuevo, similar a los pagos y el cambio en las transacciones de billetes de papel, donde un cliente entrega uno o más billetes al comerciante, y el comerciante le devuelve uno o más billetes como cambio. Bajo el modelo UTXO, la fragmentación de transacciones requiere comunicación entre fragmentos. Una transacción puede incluir múltiples entradas y múltiples salidas, no hay el concepto de cuentas, ni registros de saldo, una posible forma es: procesar un valor de entrada de su transacción a través de una función hash para convertirlo en un valor hash discreto que determine a qué fragmento deberían ir los datos.
Para asegurar que las entradas se coloquen de manera consistente en la fragmentación correcta, los valores ingresados en la función hash deben provenir de la misma columna. Esta columna se llama Shard Key. Luego, las transacciones que generan un valor de 1 se asignan a la fragmentación 1, y las transacciones que generan un valor de 2 se asignan a la fragmentación 2. Sin embargo, la desventaja de este método es que las fragmentaciones deben comunicarse para evitar ataques de doble gasto. Si se limita el comercio entre fragmentaciones, se restringirá la disponibilidad de la plataforma, mientras que permitir el comercio entre fragmentaciones debe equilibrar el costo de la comunicación entre fragmentaciones y los beneficios de mejora en el rendimiento.
Modelo de cuenta/saldo: El sistema registra el saldo de cada cuenta, y al realizar una transacción, el sistema verifica si la cuenta tiene suficiente saldo para el pago, similar a cómo un banco registra el saldo de cada cuenta durante una transferencia, donde la transacción solo puede llevarse a cabo si el saldo de la cuenta es mayor que el monto de la transferencia requerida. En el modelo de cuenta/saldo, dado que una transacción solo tiene una entrada, siempre que se divida la transacción según la dirección del remitente, se puede garantizar que múltiples transacciones de la misma cuenta se procesen en la misma fragmentación, evitando efectivamente el doble gasto. Por lo tanto, la mayoría de las cadenas de bloques que utilizan la tecnología de fragmentación son sistemas de libro mayor de cuentas como Ethereum.
( 03 Estado Fragmentación)State Sharding###
El estado de fragmentación se refiere a cómo se distribuyen los datos de la blockchain en diferentes fragmentos para su almacenamiento.
Siguiendo con el ejemplo de hacer cola en nuestro supermercado, cada ventanilla tiene un registro contable. ¿Cómo se registran sus libros de cuentas? Si: un cliente se presenta en una cola, se registra en esa cuenta, por ejemplo, si el cliente A fue a la ventanilla A, y al día siguiente ese cliente fue a otra ventanilla de cobro, como la ventanilla B, pero la ventanilla B no tiene la información de la cuenta anterior del cliente (, como podría ser el caso de un método de pago con tarjeta de valor almacenado ), ¿qué se debe hacer? ¿Se debe llamar a la ventanilla A para obtener la información de la cuenta de ese cliente?
El estado de la fragmentación es el mayor desafío de la fragmentación, más complicado que la fragmentación de red y la fragmentación de transacciones mencionadas anteriormente. Debido a que en el mecanismo de fragmentación, las transacciones se procesan en diferentes fragmentos según la asignación de direcciones, es decir, el estado solo se almacenará en el fragmento donde se encuentra su dirección. En este momento, uno de los problemas a enfrentar es que las transacciones no se llevarán a cabo solo en un fragmento, a menudo implican la fragmentación cruzada (Cross-Sharding).
Considera un caso de transferencia, la cuenta A transfiere 10U a la cuenta B, y la dirección de A está asignada a la Fragmentación 1, el registro de la transacción también se almacenará en la Fragmentación 1. La dirección de B está asignada a la Fragmentación 2, el registro de la transacción se almacenará en la Fragmentación 2.
Una vez que A quiere transferir fondos a B, se formará una transacción de fragmentación cruzada, y la fragmentación 2 llamará a la fragmentación 1 para consultar los registros de transacciones pasadas y confirmar la validez de la transacción. Si A envía monedas a B con frecuencia, la fragmentación 2 debe interactuar continuamente con la fragmentación 1, lo que disminuirá la eficiencia del procesamiento de transacciones. Sin embargo, si no se descarga y verifica
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
16 me gusta
Recompensa
16
6
Compartir
Comentar
0/400
ChartIgniter
· hace8h
LFG
Responder0
JustAnotherWallet
· hace12h
Mirando el espectáculo, Fragmentación, pues se divide.
Ver originalesResponder0
PoolJumper
· hace12h
Jaja, realmente está lento, he estado esperando medio día solo para cambiar de carcasa.
Ver originalesResponder0
GovernancePretender
· hace12h
Mira y ya está, ¿quién cree en las tonterías de vb?
Shardeum explora la Fragmentación de estado dinámico para resolver el problema de escalabilidad de la Cadena de bloques.
Shardeum y la fragmentación de estado dinámico: otra posibilidad de fragmentación
El 15 de septiembre de 2022, Ethereum completó la tan esperada fusión (Merge). Este es un momento histórico, Ethereum se preparó para esto durante 5 años y lo retrasó 6 veces. Debido a la depuración repetida y al desarrollo a largo plazo, muchas personas asumieron erróneamente que la fusión traería naturalmente una mayor escalabilidad, seguridad y sostenibilidad, pero en realidad no es así. La transición de PoW a PoS solo cambió las vías y las ruedas, no traerá directamente mayor velocidad, mayor capacidad o menores costos. Lo que realmente puede lograr eso es un conjunto completo de soluciones: una red principal con capacidad de Fragmentación combinada con soluciones Layer2 que mejoran la escalabilidad.
Como señaló el fundador de Ethereum, Vitalik Buterin, la Fragmentación es una solución de escalabilidad en el dilema de la escalabilidad, que consiste en dividir los nodos de la red en grupos más pequeños, procesando diferentes conjuntos de transacciones y logrando procesamiento en paralelo. Al aliviar la carga de manejar la gran cantidad de datos que se requieren para el resumen en toda la red, al igual que cuando hacemos compras en el supermercado y pagamos, al abrir más cajas de cobro, se puede reducir visualmente el tiempo de espera y mejorar la eficiencia en el pago.
Esta es la lógica de la fragmentación, directa y simple, sin embargo, el diablo está en los detalles. El principio y la dirección son correctos, pero siempre surgen muchos problemas durante la implementación. Este artículo busca aclarar la dirección y los dilemas en el camino de la "fragmentación", dibujando un mapa de exploradores de fragmentación que mire hacia las estrellas y esté enraizado en la realidad. Al mismo tiempo, al comparar las soluciones de fragmentación existentes, se buscarán algunos problemas comunes y se propondrá una dirección de exploración viable: Shardeum y fragmentación dinámica.
Uno, sobre "Fragmentación"
En resumen, considerando las restricciones del triángulo imposible, partiendo de Ethereum como el punto de origen del sistema de coordenadas (0,0), según dos enfoques: "vertical" y "horizontal", clasificaremos los métodos de escalabilidad actuales de blockchain en dos grandes categorías:
Escalado Vertical (: Se logra al mejorar el rendimiento del hardware existente del sistema. Se establece una red descentralizada en la que cada nodo de la red tiene una capacidad de computación superpoderosa, es decir, cada nodo necesita hardware "mejor". Este método es simple y efectivo, y puede lograr una mejora preliminar en el rendimiento, especialmente adecuado para aplicaciones de comercio de alta frecuencia, juegos y otras situaciones donde la latencia es sensible. Sin embargo, este método de escalado limita el nivel de descentralización de la red, ya que el costo de operar nodos de validación o nodos completos aumenta. Mantener el nivel de descentralización está limitado por la velocidad de crecimiento aproximada del rendimiento del hardware de computación ), lo que se conoce como la "Ley de Moore": el número de transistores en un chip se duplica aproximadamente cada dos años, y el costo de computación se reduce a la mitad (.
Escalado Horizontal )Horizontal Scaling(: El escalado horizontal generalmente tiene varias ideas. Una es, en el contexto de la blockchain, dispersar la carga de cálculo de transacciones de un ecosistema particular a múltiples blockchains independientes, cada una con su propio productor de bloques y capacidad de ejecución. Este enfoque permite personalizar completamente la capa de ejecución de cada cadena, como los requisitos de hardware de los nodos, funciones de privacidad, tarifas de gas, máquinas virtuales y configuraciones de permisos, entre otros. Otra opción de escalado horizontal es la blockchain modular, que divide la infraestructura de la blockchain en capas de ejecución, capas de disponibilidad de datos )DA( y capas de consenso. El mecanismo de modularidad blockchain más popular es el rollup. Otra forma es dividir una blockchain en muchas fragmentaciones, ejecutándose en paralelo. Cada fragmento puede considerarse como una blockchain, lo que significa que muchas blockchains pueden ejecutarse en paralelo. Además, generalmente también habrá una cadena principal, cuya única tarea es mantener la sincronización de todos los fragmentos.
Es importante señalar que las ideas de escalabilidad mencionadas anteriormente no existen de forma aislada; cada solución encuentra un punto de equilibrio en el triángulo imposible, combinándose con el diseño de mecanismos de incentivos creados por las fuerzas económicas del sistema, para lograr un equilibrio efectivo a nivel macro y micro.
Para discutir la "Fragmentación", necesitamos empezar desde el principio.
Aún suponiendo este escenario, el pago en el supermercado, para mejorar la eficiencia del pago y reducir el tiempo de espera del cliente, ampliamos de un solo canal de pago a 10 ventanas de pago. Para evitar errores en los libros, en este momento necesitamos establecer reglas uniformes:
Primero, si tenemos 10 cajeros, ¿cómo los asignamos a qué ventana trabajar?
Segundo, si tenemos 1000 clientes en fila esperando, ¿cómo decidimos a qué ventana debe ir cada cliente para pagar?
Tercero, ¿cómo se deben resumir los 10 libros contables individuales correspondientes a estas 10 ventanas?
Cuarto, ¿cómo se puede evitar que los cajeros cometan errores para prevenir la desincronización de cuentas?
Estas preguntas corresponden en realidad a varias cuestiones clave en la fragmentación, que son:
¿Cómo determinar a qué fragmentación pertenecen los nodos/validadores de toda la red? Es decir: ¿cómo realizar la fragmentación de red )Network Sharding(;
¿Cómo determinar a qué fragmentación se asigna cada transacción? Es decir: ¿cómo realizar la fragmentación de transacciones )Transaction Sharding(;
¿Cómo se almacenan los datos de blockchain en diferentes Fragmentación? Es decir: ¿cómo se realiza la fragmentación de estado )State Sharding(?
La complejidad implica riesgos, sobre la base de todo lo anterior, ¿cómo evitar la fragmentación de la seguridad del sistema en su totalidad?
![Explicación detallada de la nueva cadena de bloques Shardeum: Fragmentación de otra posibilidad])https://img-cdn.gateio.im/webp-social/moments-7aa1677db6b8128b68accfe04fcda738.webp(
) 01 Fragmentación###Network Sharding(
Si entendemos la blockchain simplemente como un libro de contabilidad descentralizado, ya sea el mecanismo de consenso PoS o PoW, ambos están destinados a permitir que cada nodo compita por el derecho a llevar la contabilidad de acuerdo a ciertas reglas establecidas, garantizando la corrección del libro de contabilidad en este proceso. La Fragmentación de la red se refiere a que se necesita otra regla establecida para fragmentar la red blockchain, permitiendo que cada fragmento maneje las transacciones en cadena, compitiendo por el derecho a llevar la contabilidad, es decir, la regla de agrupamiento de nodos.
Y el problema que se encuentra en este proceso es que, a medida que los nodos internos de la blockchain se dividen en diferentes fragmentos, la dificultad y el costo para los atacantes disminuyen drásticamente. Podemos inferir que, suponiendo que las reglas y resultados de este proceso de agrupamiento son fijos y predecibles, un atacante que quiera controlar toda la red de blockchain solo necesita controlar de manera dirigida uno de los fragmentos y sobornar a algunos nodos dentro de ese fragmento.
Un fundador de una cadena pública describió el problema de la siguiente manera: si una cadena única con X validadores decide bifurcarse en una cadena de fragmentación y dividir los X validadores en 10 fragmentos, cada fragmento ahora solo tiene X/10 validadores, destruir un fragmento solo requiere destruir el 5.1%)51% / 10( del número total de validadores. Esto plantea el segundo punto: ¿quién elige los validadores para cada fragmento? Solo cuando todos estos 5.1% de validadores están en el mismo fragmento, controlar el 5.1% de los validadores es perjudicial. Si los validadores no pueden elegir en qué fragmento validar, es extremadamente poco probable que los participantes que controlan el 5.1% de los validadores pongan a todos los validadores en el mismo fragmento, lo que reduce drásticamente su capacidad para dañar el sistema.
El sistema de fragmentación debe desarrollar un mecanismo para confiar en que la red no revertirá estas transacciones desde fragmentos externos. Hasta ahora, la mejor respuesta posible es asegurar que el número de validadores dentro de un fragmento sea superior a un umbral mínimo, de modo que la probabilidad de que validadores deshonestos abrumen un solo fragmento sea muy baja. La forma más común es construir un grado de aleatoriedad imparcial, utilizando métodos matemáticos para reducir al mínimo la probabilidad de éxito de un atacante. Por ejemplo, Ethereum, la solución de Ethereum es seleccionar aleatoriamente a los validadores de un fragmento de entre todos los validadores, y cada 6.4 minutos ) la longitud de un epoch ( se cambian los validadores.
Dicho de manera simple, consiste en agrupar aleatoriamente los nodos y asignar el trabajo para que cada grupo de nodos verifique de forma independiente.
Sin embargo, es necesario señalar que la aleatoriedad en blockchain es un tema muy desafiante. Lógicamente, el proceso de generación de este número aleatorio no debería depender del cálculo de ninguna fragmentación específica. Para este cálculo, muchas de las ideas de diseño existentes se centran en desarrollar una blockchain separada que mantenga toda la red. Tal cadena se llama cadena Beacon en Ethereum y Near, cadena Relay en PolkaDot, y Cosmos Hub en Cosmos.
![Explicación detallada de la nueva cadena pública Shardeum: Fragmentación de otra posibilidad])https://img-cdn.gateio.im/webp-social/moments-6e8d3331d7d68cb512eb2eb47bd9064d.webp(
) 02 Transacción Fragmentación ###Transaction Sharding (
La fragmentación de transacciones se refiere a la formulación de reglas sobre "qué transacciones deben asignarse a qué fragmentos", lo que puede lograr el objetivo del procesamiento en paralelo y evitar la aparición del problema del doble gasto. Las diferencias en el modelo de libro mayor de la blockchain pueden afectar el desarrollo de la fragmentación de transacciones.
Actualmente, en la red blockchain existen dos tipos de métodos de contabilidad, que son el modelo de Salidas de Transacción No Gastadas ) (UTXO) y el modelo de cuenta/saldo. El primero tiene como representante típico al BTC, mientras que el segundo es representado por el ETH.
Modelo UTXO: En las transacciones de BTC, cada transacción puede tener una o más salidas, UTXO se refiere a las salidas de transacciones en la cadena de bloques que aún no han sido gastadas y pueden ser utilizadas como entradas para nuevas transacciones, mientras que las salidas de transacciones ya gastadas no pueden ser utilizadas de nuevo, similar a los pagos y el cambio en las transacciones de billetes de papel, donde un cliente entrega uno o más billetes al comerciante, y el comerciante le devuelve uno o más billetes como cambio. Bajo el modelo UTXO, la fragmentación de transacciones requiere comunicación entre fragmentos. Una transacción puede incluir múltiples entradas y múltiples salidas, no hay el concepto de cuentas, ni registros de saldo, una posible forma es: procesar un valor de entrada de su transacción a través de una función hash para convertirlo en un valor hash discreto que determine a qué fragmento deberían ir los datos.
Para asegurar que las entradas se coloquen de manera consistente en la fragmentación correcta, los valores ingresados en la función hash deben provenir de la misma columna. Esta columna se llama Shard Key. Luego, las transacciones que generan un valor de 1 se asignan a la fragmentación 1, y las transacciones que generan un valor de 2 se asignan a la fragmentación 2. Sin embargo, la desventaja de este método es que las fragmentaciones deben comunicarse para evitar ataques de doble gasto. Si se limita el comercio entre fragmentaciones, se restringirá la disponibilidad de la plataforma, mientras que permitir el comercio entre fragmentaciones debe equilibrar el costo de la comunicación entre fragmentaciones y los beneficios de mejora en el rendimiento.
Modelo de cuenta/saldo: El sistema registra el saldo de cada cuenta, y al realizar una transacción, el sistema verifica si la cuenta tiene suficiente saldo para el pago, similar a cómo un banco registra el saldo de cada cuenta durante una transferencia, donde la transacción solo puede llevarse a cabo si el saldo de la cuenta es mayor que el monto de la transferencia requerida. En el modelo de cuenta/saldo, dado que una transacción solo tiene una entrada, siempre que se divida la transacción según la dirección del remitente, se puede garantizar que múltiples transacciones de la misma cuenta se procesen en la misma fragmentación, evitando efectivamente el doble gasto. Por lo tanto, la mayoría de las cadenas de bloques que utilizan la tecnología de fragmentación son sistemas de libro mayor de cuentas como Ethereum.
( 03 Estado Fragmentación)State Sharding###
El estado de fragmentación se refiere a cómo se distribuyen los datos de la blockchain en diferentes fragmentos para su almacenamiento.
Siguiendo con el ejemplo de hacer cola en nuestro supermercado, cada ventanilla tiene un registro contable. ¿Cómo se registran sus libros de cuentas? Si: un cliente se presenta en una cola, se registra en esa cuenta, por ejemplo, si el cliente A fue a la ventanilla A, y al día siguiente ese cliente fue a otra ventanilla de cobro, como la ventanilla B, pero la ventanilla B no tiene la información de la cuenta anterior del cliente (, como podría ser el caso de un método de pago con tarjeta de valor almacenado ), ¿qué se debe hacer? ¿Se debe llamar a la ventanilla A para obtener la información de la cuenta de ese cliente?
El estado de la fragmentación es el mayor desafío de la fragmentación, más complicado que la fragmentación de red y la fragmentación de transacciones mencionadas anteriormente. Debido a que en el mecanismo de fragmentación, las transacciones se procesan en diferentes fragmentos según la asignación de direcciones, es decir, el estado solo se almacenará en el fragmento donde se encuentra su dirección. En este momento, uno de los problemas a enfrentar es que las transacciones no se llevarán a cabo solo en un fragmento, a menudo implican la fragmentación cruzada (Cross-Sharding).
Considera un caso de transferencia, la cuenta A transfiere 10U a la cuenta B, y la dirección de A está asignada a la Fragmentación 1, el registro de la transacción también se almacenará en la Fragmentación 1. La dirección de B está asignada a la Fragmentación 2, el registro de la transacción se almacenará en la Fragmentación 2.
Una vez que A quiere transferir fondos a B, se formará una transacción de fragmentación cruzada, y la fragmentación 2 llamará a la fragmentación 1 para consultar los registros de transacciones pasadas y confirmar la validez de la transacción. Si A envía monedas a B con frecuencia, la fragmentación 2 debe interactuar continuamente con la fragmentación 1, lo que disminuirá la eficiencia del procesamiento de transacciones. Sin embargo, si no se descarga y verifica