Pregunta de bloques, escala y segwit

Algo nuevo en bitcoin, tratando de entender la tecnología... Según tengo entendido, todas las transacciones van a un bloque, cada 10 minutos se extrae el bloque y se confirman todas las transacciones en él. Con cada bloque confirmado (es decir, cada 10 minutos), los bloques más antiguos se vuelven más difíciles de piratear. El algoritmo de la cadena de bloques sabe ajustar su propia dificultad para que cada 10 minutos se extraiga un bloque. ¿Es correcto lo anterior?

Si es así, ¿cómo es que el problema de escala es el tamaño del bloque y no la frecuencia del bloque? Si la red puede ajustarse a sí misma a la potencia informática, ¿por qué no resolver un bloque cada minuto mientras se reduce la cantidad de BTC que se produce con cada bloque y se mantiene el tamaño del bloque en 1 MB?

Gracias

Respuestas (1)

Tiene razón en que cambiar el tamaño del bloque o la frecuencia del bloque permitiría confirmar más transacciones por unidad de tiempo.

Sin embargo, cambiar la frecuencia de los bloques significa cambiar la fórmula de ajuste de la dificultad. Esto requiere una bifurcación dura como lo haría cambiar el tamaño máximo del bloque. En cualquier caso, los nodos de la red que no adopten las nuevas reglas considerarán que los nuevos bloques no son válidos y, si no todos aceptan adoptar las nuevas reglas, la moneda se dividirá en dos.

Si va a tener una bifurcación dura de todos modos, cambiar el tamaño del bloque tiene menos problemas técnicos que cambiar la fórmula de ajuste de dificultad. Por ejemplo, aumentar la frecuencia conducirá a una mayor tasa de bloques huérfanos, donde dos mineros encuentran bloques válidos casi simultáneamente y ninguno construye sobre el otro.

Además, aumentar la frecuencia de bloqueo significa que las "confirmaciones" no significarían lo mismo que antes. Pensamos en "6 confirmaciones" como un punto de referencia para una transacción que sería extremadamente difícil de revertir, pero lo que realmente significa es "60 minutos de tiempo de minería". Si ajustaste la frecuencia para que el tiempo de bloqueo promedio fuera de un minuto, ahora todos tendrían que usar "60 confirmaciones" como punto de referencia para la seguridad equivalente, y todo el software que contaba confirmaciones tendría que actualizarse. (Por ejemplo, piense en los intercambios que no quieren acreditar la cuenta de un usuario hasta que sus depósitos estén suficientemente confirmados). Cualquier software que no se actualice perderá el 90 % de su seguridad frente a los ataques de doble gasto. Entonces, esto sería más disruptivo que cambiar el tamaño del bloque.

Aquí hay un ejemplo. La dificultad actual de Bitcoin es de aproximadamente 6.8e11. Esto significa que se necesita un promedio de 6.8e11 * 2^32 = 2.9e21 operaciones hash para minar un bloque. Supongamos que tiene una transacción en el bloque número 400000 en la cadena principal y tiene 6 confirmaciones, por lo que ahora estamos en la altura del bloque 400005. Para gastar el doble, alguien tendría que crear una transacción en conflicto en un bloque en conflicto cuyo padre era el bloque 399999, por lo que el nuevo bloque también tendría una altura de 400000. Luego, tienen que extraer 5 bloques más encima de su nuevo bloque para que su nueva cadena sea al menos tan larga como la existente, y esperan que los futuros mineros extraerá en su nueva cadena en lugar de la anterior. Entonces, esto requiere extraer 6 bloques = 6 * 2.9e21 = 1.7e22 operaciones hash.

Ahora imagina que quieres que el tiempo de bloque promedio sea de 1 minuto, por lo que reduce la dificultad a 6.8e10. Ahora solo se necesitan 2.9e20 hashes para minar un bloque. Entonces, una transacción con 6 confirmaciones bajo este nuevo esquema solo requiere 1.7e21 hashes para revertirse. Si desea la misma seguridad que antes, es decir, se necesitan 1.7e22 hashes para revertir, debe esperar 60 confirmaciones.

Gracias, entiendo sus puntos sobre la bifurcación dura y los bloques huérfanos, pero no estoy muy seguro del último. ¿Por qué la seguridad sería de 60 minutos y no de seis hashes?
@EliahuHorwitz: agregué un ejemplo que puede ayudar.
¡Gracias! Aparte de segwit y sharding, ¿hay alguna otra sugerencia de escalado? ¿La red Tangle implementada en IOTA es buena?
Pregunte como una nueva pregunta, por favor (pero busque primero las preguntas existentes).