¿Qué es Segregated Witness (SegWit)?

Por Kraken Learn team
11 minuto
26 nov 2024

Guía para principiantes sobre SegWit de Bitcoin 💭

Segregated Witness (SegWit) fue una actualización realizada al código fuente de Bitcoin el 1 de agosto de 2017.

A pesar de realizar lo que muchos vieron como mejoras en la blockchain de Bitcoin, SegWit se encontró con una fuerte oposición que dividió a la comunidad. 

En el centro del problema se encontraba un interés competidor entre la rentabilidad de los mineros y los desarrolladores de redes que buscaban hacer que Bitcoin fuera más barato y rápido de usar.

La tensión causó una ruptura dentro de la comunidad, que culminó en el primer soft fork activado por el usuario de la red y una división hostil. La división creó una serie de nuevos proyectos de fork de Bitcoin, incluido Bitcoin Cash.

Hasta la fecha, SegWit sigue siendo uno de los eventos más controvertidos en la historia de Bitcoin. Sin embargo, también ha demostrado ser una de sus actualizaciones más importantes para la viabilidad a largo plazo del protocolo. 

Cada año, muchos miembros de la comunidad de Bitcoin celebran el 1 de agosto como el “Día de la independencia de Bitcoin”. Este evento marca la ocasión en que la voluntad popular triunfó en contra de los intereses centralizados de las empresas mineras de bitcoins establecidas.

Exploremos cada uno de estos eventos tal y como ocurrieron y desgranemos la historia detrás de SegWit.

BTC icon
$70.676.00
-0,20 %
24 H
btc

Bitcoin antes de SegWit ⏮️

Antes de la activación de SegWit, la capacidad de bloque de Bitcoin no había cambiado durante muchos años. La capacidad de bloque se refiere al número máximo de transacciones que se pueden registrar dentro de un bloque determinado.

Cuando Bitcoin se lanzó en 2009, su creador o creadores, Satoshi Nakamoto, no establecieron ningún parámetro sobre lo grandes que podrían ser los bloques de Bitcoin.

Sin embargo, en 2010, Nakamoto añadió secretamente un límite de tamaño de bloque de 1 megabyte (MB) sin la aprobación de otros contribuyentes de Bitcoin.

Muchos pensaban que Nakamoto incluía el límite para evitar futuros ataques de denegación de servicio (DDoS) que pudieran afectar a la red.

Este límite fijo de capacidad de bloque tuvo el efecto no deseado de restringir el potencial de Bitcoin para escalar de varias maneras.

Bajo rendimiento y tiempos de transacción lentos

Solo un número limitado de transacciones puede encajar en el bloque de 1MB comparativamente pequeño que Bitcoin adoptó ahora. Gracias a esta reducida capacidad, la red Bitcoin solo podía procesar entre 2 y 3 transacciones de bitcoin (BTC) por segundo, muy lejos de las redes de pago digitales tradicionales, que pueden procesar decenas de miles de transacciones por segundo.

Además, para que un bloque de transacciones se considere válido como parte del proceso de minería de bitcoins, debe recibir seis confirmaciones. Es decir, se deben añadir seis nuevos bloques a la blockchain después del bloque en cuestión antes de que se finalice. Con un tiempo medio de bloqueo de diez minutos, las confirmaciones de bloques de Bitcoin tardan alrededor de una hora.

En ese momento, cuando solo unos pocos criptógrafos “cypherpunk” conocían Bitcoin, no era necesariamente un gran problema. Sin embargo, si la red de Bitcoin se convirtiera en un “sistema de efectivo electrónico de igual a igual” global, como imaginó Satoshi en el documento técnico de Bitcoin, las cosas debían cambiar.

Comisiones altas

El bajo rendimiento de Bitcoin, limitado por su pequeña capacidad de bloque, hizo que las tarifas también fueran comparativamente mucho más altas de lo que son hoy en día.

Aquí tienes una forma sencilla de entender este problema. Imagine que está afuera entre una multitud de personas después de ver un espectáculo de teatro. Todo el mundo del teatro quiere tomar un taxi a casa al mismo tiempo. Si hay muchos taxis alrededor, debería ser fácil para todos llegar a casa. Sin embargo, si solo hay un puñado de taxis, la gente podría intentar pagar un precio más alto a los taxistas para incentivar al conductor a llevarlos primero a casa. En función de la demanda, los precios de los taxis podrían dispararse significativamente más de lo normal.

Las tarifas de Bitcoin funcionan siguiendo estos mismos principios de oferta y demanda. Si muchas personas desean que sus transacciones se procesen al mismo tiempo, algunos pueden optar por pagar más en tarifas para que los mineros procesen sus transacciones antes. Durante los periodos de alto uso en la red Bitcoin, la congestión puede provocar competencia entre los usuarios, lo que puede provocar que las tarifas de transacción se disparen bruscamente.

Maleabilidad de las transacciones

Otro matiz inherente a la forma en que funcionaban los bloques de Bitcoin se conocía como maleabilidad de las transacciones. Antes de SegWit, las personas podían cambiar el ID de una transacción antes de que recibiera suficientes confirmaciones en la blockchain.

Tomar la información relacionada con una transacción específica y ejecutarla a través de una función hash crea un identificador de transacción. Puede obtener más información sobre las funciones hash en nuestro artículo ¿Cómo usan la criptografía las criptomonedas?

No obstante, para simplificar, puede pensar en estos identificadores de transacciones como huellas digitales que se utilizan para identificar y referenciar transacciones en la blockchain.

Al cambiar el identificador de transacción se crea un hash completamente nuevo que, en ocasiones, podría confundir el software del cliente de blockchain. Todos los nodos ejecutan software de cliente para interactuar con la blockchain y realizar funciones importantes como la verificación de datos.

Este error de maleabilidad en el código de Bitcoin abrió la puerta a ataques maliciosos. Uno de los ejemplos más infames de ataque a la maleabilidad de las transacciones fue el ataque al exchange Mt. Gox de 2014, conocido por ser el mayor ataque a Bitcoin de la historia.

Los expertos informaron de que un pirata informático, o grupo de piratas informáticos, drenó el monedero de bitcoin del exchange Mt. Gox. Para ello, modificaron en parte el identificador de transacción de sus retiros. 

El ataque a la maleabilidad de las transacciones hizo que pareciera que los retiros no se confirmaban en la blockchain, cuando en realidad sí se confirmaban.

Esta vulnerabilidad, junto con otros vectores de ataque, permitió a los piratas informáticos desviar más de 840.000 BTC del exchange.

¿Qué mejoras hizo SegWit? ⚙️

Pieter Wuille, colaborador de Bitcoin, presentó por primera vez la actualización SegWit en un evento de Bitcoin Hong Kong en 2015.

Su solución fue innovadora en tres frentes. SegWit mejoró la escalabilidad de Bitcoin, eliminó la maleabilidad y permitió que los nodos adoptaran la nueva estructura de transacciones. Lo mejor de todo es que esto podría implementarse sin hard fork de la red.

Firma digital e información sobre transacciones independientes

La propuesta de Wuille aumentó la capacidad de los bloques de Bitcoin al "segregar" los datos de los "testigos" de un bloque y trasladarlos a la transacción basada en monedas. Las transacciones de Coinbase son las primeras transacciones dentro de cada nuevo bloque de Bitcoin. La transacción basada en monedas se encarga de poner en circulación criptomonedas recién acuñadas como recompensa por el proceso de minería de bitcoins.

Los mineros que consigan ganar la competición proof-of-work de Bitcoin basada en criptografía ganan estos tokens recién acuñados como "recompensas por bloque".

Los datos de los testigos, también conocidos como ScriptSig o Unlocking Script, incluyen la firma digital y la información de clave pública necesaria para desbloquear el bitcoin transferido. La actualización SegWit introdujo un "campo testigo" independiente para la parte ScriptSig de una transacción.

Al procesar la información de las firmas digitales por separado del campo de entrada de transacciones, había más espacio de transacciones para cada bloque.

Más transacciones por bloque equivalen a mayores capacidades de rendimiento de las transacciones. Por lo tanto, en lugar de 2-3 transacciones por segundo, Bitcoin puede procesar entre 7-10 transacciones de SegWit por segundo. El aumento de la capacidad también implica tarifas más bajas, ya que la blockchain de Bitcoin puede gestionar un mayor volumen de transacciones.

A pesar de la separación, es importante tener en cuenta que los nodos siguen procesando tanto los datos de las transacciones como los datos de los testigos on-chain. No se utiliza sidechain ni protocolo de capa 2.

Peso de bloque

Antes de SegWit, los mineros medían los bloques de bitcoin por tamaño (en bytes). Este sistema funcionaba bien cuando los bloques contenían datos de testigos y transacciones, pero se topaba con problemas cuando se separaban.

Para superarlo, la actualización introdujo una métrica llamada ponderación de bloques para gestionar el tamaño de los bloques.

Con este concepto, cada bloque de 1 megabyte consta de 4.000.000 de unidades de peso (WU). A cada transacción se le asigna una ponderación basada en la siguiente fórmula:

Tamaño de transacción base en bytes (sin datos testigo) * 3 + Tamaño de transacción total en bytes.

Al eliminar los datos del campo testigo del cálculo, las transacciones de SegWit tienen una ponderación mucho menor. Por otro lado, una transacción que no sea de SegWit sigue conteniendo datos de testigos. Esto significa que las transacciones que no sean de SegWit siempre pesan 4 veces más que las transacciones de SegWit.

En teoría, este concepto aumenta el tamaño de un bloque de bitcoin de 1MB a 4MB si un bloque consta casi por completo de datos de testigos. Sin embargo, esto no es posible en la práctica.

La principal ventaja del sistema ponderado es que incentiva a los mineros a procesar bloques que contienen principalmente transacciones de SegWit. Suponiendo que las transacciones de SegWit conlleven las mismas tarifas que los bloques heredados, un minero puede procesar muchas más transacciones de SegWit por bloque. Cuantas más transacciones procesen por bloque, más comisiones ganarán.

Una victoria para ambas partes. O eso se podría pensar.

Se acabaron los problemas de maleabilidad de las transacciones

Según la estructura de SegWit, el identificador hash de la transacción solo contiene la información de la transacción, no la información del campo testigo.

Este cambio elimina el componente modificable de una transacción de bitcoin que antes permitía los ataques de maleabilidad.

Como resultado, se hicieron posibles soluciones de escala secundarias como la red Lightning de Bitcoin.

 

¿Por qué fue controvertido SegWit? 🤔

Muchos miembros de la comunidad de desarrollo pensaban que SegWit no había ido lo suficientemente lejos como para abordar los problemas de escalado de Bitcoin.

Los principales argumentos contra la activación de SegWit incluyen:

  • El aumento del rendimiento de Bitcoin de 7-10 transacciones por segundo aún no es lo suficientemente alto para un sistema de pagos global descentralizado.
  • Las tarifas seguirían siendo relativamente altas, por lo que cosas como las microtransacciones serían inviables desde el punto de vista financiero.
  • Los mineros aún pueden procesar bloques de transacciones heredados, lo que significa que la maleabilidad sigue siendo una amenaza.
  • Más tarde se descubrió que SegWit anularía el mecanismo ASICBOOST de Bitmain, un exploit utilizado para aumentar significativamente la eficiencia del equipo de minería.

Alrededor de un año después de la propuesta de Wuille, él y otros desarrolladores de Bitcoin Core, incluido Eric Lombrozo, habían preparado el código para que se pusiera en marcha en la próxima actualización de Bitcoin Core 0.13.1. El único paso restante para activar SegWit era que los mineros comenzaran a procesar nuevos bloques de SegWit. 

Para consolidar su implementación, más del 95% de todos los mineros de bitcoins tendrían que mostrar su apoyo a SegWit en las primeras dos semanas tras su inicio, un obstáculo importante teniendo en cuenta las circunstancias del momento.

soft fork activado por el usuario

Huelga decir que las grandes empresas mineras como Bitmain aún estaban descontentas con los cambios propuestos y se negaron a apoyar la activación de SegWit.

A principios de 2017, un desarrollador con el seudónimo “Shaolinfry” planteó la posibilidad de que los nodos de Bitcoin impusieran un soft fork en una publicación online de Bitcoin Dev. 

Nunca se había intentado crear un soft fork activado por el usuario en la red Bitcoin, pero permitiría a los desarrolladores impulsar SegWit con alrededor del 51% de apoyo de los mineros. Aquellos que se negaron a admitir nuevos bloques se arriesgaban a que los nodos rechazaran sus bloques. La solución no estuvo exenta de riesgos. Si SegWit no consiguiera recibir suficiente respaldo de los mineros, el resultado invariablemente daría lugar a una división de la cadena.

Los contrarios a SegWit propusieron una actualización diferente del hard fork 2X de SegWit. Una que implementaría SegWit y aumentaría el tamaño de los bloques de Bitcoin a 2MB.

A diferencia de la actualización anterior, SegWit 2X no sería compatible con versiones anteriores del cliente de Bitcoin. Estos cambios implicaron que los nodos tendrían que actualizar su software para seguir operando en la red.

SegWit y el acuerdo de Nueva York 🗽

Las principales empresas del sector se reunieron en Consenso 2017 y firmaron colectivamente un memorando denominado "el Acuerdo de Nueva York". En este documento se exponían los planes para que SegWit entrara en funcionamiento en verano y para que el tamaño de los bloques de Bitcoin aumentara a 2MB en noviembre.

Antes de noviembre, Shaolinfry redactó dos propuestas de mejora de Bitcoin (BIP): BIP148 y BIP149. La primera representaba una solución rápida y difícil; la compatibilidad de señales para bloques o nodos SegWit rechazará sus bloques. Este último ofrecía un horizonte temporal más largo para que los mineros se incorporaran, fijando una fecha límite de activación para julio del año siguiente.

A medida que se acercaba la fecha, el ingeniero de la garantía de Bitmain, James Hillard, propuso un nuevo BIP: BIP91. Su solución buscaba hacer que tanto SegWit 2X como BIP148 fueran compatibles entre sí. ¿Por qué arriesgarse a dividir la cadena en dos actualizaciones de SegWit rivales cuando puede hacerlas compatibles?

El 1 de agosto, un soporte de minería suficiente consolidó la activación de SegWit. Sin embargo, la segunda etapa del Acuerdo de Nueva York no recibió el mismo respaldo.

El fracaso en aumentar el tamaño de los bloques de Bitcoin a 2MB resultó en la formación de Bitcoin Cash (BCH), un nuevo proyecto de fork de la blockchain de Bitcoin.

$470.97
+1,45 %
24 H
bch

La importancia del Día de la Independencia de Bitcoin

La introducción de SegWit y la decisión de la comunidad de rechazar el aumento del tamaño de los bloques representaron un momento histórico para la comunidad de Bitcoin en general.

SegWit mostró la importancia del consenso en lo que respecta a los cambios en la blockchain de Bitcoin, así como el alcance de la descentralización del poder que ofrecía Bitcoin.

Ninguna persona pudo hacerse cargo de la red y llevar a cabo su propuesta.

En su lugar, la comunidad debatió, iteró y prosiguió el largo proceso de llegar a un consenso como grupo colectivo, no bajo la dirección de un solo individuo.

Empezar a comprar bitcoin

Ahora que lo ha aprendido todo sobre SegWit, ¿está en condiciones de continuar su camino en el mundo cripto y comprar bitcoin?

Consulte nuestra guía del Centro de aprendizaje de Kraken para obtener más información sobre Cómo comprar Bitcoin (BTC) y cree una cuenta hoy mismo.