¿Son los contratos de Ethereum vulnerables a los ataques de envenenamiento de tablas hash?

¿Alguien sabe algo sobre esto? Sé que en términos generales diremos que no, pero buscando en Internet encontré que no estoy seguro de la respuesta a la pregunta: ¿Se puede explotar la matriz asociativa interna de EVM? .

Lo que tiene más sentido, porque un ataque de envenenamiento de Hash Table puede ser "imposible" en términos de costos de gasolina (al menos así lo veo, no soy un experto en este tema)

Si alguien sabe sobre esto, o cualquier documento/artículo relacionado, será apreciado.

¡Gracias por el consejo!

Respuestas (3)

Encontré información aquí: https://www.reddit.com/r/ethereum/comments/3k4h3w/basic_questions_about_the_ethereum_evm_and_state/

Quizá puedas empezar leyendo esto.

La memoria EVM es transitoria. EVM no es realmente una máquina virtual (VM tiene una fuerte connotación para muchos), es solo un intérprete del lenguaje ensamblador EVM. A medida que se ejecuta el intérprete, mantiene una pila (donde cada elemento tiene 32 bytes) y una matriz de bytes de memoria, y tiene acceso al árbol de almacenamiento del contrato. La pila y la matriz de bytes de memoria se eliminan cuando se completa la ejecución. Pero sí, cada nodo ejecuta la transacción: en cualquier punto de la ejecución, el estado de la pila, la matriz de bytes de memoria, el contador del programa y el almacenamiento deben ser idénticos en cada nodo.

Espero que ayude un poco.

Hola. Se desaconsejan las respuestas de solo enlace porque el enlace podría dejar de funcionar o moverse en cualquier momento. ¿Podría resumir el contenido del enlace en una respuesta?

Escribí el artículo ( ¿Son los contratos de Ethereum vulnerables a los ataques de envenenamiento de tablas hash? ) vinculado por kr0.

En pocas palabras, los tipos de mapeo de solidez no son tablas hash. No codifican la clave, modifican esa clave en una ubicación predecible en una matriz más pequeña. Completamente SHA3 (o más específicamente la variante keccak256) la clave Y la dirección de memoria del mapa en sí y almacenan el valor en el espacio de memoria virtual de tamaño 2^256 del contrato. Entonces, las colisiones requerirían colisiones en el mismo SHA3.

Esta es también la razón por la que no puede iterar sobre las asignaciones.

QUIEN!! Apreciado hombre, buen trabajo con ese trabajo.