Testigo segregado

Segregated Witness (abreviado como SegWit) es una actualización de protocolo implementada diseñada para resolver el problema de la plasticidad de las transacciones de la cadena de bloques de Bitcoin , así como para aumentar su rendimiento . Se ha implementado una actualización similar para algunas otras criptomonedas como Litecoin , DigiByte , Groestlcoin y Vertcoin . [una]

SegWit es una " bifurcación suave " y permite que la red funcione como antes. Sin embargo, la estructura del almacenamiento de datos en el bloque y el mecanismo para verificar transacciones para nodos de red completos están cambiando. Las firmas y los guiones ahora están separados en una estructura separada llamada testigo segregado .  Esto permite que el bloque principal acomode más transacciones y también elimina la variabilidad de la identificación de la misma transacción. [una]

Historia

El problema de la escalabilidad

En 2010 , Satoshi Nakamoto introdujo un límite de tamaño de bloque de 1 megabyte . La restricción mejoró la compatibilidad de los nodos de la red y redujo la efectividad de los ataques DDoS , pero redujo el rendimiento máximo de la red a 3-7 transacciones por segundo. Este último tuvo además un impacto negativo en la capacidad de escalar de la red. Con el crecimiento de la base de usuarios y la cantidad de transferencias, los retrasos también comenzaron a aumentar: algunas transacciones estuvieron esperando en línea durante varios días. Esto también condujo a tarifas de transferencia más altas, lo que redujo drásticamente el atractivo de Bitcoin para pagos pequeños. [2]

Se propuso aumentar el tamaño del bloque, lo que se implementó en bifurcaciones de Bitcoin como Bitcoin XT , Bitcoin Classic , Bitcoin Unlimited , Lightning Bitcoin y el más exitoso Bitcoin Cash . [3] [4]

Plasticidad de transacción

Otro problema agudo de la red Bitcoin fue la llamada plasticidad de las transacciones . La estructura normal de una transacción de Bitcoin contiene una firma criptográfica , que permite a otros participantes en la red verificar si el propietario de los bitcoins realmente tenía la intención de gastarlos. La firma se calcula en base a la clave privada de cada transacción, lo que excluye cambiar los datos de la propia transacción. El ID de la transacción es su hash , que se calcula en función de todo el bloque de transacciones. El más mínimo cambio en una transacción cambia su identificador. [5] De hecho, es posible modificar una transacción dejándola válida (por ejemplo, agregando constantes de utilidad opcionales a la firma que no cambian significativamente el script). [6] Al mismo tiempo, su identificador cambiará, lo que significa que la transacción modificada se considerará completamente nueva y, además, podrá ser verificada por otros nodos de la red. [5]

Cualquier nodo de la red puede modificar la transacción y transmitirla a otros. Si la transacción modificada se incluye en el bloque de la rama principal antes que la original, o si luego aparece en una rama más larga, entonces se rechazará la transacción original, ya que se referirá a la salida utilizada (y las que se refieran a ella también lo harán). ser rechazado). [7] Esto genera muchos problemas, ya que algunos sistemas verifican que el identificador haya realizado el pago. También complica la implementación de tecnologías de nivel superior que se basan en la cadena de bloques de Bitcoin . [5]

Los desarrolladores han intentado resolver este problema antes, pero nunca se solucionó por completo hasta la actualización de SegWit. [8] [9]

Se supone que con la ayuda de la plasticidad de la transacción, 64 564 BTC se retiraron “ilegalmente” de la alguna vez popular plataforma MtGox [10] . La red Bitcoin Cash sufrió un ataque masivo a la maleabilidad de las transacciones poco después de la " bifurcación dura ". [once]

El ataque de cumpleaños

Las direcciones multisig de Bitcoin usan P2SH y están protegidas con HASH160 ( hash SHA-256 dentro de RIPEMD-160 [12] ). Si un atacante posee al menos 1 clave de la lista de firmas múltiples, entonces, teniendo en cuenta la colisión de hash , puede reducir el número de opciones de búsqueda a 280 , lo que ya es factible para los sistemas informáticos modernos [13] .

Testigo segregado

Para abordar los dos problemas antes mencionados, se ha propuesto una actualización de Testigo segregado. El resultado final es colocar las firmas de transacciones en una estructura del mismo nombre fuera del bloque principal, lo que alivia significativamente este último, ya que el tamaño de la firma era más del 50% del tamaño de todo el bloque de transacciones. También resuelve el problema de la plasticidad de las transacciones, porque las firmas ya no afectan al identificador hash. [1] [14]

Pero ahora, para verificar todas las transacciones, el nodo necesita descargar el bloque extendido (bloque principal + testigo separado). El nodo informa específicamente a sus vecinos sobre su disposición a aceptar el bloque extendido. Los nodos restantes aceptan bloques de construcción de 1 MB, suponiendo que no es necesario firmar las transacciones. El bloque de firma está vinculado a la cadena principal mediante un árbol de Merkle ubicado en el encabezado del bloque. De todas las firmas, así como de todas las transacciones, se consideran los hashes y se ingresan en el árbol. El hash total de firmas se suma al hash de la primera transacción (transacción coinbase) en el árbol de transacciones de Merkle. [1] [14]

En teoría, un bloque extendido está limitado a 4 megabytes, pero el tamaño máximo real del bloque es un poco menos de 2 MB. [quince]

SegWit utiliza P2WSH con seguridad SHA256 en lugar de P2SH para asegurar billeteras MultiSig . Esto hace que el ataque "cumpleaños" sea más difícil de 2128 . [13]

Activación

Testigo segregado fue propuesto por Pieter Wuille a finales de 2015. El lanzamiento tuvo lugar en octubre de 2016, 6 meses antes de lo previsto. Se suponía que la activación ocurriría después de pasar el umbral del 95 % de participantes que indicaban su apoyo a la actualización. Pero algunos miembros de la red han dicho que solo admitirán la actualización si se le agrega un aumento en el tamaño del bloque principal (los grupos chinos pueden haber bloqueado la introducción de SegWit). [1] El 23 de mayo de 2017, los mineros y los desarrolladores firmaron el Acuerdo de Nueva York [16] , que preveía un aumento del tamaño del bloque principal a 2 MB en un plazo de 6 meses (esta actualización se llamó SegWit2x). SegWit se activó el 24 de agosto de 2017. [una]

Algunas altcoins también han decidido implementar SegWit. Dado que muchas altcoins se basan en el código de Bitcoin, esto no fue demasiado difícil para los desarrolladores. El primero de ellos activó la actualización de Groestlcoin en enero de 2017. [una]

Beneficios

Desventajas

Mayor desarrollo

El 8 de noviembre, el " hard fork " de SegWit2x se retrasó indefinidamente por falta de consenso . [19]

La actualización de SegWit facilita mucho el desarrollo y la implementación de complementos, al mismo tiempo que aumenta su seguridad y eficacia. [1] Lightning Network está programado para lanzarse pronto . [13] Se está desarrollando una solución para aumentar la flexibilidad de los contratos inteligentes Merklized Abstract Syntax Tree (MAST), que también mejora la escalabilidad y mejora la privacidad. [veinte]

Notas

  1. 1 2 3 4 5 6 7 8 9 10 11 El largo camino hacia SegWit: cómo se hizo realidad la actualización de protocolo más grande de Bitcoin . Consultado el 14 de diciembre de 2017. Archivado desde el original el 14 de diciembre de 2017.
  2. El secreto mejor guardado de Satoshi: ¿Por qué hay un límite de 1 MB para el tamaño de bloque de Bitcoin ? Consultado el 24 de diciembre de 2017. Archivado desde el original el 24 de diciembre de 2017.
  3. Una controvertida alternativa de Bitcoin está buscando un regreso . Consultado el 24 de diciembre de 2017. Archivado desde el original el 1 de diciembre de 2017.
  4. Diferencias entre Bitcoin Cash y Bitcoin . Consultado el 24 de diciembre de 2017. Archivado desde el original el 24 de diciembre de 2017.
  5. 1 2 3 Explicación de la maleabilidad de las transacciones
  6. Teoría de la maleabilidad de transacciones de Bitcoin en la práctica . Consultado el 14 de diciembre de 2017. Archivado desde el original el 14 de diciembre de 2017.
  7. Guía para desarrolladores de Bitcoin . Consultado el 25 de diciembre de 2017. Archivado desde el original el 28 de diciembre de 2017.
  8. El quién, qué, por qué y cómo del ataque de maleabilidad de transacciones en curso . Consultado el 24 de diciembre de 2017. Archivado desde el original el 24 de diciembre de 2017.
  9. Lanzamiento de la versión 0.10.0 de Bitcoin Core . Consultado el 24 de diciembre de 2017. Archivado desde el original el 24 de noviembre de 2017.
  10. Estudio: Monte. Gox puede haber perdido solo 386 BTC debido a la maleabilidad de la transacción . Consultado el 23 de diciembre de 2017. Archivado desde el original el 23 de diciembre de 2017.
  11. Red de Bitcoin Cash bajo ataque
  12. Guión-Bitcoin Wiki . es.bitcoin.it . Consultado el 5 de febrero de 2021. Archivado desde el original el 4 de febrero de 2021.
  13. 1 2 3 4 5 6 7 8 9 10 11 Beneficios de testigos segregados . Consultado el 13 de diciembre de 2017. Archivado desde el original el 26 de abril de 2018.
  14. 1 2 Pieter Wuille: Testigo segregado y su impacto en la escalabilidad @ SF Bitcoin Devs
  15. Segregated Witness Activates on Bitcoin: Esto es lo que se puede esperar . Consultado el 23 de diciembre de 2017. Archivado desde el original el 1 de diciembre de 2017.
  16. Acuerdo de Nueva York . Consultado el 22 de diciembre de 2017. Archivado desde el original el 7 de agosto de 2017.
  17. 1 2 3 Costos y riesgos de testigos segregados . Consultado el 24 de diciembre de 2017. Archivado desde el original el 21 de febrero de 2018.
  18. Minería SPV . Consultado el 14 de diciembre de 2017. Archivado desde el original el 29 de diciembre de 2017.
  19. 2 veces cancelado: Bifurcación dura de Bitcoin suspendida por falta de consenso . Consultado el 22 de diciembre de 2017. Archivado desde el original el 3 de enero de 2018.
  20. Inside MAST: El plan poco conocido para avanzar en los contratos inteligentes de Bitcoin . Consultado el 22 de diciembre de 2017. Archivado desde el original el 23 de diciembre de 2017.

Literatura

Enlaces