Segregated Witness (en español Testigo Segregado), popularmente conocido como SegWit, es una característica y formato de transacción propuesto por Blockstream y Bitcoin Core para Bitcoin (BTC) activado mediante un Soft Fork Activado por el Usuario el 24 de agosto de 2017[1][2]​ y adoptado también por las criptomonedas alternativas Litecoin, DigiByte, Bitcore y Vertcoin.[3]

SegWit Logotipo

Fue presentado bajo el nombre formal de "Segregated Witness (Capa de Consenso)" a través de la "Propuesta de mejora de Bitcoin BIP141".[4]

Su propósito principal es solucionar el problema de maleabilidad de transacciones[5]​ y mitigar el impacto negativo del límite máximo del tamaño de los bloques en la velocidad del procesamiento de las transacciones de la red de Bitcoin (BTC). Esto lo aborda dividiendo la transacción en dos segmentos, quitando la firma de desbloqueo (la cual denomina datos del "testigo") de su lugar original y añadiéndola como una estructura separada al final.[6]​ Adicionalmente, contabiliza el restante original del segmento de datos normalmente, mientras que el segmento del "testigo" lo contabiliza como una cuarta parte de su tamaño real.

Antecedentes editar

Escasez de espacio en los bloques de Bitcoin editar

Bitcoin asienta sus transacciones en un registro público, descentralizado y transparente que se actualiza añadiendo bloques de datos vinculados de forma retroactiva mediante el uso de hashes criptográficos.[7]​ Cada bloque de datos almacena información sobre quienes envían y reciben bitcoins, así como la firma criptográfica que aprueba cada transacción. Si bien originalmente, no existía un tamaño máximo de los bloques, debido a sospechas de que un atacante podría intentar ejecutar un ataque DDoS[8]Satoshi Nakamoto decidió agregar un límite máximo de 1 MB en el tamaño de los bloques como medida temporal de prevención.[9]​ El objetivo de esto era que si un atacante intentaba saturar la red, su acción sería detectado instantáneamente y su ataque sería rechazado.

Como consecuencia de esta característica, a medida que fue aumentando la demanda de espacio en cadena, el mismo comenzó a hacerse escaso debido a dicha limitación.

Problemas de escalabilidad y maleabilidad editar

Según la perspectiva de Bitcoin Core, el diseño actual de la blockchain de Bitcoin tiene dos principales deficiencias:

  • Escalabilidad: Los nuevos bloques se añaden al registro en intervalos aleatorios que promedian los 10 minutos. Esto, en conjunto con el límite impuesto al tamaño de los bloques, limita el número de transacciones que es posible asentar en el mismo. Debido a la negativa de escalar los bloques por encima de 1 MB por medio de una bifurcación dura (como recomendó Satoshi en 2010[9]​ y como ha hecho Bitcoin Cash), se ha planteado la necesidad de solucionar este problema acudiendo a la realización masiva de transacciones fuera de la cadena, la aceptación de transacciones sin esperar su inclusión en el registro (denominadas 0-conf o transacciones de confirmación cero), y/u otros cambios radicales del protocolo, como en el caso de FlexTrans (Transacciones Flexibles), que propone hacer las transacciones muchos más pequeñas cambiando la forma en la que están descritas a un sistema de etiquetado, permitiendo así más transacciones por bloque.[10]
  • Maleabilidad: El problema de maleabilidad de las transacciones plantea que aunque cada transacción esté firmada criptográficamente, dicha firma no abarca todos los datos de la transacción, lo que hace posibles varias formas diferentes de perder o robar bitcoins. Aunque una serie de soluciones diferentes para esto han sido propuestas, el problema aún existe.[11]

SegWit como solución editar

SegWit es presentado por Bitcoin Core como un aumento "de facto" del tamaño de los bloques debido a que cambia la definición del tamaño para medirlo como en términos de millón de unidades en lugar de en bytes. Los datos de firma del testigo serían separados del registro del árbol de Merkle, el cual contiene información sobre quién está enviando o recibiendo los bitcoines, y se moverían hasta el final. Además, cada byte de ellos se contarían como si fuesen un cuarto de una unidad. El efecto general de esto sería cambiar el tamaño promedio del bloque de 1 MB a aproximadamente 1.8 MB.[12][13]​ También aborda el problema de maleabilidad de las firmas, al moverlas fuera de los datos de la transacción y haciéndolas imposibles de cambiar, la identificación de la transacción ya no es maleable.[14]​ Esto hace que Bitcoin sea más seguro de usar, lo cual mejoraría su compatibilidad con Lightning Network (un sistema que permite procesar micro-pagos de forma casi gratuita e instantánea que sólo requeriría usar la blockchain al principio y al final de su ejecución)[15][16]​ lo que sería ligeramente arriesgado mientras el problema de maleabilidad exista.[17]​ Y adicionalmente, propone mantener una importante compatibilidad con aquellos nodos que ejecuten versiones no actualizadas del software.

Historia editar

Según la especificación BIP141 publicada en el repositorio de Github de Bitcoin Core por Eric Lombrozo, Johnson Lau y Pieter Wuille, SegWit fue diseñado para activarse el 15 de noviembre de 2017 mediante el estándar BIP 9, el cual permite señalizar apoyo a una propuesta de actualización de la red a través de los escabezados de los bloques minados en la cadena de bloques.[18]

UASF, SegWit2x y otras polémicas editar

Debido a una controversia sobre el escalado de Bitcoin, inicialmente no había certeza sobre si el uso de BIP141 sería suficiente para concretar la activación de SegWit en la red Bitcoin.

El 25 de febrero de 2017 un desarrollador identificado bajo el seudónimo de Shaolinfry propuso a través de la lista de correo bitcoin-dev [19]​ un esquema alternativo denominado BIP148 o UASF.

Este esquema consistiría en que a partir del 1 de agosto de ese mismo año los nodos que lo ejecutasen rechazarían cualquier bloque que no incluyese una señalización en apoyo a la activación de SegWit vía BIP9.[20]

This BIP will be active between midnight August 1st 2017 (epoch time 1501545600) and midnight November 15th 2017 (epoch time 1510704000) if the existing segwit deployment is not locked-in or activated before epoch time 1501545600. This BIP will cease to be active when segwit is locked-in. While this BIP is active, all blocks must set the nVersion header top 3 bits to 001 together with bit field (1<<1) (according to the existing segwit deployment). Blocks that do not signal as required will be rejected.
Shaolin Fry

Algunos desarrolladores como Gregory Maxwell, fueron críticos con la característica indicando que podría ocasionar el desperdició de recursos y la división de la cadena afectando la seguridad de la blockchain.[20]

El 23 de mayo de 2017 un grupo considerable de empresas identificadas como el Digital Currency Group (no confundir con la Digital Currency Initiative del Laboratorio de medios de comunicación del MIT) publicaron un acuerdo llamado Bitcoin Scaling Agreement at Consensus 2017 (posteriormente conocido simplemente como Acuerdo de Nueva York o NYA)[21]​ en apoyo a SegWit2Mb (más tarde conocida simplemente como SegWit2x), una propuesta que ofrecía la activación de SegWit y el aumento posterior del tamaño de los bloques a 2 MB por medio de una bifurcación dura en los próximos seis meses (alrededor del 23 de mayo de 2017).[22][23]

El 19 de junio de 2017 la propuesta de SegWit2x ya contaba con un apoyo de al menos 79,9% del poder minero,[24]​ sin embargo la misma fue controvertida debido a que el desarrollo del proyecto estaba limitado a un grupo cerrado de desarrolladores.

En junio de 2017, el debate en torno a SegWit se complicó aún más con afirmaciones de que podría violar patentes presentadas ante la USIPO.[25]

Activación de SegWit editar

A mediados de julio de 2017 se hizo evidente que los mineros apoyaban la implementación de Segwit como parte de un acuerdo antes del UASF BIP148 del 1 de agosto de 2017 que intentaba evitar una eventual bifurcación de la red.[26][27][28]

El 21 de julio de 2017, los mineros de Bitcoin realizaron una actualización de software denominada BIP91,[29]​ que establecía que SegWit se activaría cuando fuese minado el bloque número 477 120.[30]​ El 8 de agosto de 2017 se alcanzó otro hito cuando el 100 % de los grupos mineros indicaron compatibilidad con SegWit, aunque esta no se activaría hasta el 21 de agosto como mínimo (después de lo cual los mineros comenzarían a rechazar bloques que no incluyesen transacciones SegWit).[31]​ 

El 23 de agosto de 2017, es activado oficialmente Segwit durante el minado del bloque 481822, con un 99.95% de apoyo en la red.

Segregated Witness fue activado oficialmente en agosto de 2017.[1][32]

Acontecimientos posteriores editar

Durante la primera semana de octubre, la proporción de transacciones de red que utilizaban SegWit aumentó de 7 % a 10 %, indicando un aumento más grande en índice de uso.[33]

El 8 de noviembre de 2017 los desarrolladores de SegWit2x anunciaron la cancelación de la bifurcación dura prevista para el 16 de noviembre de 2017 debido a la falta de consenso.[34][35]

A partir de febrero de 2018, las transacciones de SegWit superan el 30 %.[36]

Propuestas de mejora de Bitcoin (BIP) relacionadas editar

  • BIP91: Umbral reducido Segwit MASF – Fue activado el 27 de julio de 2017.[37]
  • BIP141: Segregated Witness (Capa de Consenso) – Fue activado el 23 de agosto de 2017.[32]
  • BIP142: Formato de Dirección para Segregated Witness – Fue descartado y reemplazado por BIP 173.
  • BIP143: Firma de Verificación de Transacción para la Versión 0 del Programa Witness – Fue activado el 24 de agosto de 2017.[38]
  • BIP144: Segregated Witness (Peer Services) – Fue activado el 24 de agosto de 2017.
  • BIP148: Activación obligatoria del despliegue de Segwit – Fue activado (ordenó la activación de BIP141, 143, 144).
  • BIP173: Direcciones de tipo Bech32, liberadas como parte de la versión 0.16.0 del cliente Bitcoin Core el 26 febrero de 2018.[39]

Referencias editar

  1. a b «SegWit está oficialmente activado en la red Bitcoin». CriptoNoticias - Bitcoin, blockchains y criptomonedas. 24 de agosto de 2017. Consultado el 7 de mayo de 2019. 
  2. «Bloques de Bitcoin en altura 481824». www.blockchain.com. Archivado desde el original el 7 de mayo de 2019. Consultado el 7 de mayo de 2019. 
  3. Marshall, Andrew (20 de abril de 2017). «El funcionamiento de SegWit explicado» (en inglés). Cointelegraph. Consultado el 20 de diciembre de 2017. 
  4. «bitcoin/bips - bip-0141». GitHub (en inglés). Consultado el 20 de marzo de 2018. 
  5. What the 'Bitcoin Bug' Means: A Guide to Transaction Malleability
  6. SegWit Investopedia
  7. Cómo el protocolo de bitcoin actualmente funciona
  8. Cual es el límite máximo del tamaño de bloques
  9. a b «[PATCH] increase block size limit». archive.is. 25 de junio de 2014. Archivado desde el original el 25 de junio de 2014. Consultado el 7 de mayo de 2019. 
  10. Transacciones Flexibles Archivado el 18 de octubre de 2017 en Wayback Machine. Tom's Blog
  11. Maleabilidad de transacciones Bitcoin Wiki (inglés)
  12. «Segregated Witness Benefits». 
  13. Segregated Witness, Part 1: How a Clever Hack Could Significantly Increase Bitcoin's Potential
  14. Segregated Witness proposal BIP 141
  15. «Lightning Network, Explained». CoinTelegraph. Archivado desde el original el 17 de noviembre de 2017. Consultado el 23 de noviembre de 2017. 
  16. Graham, Luke (9 de agosto de 2017). «As bitcoin comes off its record high, the next step is to avoid a 'lightning fork'». CNBC. Archivado desde el original el 1 de diciembre de 2017. Consultado el 23 de noviembre de 2017. 
  17. What is SegWit?
  18. Bitcoin Improvement Proposals. Contribute to bitcoin/bips development by creating an account on GitHub, Bitcoin, 11 de mayo de 2019, consultado el 12 de mayo de 2019 .
  19. «[bitcoin-dev] Moving towards user activated soft fork activation». www.mail-archive.com. Consultado el 12 de mayo de 2019. 
  20. a b Hazlitt, Robert (26 de mayo de 2017). «Estas dos bifurcaciones de usuario (UASF) podrían activar SegWit de Bitcoin». DiarioBitcoin. Consultado el 12 de mayo de 2019. 
  21. Group, Digital Currency (23 de mayo de 2017). «Bitcoin Scaling Agreement at Consensus 2017». Medium. Consultado el 12 de mayo de 2019. 
  22. Alyssa Hertig (23 de junio de 2017). «Top Secret? Bitcoin Scaling Plan Segwit2x Leaves More Questions Than Answers». Consultado el 29 de junio de 2017. 
  23. «Leading bitcoin ecosystem participants reach consensus on scaling issue». Econo Times. 25 de mayo de 2017. Consultado el 23 de junio de 2017. 
  24. Hazlitt, Robert (20 de julio de 2017). «SegWit2x ha ganado cerca del 80% del apoyo que requiere para su activación». DiarioBitcoin. Consultado el 12 de mayo de 2019. 
  25. «Segregated Witness and the Possibility of Patent Infringement». Bitcoin News (en inglés estadounidense). 3 de junio de 2017. Consultado el 12 de mayo de 2019. 
  26. CNBC (14 de julio de 2017). «Dispute could mean financial panic in Bitcoin». Associated Press. Archivado desde el original el 19 de julio de 2017. Consultado el 19 de julio de 2017. 
  27. Suberg, William (18 de julio de 2017). «Suddenly, Bitcoin Hard Fork Looks Unlikely As Chinese Exchange Readies For SegWit». COINTELEGRAPH. Consultado el 18 de julio de 2017. 
  28. Castor, Amy (18 de julio de 2017). «CoinDesk Explainer: How BIP 91 Enacts SegWit While Avoiding a Bitcoin Split». CoinDesk. Consultado el 18 de julio de 2017. 
  29. «bitcoin/bips - BIP0091». GitHub (en inglés). Consultado el 20 de marzo de 2018. 
  30. Hertig, Alyssa (21 de julio de 2017). «BIP 91 Locks In: What This Means for Bitcoin and Why It's Not Scaled Yet». CoinDesk. Consultado el 21 de julio de 2017. 
  31. Hertig, Alyssa (8 de agosto de 2017). «It's Official: Segregated Witness Will Activate on Bitcoin». CoinDesk. Consultado el 9 de agosto de 2017. 
  32. a b «Es oficial: SegWit ha sido activado en la red Bitcoin». DiarioBitcoin. 24 de agosto de 2017. Consultado el 6 de mayo de 2018. 
  33. Suberg, William (9 de octubre de 2017). «Bitcoin: $4600, 50% Dominance, Forks Leave Altcoins No Room For Moon». CoinTelegraph. Consultado el 9 de octubre de 2017. 
  34. Hertig, Alyssa (8 de noviembre de 2017). «2x Called Off: Bitcoin Hard Fork Suspended for Lack of Consensus». CoinDesk. Consultado el 8 de noviembre de 2017. 
  35. Vigna, Paul (8 de noviembre de 2017). «Bitcoin Dodges Split That Threatened Its Surging Price». The Wall Street Journal. Consultado el 8 de noviembre de 2017. 
  36. Torpley, Kyle (28 de febrero de 2018). «The Number of Bitcoin Transactions Using SegWit Doubled In 2 Days, Here's Why That Matters». Forbes. Consultado el 1 de marzo de 2018. 
  37. «Se acerca SegWit: mineros activan BIP91 y comienzan a señalizar BIP141 en la red Bitcoin». CriptoNoticias - Bitcoin, Blockchain y criptomonedas. 21 de julio de 2017. Consultado el 20 de marzo de 2018. 
  38. Bitcoin Improvement Proposals. Contribute to bitcoin/bips development by creating an account on GitHub, Bitcoin, 6 de mayo de 2019, consultado el 7 de mayo de 2019 .
  39. «New Bitcoin Code Will Finally Boast Full SegWit Support». coindesk.com. Consultado el 20 de febrero de 2018. 
Error en la cita: La etiqueta <ref> definida en las <references> con nombre «Scaling Solution» no se utiliza en el texto anterior.