¿Qué cantidad de confirmaciones se considera segura en Ethereum?

En Bitcoin, 6 confirmaciones se consideran seguras (probabilidad muy baja de inversión de transacción/bloque).

¿Cuál es el número actual en Ethereum?

Eth, estás hablando de confirmar un bloqueo aquí, ¿verdad? Pregunto por el comentario que hizo lungj a mi pregunta aquí: ethereum.stackexchange.com/questions/21686/… - Su aclaración, sería genial.
@Tesa Entiendo que la terminología no es buena. Diría que una transacción tiene 6 confirmaciones; pero en realidad no decimos que los bloques se confirmen y es inusual decir que un bloque tiene 6 confirmaciones. Una definición bien escrita de Bitcoin : "las confirmaciones representan la cantidad de bloques en la cadena de bloques que han sido aceptados por la red desde el bloque que incluye la transacción". (Cuando llegamos a la Prueba de participación, hay nociones de bloques que se finalizan).

Respuestas (6)

De George Hallam :

12 confirmaciones; sin embargo, se alienta a los intercambios y entidades que manejan cantidades muy grandes de Ether a ejecutar dos implementaciones diferentes de Ethereum y solo aceptar transacciones que hayan sido confirmadas por ambos para máxima seguridad (por ejemplo, Go y C++).

Como referencia, 12 confirmaciones son aproximadamente 3 minutos.

¿Puede proporcionar una referencia de por qué 12 confirmaciones es un buen número?
Este artículo analiza la espera de que los mineros recopilen un valor apropiado antes de considerar que la transacción está completa. El valor es proporcional al valor que está negociando. Llamada la 'Regla Ou' en el artículo: medium.com/@nic__carter/…
¿Qué sucede cuando una bifurcación va más allá de 12 bloques pero solo está buscando 12 confirmaciones?

El cliente geth espera 5 bloques para la confirmación de bloques nuevos (alrededor de 1 minuto).

I0201 19:07:07.354260    9098 worker.go:349] 🔨  Mined block (#1483 / a2648b58). Wait 5 blocks for confirmation

Para asegurarse de que un bloque no sea un tío o una transacción incluida en un bloque no cuelgue en un ommer, sugeriría esperar 7 confirmaciones (alrededor de 2 minutos). Del documento técnico :

Un tío incluido en el bloque B debe tener las siguientes propiedades: [...] Debe ser hijo directo del ancestro de la k-ésima generación de B, donde 2 <= k <= 7. [...]

Los mineros deben verificar los parámetros de los últimos 250 bloques. Si quieres estar en la cadena más segura, con los pies en el suelo, hazlo como los mineros y espera 250 confirmaciones (alrededor de 1 hora).

Algunos intercambios practican un doble all-in e incluso esperan 500 confirmaciones (alrededor de 2 horas). Esto podría venir junto con la advertencia de seguridad que se puede leer en todas partes porque la frontera todavía no se considera estable. Supongo que eso es exagerado.

En resumen, siempre depende de su aplicación y el valor adjunto para considerar qué número de confirmaciones se considera seguro .

¿Qué es un ommer?
FWIW, no leería demasiado el número de 5 bloques en el cliente geth. Lo escribí, pero no hice un análisis profundo sobre la mejor profundidad, y ningún revisor comentó sobre la profundidad .

Ethereum teóricamente se acerca a la finalidad en menos tiempo que Bitcoin, debido al protocolo GHOST. Esto significa que, con un tiempo de bloque de 15 segundos, se necesitan aproximadamente 40 bloques para igualar los 60 minutos que tardan 6 bloques de Bitcoin.

Por lo tanto, suponiendo que no haya errores de consenso importantes, 40 confirmaciones deberían ser más seguras que 6 confirmaciones en bitcoin. En la práctica, unas 20-25 confirmaciones deberían ser suficientes para transacciones de tamaño razonable.

¿Por qué 20-25? En ethereum.stackexchange.com/a/203/76 Vitalik menciona esperar 12 confirmaciones para realizar cambios "irreversibles" en los datos
Ethereum en realidad no implementa GHOST; la regla de selección de cadena es la misma que la de Nakamoto. La estructura DAG permite pagar a tíos no deseados para desmotivar la centralización.

De Vitalik Buterin dice en el blog de Ethereum el 14/09/2015 sobre el tema de discusión " On Slow and Fast Block Times " https://blog.ethereum.org/2015/09/14/on-slow-and-fast- tiempos de bloque/

solo se requiere una pequeña cantidad de confirmaciones adicionales (para ser precisos, alrededor de dos a cinco) en la cadena más rápida para cerrar la brecha; por lo tanto, la cadena de bloques de 17 segundos probablemente requerirá diez confirmaciones (~ tres minutos) para lograr un grado de seguridad similar bajo este modelo probabilístico a seis confirmaciones (~ una hora) en la cadena de bloques de diez minutos.

Del artículo, concluyo que depende del ataque, por lo que el mandamiento de las diez confirmaciones solo es válido para el "caso normal", no para el bizantino y el ataque económico.

He visto intercambios que usan 375 confirmaciones. Pero a medida que aumentaba la dificultad y la red se descentralizaba más, es seguro ir muy por debajo de esto.

Por supuesto, depende de cuán crítica sea la transacción. Como regla general, espere al menos 5 confirmaciones para montos superiores a $500. Luego, agregue 5 confirmaciones por cada $ 1000 que vale la transacción.

¿Es esta su regla general personal o alguna de las mejores prácticas de la industria promovida por una fuente autorizada (tal vez la Fundación Ethereum)? Por favor, aclare la fuente para mejorar esta respuesta.
Sin profundizar en los números, parece sensato ejercer mayor cautela cuando se procesan grandes cantidades. Pero tenga en cuenta que 100 transacciones con un valor de $ 100 cada una tienen el mismo valor/riesgo que una transacción de $ 10,000, por lo que ambas situaciones deben tratarse con la misma precaución.
@joeytwiddle: Esto tiene sentido, pero hay una diferencia. 100 transacciones por valor de $100 tienen un riesgo de $10 000, pero la probabilidad de que se reviertan todas es estrictamente menor que la probabilidad de que se revierta una transacción de $10 000. Entonces, técnicamente, el riesgo es menor en este caso.
@Symeof Estoy de acuerdo en que eso es cierto para las reversiones normales (esperadas). Como dijo Roland en su comentario , realmente depende del tipo de ataque contra el que te estés defendiendo. Estaba pensando en un intercambio de defensa contra un problema raro pero grave, como un exploit de día cero. (La bifurcación dura de 2016 revirtió ~165 bloques , tal vez informando el límite de 375 que citó).
@joeytwiddle: estamos de acuerdo.

Me topé con un trabajo de investigación muy interesante titulado "Sobre la seguridad y el rendimiento de las cadenas de bloques de prueba de trabajo".

los autores afirman lo siguiente:

Debido a las recompensas de bloque más pequeñas y la mayor tasa de bloqueo obsoleto de Ethereum2 en comparación con Bitcoin (del 0,41 % al 6,8 % debido al tiempo de confirmación más rápido), Ethereum (intervalo de bloque entre 10 y 20 segundos) necesita al menos 37 confirmaciones para igualar la de Bitcoin. seguridad (intervalo de bloqueo de 10 minutos en promedio) con 6 confirmaciones de bloqueo contra un adversario con el 30% del poder minero total.

Encontrarás la demostración en el periódico.