Saltar al contenido
Ultimas Noticias de Criptomonedas Bitcoin, Ethereum, XRP

El descuento para testigos: por qué algunos bytes son más baratos que otros

diciembre 18, 2023
el-descuento-para-testigos:-por-que-algunos-bytes-son-mas-baratos-que-otros

Este año se ha producido un aumento masivo en la demanda del espacio limitado disponible dentro de los bloques de bitcoin, lo que ha llevado una cadena de tarifas más altas para las transacciones en Gran parte de la demanda es de transacciones que revelan inscripciones. El contenido de estas inscripciones se revela como parte de los datos de los testigos.1 de una transacción de bitcoin. Estos datos de testigos1 se descuenta a una cuarta parte del costo de otros datos de transacciones. ¿Por qué damos un descuento a estas inscripciones? ¿Deberíamos desembolsar el descuento para testigos?

¿Por qué algunos bytes son más baratos que otros?

El dinero en general y el bitcoin en particular operan gracias a incentivos humanos. Bitcoin alinea los incentivos de los mineros y los realizadores de transacciones mediante el uso del token nativo de bitcoin para pagar a los mineros por la inclusión de transacciones particulares en los bloques que construyen. No se puede decir lo mismo de alinear los incentivos de los corredores de nodos con los mineros y los participantes en las transacciones, ni de alinear los incentivos entre remitentes y destinatarios.

Hasta la fecha, ha habido 3 mejoras importantes en la alineación de incentivos de Bitcoin:

1. Limitar el tamaño del bloque

2. Trasladar el coste de los scripts complejos del remitente al destinatario (P2SH)

3. Alinear los costos de los datos entre los corredores de nodos y los operadores de transacciones (SegWit)

Limitar el tamaño del bloque

Los operadores quieren realizar muchas transacciones y los mineros quieren cobrar muchas tarifas de transacción; pero los corredores de nodos tienen que transmitir, verificar y almacenar todos los datos de esas transacciones y no reciben compensación como los mineros por hacerlo. Al principio de la historia de Bitcoin, Satoshi trabajó para solucionar este problema agregando un límite de tamaño de bloque fijo (aplicado por los nodos). El límite era de 1 millón de bytes por bloque y establecía un límite superior a la cantidad de datos que los nodos necesitarían descargar y verificar. En ese momento, Satoshi escribió«[w]Podemos implementar un cambio gradualmente más adelante si nos acercamos a necesitarlo». Más tarde, refiriéndose a un parche para aumentar el límite, señaló: «[d]»Si no usas este parche, te hará incompatible con la red», lo que significa que aumentar el límite de tamaño de bloque es un cambio de bifurcación dura y requiere más coordinación incluso que una bifurcación suave. En los años siguientes, bitcoin evitó deliberadamente tales cambios. cambios de bifurcación duran incompatibles, lo que también tiene significado mantener el límite de tamaño de bloque de 1 millón de bytes.

Transferir los costos de scripts complejos del remitente al destinatario

Debido a que bitcoin está protegido mediante scripts de bloqueo, siempre ha sido posible bloquearlo con scripts avanzados, incluido multisig. Según el diseño original, el remitente de una transacción de bitcoin colocaría el script de bloqueo completo del destinatario en su transacción y pagaría cualquier tarifa para incluir ese script de bloqueo en un bloque. Los desarrolladores se dieron cuenta de que a medida que aumentaban las tarifas, los remitentes podrían dudar en pagar a los usuarios de scripts de bloqueo más grandes debido al mayor costo de pagar a esos usuarios. Estos complejos scripts de bloqueo también plantearon un problema a la hora de codificarlos en direcciones y compartirlos mediante mecanismos de bajo ancho de banda, como el código QR.

Para resolver esto, P2SH se agregó un bitcoin como un soft fork. Según las reglas de esta bifurcación, en lugar de colocar el script de bloqueo completo del destinatario en el resultado de la transacción, el remitente simplemente incluye un hash del mismo. Cuando el destinatario inevitablemente gasta esa producción, incluye el script completo en la transacción de gasto, que se compara con el hash del script al que está bloqueada la moneda antes de ser validada. Con este cambio, un script de canje de cualquier tamaño podría representarse mediante un script de bloqueo de longitud fija y los remitentes ya no tenían la necesidad (o capacidad) de discriminar entre destinatarios según sus condiciones de gasto.

Alinear los costos de los datos entre los corredores de nodos y los operadores de transacciones

La verificación más fundamental que realiza los nodos en las transacciones de bitcoins es que el bitcoin que intenta gastar, de hecho, existe. Para hacer esto, cada nodo mantiene un índice de cada unidad de bitcoin gastable (salida de transacciones no gastadas, UTXO). Cuanto mayor sea este índice, mayor será el costo de ejecutar un nodo y verificar transacciones futuras.2. Como resultado, una transacción que aumenta el tamaño de este índice (teniendo más salidas que entradas) cuesta más con el tiempo que una transacción con la misma cantidad de bytes que reduce el tamaño del índice.

La mayor parte de la mayoría de los scripts de desbloqueo de bitcoins son las firmas criptográficas. Estas firmas tienen aproximadamente el doble del tamaño de sus claves públicas correspondientes, lo que hace que los scripts de desbloqueo (incluso sin P2SH) sean más grandes que los scripts de bloqueo.

El costo significativamente mayor de consumir versus crear UTXO crea un conflicto de incentivos entre los corredores de nodos y los realizadores de transacciones. Los actores de transacciones no están incentivados a gastar sus pequeños UTXO (especialmente en momentos con tarifas altas), prefiriendo gastar grandes UTXO y crear más UTXO de cambio pequeño. Mientras tanto, los corredores de nodos pagan el costo de esta acumulación de pequeños UTXO en costos de validación más altos para todas las transacciones.

Por extraño que parezca, la verificación de que cada UTXO gastó por una transacción en el histórico cadena de bloques que su script de bloqueo sea satisfecho por un script de desbloqueo correspondiente es significativamente menos fundamental. De hecho, un nodo bitcoin que ejecutar bitcoin core 26.x predeterminado no validará la ejecución completa del script de bloqueo para transacciones anteriores al bloque 804000 (19 de agosto de 2023).

Todo lo anterior significa que existen diferentes costos impuestos a los nodos de bitcoin por diferentes partes de la cadena de bloques. Los datos necesarios para determinar los efectos de cada transacción deben ser validados por cada nodo que se sincroniza desde el bloque de génesis.3los resultados de las transacciones tienden a ser más costosos que los insumos de las transacciones a largo plazo (especialmente si son de larga duración), y muchos de los datos de los testigos ni siquiera se verifican, excepto las transacciones más recientes.

Ingrese el testigo segregado

el testigo segregado (SegWit) La bifurcación suave es el cambio más ambicioso realizado en Bitcoin hasta la fecha. La mayor motivación para el cambio fue solucionar el problema de datos largos de TXID.4 maleabilidad5 es bitcoins. Para solucionar esta maleabilidad, el script de desbloqueo se reemplaza con un «testigo» recién creado. Al eliminar los datos de autorización (que a menudo pueden ser modificados por terceros sin cambiar los efectos de la transacción) del TXID, se hacen posibles protocolos (como Lightning) que dependen de TXID inmutables.

Una vez que los datos de autorización se sacaron de la estructura de transacción original, ya no cuentan para el límite de bloque de 1 millón de bytes. Se requiere un nuevo límite. En ese momento se discutieron muchos enfoques para limitar los datos de testigos segregados: Un límite de bytes de testigo separado6un límite combinado de < 1 millón de bytes7, o un límite combinado ponderado. Al final, se eligió el límite combinado ponderado, con datos de testigos segregados ponderados en 1 unidad, datos de transacciones ponderados en 4 unidades y un límite de bloque de peso de 4 millones. Cada unidad de peso se trata como 1/4 de un byte virtual (vByte) a efectos de cálculo de tarifas.

¿Por qué estos pesos? Veamos el costo de las entradas y salidas de transacciones con y sin testigo segregado:

Lo primero que hay que tener en cuenta en esta tabla es cómo los tipos de secuencias de comandos testigo (P2WPKH, P2WSH) tienen casi la misma cantidad de bytes de entrada y salida (que se cobran un vByte completo cada uno). Luego, al gastador de un script testigo se le cobra 1/4 de vByte por los datos que autorizan el gasto, muchos de los cuales no se verifican excepto para las transacciones más recientes, y ninguno de los cuales tiene un costo continuo en el índice UTXO. La otra cosa que vale la pena señalar aquí es cómo el costo de usar una firma múltiple 2 de 3 más segura en comparación con una firma única se reduce de 147 vBytes a 36,25 vBytes.

La raíz principal y las inscripciones lo cambian todo (o nada)

Como dije al principio, bitcoin se basa en incentivos humanos, y aquí podemos ver cómo se han realizado cambios en bitcoin a lo largo de los años para mejorar la alineación de incentivos entre las partes que utilizan la red.

Taproot en sí es «sólo» una forma alternativa de bloquear bitcoins mediante testigos segregados. No cambian estos incentivos significativamente. Uno de los cambios que vino junto con Taproot fue eliminar ciertos límites en el tamaño del script. Esto se hizo para reducir la complejidad del diseño de herramientas de análisis para scripts de bitcoin y como reconocimiento del costo relativo de los diferentes tipos de datos. La eliminación de estos límites hizo que las inscripciones fueran más simples de lo que eran antes de Taproot, pero no cambió principalmente la estructura de incentivos de la red.

Ahora al quid de la cuestión. Las inscripciones se revelan en el testigo, por lo que solo se les cobra 1/4 vByte por byte de datos de inscripción. ¿Es esto un abuso del descuento de testigos? La verdad es que los datos de inscripción son algunos de los datos más baratos de validar para los nodos de la red. La estructura de script utilizada por las inscripciones omite explícitamente la ejecución de los datos de la inscripción, por lo que la única verificación que se realiza es una verificación de hash única (asegurando que la inscripción revelada es lo que el inscriptor planeó revelar). Estos datos se procesan una vez y los nodos nunca los vuelven a examinar. Tiene un costo computacional muy bajo (un orden de magnitud menor que un script multifirma de tamaño equivalente).

Pero las inscripciones están elevando las tarifas y expulsando a otros usuarios.

¡Si! Con el software actual disponible para interactuar con la red bitcoin, los inscritos tienen mayores incentivos económicos para realizar sus inscripciones que muchas personas para realizar otras transacciones.

Esto pone de aliviar el valor de la densidad económica de las transacciones de bitcoins. Lightning Network da un gran paso hacia esto al permitir que cientos, millas o millones de transacciones económicas se empaqueten en una sola transacción de bitcoin. Cuanto mayor sea la densidad económica de cada byte en una transacción, menor será la tarifa pagada por esa actividad económica. A medida que aumenta la densidad económica de las transacciones de bitcoins, otros usos del espacio de bloques han sido y seguirán siendo descartados.9.

Vale la pena señalar que si protocolos multifirma fuera de cadena como MuSig2 oh ESCARCHA, o las firmas de adaptadores se vuelven prevalentes; él puede Tiene reducir sentido o eliminar el descuento de testigo. Estos protocolos pueden permitir que condiciones de gasto que de otro modo sean importantes se representen mediante una sola firma. Esto, combinado con el gasto eficiente en la ruta clave de Taproot, podría reducir el costo de un insumo con condiciones casi arbitrariamente complejas a solo 105 bytes.

Conclusión

La respuesta a las altas tarifas causadas por las inscripciones es la misma que ante cualquier otro supuesto escenario de caída del cielo en la historia de bitcoin: construir con paciencia, construir con paciencia. Hay mucho que podemos s hacer para aumentar la densidad económica de las transacciones de bitcoins, desde crear mejores billeteras Lightning hasta arca a contratos de registro discreto y más allá. Eliminar el descuento de testigo (prematuramente), revertir la raíz principal o acciones contraproductores similares solo servirán para reducir la densidad económica de las transacciones actuales de bitcoins y exacerbar la situación.

Mantente humilde, acumula sats y construye.

Notas a pie de página

  1. El término testigo fue adoptado en bitcoin de la jerga criptográfica, donde se refiere a los datos necesarios para verificar de manera eficiente una afirmación criptográfica. BIP141 lo define como cualquier «dato requerido para verificar la validez de la transacción pero no requerido para determinar los efectos de la transacción». Es posible que los criptógrafos hayan tomado el término de las marcas testigo de fabricación utilizadas para verificar de manera eficiente la alineación de los componentes.
  2. el Utreexo El proyecto tiene como objetivo cambiar esto para un subconjunto de nodos de bitcoin permitiéndoles acumular de manera eficiente raíces de inclusión UTXO y luego recibir las rutas de inclusión junto con los gastos de esos UTXO. Si esto se convierte en una forma común de usar bitcoin, trasladará el costo de más UTXO de los nodos a los titulares de esos UTXO.
  3. el sincronización cero El proyecto tiene como objetivo cambiar esto para algunos nodos en algunos contextos.
  4. ID de transacción: orden de bytes invertido doble SHA256 de la transacción en formato de red pre-segwit.
  5. Múltiples transacciones válidas Las acciones con las mismas entradas y salidas tienen diferentes txids si están firmadas de diferentes maneras o si un tercero modifica sus firmas.
  6. Puede tener cualquier valor sin una bifurcación dura porque los nodos antiguos no conocen los datos de testigos segregados.
  7. 1 millón o menos para mantener la compatibilidad y evitar una bifurcación dura.
  8. Suponiendo el uso de claves públicas compactas y firmas DER de bajo R/S de 71 bytes.
  9. alguien recuerda Dados Satoshi?

Esta es una publicación invitada de Brandon Black. Las opiniones expresadas son enteramente propias y no reflejan necesariamente las de BTC Inc o Bitcoin Magazine.

Ajustes