Tras los problemas que enfrentan las criptomonedas hay equipos de profesionales buscando soluciones. Y, he aquí el origen de Segregated Witness coloquialmente conocido como SegWit.

¿Qué es Segregated Witness (SegWit)?

Segregated Witness o SegWit (en español: Testigo Segregado) es una actualización de software compatible con versiones anteriores de Bitcoin. Se implementó en la principal plataforma blockchain del mundo dando lugar a un soft fork.

Su nombre oficial es BIP141, que son las siglas de Bitcoin Improvement Proposal number 141, lo que se traduce al español como Propuesta de Mejora de Bitcoin número 141.

El SegWit es un proceso que elimina los datos de firma de las transacciones de la blockchain de Bitcoin. Este proceso consigue liberar espacio y permite que se agregue un número mayor de transacciones a cada bloque agilizando el trabajo de la red.

En español podría traducirse como Testigo Segregado, en que Segregar indica separar y los Testigos son las firmas de transacción de Bitcoin. Por lo que en otras palabras claramente se refiere a separar las firmas de transacción.

Funcionamiento de la Blockchain de Bitcoin

La red de Bitcoin está constituida por un gran número de sistemas distribuidos conocidos como nodos. En esta red peer-to-peer los nodos son los encargados de administrar todas las transacciones de la red. Cada uno de ellos tiene una copia del total de las transacciones realizadas desde el momento en que la red se puso en funcionamiento. De esta forma se asegura que hackear o modificar cualquier dato de la red sea imposible.

No obstante, esto tiene sus inconvenientes, el volumen de datos almacenados. Para cada transacción hay dos datos a almacenar, las entradas y las salidas. En cada transacción pueden haberse involucrado varias entradas y salidas.

Por salida se conoce a la dirección de la persona que recibe la cantidad enviada, es decir, el destinatario. Por su lado, la entrada es la dirección pública del remitente. Para que el remitente pueda realizar la transacción es imprescindible que conozca la dirección pública del destinatario.

En cada una de las transacciones, el mayor espacio lo ocupa la firma de la transacción, exactamente representa entre el 60% y el 65% del espacio. Esta firma que es una parte de la entrada que verifica que el remitente realmente dispone de la cantidad que se dispone a enviar.

Cuando todos los nodos han validado la transacción está se incluye en un bloque que queda registrado para siempre en la blockchain.

Acumulando datos

El tamaño de la blockchain de Bitcoin aumenta muchísimo a un tiempo constante. Cada 10 minutos se genera un nuevo bloque con un tamaño máximo de 1 megabyte (MB), delimitando así el número de transacciones que pueden incluirse en el bloque. Como resultado del peso de las transacciones la red se encuentra sobrecargada. Esto a su vez, da lugar a retrasos en el procesamiento y  verificación de las transacciones. Pueden pasar horas hasta que una transacción sea validada, incluso días.

A medida que más y más personas confían en Bitcoin y empiezan a utilizar su plataforma de forma regular, el número de transacciones que la blockchain tiene que procesar también aumenta. La red de Bitcoin no puede escalar con el incesante aumento del número de usuarios.

Por lo que, si la red ya está colapsada, sin ajustes ni soluciones, no solo no parece que pueda ser una forma sostenible de proceder sino que, tal vez, su funcionamiento apenas tienda a empeorar. Obviamente, esto es un gran obstáculo hacia una adopción generalizada. Tampoco parece que pueda ser una forma de proceder sostenible.

Términos importantes para entender algunas de las mejoras de SegWit en Bitcoin

Nodos legacy

Nodos Legacy o nodos heredados son aquellos que no están actualizados a Segwit.

Nodos SegWit

Por otra parte, los nodos SegWit o nodos actualizados, como el propio nombre indica, son aquellos que sí lo están.

Block size

Block size o tamaño del bloque es una medida que se expresa en Bytes y representa el tamaño real del bloque. Para los nodos heredados está establecido en la regla de consenso en 1 MB. Para los nodos SegWit esta medida puede llegar a 1,8 MB.

Block weight

Block weight hace referencia al peso del bloque. En este caso el máximo para ambos nodos es de 4 MB. Para conocer este nuevo concepto introducido con SegWit se puede aplicar la siguiente fórmula.

Peso del bloque: Tamaño base x 3 + Tamaño total

En esta fórmula, el tamaño base es el tamaño de bloque en bytes sin ningún dato relacionado con las firmas( es decir, Tamaño de transacción- Tamaño de testigo). El tamaño total incluye el tamaño del bloque en bytes y los datos de testigos.

Para calcular el peso del bloque de los nodos heredados directamente se puede multiplicar su tamaño por cuatro.

Cabe destacar que es posible que transacciones con el mismo tamaño tengan pesos distintos. De la misma forma podemos encontrar transacciones con el mismo peso pero con distinto tamaño. Esto se debe a que los datos del testigo representan aproximadamente 2/3 del tamaño de una transacción SegWit. A su vez esto depende del número de entradas p2wpkh o p2wsh.

En la siguiente tabla hay algunos cálculos de supuestas transacciones con SegWit para que con algunos ejemplos puedan entender mejor lo que se acaba de explicar:

Transacción

Tamaño de transacción (bytes)

Tamaño de testigo (bytes)

Tamaño base

Peso del transacción (bytes)

Segwit

1

1.100

800

300

300×3+1.100=2.000

2

800

400

400

400×3+800=2.000

3

1.500

1.000

500

500×3+1.500=3.000

4

1.000

500

500

500×3+1.000=2.500

5

1.000

300

700

700×3+1.000=3.100

No

SegWit

6

750

0

750

750×3+750= 3.000

7

500

0

500

500×3+500=2.000

8

400

0

400

400×3+400=1.600

9

300

0

300

300×3+300=1.200

Esta fórmula además de permitir conocer el peso de una transacción, también permite calcular el peso del bloque.

Solución: Segregated Witness

El concepto de SegWit fue formulado por el desarrollador de bitcoin Pieter Wuille.

Wuille sugiere que para solucionar el problema hay que separar la firma digital del los demás datos de transacción. Es decir, lo comentado hasta ahora, el Segregated Witness.Hay que ignorar la firma de la entrada desplazándola hacia el final de una transacción, lo que se llama un bloque extendido. Un bloque extendido es simplemente un bloque lateral que se ejecutaría en paralelo al bloque original.

El SegWit básicamente le aporta dos ventajas a la red de Bitcoin y, por consiguiente, a sus usuarios, que son: aumenta el tamaño de los bloques e impide ataques de maleabilidad.

Aumento en la capacidad de Bitcoin

De esta forma, es decir, al transferir estos datos de firma al bloque extendido, liberamos espacio del bloque original. En consecuencia se pueden agregar más transacciones y conseguimos un aumento del tamaño real de 1 MB a 4 MB.

Segwit también impide que el receptor pueda modificar el ID de transacción del remitente en una oferta para obtener más monedas que las que él envió.

Mejora la maleabilidad de la transacción

Debido a un fallo del protocolo de Bitcoin los usuarios pueden manipular las identidades de las transacciones.

Sin el SegWit se puede manipular el código de desbloqueo de la transacción, es decir, su firma digital y, de esta forma, cambiar el ID de la transacción. Apenas con modificar un carácter de la firma digital se obtendrá un ID completamente diferente. Esto es porque, cuando se firma digitalmente una transacción, esta se envía a través de la función de hash criptográfico de Bitcoin y, como resultado, se crea un ID de transacción único.

Lo que sucede con SegWit es que envía la firma al final de los datos de transacción, de esta forma, la firma digital no tiene nada que ver con la creación del ID de la transacción. Al separar las firmas de identificación de los datos de una transacción, los datos de la firma no tienen relevancia en el proceso de identificación. Por lo tanto, “la maleabilidad no intencional se vuelve imposible” (como afirmaron en GitHub), es decir, se vuelve imposible modificar la ID de una transacción.

Estas dos ventajas dan lugar a otras:

Con SegWit los datos testigos son opcionales y no necesarios para verificar la transacción, únicamente serán necesarios cuando un nodo tenga que validarla. Gracias a ello, el método SPV (Simplified Payment Verification, o Verificación de Pago Simplificado) conlleva una reducción en el tamaño de las pruebas de verificación, de forma que los clientes se beneficiarán de una mayor privacidad y podrán descargar más transacciones sin tener que aumentar su ancho de banda.

SPV es  un método para verificar si se incluyen ciertas transacciones en un bloque sin la necesidad de descargar todo el bloque.

Esto lleva a otra ventaja con su adopción. En la página web del proyecto afirman que el hecho de que sea imposible la maleabilidad con SegWit hace que esta tecnología también permita “la creación de cadenas de dependencia de transacción no confirmadas sin riesgo de contraparte, una característica importante para los protocolos fuera de cadena como “Lightning Network”. Y por ello, también se afirma que gracias a SegWit, las propuestas de escalabilidad de segunda capa en Bitcoin también aumentarían su eficiencia. Porque, una vez más, al mover los datos de la transacción, modificarlas se torna imposible.

la red Relámpago de Bitcoin

De no adoptar esta tecnología, la incertidumbre y la desconfianza hacia las soluciones de segunda capa será inevitable. Los identificadores de transacciones no confirmadas de Bitcoin son vulnerables.

Esta solución también tiene repercusión sobre las comisiones de la red. Puesto que al aumentar el número de transacciones que pueden procesarse dentro de un bloque, se agiliza su proceso en la red y, en consecuencia, la competencia por tarifas de prioridad entre los usuarios se reduce.

El Segregated Witness también facilita el diseño, la comprensión y la supervisión de contratos inteligentes y soluciones de segunda capa.

¿Solución definitiva al problema de escalabilidad?

El SegWit en sí no puede verse como una solución definitiva al gran problema de la escalabilidad. Aunque se incrementa el número de transacciones que pueden incorporarse en un bloque, el aumento no es realmente significativo. No obstante ya es un gran paso, pues las ventajas comentadas hacen que puedan implementarse otras tecnologías como Lightning Network.

SedWit en wallets y exchanges de criptomonedas

Como hemos comentado el Segregated Witness es un software de libre elección, por lo que tanto los exchanges de criptomonedas como las wallets pueden escoger actualizarse a él o no hacerlo.

No obstante, hay ciertos factores que han hecho que ya haya cierto número de ellos haciendo uso de SegWit en sus plataformas. Por un lado sus atractivas características e indiscutibles beneficios y por otro la solicitud de los usuarios, que como en cualquier industria tiene un gran peso.

Exchanges como LocalBitcoins y Binance hace ya bastante tiempo que anunciaron que ponían a disposición de los usuarios direcciones actualizadas a SegWit. Posteriormente se sumaron otros exchanges como Bitfinex y Coinbase.

Algunas de las wallets que también implementan SegWit son GreenAddress, Trezor, Ledger, BitGo, Samourai Wallet.

Es posible que oigamos como otras startups se van uniendo al grupo de las que sí lo están implementado. Los usuarios continúan insistiendo incluso emigrando a aquellas empresas que disponen de servicios con SegWit, lo que fuerza a las empresas a plantearse actualizarlo.

Implementación de SegWit

Poco a poco la adopción de SegWit va en aumento. Casi el 40% del total de las transacciones de Bitcoin que se realizan diariamente utilizan direcciones SegWit.

Es preciso que el 95% de los mineros ejecuten el soporte para SegWit y que los nodos completos estén actualizados a la última versión de SegWit en el momento en que vaya a realizarse. El soporte se mide constantemente, no obstante, para que este se active debe mantenerse en un mínimo de un 95% durante un periodo denominado ‘2.016-block retarget period’ que dura aproximadamente 2 semanas.

Como ya se ha comentado SegWit fue diseñado para que su adopción fuese totalmente voluntaria, por lo que, cada nodo es libre de escoger si lo adopta o no. La red a demostrado un gran apoyo a Segwit. Las proyecciones actuales muestran que su adopción podría llegar con el tiempo.

ENLACES RELACIONADOS

Aquí os dejo algunos enlaces que pueden interesaros:

Dejar respuesta

Please enter your comment!
Please enter your name here

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.