19 / 736BIP141

SegWit

Segregated Witness; separación de los datos de verificación

Una mejora que facilita enlazar transacciones de Bitcoin y hace que sus datos de firma consuman menos capacidad contabilizada del bloque.

SegWit cambió las reglas de Bitcoin al separar los datos que verifican el derecho a gastar, como las firmas, de la parte usada para calcular el identificador básico de una transacción. También cambió la medición de la capacidad de los bloques. Para el usuario puede significar pagos que aprovechan mejor el espacio; para el desarrollador, una forma más fiable de enlazar transacciones.

Al enviar, la cartera indica qué fondos recibidos antes gasta y qué nuevos importes corresponden al destinatario y, si hace falta, a tu cambio. También debe demostrar el derecho a gastar esos fondos. Para eso sirven las firmas y otros datos de verificación. SegWit los colocó en una parte llamada witness. Aquí significa prueba de que se cumplen las condiciones de gasto, no una persona que presencia el pago. Los datos no se desecharon ni se sacaron de Bitcoin: los nodos que aplican las reglas SegWit siguen comprobándolos. [1]

La cartera sigue el pago mediante su txid. Otra transacción posterior también usa ese identificador para señalar los fondos que quiere gastar. Antes, modificar algunos datos de firma podía cambiar el txid sin cambiar destinatarios ni importes. Eso complicaba encadenar pagos aún no confirmados. SegWit calcula txid sin el witness, por lo que modificar únicamente el witness no lo cambia. Para proteger toda la transacción de este problema, todas sus entradas deben usar SegWit. Cambiar destinatarios o entradas sigue pudiendo cambiar txid. Las referencias más estables también facilitaron Lightning Network, una red de pagos mediante canales. El segundo identificador, wtxid, sí incluye el witness. [1] [4]

SegWit introdujo el peso en lugar de contar todos los bytes igual. Un byte de datos básicos cuesta 4 unidades de peso y un byte adicional de witness cuesta 1. El bloque completo tiene un límite de 4.000.000 de unidades. Una transacción con 100 bytes básicos y otros 100 de witness pesa, por ejemplo, 500 unidades y tiene un tamaño virtual de 125 vB. Ese tamaño sirve para calcular la comisión a la tarifa elegida en sat/vB. El ahorro depende de la estructura; la demanda de espacio sigue influyendo en la tarifa. El límite de peso no implica que todos los bloques tengan los mismos megabytes ni que cada pago SegWit sea más barato. [1]

En la red principal de Bitcoin, las direcciones nativas SegWit de versión 0 empiezan por bc1q. P2WPKH y P2WSH distinguen dos condiciones de gasto: un pago habitual controlado por una clave y otro con un script, un conjunto de reglas. SegWit también puede envolverse en el formato anterior P2SH, con direcciones que empiezan por 3; ese 3 por sí solo no demuestra que sea SegWit. Taproot usa witness de versión 1 y direcciones bc1p. El prefijo bc1 no representa, por tanto, un único tipo de pago. Para el uso diario, comprueba la compatibilidad de la cartera emisora y la dirección completa del destinatario; ninguno de estos prefijos promete anonimato por sí solo. [1] [2] [3]

El cambio se diseñó como un Soft Fork: reglas más estrictas compatibles con las anteriores. Sin embargo, un nodo antiguo no comprueba por sí mismo todas las nuevas condiciones SegWit. El witness queda ligado criptográficamente al bloque mediante un witness commitment en la coinbase, la primera transacción del bloque. Las firmas no son, por tanto, un anexo opcional que una validación completa pueda ignorar. BIP 141 también expresa el peso como tres veces el tamaño básico más el tamaño total; el tamaño virtual es el peso dividido entre cuatro y redondeado hacia arriba. Son formas de describir el mismo cálculo, no dos límites distintos. [1]

Para obtener la imagen más completa, lee esta entrada junto con Transacción, Transaction Fees, Lightning Network, Taproot. También enlazan con esta entrada Transacción, Transaction Fees, Taproot, Lightning Network.

DOC · 001BIP 141: Segregated WitnessFuente primaria DOC · 002BIP 341: witness version 1Fuente primaria DOC · 003BIP 350: Bech32m for witness version 1 and laterFuente primaria DOC · 004Bitcoin Core: Segregated Witness benefitsFuente primaria
Revisado: Fuentes primero · No es asesoramiento financiero