¿Qué es SegWit?
Segregated Witness (SegWit) es una actualización de protocolo desarrollada en 2015. El concepto sería introducido como solución al problema de escalabilidad que las redes blockchain sufrían y, aún hoy, sufren.
La red Bitcoin valida, de media, un nuevo bloque cada 10 minutos; cada uno de los cuales contienen diversas transacciones. Así, el tamaño de los bloques (block size) afecta al número de transacciones que pueden ser confirmadas en cada uno de los mismos. Actualmente, la blockchain de Bitcoin es capaz de procesar 7 transacciones por segundo.
La principal idea de SegWit es reorganizar los datos de los bloques (block data), de manera tal que las firmas dejen de ser colocadas junto con los datos de transacción (transaction data). En otras palabras, la actualización SegWit consiste en segregar los testigos (firmas) de los datos de transacción. Esto permite almacenar más transacciones en un único bloque y, por lo tanto, incrementar la tasa de transferencia (throughput) de transacciones de la red.
Dado que la red sólo es capaz de procesar 7 transacciones por segundo, las transacciones de Bitcoin pueden, a menudo, tardar mucho en ser procesadas. Es decir, una velocidad mucho menor que las soluciones de pago y redes financieras convencionales, las cuales pueden procesar miles de transacciones por segundo.
SegWit fue desarrollado en 2015 por el desarrollador de Bitcoin Pieter Wuille, junto con otros contribuidores de Bitcoin Core. En agosto de 2017, la actualización SegWit fue implementada en la red Bitcoin como soft fork.
En la actualidad, múltiples proyectos de criptomonedas utilizan SegWit, incluyendo a Bitcoin y Litecoin. La actualización del protocolo trajo consigo una serie de beneficios, como por ejemplo una velocidad de transacción y una capacidad de bloque mejoradas. Además, SegWit resolvió el, así llamado, bug de maleabilidad de las transacciones (discutido más abajo).
¿Cuáles son los Principales Beneficios de SegWit?
Incremento de capacidad
Una de las principales ventajas de SegWit es el incremento en la capacidad de los bloques. Al eliminar los datos de firma del input de las transacciones, un mayor número de transacciones pueden ser almacenadas en un único bloque.
Las transacciones constan de dos componentes principales: inputs y outputs. Esencialmente, el input contiene la dirección pública del emisor, mientras que el output contiene la dirección pública del receptor. Sin embargo, el emisor deberá demostrar que tiene los fondos que transfiere, cosa que hará con una firma digital.
Sin SegWit, los datos de firma pueden ocupar hasta el 65% de un bloque. Con SegWit, los datos de firma se retiran del input de las transacciones. Esto provoca que el tamaño efectivo de los bloques aumente de 1 MB a, aproximadamente, 4 MB.
Hay que tener en cuenta que SegWit no es un verdadero incremento del tamaño de los bloques; sino que es una solución diseñada para aumentar su tamaño efectivo, sin necesidad de incrementar el límite de tamaño (lo que requeriría un hard fork). Siendo más específicos, el tamaño real de los bloques sigue siendo 1MB, pero su límite efectivo de tamaño es de 4MB.
Además, SegWit introdujo la idea de block weight (peso de bloque). Podemos considerar el block weight como un concepto que reemplaza la idea de block size (tamaño de bloque). Esencialmente, el block weight es una medida que incluye todos los datos del bloque, incluyendo los datos de transacción (1 MB) y los datos de firma (hasta 3 MB); que dejan de ser parte del campo input.
Incremento de la velocidad de transacción
Con un bloque que permite almacenar más transacciones, SegWit tiene también la capacidad de incrementar la velocidad de transacción; debido a que puede haber una mayor cantidad de transacciones moviéndose a través de la blockchain. A pesar de que el minado de un bloque puede tardar la misma cantidad de tiempo, más transacciones son procesadas en el mismo, por lo que la tasa TPS es más elevada.
El incremento de la velocidad de transacción ha ayudado también a reducir los costes de transacción en la red Bitcoin. Antes de SegWit, no era inusual gastarse más de 30$ por transacción. Sin embargo, SegWit ha hecho caer dramáticamente dicho coste a menos de 1$ por transacción.
Corrección de la maleabilidad de las transacciones
Uno de los principales problemas de Bitcoin era la capacidad, potencial, de manipular las firmas de las transacciones. Cuando una firma se altera, puede provocar que una transacción entre dos partes se vea corrompida. Dado que los datos almacenados en blockchains son virtualmente inmutables, las transacciones inválidas podrían acabar almacenadas de forma permanente en la blockchain.
Con SegWit, las firmas ya no son parte de los datos de la transacción, lo que elimina la posibilidad de alterar estos datos. Esta solución ha permitido una mayor innovación dentro de la comunidad blockchain, incluidos los protocolos de segunda capa y los contratos inteligentes.
SegWit y la Lightning Network
El desarrollo de protocolos de segunda capa se habilitó parcialmente al corregir el error de maleabilidad de la transacción. En pocas palabras, los protocolos de segunda capa son nuevas plataformas o productos que se construyen sobre una blockchain, como Bitcoin. Uno de los protocolos de segunda capa más populares es Lightning Network, una red de micropagos off-chain (fuera de la cadena).
Lightning Network es un protocolo de segunda capa que opera en la parte superior de la red Bitcoin. El objetivo principal de Lightning Network es permitir que se confirmen más transacciones en un período de tiempo más corto, lo que resulta en transacciones más rápidas para los usuarios. Las transacciones se recopilan off-chain y se almacenan de manera efectiva para que la red de Bitcoin finalmente las procese.
La Lightning Network fue desarrollada originalmente para Bitcoin. Sin embargo, varios proyectos de criptomonedas y blockchain están trabajando en la implementación de la tecnología para sus redes. Esto no solo reducirá las transacciones de tiempo de confirmación sino que también fomentará el desarrollo de nuevas soluciones al problema de escalabilidad.
SegWit vs. SegWit2x
SegWit es una actualización de soft fork (bifurcación suave), lo que significa que es compatible con versiones anteriores. En otras palabras, los nodos de Bitcoin que no se actualizan para incluir SegWit aún pueden procesar transacciones. Sin embargo, había otra implementación propuesta de SegWit llamada SegWit2x (S2X), que requeriría una actualización de hard fork (Bifurcación dura).
La diferencia clave entre SegWit y SegWit2x es que este último no solo habría incluido un cambio en el procesamiento por lotes de transacciones, sino también un aumento en el tamaño del bloque (de 1 MB a 2 MB). Aún así, un tamaño de bloque más grande aumentaría la carga sobre los operadores de nodos y los mineros, ya que habría más datos que manejar.
Otra diferencia notable es que la propuesta de SegWit fue respaldada y aplicada por la comunidad de Bitcoin. El episodio dio origen al concepto de UASF, que significa soft fork activado por el usuario. Por otro lado, el SegWit2x propuso un cambio sustancial en una de las reglas fundamentales que rigen Bitcoin. Pero dado que los desarrolladores no pudieron llegar a un consenso sobre su adopción e implementación, el movimiento SegWit2x finalmente se suspendió.
Conclusión
La implementación de SegWit marcó la mayor actualización de protocolo de Bitcoin, y el hecho de que fue respaldado e implementado por la comunidad descentralizada lo hace aún más interesante.
La introducción de SegWit fue un gran paso adelante para resolver muchos problemas relacionados con Bitcoin y otras redes blockchain, especialmente en lo que respecta a la escalabilidad. A través de la combinación de SegWit y los protocolos de segunda capa, las redes blockchain pueden manejar una mayor cantidad de transacciones, con más eficiencia y menores costos.
A pesar de ser una solución potente e innovadora, SegWit aún no se ha adoptado por completo. Actualmente, el porcentaje de direcciones de Bitcoin que usan SegWit es de alrededor del 53%.