moneda bitcoin sobre portatil, segwit

Qué es SegWit (Segregated Witness).

Si duda Bitcoin es la criptomoneda Reina. La que tiene mayor adopción. La que acumula más artículos en prensa. En definitiva, la más conocida para la gente de a pie. Pero el camino de Bitcoin no ha sido fácil. A lo largo de sus más de 10 años de historia, ha pasado por numerosas dificultades. Una de ellas, su pobre escalabilidad. En este artículo te contamos una de las soluciones que se dio a este problema (SegWit), sus características, sus ventajas, e incluso sus críticas.

SegWit es una actualización de protocolo que cambia la manera en que se almacenan los datos. Fue activada en Litecoin en Mayo de 2017, y en Bitcoin en Agosto de 2017.

El desarrollador Peter Wuille presentó la idea por primera vez en una conferencia sobre la escalabilidad de Bitcoin en Diciembre de 2015.

Muchos la aclamaron como la tan esperada solución al problema de escalabilidad de Bitcoin. El tamaño máximo por bloque en el protocolo original es de 1MB, lo cual restringe el número de transacciones que la red puede procesar (7 por segundo). Esto iba a limitar el potencial de crecimiento de Bitcoin, y hacer que no fuera posible el que llegara a ser un sistema de pago utilizable y accesible.

logo segwit segregated witness

Mientras que la actualización permite un mayor número de transacciones en los bloques, la intención inicial de SegWit fue corregir un bug en el código de Bitcoin llamado maleabilidad de transacción. Este fallo permitía a cualquiera cambiar pequeños detalles que modificaban el id de transacción (y el consecuente hash) pero no el contenido. Mientras que no era un problema critico para Bitcoin, hacia problemático el desarrollo de características mas complejas como Smart Contracts o protocolos de segunda capa.

SegWit corrigió la maleabilidad de transacción eliminando la información de firma y almacenándola fuera del bloque de transacción base. Así, firmas y scripts se pueden cambiar sin afectar el ID de transacción.

Cómo funciona Bitcoin

Antes de que puedas entender SegWit, primero debes comprender cómo se procesan las transacciones de Bitcoin.

Puedes pensar en la red de Bitcoin como una cadena de bloques. En aras de la simplicidad, imaginemos que un bloque solo contiene una transacción. Si Ana envía 1 BTC a José, se creará una transacción, que agregará datos importantes al bloque:

  • Su entrada y salida (de donde vinieron sus bitcoins, y a dónde van).
  • La clave pública del destinatario y la cantidad de BTC que está enviando a José.
  • Su clave pública .
  • Su firma digital.

La clave pública y la firma digital de Ana deben incluirse en el bloque para demostrar que la transacción es legítima y realmente provino de ella. La firma digital se incluye en el bloque como una secuencia de comandos (código de programación). Al igual que las personas firman cheques para autorizarlos, los usuarios de la red Bitcoin deben firmar transacciones para autorizarlas.

A pesar de ser necesario para autenticar las transacciones, las firmas digitales llenan mucho espacio que de otro modo podría usarse para los datos de la transacción.

Transacciones Bitcoin, mineros y tarifas

Cuando se inician miles de transacciones a la vez, no hay suficiente espacio para que todas entren en el mismo bloque. Los usuarios deben pagar una tarifa de transacción que incentiva a los mineros a incluir su transacción en el bloque antes que los demás. Cuanto más pague, más rápido se realizará su transacción.

Desafortunadamente, las tarifas de transacción pueden ser bastante caras. En diciembre de 2017, no era raro pagar 20€ por transacción si deseabas que se validara en 10-20 minutos. El problema de escalabilidad de Bitcoin es uno de sus obstáculos más importantes antes de su adopción general. Nadie en la sociedad actual quiere pagar 20€ por una taza de café mientras espera que su pago se liquide.

Evidentemente, algo debía cambiar. Algunos creían que la mejor manera de resolver el problema es expandir el tamaño de bloque de Bitcoin; sin embargo, esa solución requeriría que Bitcoin se bifurcara. En lugar de bifurcarse en una criptomoneda completamente nueva, SegWit se ha implementado para aumentar significativamente la capacidad de Bitcoin para procesar transacciones.

Cómo Funciona SegWit

Como se mencionó anteriormente, cada bloque se compone de datos de transacción (clave pública, cantidad de BTC, etc.) y una secuencia de comandos (la clave pública del remitente y su firma digital). Aunque es imperativo que las firmas digitales se incluyan en el proceso de validación, usan mucho espacio en bloques que de otro modo podrían usarse para más transacciones.

Las firmas digitales, también conocidas como testigos (witness), ocupan el 60% de los datos de la transacción y, por lo general, los datos testigo se encuentran en medio de los datos de la transacción. Segregated Witness (Testigo Segregado en español) es una forma de eliminar el testigo (firma) de la transacción. Aunque realmente, las transacciones SegWit lo que hacen es mover los datos del testigo al final de la transacción.

Cuando un nodo SegWit valida una transacción Legacy (una que no se ha actualizado), los datos testigo se eliminan de la transacción. Al eliminar las firmas del bloque principal de transacciones, el tamaño de la transacción es notablemente menor, lo que permite muchas más transacciones por bloque.

Es importante tener en cuenta que antes de SegWit, el tamaño máximo de bloque de Bitcoin era de 1,000,000 de bytes (1 MB), es decir, una vez que se alcanzaba el límite de datos, el bloque ya no podía aceptar más transacciones y otras transacciones que no estaban incluidas en el bloque tenían que esperar.

SegWit, contrario a la creencia popular, es de hecho un aumento del tamaño del bloque. SegWit ha implementado una nueva forma de medir el tamaño de las transacciones. En lugar de confiar en un tamaño de bloque de 1,000,000 de bytes, SegWit mide bloques usando algo conocido como peso de bloque.

segwit vs legacy direcciones bitcoin
Dirección Legacy vs Dirección SegWit

Peso del bloque vs Tamaño de la transacción

Aquí está la fórmula utilizada para calcular el peso del bloque:

(tamaño de transacción con datos testigo eliminados) * 3 + (tamaño de transacción)

Las transacciones Legacy (transacciones de direcciones Bitcoin originales) no tienen datos de testigos porque se eliminaron. Pero el peso de una transacción Legacy es efectivamente cuatro veces mayor. (porque los datos testigo estaban en medio, de la transacción y queda ese ‘hueco’). Las transacciones SegWit tienen datos testigo, pero están al final de la transacción en lugar de estar en el medio, por lo que ocupan menos espacio.

Dado que las transacciones Segwit se transmiten a todos los nodos con los datos de testigo eliminados, los nodos Legacy nunca tendrán que validar un bloque de más de 1,000,000 de bytes, por lo tanto, se adhieren al protocolo original de Bitcoin.

Por el contrario, los nodos SegWit pueden recibir bloques de un tamaño cercano a 4 MB. Aunque los nodos SegWit son capaces de validar un bloque de dicho tamaño (4MB), en la práctica, ese tamaño de bloque es ridículamente grande. En la mayoría de los casos, un bloque SegWit no excederá los 2 MB.

Por qué es importante Segwit

Bitcoin es, con mucho, la criptomoneda más grande por capitalización de mercado, y por una buena razón. Sin embargo, muchos en la comunidad de criptomonedas han criticado a Bitcoin porque tiene problemas para escalar, y por tanto, para que se llegue a adotar como moneda de uso real a nivel mundial.

Bitcoin solo es capaz de procesar entre 7 y 10 transacciones por segundo. La tecnología subyacente de Bitcoin, aunque revolucionaria, también se ha convertido en uno de sus mayores desafíos. Por ello, programadores de la comunidad de Bitcoin han trabajando para desarrollar una solución al problema. SegWit y Lightning Network juntos permitirán a Bitcoin procesar miles (o más) transacciones por segundo.

Dirección Legacy vs Dirección Segwit

Aclaremos que una dirección bitcoin Legacy es el formato que determina que ha sido heredada de las direcciones originales de Bitcoin que mantiene desde sus inicios. Este tipo de direcciones se conocen también como P2PKH.

Cómo saber si mi dirección es Segwit o Legacy

Es muy sencillo, solo hay que mirar la forma en la que comienza la dirección. Las direcciones de los wallets que pertenecen a Bitcoin Legacy, es decir, las heredadas del Bitcoin original, comienzan con el número 1 y corresponden al formato P2PKH que significa Hash Pay To PubKey. Por su parte, las direcciones SegWit comienzan con el número 3 o en su defecto con las siglas bc1. El único inconveniente que se presenta con las direcciones SegWit es que aun no son soportadas por todas las wallets.

¿Puedo enviar Bitcoins desde una dirección Legacy a una dirección SegWit?

Si, es posible, pero, de momento es recomendable hacerlo sólo entre una dirección Legacy y una dirección SegWit que empiece con 3.

¿SegWit pertenece a una cadena diferente?

No, no hay dos cadenas. SegWit está activado sobre la Blockchain de Bitcoin.

Adopción de SegWit

El uso del protocolo SegWit ha ido creciendo paulatinamente desde sus inicios. Para octubre de 2017 SegWit ya tenía más de 10% de adopción, aunque estos niveles se hicieron notorios en los primeros meses del 2018. Entre finales de febrero e inicios de marzo de ese año el porcentaje de transacciones pasó de 14,5% a 30% del volumen total de la red. El avance fue sostenido ese año hasta alcanzar un máximo histórico de 51,6% en octubre de 2018.

Paralelamente, luego de alcanzar este máximo histórico, desde finales de 2018 hasta la fecha, el proceso de adopción de SegWit ha sido más o menos constante, con oscilaciones que se mueven entre el 30% y poco más de 40% del volumen de transacciones de la red.

Según estadísticas de SegWit Space, para este segundo aniversario el protocolo marca una adopción del 42,4%. Así mismo, de acuerdo a los gráficos de Charts Woobull, el 21 de agosto de 2019 la red habría registrado un total de 132.000 transacciones con SegWit, de un total de 332.000 transacciones realizadas en Bitcoin.

Aunque el ritmo de adopción no muestra aumentos extraordinarios en comparación con los datos que se tenían para el primer aniversario de SegWit, su presencia es activa en la red y junto a Lightning Network ofrece a los usuarios comisiones más bajas y soluciones a los problemas de maleabilidad.

Lightning Network y otras características

Otro paso adelante hecho posible por SegWit, es que permite el desarrollo de protocolos de segunda capa, como la conocida como ‘lightning network’.

La lightning network mejora la capacidad transaccional de Bitcoin, cogiendo frecuentemente pequeñas transacciones de la cadena, y solo introduciéndolas en el blockchain cuando los usuarios están preparados.

La activación de SegWit también impulsó el desarrollo de nuevas características como MAST (que permite Smart Contracts más complejos en bitcoin), firmas Schnorr  (que sería otra mejora para la capacidad transaccional) y TumbleBit (una red anónima por encima).

No todo el mundo está contento

No todo el mundo dentro de la comunidad Bitcoin está de acuerdo en que SegWit es la solución que Bitcoin ha estado esperando. Algunos creen que se trata solo de un fix temporal.

La resistencia al SegWit fue uno de los factores detrás del desarrollo de Bitcoin Cash tras un complicado y polémico hard fork. El mismo, implementó un mayor limite para el tamaño de bloque, pasando de 1MB a 8MB. Sus creadores, sostenían que SegWit no era la mejor opción para enfrentar el problema de escalabilidad que se ciñe sobre el protocolo de Bitcoin original.