Firma masiva de Bitcoin: por qué algunos UTXO son más difíciles de firmar que otros

PrincipianteDec 27, 2023
Este artículo explora el uso de UTXO (Salida de transacción no gastada) y el impacto del tamaño de la firma en las tarifas de transacción.
Firma masiva de Bitcoin: por qué algunos UTXO son más difíciles de firmar que otros

¿Qué es la firma UTXO en masa?

Si bien sabemos que firmar transacciones con demasiados UTXO puede causar fallas en el dispositivo, esta declaración general aún deja algunas preguntas: ¿existe una cantidad definida de UTXO que podrían causar que una billetera de hardware falle al firmar? ¿Pueden ciertos UTXO causar más dificultades que otros?

Mientras investigaba las respuestas a estas preguntas, descubrí que el tiempo y el esfuerzo que requiere una billetera de hardware para firmar una transacción no depende únicamente de la cantidad de UTXO que se envían y de cuántas direcciones de recepción habrá. También depende de detalles similares que rodean las transacciones anteriores de las que surgió cada UTXO, un fenómeno que llamo "firma masiva". No conozco ninguna otra publicación que haga referencia a este concepto.

En otras palabras, los UTXO con mayor masa de firmas (que se explican con más detalle a continuación) pueden ser más difíciles de firmar que otros. Aunque dos UTXO pueden usar la misma cantidad de datos en la cadena de bloques, uno puede requerir un procesamiento sustancialmente mayor para firmar usando una billetera de hardware.

Este hecho se extiende más allá de los tipos de direcciones y los quórumes multifirma; un UTXO en una dirección multifirma 2 de 3 puede requerir un esfuerzo sustancialmente mayor para firmar que otro UTXO en esa misma dirección (o una dirección equivalente, e incluso si las cantidades de bitcoins y las direcciones de destino son exactamente las mismas).

¿Por qué algunos UTXO son más difíciles de firmar?

Para comprender por qué dos UTXO de apariencia similar pueden tener masas de firma dramáticamente diferentes, debe comprender el método indirecto que utilizan las billeteras de hardware para verificar las cantidades de entrada sin una conexión a Internet y cómo la complejidad de las transacciones puede diferir entre los diversos métodos de recibir bitcoins en su billetera.

Controles de seguridad de cantidad de entrada

Para cualquier transacción de bitcoin, es importante verificar los montos de las entradas; de lo contrario, grandes cantidades de sus bitcoins podrían pagarse accidentalmente a los mineros. ¿Por qué? Porque las tarifas cobradas por los mineros no se indican explícitamente en la transacción, sino que se calculan implícitamente restando el valor de los resultados del valor de los insumos. Por lo tanto, si hay una gran diferencia entre los dos números, la tarifa cobrada también será elevada.

Como ejemplo, si tenía UTXO por un total de 0,8 BTC y los usó para enviar 0,3 BTC a algún lugar, si no se envió los ~0,5 BTC restantes a usted mismo como cambio, el minero del bloque ahora puede reclamar los 0,5 BTC como un parte de sus honorarios ganados.

¡No te preocupes! Todas las herramientas bitcoin modernas y respetadas incluyen mecanismos de seguridad automáticos, por lo que cometer este error sería bastante difícil (si no imposible). El proceso puede ser tan simple como buscar en la cadena de bloques para verificar la cantidad de entradas y luego comparar su total con la suma de las salidas elegidas para determinar si la tarifa es razonable.

Pero, por supuesto, las carteras de hardware están diseñadas para funcionar independientemente de Internet, lo que es especialmente evidente en el caso de los dispositivos con espacio de aire. Sin Internet o una conexión de nodo, no se puede observar la cadena de bloques. Por lo tanto, la mayoría de las billeteras de hardware deben utilizar un método alternativo e indirecto para verificar las cantidades de entrada. Esencialmente, el dispositivo no sólo necesita importar la información que describe la transacción que firmará, sino que también debe importar el historial de dónde proviene cada entrada.

Dicho de otra manera, para cada UTXO que se mueve, el dispositivo querrá verificar los detalles de la transacción directamente antes, lo que llevó a la creación de ese UTXO. Si esa transacción fuera compleja, implicaría importar más datos, lo que se reflejaría en algo así como el tamaño de un archivo PSBT. Echemos un vistazo a la complejidad de las transacciones.

Complejidad de las transacciones de fuentes comunes

La mayoría de las personas reciben bitcoins en su billetera de tres maneras: desde un intercambio, desde un grupo de minería o directamente de otra persona en una transacción de igual a igual (P2P). Las transacciones entre pares suelen contener una complejidad muy baja y los UTXO resultantes tendrán una masa de firmas relativamente pequeña.

Sin embargo, los intercambios y los grupos de minería tienden a distribuir fondos en lotes, enviando bitcoins a muchas personas a la vez dentro de la misma transacción. Estas transacciones son más complejas y los UTXO resultantes tendrán una mayor masa de firmas.

Investigué las tendencias de distribución de varios pools e intercambios de minería populares en Estados Unidos, y mis hallazgos se presentan en el siguiente cuadro. El número de salidas indica el número de personas que normalmente envían bitcoins dentro de cada distribución. Un número mayor significa una mayor complejidad de las transacciones y una carga masiva de firmas más considerable para los destinatarios.

Estos números son aproximaciones al momento de escribir este artículo y están sujetos a cambios según cómo cada grupo o intercambio realice distribuciones en el futuro.

Tenga en cuenta que las distribuciones de los grupos de minería son generalmente mayores que las de los intercambios, y ciertos grupos de minería como F2Pool utilizan distribuciones extraordinariamente grandes. En consecuencia, si recibe un UTXO directamente de un pago de F2Pool, es más probable que ese UTXO cause que ciertas billeteras de hardware tengan dificultades para firmar.

Una nota sobre SegWit y la vulnerabilidad BIP 143

En 2017, se produjo la bifurcación suave de testigos segregados y se cambió el proceso de firma para las transacciones SegWit. Se introdujo el requisito de incluir cantidades de entrada en los datos a los que los usuarios se comprometen con una firma. Como resultado, se creía que se evitaría cualquier intento de engañar a un usuario o dispositivo para que firmara inadvertidamente una transacción con tarifas absurdamente altas. La mayoría de los fabricantes de billeteras de hardware actuaron en consecuencia, eliminando los controles de seguridad del monto de entrada y simplificando el proceso de firma para las transacciones SegWit.

Sin embargo, a mediados de 2020, se encontró una vulnerabilidad en BIP 143, lo que llevó a muchos fabricantes de billeteras de hardware a reintroducir controles de seguridad de la cantidad de entrada para las transacciones SegWit. Al momento de escribir este artículo, las comprobaciones de seguridad del monto ingresado siguen siendo un proceso normal durante la firma de una billetera de hardware. Hay cierta discusión en la comunidad sobre cambios futuros que podrían eliminar de manera más efectiva la necesidad de controles de seguridad del monto de entrada, como hacer que las tarifas sean explícitas dentro de cada transacción en lugar de implícitas.

¿Cómo me afecta la masa de firmas?

Las variaciones en la masa de firmas significan que cuando intentas retirar bitcoins de tu billetera de almacenamiento en frío de autocustodia, hay cierta relevancia en cómo obtuviste el bitcoin en primer lugar. Los métodos que utilice para adquirir bitcoins pueden crear diferencias a la hora de aprobar transferencias.

Anticipar y afrontar errores de firma

Si posee un UTXO que se movió desde una billetera diferente que usted controla o que se recibió de una transacción de igual a igual, es probable que la transacción haya sido relativamente simple. El UTXO tendrá una masa de firmas menor y será más fácil de firmar durante un gasto futuro. Por otro lado, si recibió un UTXO directamente de un grupo de minería, o especialmente de un grupo de minería que realiza distribuciones muy grandes (como se muestra en el gráfico anterior), puede esperar que ese UTXO sea más difícil de firmar.

Afortunadamente, si su billetera de hardware no firma porque está intentando mover demasiados UTXO de gran masa simultáneamente, esto no significa que su bitcoin esté permanentemente bloqueado. Una solución rápida y sencilla es dividir su transacción en varias transacciones, moviendo sus bitcoins en partes. Cada fragmento contendrá solo una fracción de los datos y es más probable que su dispositivo proporcione una firma con éxito.

Otra estrategia es prevenir fallas de firma en primer lugar controlando la cantidad de UTXO que tiene y la masa de firma de esos UTXO. Si bien no se puede cambiar la forma en que los pools e intercambios de minería distribuyen los fondos, es esencial recordar que la masa de firmas de un UTXO está determinada por la transacción inmediatamente anterior, no por el historial de transacciones anterior a esa. Esto significa que podría recibir un UTXO de un grupo de minería y transferirlo inmediatamente a otra billetera o dirección que controle, imitando una transacción de igual a igual. El UTXO resultante en la nueva dirección tendrá una masa de firma pequeña en lugar de grande.

La firma masiva no afecta las tarifas de transacción

Es importante resaltar que la firma masiva solo afecta el tiempo y el esfuerzo que requiere una billetera de hardware para firmar una transacción, no las tarifas de red que pagará. Esto se debe a que la firma masiva solo es relevante durante el proceso de firma y no hará que su transacción ocupe más datos en la cadena de bloques.

Esto significa que no necesariamente pagará más tarifas de transacción si recibe bitcoins de un grupo de minería como F2Pool, ni sus tarifas de transacción disminuirán al elegir un servicio que utilice menos resultados para sus distribuciones.

Descargo de responsabilidad:

  1. Este artículo está reimpreso de [unchained]. Todos los derechos de autor pertenecen al autor original [Tom Honzik]. Si hay objeciones a esta reimpresión, comuníquese con el equipo de Gate Learn y ellos lo manejarán de inmediato.
  2. Descargo de responsabilidad: los puntos de vista y opiniones expresados en este artículo son únicamente los del autor y no constituyen ningún consejo de inversión.
  3. Las traducciones del artículo a otros idiomas están a cargo del equipo de Gate Learn. A menos que se mencione, está prohibido copiar, distribuir o plagiar los artículos traducidos.
Şimdi Başlayın
Kaydolun ve
100 USD
değerinde Kupon kazanın!
Üyelik oluştur