Una actualización del protocolo de Bitcoin activada en agosto de 2017 que separa (segrega) los datos de firma de la transacción (testigo) de los datos de la transacción. SegWit solucionó la maleabilidad de transacciones y aumentó efectivamente la capacidad de los bloques.
Una actualización del protocolo de Bitcoin activada en agosto de 2017 que separa (segrega) los datos de firma de la transacción (testigo) de los datos de la transacción. SegWit solucionó la maleabilidad de transacciones y aumentó efectivamente la capacidad de los bloques.
Segregated Witness (Testigo Segregado) fue una de las actualizaciones más trascendentales en la historia de Bitcoin. Resolvió un error de larga data llamado maleabilidad de transacciones — la capacidad de alterar el identificador de una transacción antes de su confirmación sin invalidarla. Este error había impedido la construcción confiable de protocolos de transacciones de múltiples pasos y era un requisito previo bloqueante para la Lightning Network.
SegWit también introdujo una nueva forma de medir el tamaño de bloque usando unidades de peso en lugar de bytes brutos. Al descontar los datos de testigo (firmas), SegWit aumentó efectivamente la capacidad del bloque de 1 MB a aproximadamente 4 MB de peso, o aproximadamente 2-2.5 MB de datos reales en la práctica. Este aumento de capacidad se logró mediante un soft fork — un cambio compatible hacia atrás que no requirió que todos los nodos se actualizaran simultáneamente.
La actualización fue la resolución de las contenciosas guerras del tamaño de bloque que dividieron a la comunidad de Bitcoin de 2015 a 2017. Una facción quería un simple aumento del tamaño de bloque (hard fork), mientras que la otra favorecía el enfoque más conservador de SegWit. La activación de SegWit mediante el UASF (User Activated Soft Fork) demostró que las reglas de Bitcoin son determinadas en última instancia por los operadores de nodos, no por los mineros. Hoy, las transacciones SegWit representan la gran mayoría de todas las transacciones de Bitcoin, y la actualización sigue siendo la base para el desarrollo continuo del protocolo.
Antes de SegWit, era posible modificar la firma de una transacción de una manera que cambiaba su identificador de transacción sin invalidar la transacción en sí. Esto significaba que no podías referenciar de forma confiable una transacción no confirmada por su ID, lo que rompía los protocolos que encadenaban transacciones — más críticamente, la Lightning Network.
SegWit reemplazó el límite de tamaño de bloque de 1 MB con un límite de 4 millones de unidades de peso. En la práctica, esto permite bloques de aproximadamente 2-2.5 MB dependiendo de la mezcla de transacciones. Los bloques llenos de transacciones SegWit pueden procesar significativamente más pagos de lo que el antiguo límite de 1 MB permitía.
Aunque no es estrictamente obligatorio, las direcciones SegWit (que comienzan con bc1q para SegWit nativo o bc1p para Taproot) ofrecen comisiones de transacción más bajas porque los datos de testigo se descuentan. La mayoría de las billeteras modernas usan direcciones SegWit por defecto. No hay razón práctica para usar direcciones legacy a menos que se interactúe con software muy antiguo.