Números aleatorios usando blockchain

¿Cómo se generan los hashes de bloque?

¿Son realmente 100% aleatorios (generados por hardware) o son pseudoaleatorios (generados por software)?

¿Puedo confiar en él o en cualquier otro dato de blockchain para hacer una rifa 100 % confiable?

Saludos,

Es posible que desee consultar este sorteo de código abierto que se basa en datos de blockchain: bitraffle.info

Respuestas (3)

¿Son realmente 100% aleatorios (generados por hardware) o son pseudoaleatorios (generados por software)?

Respuesta pedante: No, no son aleatorios, porque los primeros veinte dígitos siempre serán cero.

Respuesta seria: el cliente de Bitcoin no utiliza ninguna aleatoriedad de hardware, que yo sepa. Sin embargo, si incluso una sola transacción en el bloque se generó utilizando la aleatoriedad de hardware, el hash del bloque incorporará la aleatoriedad de hardware.

Además, no creo que puedas predecir el hash de un bloque que aún no se ha encontrado.

¿Puedo confiar en él o en cualquier otro dato de blockchain para hacer una rifa 100 % confiable?

Como dijo Greg, un minero puede retener bloques si liberarlos hace que el minero pierda la rifa. Por supuesto, el costo de retener un bloque y no transmitirlo a la red es de aproximadamente $9000, por lo que este ataque podría no ser útil.

¿Cómo hago una rifa confiable?

Su método probablemente funcionaría. Esta respuesta analiza cómo intercambiar un secreto entre dos partes que no pueden confiar entre sí. Podrías usar algo basado en eso.

¿Son realmente 100% aleatorios (generados por hardware) o son pseudoaleatorios (generados por software)?

En realidad, no, son 0% aleatorios. No hay aleatoriedad involucrada en el proceso de minería en absoluto. La única parte de Bitcoin que involucra un generador aleatorio es la creación de claves privadas.

En cuanto a la imprevisibilidad de los hash de bloque (que puede parecer algo aleatorio), esto se debe al efecto de avalancha que es típico de las funciones hash criptográficas. Desde un punto de vista práctico, puede considerar que los hashes de bloque son aleatorios.

¿Puedo confiar en él o en cualquier otro dato de blockchain para hacer una rifa 100 % confiable?

Los hashes del bloque, sí (aunque tenga en cuenta que no están perfectamente distribuidos en 256 bits, los primeros n bits son cero). Otros datos de blockchain, probablemente no, ya que esto puede verse influenciado por otros (por ejemplo, los mineros que deciden qué transacciones incluir).

Los hashes de bloque no pueden considerarse ni aleatorios ni pseudoaleatorios. Los mineros pueden elegir qué transacciones incluir en un bloque y no tienen que transmitir cada bloque que encuentran. Por ejemplo, un minero podría negarse a transmitir un bloque a menos que el hash del bloque termine en 1 bit. Puede que esto no parezca importante, pero introduce un sesgo en el hash del bloque resultante y, por lo tanto, no puede considerarse "aleatorio".

De manera similar, ninguno de los otros datos en un bloque puede considerarse verdaderamente aleatorio. Los mineros pueden elegir qué datos van en cada bloque (incluso el nonce).