¿Por qué se eligió que el tiempo de bloque objetivo fuera de 10 minutos?

Según el wiki , se eligieron 10 minutos como "compensación".

¿Por qué diez minutos específicamente? Es una compensación elegida por Satoshi entre el tiempo de propagación de nuevos bloques en redes grandes y la cantidad de trabajo desperdiciado debido a divisiones de cadena.

Sin embargo, en el documento original de Satoshi , se asumen 10 minutos simplemente para calcular los requisitos de espacio en disco.

Un encabezado de bloque sin transacciones sería de unos 80 bytes. Si suponemos que se generan bloques cada 10 minutos, 80 bytes * 6 * 24 * 365 = 4,2 MB al año.

¿Hay alguna discusión en otro lugar que explique cómo se llegó al tiempo de bloque de 10 minutos?

Creo que si el requisito de bloque de 10 minutos resulta problemático por alguna razón, y la mayoría de los mineros y usuarios están de acuerdo, esto puede reducirse en el futuro.
Mike Hearn me explicó una vez que Satoshi estimó el tiempo de propagación de bloques en 1 minuto y eligió intervalos de bloque de 10 minutos porque "desperdiciar" el 10% del trabajo de minería era una cantidad justa. Sin embargo, actualmente el tiempo de propagación del bloque es mucho, mucho más rápido.
@pinhead ¿Qué quiere decir exactamente con desperdiciar el 10% del trabajo de minería?
@FivePoints en este contexto, queremos decir que el 10 % de los bloques extraídos "perderá la carrera" contra otro bloque extraído casi al mismo tiempo y quedará obsoleto, lo que significa que el pago del subsidio al minero nunca será gastable y la energía consumida por el minero para producir ese bloque se desperdiciará.
@pinhead tiene sentido, pero ¿cómo se calculó ese 10%? ¿Es simplemente (latencia/tiempo de bloqueo)?
@FivePoints exactamente. Ese fue aparentemente el pensamiento de Satoshi según Mike Hearn.
Fuente de @FivePoints, por lo que vale: reddit.com/r/Bitcoin/comments/30lxo4/…
@pinhead Parece que su contabilidad de desperdicios no incluye todos los desperdicios de las máquinas que no terminaron en 10 minutos.

Respuestas (5)

Bloques de 10 minutos es simplemente un compromiso.

Tiempo de bloque más corto:

  • PRO: 1 tiempo de confirmación más rápido (para protegerse del gasto doble de confirmación 0)
  • PRO: menos variación de pago para los mineros (menos dependencia de grandes grupos)
  • CON - Requiere mayor ancho de banda (comunicación entre nodos)
  • CONTRA: más bifurcaciones, bifurcaciones más largas y tiempo de reorganización más largo
  • CONTRA: se desperdicia una mayor parte de la potencia de hash sin procesar, lo que da como resultado una menor seguridad efectiva.

Con un objetivo de intervalo de bloque más largo de más de 10 minutos, los pros y los contras se invertirían.

El mayor beneficio de un tiempo de bloqueo más corto es el tiempo de confirmación reducido. Si bien la transacción de confirmación 1 de un bloque más rápido tiene menos fuerza que la transacción de confirmación 1 de un bloque más largo, sigue siendo mejor que la transacción de confirmación 0 de cualquier bloque.

La velocidad de la primera confirmación puede parecer un gran beneficio, pero en realidad para la mayoría de las transacciones de bajo valor y sensibles al tiempo, como comprar una taza de café, pagar un taxi o usar una máquina expendedora, el riesgo de gastos dobles es muy alto. bajo. Tenga en cuenta que aceptar tarjetas de crédito no está exento de riesgos; sin embargo, los comerciantes han aceptado durante mucho tiempo que enfrentarán algunas pérdidas; sin embargo, si esas pérdidas son mínimas, entonces puede verse como un costo de hacer negocios. Muchos comerciantes podrían simplemente aceptar transacciones de confirmación 0 sin exponerse a más riesgos que los que corren con el fraude con tarjetas de crédito.

El otro factor que disminuye el potencial del mundo real de los intervalos de bloqueo objetivo más cortos es que, para muchos comerciantes, incluso los tiempos de confirmación "más rápidos" no son lo suficientemente rápidos. Para una transacción de punto de venta, un tiempo promedio de confirmación de 2 minutos sigue siendo significativamente más largo de lo que la mayoría de los comerciantes considerarían viable. La transacción promedio con tarjeta de crédito demora alrededor de 20 segundos (incluidos los retrasos por parte del cliente). Toda la industria ha gastado recursos significativos para reducir incluso unos segundos. Los cambios como permitir que el cliente deslice la tarjeta, deslizar antes de que se hayan cobrado todos los artículos y no requerir firmas en un valor bajo se trata de reducir un par de segundos un proceso que ya es rápido y el costo de esos cambios se considera aceptable para mejorar ligeramente la eficiencia de una caja registradora.

El otro factor es que reducir el intervalo objetivo solo reduce el tiempo promedio de confirmación, pero la mitad de ellos serán más largos y la cola puede ser muy larga. Debido a la naturaleza aleatoria de las soluciones de bloques, alrededor del 15 % de los bloques tardarán más de 2 veces el objetivo, el 3 % más de 3 veces el objetivo y >7,5 minutos y alrededor del 0,5 % tardarán más de 4 veces el objetivo. Esa incertidumbre hace que sea difícil para una empresa sensible al tiempo esperar confirmaciones como cuestión de política. Tener la mayoría de las transacciones confirmadas en 30 segundos, pero algunas toman minutos, provocará la frustración del cliente en el punto de venta.

Si la economía de BTC crece lo suficiente, podríamos ver un uso ampliado de "direcciones verdes" para satisfacer la necesidad de aceptación instantánea sin confirmaciones. Dichos servicios podrían ser proporcionados por grandes corporaciones y respaldados por un seguro contra el fraude (por una pequeña tarifa por transacción). Esta sería una solución de confirmación 0 más viable que una simple reducción del intervalo de bloque.

Dicho esto, el objetivo de 10 minutos probablemente fue demasiado conservador y hay algunas ventajas en un tiempo de bloque más corto.

Su error es que piensa que "ataque de doble gasto" significa "ataque del 51%". Puede intentar duplicar el gasto con menos, pero no tiene garantizado el éxito. Cuantos más bloques esperaban, menor era su oportunidad. >50% es el punto en el que se garantiza el éxito final sin importar cuántos bloques se esperen. La probabilidad de éxito con un ataque <50% depende de la cantidad de bloques y no de la cantidad de tiempo. Esta es una ventaja de los bloques más cortos.
El tiempo de bloque más corto tiene otra variación menos favorable para los mineros. Además, el espacio de almacenamiento adicional para bloques cortos es insignificante, ya que la mayor parte de los datos son las transacciones, no los encabezados de los bloques.
Tiene algunos errores tipográficos: las primeras 2 entradas para "Tiempo de bloque más largo" deben ser "CON" y "PRO" en lugar de "PRO" y "RRO".
@MeniRosenfeld Gracias por las correcciones, agregué diferencias de varianza y eliminé las diferencias de almacenamiento, ya que corrigió, las diferencias serán bastante pequeñas. También eliminé el aspecto basado en el tiempo porque, aunque escuché que requiere más confirmaciones, no tengo un conocimiento definitivo. Hay suficientes otras diferencias conocidas.
Muy buena actualización, desearía poder votar de nuevo. ;)
Además: los bloques más cortos significan más almacenamiento para nodos eliminados y SPV.

También encontré frustrante esa parte de la wiki, y la acabo de editar. Agradecería correcciones. Esto es lo que escribí:

Satoshi eligió específicamente diez minutos como compensación entre el tiempo de la primera confirmación y la cantidad de trabajo desperdiciado debido a las divisiones de la cadena. Después de que se extrae un bloque, a otros mineros les toma tiempo descubrirlo y, hasta entonces, están compitiendo contra el nuevo bloque en lugar de agregarlo. Si alguien extrae otro bloque nuevo basado en la cadena de bloques anterior, la red solo puede aceptar uno de los dos, y todo el trabajo que se realizó en el otro bloque se desperdicia. Por ejemplo, si a los mineros les toma un promedio de 1 minuto aprender sobre nuevos bloques, y cada 10 minutos llegan nuevos bloques, entonces la red en general está desperdiciando alrededor del 10% de su trabajo. Alargar el tiempo entre bloques reduce este desperdicio.

Como experimento mental, ¿qué pasaría si la red Bitcoin creciera para incluir a Marte? Desde los puntos más alejados de sus órbitas, una señal tarda unos 20 minutos en viajar desde la Tierra hasta Marte. Con solo 10 minutos entre bloques nuevos, los mineros en Marte siempre estarían 2 bloques detrás de los mineros en la Tierra. Sería casi imposible para ellos contribuir a la cadena de bloques. Si quisiéramos colaborar con ese tipo de retrasos, necesitaríamos al menos unas horas entre nuevos bloques.

Como Bitcoins es la primera criptomoneda que utiliza la generación de bloques y demás, se puede suponer que 10 minutos se eligieron arbitrariamente. Cualquier valor que fuera lo suficientemente grande como para propagar el nuevo bloque a través de la red antes de que fuera probable que otro minero generara un nuevo bloque sería bueno. En el otro extremo, los bloques no deberían ser demasiado escasos, ya que llevaría demasiado tiempo obtener confirmaciones. Una hora de cómputo se considera segura de ser manipulada, por lo que dividir ese tiempo en partes ordenadas puede darte 10 minutos.

Probablemente no haya ninguna discusión disponible sobre este tema, ya que la primera versión de Bitcoin fue creada solo por Satoshi, por lo que hasta que revele su verdadera identidad o regrese a la comunidad, las razones exactas no se pueden determinar con seguridad.

El análisis en el artículo de Satoshi no se relaciona en absoluto con la cantidad de tiempo que uno debe esperar; eso depende únicamente de la practicidad de mantener una alta tasa de hash durante mucho tiempo. Discutió la cantidad de bloques a esperar; mostró, por ejemplo, que si el destinatario espera 6 bloques y el atacante tiene el 10 % del hashrate de la red, un intento de doble gasto solo tiene <0,025 % de posibilidades de éxito. A 1 minuto por bloque esto es 6 minutos, etc.

El tiempo de bloque fue determinado por Satoshi Nakamoto como una compensación entre 2 factores

1. Latencia de la red:
después de que se extrae un bloque, a otros mineros les toma un tiempo descubrir ese nodo y durante ese tiempo, en realidad, otros mineros todavía están compitiendo (lo que significa extraer) contra ese bloque en lugar de agregar ese bloque al cadena. Esto conduce al desperdicio de recursos mineros que se debe a que varios mineros aún están extrayendo sus bloques, pero la red solo puede agregar uno. Además, este es un hecho de que tomará algún tiempo para que cualquier nuevo bloque extraído aparezca en todos los nodos, ya que el retraso de la red es un problema.

2.Tiempo de confirmación:
podemos estar seguros de la confirmación de la adición de un bloque a la cadena/red solo después de que se agreguen algunos bloques a esa cadena. Y para que la confirmación sea más confiable, se necesitan aproximadamente 5-6 bloques para agregar a la cadena después de nuestro bloque. Esto seguramente tomará algún tiempo. Pero tenemos que hacer que este proceso sea rápido.

Ahora, el factor de retraso de la red necesita que el tiempo de bloqueo sea más largo, mientras que el factor de tiempo de confirmación necesita que sea más corto. Por lo tanto, se eligió una compensación que es de 10 minutos. Este período de tiempo seguramente fue elegido después de algunos cálculos. Pero la razón teórica detrás del tiempo de bloqueo es la misma que se describe en esta respuesta.

AFAICS, el único beneficio posible para el tiempo de bloque más largo es la reducción de la sobrecarga del ancho de banda debido a la menor probabilidad de divisiones de la cadena de bloques.

Incluso dudo de esa compensación, porque si los datos de la transacción son la mayor parte, existe el efecto de contrapeso de que los tiempos de bloque más cortos significan menos datos para transmitir.

Soy muy escéptico de que deba desperdiciarse más trabajo con bloques de tiempo más cortos, si la dificultad se calibra con el tiempo para llegar a un consenso. Matemáticamente, los mineros ganan un porcentaje de los bloques recién creados proporcionales aproximadamente a su porcentaje del poder de hash del sistema, independientemente de la división relativa en proporción de su suerte entre la dificultad del trabajo y las cadenas huérfanas (aleatorias).

A menos que haya una prueba, dudo de la afirmación de que los tiempos de bloque más cortos crean tiempos más largos para llegar a un consenso (es decir, divisiones de reorganización), porque, por ejemplo, si hay 4 veces más divisiones con 1/4 del tiempo de bloque, hay aproximadamente 7 iteraciones más para llegar a un consenso dentro de la misma duración.

G̶i̶v̶e̶n̶ ̶t̶h̶a̶t̶ ̶i̶r̶r̶e̶v̶e̶r̶s̶i̶b̶i̶l̶i̶t̶y̶ ̶i̶s̶ ̶a̶ ̶f̶u̶n̶c̶t̶i̶o̶n̶ ̶o̶f̶ ̶n̶u̶m̶b̶e̶r̶ ̶o̶f̶ ̶b̶l̶o̶c̶k̶s̶&̶m̶d̶a̶s̶h̶;̶ ̶n̶o̶t̶ ̶o̶f̶ ̶t̶i̶m̶e̶— ̶a̶n̶d̶ ̶t̶h̶e̶ ̶d̶i̶s̶a̶d̶v̶a̶n̶t̶a̶g̶e̶ ̶o̶f̶ ̶d̶e̶l̶a̶y̶s̶ ̶i̶n̶ ̶t̶r̶a̶n̶s̶a̶c̶t̶i̶o̶n̶s̶,̶ ̶i̶t̶ ̶s̶e̶e̶m̶s̶ ̶a̶ ̶s̶h̶o̶r̶t̶e̶r̶ ̶b̶l̶o̶c̶k̶ ̶t̶i̶m̶e̶ ̶i̶s̶ ̶c̶o̶m̶p̶e̶l̶l̶i̶n̶g̶.̶

Agradecería que los votantes negativos intentaran al menos defender su lógica con un comentario debajo de mi respuesta. Eso me da la oportunidad de debatirlos y mostrarles por qué creo que están equivocados (o admitir mi error). El punto es asegurarnos de que colectivamente tengamos la lógica correcta.

Esta respuesta no tiene en cuenta el costo de tiempo incurrido por la transmisión de bloques y la verificación de bloques. Dado que ese tiempo es una cantidad aproximadamente fija para un bloque completo, es una porción relativa más grande de un intervalo de bloque más corto que un intervalo de bloque más largo.
@Murch, escribí esa respuesta unos días o semanas después de iniciar mi estudio de cadenas de bloques, criptografía y Bitcoin. Mis puntos de vista han cambiado considerablemente por lo tanto. Sin embargo, suponiendo que el volumen de transacciones por bloque se reduce dada una frecuencia de bloque más alta, su afirmación de que el tiempo de verificación y propagación constante no es correcta. Craig Wright ha afirmado que la red Bitcoin se propaga al 99% del hashrate en aproximadamente un segundo.
Dado que prácticamente todos los mineros están conectados a Fiber y los datos publicados sugieren que es un poco más lento que la velocidad de la luz, <1 segundo no es una afirmación difícil de hacer... Sin embargo, el impacto más significativo de este año probablemente fue que los mineros actualizaron a una versión más reciente. de Bitcoin Core para indicar la activación de segwit. A principios de este año, seguíamos viendo varios bloques huérfanos por semana. Un tiempo de bloque de, por ejemplo, 60 segundos nos habría retrocedido a múltiples bloques huérfanos por día. Dado que los datos están ahí para mirar, es desconcertante que parezca negar el efecto.
@Murch, ¿SegWit redujo el tamaño de bloque promedio en un factor de 10? Si no, entonces presumiblemente los datos que está citando no abordan mi punto. Ahora entiendo (no es que lo hiciera en 2016 cuando escribí esa respuesta) que los tiempos de bloque más cortos también aumentan las ventajas asimétricas para las coaliciones de hashrate, como los grupos que ven sus bloques ganadores al instante (sin demora de propagación). Entonces, los huérfanos excesivos podrían ser minería egoísta en acción. Tenga en cuenta que la variante de Ethereum de GHOST es una solución parcial a algo de eso.