Precio de Bitcoin Precio de Bitcoin
Ctrl+D Precio de Bitcoin
ads
Casa > TRX > Info

La lógica subyacente y el mecanismo de bloque del tío del ataque Ethereum eclipse

Author:

Time:

Blockchain es un protocolo descentralizado que distribuye su base de datos a través de múltiples nodos en su red para establecer un mecanismo de consenso para transacciones pasadas, actuales y futuras. Las estructuras de datos en la cadena de bloques se representan como bloques.

En una red blockchain descentralizada, los participantes acuerdan lo que es correcto, no una autoridad central. Las cadenas de bloques también son transparentes e inmutables, todos los participantes de la red pueden ver lo que sucede en la red y las fechas de las transacciones no se pueden cambiar excepto a través de un mecanismo acordado.

Bloque Génesis

El bloque de génesis es el primer bloque de cualquier cadena de bloques, que es el punto de partida básico del sistema y está asociado con todas las transacciones futuras. El primer bloque de génesis del mundo fue creado por Satoshi Nakamoto, que creó Bitcoin.

La existencia del bloque de génesis permite que la cadena de bloques genere su historial de transacciones al permitir que los bloques recién creados se vinculen con bloques anteriores. Además, el bloque de génesis juega un papel importante en la sincronización de los nodos de red: deben tener el mismo bloque de génesis en sus bases de datos. Esto garantiza que el libro de transacciones distribuidas de blockchain sea el mismo para todos, lo que brinda seguridad.

Bloque de cadena principal

Los bloques de la cadena principal son todos los bloques que se verifican e incluyen en la cadena de bloques. Para que esto suceda, los bloques deben ser aceptados por la red por un nodo que resuelve su rompecabezas criptográfico asignado. Una vez que la red alcanza el consenso, los bloques se incluyen en la cadena de bloques y todos los nodos los propagan. De esta forma, cada nodo de la red tiene el nuevo bloque y actúa como su punto de verificación.

Cada bloque válido contiene una serie de transacciones que se validan junto con ese bloque. Por ejemplo, en Bitcoin, cada bloque válido lleva un promedio de 2100 transacciones. Confirme cada transacción en un bloque válido.

Todos los bloques válidos continúan confirmando transacciones anteriores, protegiendo completamente todos los bloques y transacciones en la red. Por supuesto, cada bloque válido incluye estructuras de datos que permiten la verificación. La estructura incluye el valor hash del bloque, la marca de tiempo, el nuncio y los datos de transacción del bloque. El proceso de búsqueda de soluciones candidatas se denomina minería y los nodos participantes se denominan mineros. Cada minero que genera una solución válida para el rompecabezas criptográfico de un bloque se convierte en líder y se le permite determinar el conjunto de transacciones no confirmadas, que luego se agregan a la cadena de bloques.

Bloques huérfanos

Los bloques huérfanos o obsoletos son bloques válidos que no pertenecen a la cadena de bloques. Estos se pueden crear cuando dos mineros validan bloques casi al mismo tiempo, o cuando un atacante con suficiente poder de hash intenta revertir las transacciones. En estos casos, entrará en juego el protocolo de consenso de la red para decidir qué bloques se incluirán en la cadena de bloques y qué bloques quedarán huérfanos.

De hecho, las redes de cadena de bloques están programadas para admitir siempre la cadena de bloques más larga. Es decir, selecciona bloques que contienen más información o transacciones procesadas. En la cadena de bloques de Bitcoin, los bloques huérfanos se descartan y el trabajo de los mineros es inútil.

Además, debido a este tipo de bloqueo, la mayoría de los intercambios y algunas billeteras esperarán automáticamente confirmaciones adicionales antes de proporcionar fondos. Lo hacen contando cuántos bloques se extrajeron entre la transacción que está recibiendo y el bloque actual.

>eth.getBlock(blockNumber。 >eth.syncing.highestBlock - eth.getTransaction("").blockNumber

Los sistemas de cadena de bloques funcionan con una estructura de datos de árbol de Merkle, lo que los hace (en teoría) inmutables. Los árboles de Merkle fueron patentados por Ralph Merkle en 1979 y se utilizan ampliamente en criptografía. Los árboles de Merkle son un método fundamental para verificar que los datos compartidos no hayan sido alterados, corrompidos o alterados, y son ideales para cadenas de bloques porque son livianos. Por ejemplo, debido a la estructura de árbol Merkle de Bitcoin, la billetera móvil de un usuario no necesita descargar todas las transacciones de Bitcoin para verificarlas.

Cada transacción en un bloque dado corresponde a una hoja en el árbol de Merkle, construida recursivamente a partir de estas hojas mediante el hash de una sola transacción.

Los pares de transacciones (hojas) se procesan para crear otros nodos de hoja que pueden corresponder a transacciones en la red de la cadena de bloques. Aunque es posible crear un árbol de Merkle a partir de una gran cantidad de transacciones, la raíz de Merkle siempre corresponde a una cadena de 32 o 256 bits (por ejemplo, el algoritmo hash SHA256 siempre genera una longitud fija de 32 bytes, independientemente del tamaño en la entrada). De esta forma, podemos verificar hasta miles de transacciones usando tan solo 32 bytes de datos.

Dependiendo del caso, cualquier cambio, por pequeño que sea, impediría la verificación de la raíz de Merkle e invalidaría parte o la totalidad del historial de la cadena de bloques.

Ethereum se diferencia de Bitcoin en que tiene un mecanismo de creación de bloques más rápido diseñado para acelerar el proceso de transacción. Sin embargo, cuando el intervalo de tiempo entre la generación de bloques es corto (alrededor de 15 segundos), se crea una gran cantidad de bloques huérfanos porque es ineficiente incluirlos todos en la cadena de bloques.

Esto lleva al problema de que los mineros pierden el tiempo trabajando en bloques sin que les paguen. Para solucionar este problema, los desarrolladores de Ethereum lanzaron el protocolo GHOST.

GHOST significa Greedy Heaviest Observed Subtree, y el concepto es simple. Recompensa a los mineros por validar bloques huérfanos, aunque con una recompensa menor que los bloques estándar. Para liberar la recompensa, el bloque debe estar referenciado por un bloque o tío en la cadena principal.

Otra ventaja de este mecanismo es que resuelve el problema de la centralización de la red. Cuando los bloques se crean rápidamente, es fácil que los grandes grupos de minería monopolicen la validación de bloques, lo que hace que los competidores más pequeños creen un sinfín de bloques huérfanos.

Hay dos tipos de bloques en la cadena de bloques de Ethereum:

Los bloques de la cadena principal son los bloques incluidos en la cadena de bloques de Ethereum. Los mineros que lo encuentren serán recompensados.

Los bloques tío son bloques autenticados pero no incluidos en la cadena principal. Los mineros son recompensados ​​menos por esto que por bloques válidos.

Imagine dos mineros en diferentes partes del mundo extrayendo el mismo bloque al mismo tiempo. Luego propagan sus bloques a través de la red. Esto podría crear una divergencia en la cadena de bloques, por lo que se debe elegir uno y el bloque más grande siempre ganará. Los bloques no seleccionados se convierten en bloques huérfanos (en Bitcoin) o bloques tío (en Ethereum). A diferencia de Bitcoin, los mineros de Ethereum serán recompensados ​​con 1/8 de todo el bloque por minar.

Los mineros de los bloques de la cadena principal pueden referirse a los bloques tío y, cuando lo hacen, se distribuyen recompensas adicionales entre los mineros de los bloques de la cadena principal y los mineros de los bloques tío. Cada bloque contenido en la cadena principal puede hacer referencia a hasta dos bloques de tío y proporciona una recompensa de bloque completo de 1/32 por cada bloque de tío al que se hace referencia. Sin embargo, las recompensas pagadas a los mineros del bloque tío disminuyen con el tiempo.

Al garantizar una compensación por el trabajo informático que de otro modo se desperdiciaría y al hacer que las recompensas disminuyan con el tiempo, los mineros de las cadenas competidoras tienen un incentivo para volver a unirse a la cadena principal. Estos bloques tío contribuyen a la seguridad de la cadena de bloques y también reducen la probabilidad de ataques en un 51 %.

En un grupo de minería de Ethereum, la distribución se puede realizar de varias maneras:

Plan de pago prorrateado

En este esquema simple, los mineros son recompensados ​​de acuerdo con la cantidad de tokens enviados en el intervalo de tiempo entre dos bloques encontrados por el grupo de minería. Por lo tanto, la recompensa del bloque B se distribuye entre los N mineros del grupo de acuerdo con la cantidad de tokens que envió cada uno.

Pago por las últimas N acciones (PPLNS)

PPLNS planea distribuir recompensas en proporción a las acciones N enviadas más recientemente.

Esquema de pago basado en colas

Ethpool3 es el primer grupo de minería de Ethereum que presenta un mecanismo de recompensa basado en colas. Según el esquema, los mineros acumulan créditos por cada token enviado al operador del grupo minero. Cada vez que un grupo de minería extrae un bloque completo, la recompensa del bloque se distribuye al minero con el saldo de crédito acumulativo más alto en el grupo de minería. Los principales mineros luego restablecen sus saldos de crédito a la diferencia entre ellos y el siguiente saldo de crédito más alto en el grupo de minería.

Las referencias crean recompensas de menta adicionales, 1/32 de las recompensas de bloques completos para propietarios de bloques regulares y  (8-i)/8 para bloques tío. La variable i va de 1 a 6 dependiendo de la altura del bloque referenciado.

Además de mejorar la estructura de la cadena de bloques, Ethereum tiene otras dos mejoras de seguridad. Una es romper aleatoriamente la regla del empate. En lugar de aceptar la primera cadena recibida, un nodo selecciona aleatoriamente una cadena entre todas las cadenas recibidas de la misma longitud. El número γ ya no es fijo y es igual al recíproco del número de cadenas competidoras. Otro propósito es perdonar la estrategia de la minería del bloque del tío.

¿Cómo funciona el ataque de eclipse?

Los ataques de Eclipse requieren que el atacante controle una botnet de nodos de host (cada uno con su propia dirección IP) y descubra a los vecinos de la víctima, básicamente por prueba y error. El esfuerzo requerido para lograr esto depende del tamaño y la naturaleza de la red, pero si tiene éxito, el atacante tomaría el control de todos los nodos conectados de la víctima después de que la víctima cierre sesión y vuelva a unirse a la red.

En este caso, hay tres actores: el atacante, la víctima y los nodos honestos. Si la víctima encuentra un bloque, el atacante no propaga ese bloque a la red. Si el atacante descubre un bloqueo, lo comparte con la víctima. De esta forma, el atacante crea una cadena de bloques privada para él y los nodos sombreados.

Al hacer esto, el atacante puede ganar un 96,4% más que la minería honesta. Los ataques de Eclipse son posibles porque en una red descentralizada, un nodo no puede conectarse a todos los demás nodos de la red al mismo tiempo. En cambio, por eficiencia, un nodo determinado se conectará a un conjunto seleccionado de otros nodos, que a su vez están conectados a su propio conjunto seleccionado. Por lo tanto, se puede lanzar un ataque de eclipse usando solo dos máquinas con direcciones IP únicas.

Ethereum se basa en una red estructurada basada en un protocolo llamado Kademlia, que está diseñado para permitir que los nodos se conecten con otros nodos de manera más eficiente. Mediante el uso de un algoritmo de generación de claves, un atacante puede crear muy rápidamente una cantidad ilimitada de ID de nodo (identificadores en una red de igual a igual). Peor aún, el atacante podría incluso crear ID de nodo de una manera que sea más atractiva para las víctimas que las ID de nodo aleatorias, básicamente atrayendo a las víctimas a esas ID de nodo.

Ethereum tiene tres características que pueden hacerlo vulnerable a los ataques de eclipse. Primero, la creación rápida de bloques crea un flujo interminable de bloques sueltos, lo que viola indirectamente los intereses de los mineros honestos al aumentar el suministro de Ethereum. En segundo lugar, el mecanismo de bloque del tío significa que los nodos pueden beneficiarse de estos bloques. En tercer lugar, la conectividad de nodos mejorada de Ethereum proporciona incentivos para los atacantes.

Tags:

TRX
Celebridades de Wall Street al acecho en el mercado de la encriptación

"BlackRock, el "gabinete en la sombra" de la administración Biden.

El "ataque de préstamo relámpago" en la cadena BSC volvió a atacar el incidente de xWin Finance.

El 25 de junio, hora de Beijing, el monitoreo de la opinión pública de Lianbian-Blockchain Security Situational Awareness Platform (Beosin-Eagle Eye) mostró que xWin Finance.

¿Cómo funciona la billetera de moneda virtual en cumplimiento?

El 21 de junio de 2021, apareció una noticia en el sitio web oficial del Banco Popular de China.

La lógica subyacente y el mecanismo de bloque del tío del ataque Ethereum eclipse

Blockchain es un protocolo descentralizado que distribuye su base de datos a través de múltiples nodos en su red para establecer un mecanismo de consenso para transacciones pasadas.

El principio de funcionamiento de la versión V3 de Uniswap, el rey de DeFi, y sus ventajas y desventajas

AMM es la abreviatura de Automated Market Maker, y el nombre chino es Automated Market Maker. En pocas palabras.

Naciones Unidas: ¿La industria de las criptomonedas está en línea con el concepto de desarrollo sostenible?

A pesar de estos y otros problemas, los expertos de la ONU creen que las criptomonedas y la tecnología detrás de ellas (blockchain) pueden desempeñar un papel importante en el desarrollo sostenible y, de hecho.

¿Canadá se convertirá en el próximo "El Salvador" en el criptomundo?

Canadá, el tercer país más poblado del continente norteamericano.

ads