¿Qué es Segwit?

que-es-segwit
8 min read

Bitcoin ha sufrido muchas mejoras importantes y Segwit es una de las más destacadas en toda la historia de esta criptomoneda. Claro que esta mejora también ha servido a otras criptos como Litecoin, EOS o Vertcoin.

Segwit es una contracción de “Segregated Witness”, (en español Testigo Segregado) y es el nombre que se utiliza para definir a esta mejora en el formato de las transacciones de Bitcoin.

Esta actualización de protocolo cambió la manera en que se almacenan los datos y sirvió de solución para los problemas de maleabilidad y escalabilidad que presentaba Bitcoin.

En este artículo intentaremos clarificar para qué sirve Segwit o qué problemas resuelve, cuáles son los monederos con soporte Segwit y muchos más detalles, sin que te duermas en el intento.

¿Estás listo? ¡Vamos!.

Creación de Segwit

En medio de la locura por la adopción de criptomonedas, Bitcoin tuvo que enfrentar ciertos problemas que eran causados por la estructura que presentaban sus transacciones. Estas limitaciones, se hicieron mucho más visibles cuando el nivel de transacciones de la blockchain aumentó significativamente.

Para hacerlo sencillo: la cadena de bloques de Bitcoin no fue capaz de manejar de manera eficiente las gran cantidad de transacciones que ejecutaban sus usuarios. La capacidad de validar entre 7 y 8 operaciones por segundo no era suficiente para las necesidades de la red en ese momento.

Además de esto, los desarrolladores de Bitcoin Core y Blockstream consideraban que Bitcoin también se encontraba expuesto a la maleabilidad de las transacciones. Esto significa que un tercero podría tener la posibilidad de modificar un código o serial a su antojo y que se pierdan miles de Bitcoins de la red.

Para solucionar estas problemáticas los desarrolladores de estas 2 empresas, unieron esfuerzos para la creación de Segwit. La propuesta fue presentada el 21 de Diciembre de 2015, por los desarrolladores Eric Lombrozo, Johnson Lau y Pieter Wuille.

Luke Dashjr fue otra pieza clave para la activación de Segwit en Bitcoin. Su apoyo le permitió al equipo de Bitcoin Core conseguir una forma de aplicar Segwit como un soft fork para Bitcoin, limitando el impacto negativo de hacer un hard fork sobre Bitcoin y los riesgos que este conlleva.

Finalmente, la propuesta de Segwit o BIP141 (propuesta de mejora de Bitcoin número 144) ayudó a terminar con el problema de la maleabilidad y la escalabilidad de Bitcoin.

¿Qué problemas resuelve el SegWit?

Como dijimos, los problemas que resuelve SegWit en Bitcoin son dos: por un lado la maleabilidad y por el otro la escalabilidad. Repasa cada uno si quieres entenderlos mejor y sino pasa al siguiente título.

Maleabilidad

Como aclaramos más arriba, la maleabilidad, es la posibilidad de que un tercero tenga posibilidades de cambiar un código a su placer. En Bitcoin, esta propiedad se plantea como un ataque de denegación de servicio o DoS, debido a que la maleabilidad permite que un TXID (o identificador de transacciones) pueda alterarse en las transacciones aún no confirmadas.

Lo sé, es bastante técnica la explicación, y aquí se pone aún más difícil:

El problema anterior se encuentra relacionado con que los hash de la firma de Bitcoin no resguardan el script de la firma (scriptsig). Este script, suma un tipo de firma (secp256k1) que no se puede firmar a sí misma.

Además, debido a la manera en cómo se calcula el TXID, admite que exista la oportunidad de que un tercero modifique el identificador de una transacción “no confirmada”.

Si se produce esta modificación, podrían existir problemas si se desea rastrear un determinado TXID en la red. Esto provocaría que el receptor de la transacción desconfiara del emisor, e incluso rompería la confianza en la red en general.

blow-mind-segwit

Además del problema de la maleabilidad, los desarrolladores de Bitcoin se enfrentaban contra el problema de la escalabilidad. Los ideales de una red rápida y a bajo costo se hacían añicos cuanto más aumentaba el tráfico de la red. Esto llevó a que la red alcanzara su límite y algunas transacciones demoraban horas para confirmarse.

Sumado a esto, el aumento del costo por transacción borraba por completo la posibilidad de hacer micropagos. Era un momento de desesperación para el entorno Bitcoin pero, como siempre, todo encontraría solución.

La invención de Segwit, también conocido como BIP141, también permitiría a la red Bitcoin escalar.  ¿Para qué sirve el Segwit a la hora de escalar Bitcoin?.

Segwit “segrega” o separa los scripts y firmas de las transacciones a una nueva estructura y al mismo tiempo logra incrementar el tamaño de bloque. Así el tamaño original de los bloques de 1MB pasa a los 1,8MB.

Esto permite que sea posible agregar más transacciones dentro de un bloque y aumentar la cantidad de transacciones procesadas a cada segundo (sin alterar demasiado las alturas de bloque). Una situación que impacta positivamente en la disminución de costes por comisiones y en la velocidad de confirmación de transacciones, también a la hora de comprar bitcoins.

¿Cómo soluciona Segwit estos problemas?

que-es-segwit

Gráfico que ilustra el funcionamiento de Segwit.

Si quieres saber cómo afecta técnicamente el Segwit en Bitcoin, esta explicación lo resume:

SegWit propuso resolver el problema de maleabilidad de las transacciones y la escalabilidad de Bitcoin separando los Bitcoin Scripts y las firmas criptográficas en una nueva estructura de bloques. Mientras que los bloques con las transacciones estaban en otra estructura. Todo esto, evitando imposibilitar la capacidad de verificar las firmas y transacciones en cada estructura todo el tiempo, gracias al árbol Merkle.

Debido a la implementación de Segwit, cada bloque de la cadena posee una nueva estructura llamada “testigo” que se coloca aparte del árbol de Merkle de transacciones Bitcoin. 

En cada transacción, los datos de los usuarios que firman y los scripts son movidos a dicha estructura testigo, separando esa información del resto de los datos de la operación.

El nombre de “Testigo Segregado” o “Segwit” se adjudica justamente por esa segregación de firmas que, si bien son necesarias para validar las transacciones, no son determinantes para los efectos de las transacciones.

Esta innovación tecnológica imposibilita la maleabilidad de terceros y de scriptSig, y aumenta ligeramente el tamaño promedio de los bloques de Bitcoin (de 1 MB a 1,8 MB aproximadamente).

Monederos con soporte para SegWit

Si un usuario de Bitcoin quiere utilizar las transacciones Segwit es necesario que utilice un monedero que soporte esta característica. Hoy, la mayoría de los monederos ya implementan Segregated Witness y alguno de ellos son:

– Ledger
– Trezor
– Bitcoin Core
– Bitcoin Armory
– Electrum
– GreenBits
– Samourai
– Coinomi

Como siempre recomendamos desde nuestro blog, investiga mucho y no entregues jamás información sensible como tu semilla de seguridad a personas desconocidas.