Todo lo que tienes que saber sobre SegWit

todo lo que tienes que saber sobre segwit
¡ Comparte si te ha gustado el contenido !

5/5 (1)

Todo lo que tienes que saber sobre SegWit para no perderte en la evolución del bitcoin

segwit-time-line

BENEFICIOS DEL SEGREGATE WITNESS ( SEGWIT)

La actualización incluye un amplio rango de medidas muchas de la cuales son mayormente técnicas y aquí os vamos a hacer un resumen de las mas importantes.

1. Soluciones de maleabilidad de las transacciones.

Las transacciones de Bitcoin se identifican mediante un hash hexadecimal de 64 dígitos denominado identificador de transacción (txid) que se basa tanto en las monedas que se gastan como en quién podrá gastar los bitcoins de la transacción.

Desafortunadamente, la forma en que se calcula el txid permite a cualquier persona hacer pequeñas modificaciones a la transacción que no cambie su significado, pero cambiará el txid. Esto se llama maleabilidad de terceros. El BIP 62 ("tratar la maleabilidad") trató de abordar estas cuestiones de manera fragmentaria

, pero fue demasiado complicado de aplicar y se retiro.

Por ejemplo, puede enviar una transacción con txid (ej: ef74 ... c309) a la red, un tercero, como un nodo que retransmite su transacción o el minero que incluye la transacción en un bloque, modifica el Transacción ligeramente, lo que resulta en una transacción que sigue gastando las mismas monedas y el pago se dirige a las mismas direcciones, pero se confirma con el txid diferente (Ej: 688f ... 8bfa) completamente diferente al txid de la transcacion inicial.

De manera más general, si uno o más de los firmantes de la transacción revisan sus firmas entonces la transacción sigue siendo válida y paga las mismas cantidades a las mismas direcciones, pero el txid cambia completamente porque incorpora las nuevas firmas. En general la modificacion en los datos de las firmas (pero no en las salidas o en la elección de las entradas) se denomina maleabilidad scriptSig.

Segwit evita la maleabilidad de terceros y scriptSig separando las partes maleables de la transacción hacied

 

o que los cambios en el bloque no afecten al cálculo del txid.

QUIEN SE BENEFICIA DE EVITAR LA MALEABILIDAD DE LAS TRANSACCIONES

Los dueños de las carteras virtuales pueden rastrea los bitcoins gastados : es más fácil monitorear el estado de sus propias transacciones salientes simplemente buscando por txid. sin embargo en la actualidad en un sistema con maleabilidad de terceros, las carteras deben implementar código adicional para poder manejar los txids cambiados.

Cualquiera que gaste transacciones no confirmadas: (ej) si Alice paga a Bob en la transacción 1, Bob utiliza ese pago para pagar a Charlie en la transacción 2, y luego el pago de Alice se ha manipulado y confirmado con un txid diferente, entonces la transacción 2 es inválida y Charlie no ha sido pagado. Si Bob es digno de confianza, volverá a emitir el pago a Charlie; Pero si no lo es, puede simplemente guardar esos bitcoins para sí mismo.

Una Red mas ligera: con la maleabilidad de terceros y scriptSig solucionada, la red mas ligera es menos complicada de implementar y significativamente más eficiente en su uso del espacio blockchain. Con la maleabilidad scriptSig eliminada, también es posible ejecutar clientes ligeros rapidos que externalizan la supervisión del blockchain, en lugar de que cada cliente necesite ser también un nodo Bitcoin completo.

Cualquier persona que utilice la blockchain: los contratos inteligentes de hoy, como los canales de micropago y los nuevos contratos inteligentes anticipados, se vuelven menos complicados de diseñar, comprender y supervisar.

 

Nota: las transacciones segwit sólo evitan la maleabilidad si todas sus entradas se dedican a segwit (ya sea directamente, o a través de una dirección P2SH compatible con versiones anteriores).

2. Escalada Lineal de las Transacciones en el SigHash

escalado-lineal-escalado-cuadratico

La forma mas sencilla de solventar el problema del tamaño del sighash es ampliar el tamaño del bloque pero esto supondría una escalada cuadrática en vez de lineal.

En esencia, duplicar el tamaño del bloque aumenta puede duplica tanto el número de operaciones de firma como la cantidad de datos que tiene que ser hasheados para cada una de las firmas que se verifican. Esto se ha visto en la practica, donde un bloque individual requería 25 segundos para ser validado, y las transacciones de bloque ampliado podrían tomar más de 3 minutos.

Segwit resuelve esto cambiando el cálculo del hash de transacción para firmas de modo que cada by

 

te de una transacción sólo tiene que ser hasheado a lo sumo dos veces. Esto proporciona la misma funcionalidad de manera más eficiente, de modo que las grandes transacciones todavía se pueden generar sin tener problemas con el hash de firma, aunque se generen maliciosamente o se admitan bloques mucho más grandes (y por lo tanto, transacciones más grandes).

QUIEN SE BENEFICIA DEL ESCALADO LINEAL

La eliminación de la escalada cuadrática de los datos hash para verificar las firmas hace que aumentar el tamaño del bloque sea más seguro. Haciendo eso sin limitar el tamaño de las transacciones, Bitcoin puede continuar apoyando pagos que vienen o van de grandes grupos, como pagos de recompensas mineras o servicios de crowdfunding.

El hash modificado sólo se aplica a las operaciones de firma iniciadas a partir de datos de verificaciones, de modo que las operaciones de firma del bloque base seguirán requiriendo límites más bajos

3. Firmando los Valores de Entrada

Cuando una cartera de hardware firma una transacción, puede verificar fácilmente la cantidad total que se gasta, pero sólo puede determinar con seguridad la tarifa al tener una copia completa de todas las transacciones de entrada que se está gastando y debe hashear cada una de ellas para asegurarse de que no está siendo Alimentados con datos falsos. Dado que las transacciones individuales pueden ser de hasta 1 MB de tamaño, esto no es necesariamente una operación barata, incluso si la transacción firmada es bastante pequeña.

Segwit resuelve esto explícitamente hasheando el valor de entrada. Esto significa que a una cartera de hardware le pueda ser entregado simplemente el hash de transacción, el índice y el valor (y diciendo qué clave pública se utilizó), y puede firmar con seguridad la transacción de gasto, no importa como de grande o complicada sea la trasaccion.

QUIEN SE BENEFICIA DE FIRMAR LOS VALORES DE ENTRADA

Los fabricantes y usuarios de carteras de hardware son los beneficiarios obvios; Sin embargo esto también facilita mucho el uso seguro de Bitcoin en pequeños dispositivos integrados para aplicaciones de "Internet de las cosas".

Este beneficio sólo está disponible cuando se gastan las transacciones enviadas a direcciones activadas segwit (o direcciones segwit-via-P2SH).

4. Incrementando la seguridad de multifirma via  PAY-TO-SCRIPT-HASH (P2SH)

 

Los pagos Multisig ( Multifirma ) utilizan actualmente P2SH que está asegurado por el algoritmo HASH160 de 160 bits (RIPEMD de SHA256). Sin embargo, si uno de los firmantes desea robar todos los fondos, pueden encontrar una colisión entre una dirección válida como parte de un script multisig y un script que simplemente les paga todos los fondos con sólo 80 bits (2 elevaod 80) de trabajo , Que ya está dentro del ámbito de la posibilidad de un atacante extremadamente bien dotado de recursos. (Para la comparación, en un 1 exahash sostenido / segundo, la red minera de Bitcoin hace el trabajo del valor de 80 bits cada dos semanas)

Segwit resuelve esto usando HASH160 sólo para pagos directos a una sola clave pública (donde este tipo de ataque es inútil), mientras que utiliza SHA256 hash de 256 bits para pagos a un hash de script.

QUIEN SE BENEFICIA DEL INCREMENTO DE LA SEGURIDAD PARA PAGOS MULTIFIRMA VIA P2SH

Todos los que pagan a multisig o contratos inteligentes a través de segwit se benefician de la seguridad adicional proporcionada para los scripts.

5. Cambio en la versión de bitcoin

Los cambios en la secuencia de comandos de Bitcoin permiten mejorar la seguridad y mejorar la funcionalidad. Sin embargo, el diseño de script solo permite implementar cambios compatibles con versiones anteriores (soft-forking) reemplazando uno de los diez opcodes OP_NOP adicionales con un nuevo opcode que puede fallar condicionalmente en el script, pero que de otro modo no hace nada. Esto es suficiente para muchos cambios, como introducir un nuevo método de firma o una característica como OP_CLTV, pero es un poco de hackeo (por ejemplo, OP_CLTV normalmente tiene que ir acompañado de un OP_DROP) y no puede ser utilizado para permitir que las características de ambos scritps sea tan simple Como unirlas dos cuerdas.

Segwit resuelve esto incluyendo un número de versión para scripts, de modo que los opcodes adicionales que hubieran requerido un hard-fork para ser usado en transacciones no segwit pueden ser soportados simplemente aumentando la versión de script.

QUIEN SE BENEFICIA DE CAMBIAR LAS VERSIONES DE BITCOIN

 

Los cambios más fáciles en los opcodes de script harán que las secuencias de comandos avanzadas en Bitcoin sean más fáciles. Esto incluye cambios como la introducción de firmas de Schnorr, el uso de la recuperación de claves para reducir el tamaño de firmas, el apoyo a las cadenas laterales o la creación de contratos aún más inteligentes utilizando Merklized Abstract Syntax Trees ( MAST ) y otras ideas a nivel de investigación.

6. Reducción del crecimiento de UTXO

La base de datos TRANSACCIONES DE SALIDA SIN GASTAR (UTXO) es minada por cada nodo Bitcoin para determinar si las nuevas transacciones son válidas o fraudulentas. Para una operación eficiente de la red, esta base de datos necesita ser muy rápida de consultar y modificar, e idealmente debería ser capaz de estar en la memoria principal (RAM), por lo que mantener el tamaño de la base de datos lo más pequeño posible es muy valioso.

Esto se hace más difícil a medida que crece Bitcoin, ya que cada nuevo usuario debe tener al menos una entrada UTXO propia y preferirá tener múltiples entradas para ayudar a mejorar su privacidad y flexibilidad, o para proporcionar un respaldo para canales de pago u otros contratos inteligentes.

Segwit mejora la situación haciendo que los datos de la firma, que no afectan el tamaño de UTXO, gasten un 75% menos que los datos que afectan al tamaño del conjunto UTXO. Se espera que esto animea los usuarios a favorecer el uso de transacciones que minimizan el impacto en el conjunto de UTXO con el fin de minimizar las tarifas, y animar a los desarrolladores a diseñar contratos inteligentes y nuevas características de una manera que también minimizará el impacto en el UTXO.

Debido a que segwit es un soft-forking y no aumenta el tamaño de bloques de base, la tasa de crecimiento del UTXO, en el peor caso permaneceria igual.

¿QUIEN SE BENEFICIA DEL LA REDUCCIÓN EN EL CRECIMIENTO DEL UTXO?

El crecimiento reducido de UTXO beneficiará a mineros, empresas y usuarios que ejecutan nodos completos, lo que a su vez ayuda a mantener la seguridad actual de la red Bitcoin a medida que más usuarios ingresan al sistema. Los usuarios y desarrolladores que ayudan a minimizar el crecimiento del conjunto UTXO se beneficiarán de tarifas más bajas en comparación con aquellos que ignoran el impacto de sus transacciones en el crecimiento de UTXO.

7. Ganancias en eficiencia al no verificar las firmas en el mismo bloque

Las firmas para transacciones históricas pueden ser menos interesantes que las firmas para transacciones futuras. Por ejemplo, Bitcoin Core no comprueba por defecto firmas para transacciones anteriores al punto de control más reciente, y algunos clientes SPV simplemente no comprueban las firmas en absoluto, confiando en que Ya ha sido realizada por mineros u otros nodos. En la actualidad, sin embargo, los datos de la firma son una parte integral de la transacción y deben estar presentes para calcular el hash de la transacción.

La segregación de los datos de la firma permite que los nodos que no estén interesados en los datos de firma puedan eliminarlos del disco, o evitar descargarlos en primer lugar, ahorrando recursos.

¿QUIEN SE BENÉFICA DE LA SEPARACIÓN DE LOS DATOS DE FIRMA DE LOS DE LAS TRANSACCIONES?

A medida que más transacciones utilizan direcciones segwit, las personas que ejecuten nodos REDUCIDOS o SPV podrán operar con menos ancho de banda y espacio en disco.

8. Aumento en la capacidad o el tamaño del bloque.

Dado que los nodos antiguos sólo descargarán el bloque de testigos antigüos, sólo aplican la regla de límite de tamaño de bloque de 1 MB en esos datos. Los nuevos nodos, que entienden el bloque completo con datos witness, son por lo tanto libres de reemplazar este límite por uno nuevo, permitiendo tamaños de bloques más grandes. Por lo tanto, el SEGWIT aprovecha esta oportunidad para elevar el límite de tamaño de bloque a casi 4 MB, y agrega un nuevo límite de costos para asegurar que los bloques permanezcan equilibrados en su uso de recursos (esto resulta efectivamente en un límite efectivo cercano a 1,6 a 2 MB).

¿QUIEN SE BENEFICIA DE LA POSIBILIDAD DE AUMENTAR EL TAMAÑO O LA CAPACIDAD DE LOS BLOQUES?

Las personas que tengas su proveedores de billeteras actualizados, podrán aprovechar el aumento del tamaño del bloque al mover los datos de las firmas a la sección witness de la transacción.

9. Moviéndose hacia un único límite de bloque combinado.

En la actualidad existen dos límites por un consenso forzado sobre el tamaño del bloque: el bloque no puede ser mayor de 1 MB e independientemente, no puede haber más de 20.000 comprobaciones de firma realizadas a través de las transacciones del bloque.

Encontrar el conjunto más rentable de transacciones para incluir en un bloque dado un solo límite es el problema que se viene arrastrando desde hace mucho tiempo. Este puede ser fácilmente resuelto con un algoritmo simple. Sin embargo, añadir la segunda restricción hace que encontrar una buena solución sea muy difícil en algunos casos. Este problema teórico ha sido explotado en la práctica para forzar los bloques a ser extraídos con un tamaño muy por debajo de su capacidad.

No es posible resolver este problema sin una reforma profunda, (Hard-Fork) o disminuyendo sustancialmente el tamaño del bloque. Dado que el segwit no puede solucionar el problema, se centra en no empeorarlo, en particular, en lugar de introducir un límite independiente para los datos de SEGWIT, se aplica un solo límite a la suma ponderada de los datos UTXO y los datos WITNESS , Permitiendo que ambos se limiten simultáneamente como una entidad combinada.

¿QUIEN SE BENEFICIA DE UN ÚNICO TAMAÑO DE BLOQUE COMBINADO?

En última instancia son los mineros los que se beneficiarán de que no haya un futuro hardfork que cambie el límite de capacidad de bloque que sera una sola suma ponderada de parámetros. Por ejemplo:

50 * Operaciones de firma + 4 * datos basicos de transaccion + 1 * verificaciones (WITNESS DATA) <10M

Esto permite a los mineros llenar los bloques con facilidad y precisión al mismo tiempo que maximiza los ingresos por comisiones, lo que beneficiará a los usuarios al permitirles calcular más fiablemente la tarifa apropiada necesaria para que su operación sea procesada por los nodos y mineros.

10. ¿Cuantos nodos han implantado a SEGWIT hasta ahora?

cantidad-de-nodos-que-han-implantado-segwit

Por favor Valora este articulo


¡ Comparte si te ha gustado el contenido !

Related posts

Leave a Comment

Recibe comodamente nuestras noticias. ¡Suscribete al Newsletter!