SegWit (Segregated Witness) fue una actualización importante para Bitcoin. El código se lanzó en 2015 y Segwit finalmente se puso en marcha en Bitcoin en agosto de 2017.
Beneficios de Segwit
SegWit mejora Bitcoin y corrige una serie de errores. Las principales características de Segwit se describen en detalle a continuación.
Aumento de capacidad
Segwit duplicó la capacidad de la red Bitcoin.

Mucha gente afirma que SegWit no aumentó el tamaño del bloque. Es muy fácil ver que, sí, ¡SegWit fue un aumento de tamaño de bloque!
Aquí, por ejemplo, podemos ver un bloque de Bitcoin de 2,177 KB (2,17 MB) extraído en enero de 2018.

Nombre:  Capturar 1.PNG
Visitas: 72
Tamaño: 106.8 KB


Segwit corrige la maleabilidad de las transacciones
Además de aumentar la capacidad de Bitcoin para procesar transacciones, SegWit corrige una falla fatal en el protocolo de Bitcoin que permitía a los usuarios manipular las identidades de las transacciones.
Antes de SegWit, el ID de transacción de una transacción podría haberse cambiado manipulando el código de desbloqueo de la transacción (su firma digital). Después de firmar digitalmente una transacción, se envía a través de la función hash criptográfica de Bitcoin, lo que da como resultado un ID de transacción único.


Nombre:  Capturar 2.PNG
Visitas: 24
Tamaño: 93.1 KB

Una vista de una transacción maleable
Si se cambia un carácter en la firma digital, resultará en un ID de transacción completamente diferente. SegWit mueve la firma al final de los datos de la transacción, por lo que el ID de transacción se crea a partir de todo menos la firma digital.
En efecto, este cambio hace que sea imposible cambiar el ID de transacción; si los nodos maliciosos pudieran alterar los ID de transacción, Lightning Network no sería posible.
Adopción Segwit
La adopción de Segwit está aumentando. Casi el 40% de todas las transacciones de Bitcoin utilizan direcciones SegWit.


Nombre:  Capturar 3.PNG
Visitas: 68
Tamaño: 39.3 KB


Por qué Segwit es importante
Bitcoin es, con mucho, la criptomoneda más grande por capitalización de mercado, y por una buena razón. Sin embargo, muchos en el espacio criptográfico han criticado a Bitcoin porque tiene problemas para escalar a su base de usuarios en constante expansión.
Bitcoin solo es capaz de procesar entre 7 y 10 transacciones por segundo en la capa base. La tecnología subyacente de Bitcoin, aunque revolucionaria, también se ha convertido en uno de los desafíos más importantes de Bitcoin.
Sin embargo, desarrolladores destacados de la comunidad de Bitcoin están trabajando para desarrollar una solución al problema. SegWit y Lightning Network juntos permitirán que Bitcoin procese millones (o más) transacciones por segundo.

Cómo funciona Bitcoin
Antes de que pueda comprender SegWit, primero debe comprender cómo se procesan las transacciones de Bitcoin.
Este video puede ayudarlo a brindarle algunos antecedentes antes de leer sobre:
Puede pensar en la red Bitcoin (bitcoin se basa en el modelo del oro) como una cadena, y cada eslabón de la cadena es un bloque. En aras de la simplicidad, imaginemos un bloque que solo contiene una transacción. Si Mike le envía 1 BTC a Bob, agregaría datos importantes al bloque:
• Su entrada y salida
• La clave pública del destinatario y la cantidad de BTC que envía a Bob.
• Su clave pública
• Su firma digital
La clave pública y la firma digital de Mike deben incluirse en el bloque para demostrar que la transacción es legítima y realmente proviene de él. La firma digital se incluye en el bloque como script (puede pensar en el script como código). Al igual que las personas firman cheques para autorizarlos, los usuarios de la red BTC deben firmar transacciones para autorizarlos.
A pesar de ser necesarias para autenticar transacciones, las firmas digitales ocupan una gran cantidad de espacio que de otro modo podría usarse para los datos de las transacciones.

Nombre:  Capturar 4.PNG
Visitas: 69
Tamaño: 69.9 KB



Las firmas representan aproximadamente el 60% del tamaño de archivo de una transacción
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 procesará su transacción.
Desafortunadamente, las tarifas de transacción pueden ser bastante caras. En diciembre de 2017, no era extraño pagar $ 50 por transacción si deseaba que se validara en 10 a 20 minutos. El problema de escalabilidad de Bitcoin es uno de sus obstáculos más importantes antes de la adopción generalizada. Nadie en la sociedad actual quiere pagar $ 20 por una taza de café mientras espera que se liquide su pago.

Este gráfico muestra la altura de las tarifas de Bitcoin en diciembre de 2017
Algo debe cambiar.
Algunos creen que la mejor manera de resolver el problema es expandir el tamaño del 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.
Para obtener una introducción sencilla sobre el ciclo de vida de una transacción estándar de Bitcoin, puede consultar la siguiente imagen de la wiki de Bitcoin.



Cómo funciona Segwit
Segwit se activó a través de UASF. Como se mencionó anteriormente, cada bloque está compuesto por datos de transacción (clave pública, cantidad de BTC, etc.) y script (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 otra manera podrían usarse para más transacciones.
Las firmas digitales, también conocidas como testigos, ocupan el 60% de los datos de la transacción y, por lo general, los datos de los testigos se encuentran en medio de los datos de la transacción. Testigo segregado es una forma de eliminar el testigo (firma) de la transacción; en cambio, las transacciones de SegWit mueven los datos del testigo al final de la transacción. Cuando una transacción de SegWit está siendo validada por un nodo heredado (uno que no se ha actualizado), los datos del 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 más pequeño, lo que permite muchas más transacciones por bloque.

Eliminar la firma de las transacciones libera espacio para más transacciones
Es importante tener en cuenta que antes de SegWit, el tamaño máximo de bloque de Bitcoin era de 1,000,000 bytes (1 MB), es decir, una vez que se alcanzó el límite de datos, el bloque ya no podía aceptar más transacciones y cualquier otra transacción que no estuviera incluida. en el bloque había que esperar en el mempool.
SegWit, contrariamente a la creencia popular, es de hecho un aumento de tamaño de bloque. SegWit ha implementado una nueva forma de medir el tamaño de las transacciones. En lugar de depender de un tamaño de bloque de 1,000,000 bytes, SegWit mide bloques usando algo conocido como peso de bloque.
Esta es la fórmula utilizada para calcular el peso del bloque:
(tamaño de tx con datos de testigos eliminados) * 3 + (tamaño de tx)

bloque de tabla de peso a lo largo del tiempo
Las transacciones heredadas no tienen datos de testigos porque se eliminaron. Por lo tanto, el peso de una transacción heredada es efectivamente cuatro veces mayor. Las transacciones de SegWit tienen datos de testigos, pero están al final de la transacción en lugar de estar en el medio, por lo que son menos de cuatro veces el tamaño.
Dado que las transacciones de Segwit se transmiten a todos los nodos con los datos del testigo eliminados, los nodos heredados nunca tendrán que validar un bloque de más de 1,000,000 de bytes, por lo que se adhieren al protocolo original de Bitcoin.
Por el contrario, los nodos SegWit pueden recibir bloques que tienen un tamaño muy cercano, pero no del todo, de 4 MB. Para que un bloque tenga (cerca de) 4 MB, debería consistir principalmente en datos de testigos en lugar de datos de transacciones. Sería increíblemente cercano a los 4 MB con los datos de los testigos, pero aún así, menos de 1,000,000 de bytes cuando se eliminan los datos de los testigos.

Aunque los nodos SegWit son capaces de validar un bloque de 4 MB (4.000.000 bytes), en la práctica, ese tamaño de bloque es ridículamente grande. En la mayoría de los casos, un bloque de SegWit no superará los 2 MB.