¿Qué es Segregated Witness (SegWit)?
Conceptos básicos
Segregated Witness (SegWit) es una actualización de protocolo introducida en 2015 como solución al problema de escalabilidad que enfrentan las blockchains. Actualmente, la cadena de bloques de Bitcoin solo puede procesar alrededor de 7 transacciones por segundo, lo que puede tardar mucho en comparación con las soluciones de pago convencionales y redes financieras que pueden procesar miles de transacciones por segundo. El concepto detrás de SegWit es reorganizar los datos del bloque para que las firmas ya no se almacenen junto con los datos de la transacción. La actualización consiste en segregar los witnesses (firmas) de los datos de la transacción, lo que permite almacenar más transacciones en un solo bloque y aumentar el rendimiento de transacciones de la red.
SegWit fue desarrollado en 2015 por Pieter Wuille, un desarrollador de Bitcoin, y otros contribuyentes de Bitcoin Core. En agosto de 2017, la actualización SegWit se implementó como un soft fork en la red Bitcoin. Hoy en día, varios proyectos de criptomonedas usan SegWit, incluidos Bitcoin y Litecoin. La actualización del protocolo aportó muchos beneficios, como mayor velocidad de transacción, mayor capacidad de bloque y la solución al error de maleabilidad de transacciones. En promedio, la red Bitcoin valida un nuevo bloque cada 10 minutos, y cada bloque contiene varias transacciones. El tamaño del bloque afecta al número de transacciones que pueden confirmarse en cada bloque.
Beneficios de SegWit
SegWit ofrece varios beneficios a la red Bitcoin. Uno de los más significativos es el aumento de la capacidad del bloque. Con SegWit, se pueden almacenar más transacciones en un bloque al eliminar los datos de firma del input. Anteriormente, los datos de firma podían ocupar hasta el 65% de un bloque, pero ahora se separan del campo de entrada, lo que permite que el tamaño efectivo del bloque aumente de 1 MB a aproximadamente 4 MB.
SegWit no es en sí un aumento real del tamaño del bloque, sino una solución de ingeniería para incrementar el tamaño efectivo. El tamaño del bloque permanece en 1 MB, pero el límite de tamaño efectivo del bloque es de 4 MB, que se calcula usando el concepto de peso del bloque.
Al procesarse más transacciones en cada bloque, SegWit también aumenta la velocidad de las transacciones y reduce los costos. Antes de SegWit, las comisiones podían superar los $30 por transacción, pero SegWit ha reducido significativamente el costo a menos de $1 por transacción.
SegWit también solucionó el problema de la maleabilidad de las transacciones, que fue un problema importante en las transacciones de Bitcoin. Alterar la firma de una transacción podía corromper una transacción entre dos partes, y los datos almacenados en las blockchains son inmutables, lo que hacía que las transacciones inválidas quedaran permanentemente registradas en la cadena. SegWit resolvió este problema al separar las firmas de los datos de la transacción, permitiendo mayor innovación en la comunidad blockchain, como protocolos de segunda capa y contratos inteligentes.
SegWit y la Lightning Network
La corrección del error de maleabilidad allanó el camino para el desarrollo de protocolos de segunda capa, que son plataformas construidas sobre blockchains como Bitcoin. Un protocolo popular es la Lightning Network, una red de micropagos off-chain que busca confirmar más transacciones en menos tiempo, ofreciendo transacciones más rápidas para los usuarios. Las transacciones se almacenan temporalmente fuera de la cadena y posteriormente son procesadas por la red Bitcoin.
Inicialmente desarrollada para Bitcoin, la Lightning Network está siendo considerada por otros proyectos blockchain para reducir el tiempo de confirmación de transacciones y desarrollar nuevas soluciones a los problemas de escalabilidad.
SegWit vs. SegWit2x
La implementación propuesta SegWit2x (S2X) en la red Bitcoin habría requerido una actualización por hard fork, mientras que SegWit es un soft fork compatible hacia atrás. La diferencia clave entre SegWit y SegWit2x es que esta última no solo habría incluido un cambio en el empaquetado de transacciones, sino también un aumento del tamaño del bloque (de 1 MB a 2 MB). Sin embargo, un tamaño de bloque mayor aumentaría la carga sobre los operadores de nodos y los mineros, al haber más datos que gestionar.
Mientras que la propuesta SegWit contó con el apoyo y la implementación de la comunidad Bitcoin, el movimiento SegWit2x se suspendió finalmente por la incapacidad de los desarrolladores para alcanzar un consenso sobre su adopción e implementación. La actualización SegWit dio origen al concepto de UASF, o user-activated soft fork.
SegWit anidado vs. SegWit nativo (bech32)
SegWit nativo, también llamado bech32, es una versión mejorada del SegWit anidado. Ofrece varios beneficios, incluyendo mayor velocidad de transacción, mejores mecanismos de detección de errores y comisiones más bajas. Las direcciones bech32 también son más legibles al estar en letras minúsculas.
Es importante señalar que las transacciones en blockchain son compatibles entre direcciones no-SegWit (Legacy), SegWit anidado y SegWit nativo. Sin embargo, no todos los exchanges y monederos de criptomonedas soportan SegWit, por lo que es posible que no puedas retirar fondos directamente a una dirección SegWit.
Conclusión
El apoyo e implementación de SegWit por parte de la comunidad descentralizada marcó la actualización de protocolo más significativa de Bitcoin. SegWit resolvió varios problemas de escalabilidad relacionados con Bitcoin y otras redes blockchain, constituyendo un paso crucial hacia adelante. Gracias a SegWit y a los protocolos de segunda capa, las redes blockchain pueden manejar más transacciones de forma eficiente y con menores costes.
No obstante, a pesar de ser una solución potente e innovadora, su adopción completa aún está por alcanzarse. Actualmente, solo el 53% de las direcciones Bitcoin usan SegWit.