Modelo UTXO y Tarifa Trans / Kb Aclaración

He estado trabajando para comprender las entradas/salidas y los detalles de la transacción de acuerdo con el modelo UTXO que se analiza en esta pregunta y también estoy pensando en cómo se relaciona con la tarifa de transacción según el tamaño en kb de la transacción que se analiza en esta pregunta . Quiero aclarar algunas cosas, siéntete libre de separar todo lo que diga que esté mal además de responder mis preguntas, ya que las preguntas se derivan de mis entendimientos.

Parece que el tamaño de la transacción es principalmente una función de la cantidad de entradas y salidas (en el sentido de que esas son las cosas sobre las que tengo control como remitente, donde los otros componentes que contribuyen al tamaño son más o menos estáticos).

Aclaración 1: (ignorando la tarifa y el cambio) Supongamos que Alice me envía (¡Bob!) 2 btc. Obtuvo estos 2 btc como resultado de que Larry y Greg le enviaron 1 btc cada uno. Esto significa que tiene estas dos salidas UTXO cada una por 1 btc asociadas a su billetera, y cuando me las envíe, la transacción tendrá 2 entradas y 1 salida, algo así como esta transacción que encontré en un explorador de bloques.

ingrese la descripción de la imagen aquí

Una vez procesada esta transacción,does my wallet remember that these 2 btc came from separate UTXO's? Or does it "get melted" as someone alluded to in my first link. More precisely, if I send these 2 btc to Gerald, will it show 1 input or 2?

Aclaración 2: (con cargo y cambio) Alice quiere enviarme 2 btc. Anteriormente, Larry, Greg y Allan le enviaron 1 btc. Así que tiene 3 UTXO asociados con su billetera, cada uno con un valor de 1 btc. Ella va a enviarme 2 btc, pero necesita cubrir la tarifa. Por conveniencia, digamos una tarifa de .5 btc. Does this mean she now has 3 inputs and 2 outputs contributing to the size of the transaction (and thus contributing to the size of the fee)(ella necesita las tres monedas para pagarme y cubrir la tarifa, y luego yo seré una salida y su "cambio de dirección" será la otra.

Por último, creo que entiendo que la mayoría de los servicios de billetera "manejan" todos estos detalles por usted en el sentido de que solo puede ingresar la dirección btc y cuánto desea enviar y ellos se encargan del resto. Do they typically do this in a most efficient way?Por ejemplo, supongamos que uso una billetera como Nano Ledger S. Si tengo un UTXO por 25 btc, un UTXO por 1 btc y 5 UTXO por .5 btc y voy a enviarle a alguien 1 btc, ¿seleccionará los UTXO? que resultan en el tamaño de transacción más pequeño?

Anexo: Planeo estar activo en este sitio, así que critique si mis preguntas pueden mejorarse para adaptarse mejor a esta comunidad.

Respuestas (3)

¿mi billetera recuerda que estos 2 btc provienen de UTXO separados? ¿O se "derrite" como alguien aludió en mi primer enlace? Más precisamente, si envío estos 2 btc a Gerald, ¿mostrará 1 entrada o 2?

(1) Tienes un único UTXO de 2 BTC, creado por la transacción de Alice. Esa transacción gastó dos UTXO, pero los fusionó en uno solo. A su billetera no le importa su historial: tiene un UTXO y, cuando lo gasta, necesita una transacción con una entrada.

Es posible que la billetera u otro software descubra el historial de las monedas y descubra que proviene de una transacción que gastó dos. Pero no tiene impacto en transacciones futuras con él.

¿Significa esto que ahora tiene 3 entradas y 2 salidas que contribuyen al tamaño de la transacción (y, por lo tanto, contribuyen al tamaño de la tarifa)?

Así es. Crearía una transacción con 3 entradas (cada una de 1 BTC) y 2 salidas (una de 2 BTC, una de 0,5 BTC). La diferencia es de 0,5 BTC que van a las tarifas.

¿Hacen esto típicamente de la manera más eficiente?

A menudo, no, en realidad. Porque "más eficiente" no es el único criterio para optimizar. Por ejemplo, desea minimizar el costo de las transacciones ahora, pero tampoco quiere llevar su billetera a un estado que aumente el costo de las transacciones más adelante. Por ejemplo, algunas estrategias para la selección de monedas (como se llama este problema) darían como resultado la trituración continua de sus monedas en cambios cada vez más pequeños en las cargas de trabajo típicas, lo que hace que sea cada vez más costoso enviar futuras monedas.

Algunas billeteras tendrán en cuenta las condiciones actuales de las tarifas para tomar estas decisiones.

En general, hay una cantidad significativa de trabajo que analiza varios esquemas de selección de monedas. Algunos aparecen en la tesis de maestría de Mark Erhardt .

¡Gracias por el enlace! Mi experiencia es en matemáticas puras, lo que me llevó a la criptografía, lo que me llevó a estudiar bitcoin. Me alegra saber que esta es un área interesante de preguntas.
una pregunta relacionada con este post. ¿La razón por la que la tarifa de transacción está relacionada con el tamaño es porque un tx de menor tamaño implica que el minero podría haber colocado más tx en un bloque?
Sí, exactamente eso. La optimización para obtener el máximo ingreso por tarifas lleva automáticamente a los mineros a priorizar por tarifa por byte (o por peso, dado que segwit, ya que la restricción es peso de bloque limitado, no tamaño de bloque ahora).

Una vez que se procesa esta transacción, ¿mi billetera recuerda que estos 2 btc provienen de UTXO separados? ¿O se "derrite" como alguien aludió en mi primer enlace? Más precisamente, si envío estos 2 btc a Gerald, ¿mostrará 1 entrada o 2?

Su billetera puede o no realizar un seguimiento del historial de los fondos que recibió. Pero todo lo que realmente importa a partir de ese momento es que tiene un UTXO que es suyo para hacer lo que desee.

Por último, creo que entiendo que la mayoría de los servicios de billetera "manejan" todos estos detalles por usted en el sentido de que solo puede ingresar la dirección btc y cuánto desea enviar y ellos se encargan del resto. ¿Hacen esto típicamente de la manera más eficiente? Por ejemplo, supongamos que uso una billetera como Nano Ledger S. Si tengo un UTXO por 25 btc, un UTXO por 1 btc y 5 UTXO por .5 btc y voy a enviarle a alguien 1 btc, ¿seleccionará los UTXO? que resultan en el tamaño de transacción más pequeño?

Para casos simples, normalmente lo hacen. Para casos muy complejos, es bastante costoso desde el punto de vista computacional garantizar que siempre produzca el resultado absolutamente óptimo, dado que la cantidad de posibilidades que deben considerarse puede volverse absurdamente grande. La mayoría de las implementaciones no garantizan que siempre producirán el mejor resultado, sino que utilizan heurísticas que, de hecho, encuentran el resultado óptimo la gran mayoría de las veces para casos típicos y aún brindan muy buenos resultados en situaciones absurdamente complejas con potencialmente miles de UTXO para escoge de.

¿mi billetera recuerda que estos 2 btc provienen de UTXO separados? ¿O se "derrite" como alguien aludió en mi primer enlace? Más precisamente, si envío estos 2 btc a Gerald, ¿mostrará 1 entrada o 2?

Muestra como 1 UTXO que puedes gastar. A su billetera no le importan los UTXO que se gastaron para crear los UTXO que puede gastar. No hay nada allí que necesite saber, así que no le importa.

¿Significa esto que ahora tiene 3 entradas y 2 salidas que contribuyen al tamaño de la transacción (y, por lo tanto, contribuyen al tamaño de la tarifa) (necesita las tres monedas para pagarme y cubrir la tarifa, y luego seré una salida y su "cambio de dirección" será la otra.

Sí.

¿Hacen esto típicamente de la manera más eficiente? Por ejemplo, supongamos que uso una billetera como Nano Ledger S. Si tengo un UTXO por 25 btc, un UTXO por 1 btc y 5 UTXO por .5 btc y voy a enviarle a alguien 1 btc, ¿seleccionará los UTXO? que resultan en el tamaño de transacción más pequeño?

No necesariamente.

Ahora te estás metiendo en un área que se considera difícil. En general, esta pregunta se trata de algoritmos de selección de monedas, de los cuales hay muchos y se optimizan para diferentes cosas. La selección de monedas también es un problema multidimensional, y lo que se considera bueno, malo, eficiente o ineficiente no está bien definido.

Gracias por la elaboración de la selección de monedas. Mi experiencia es en matemáticas puras, lo que me llevó a la criptografía, lo que me llevó a estudiar bitcoin. Me alegra saber que esta es un área interesante de preguntas. ¿Puede indicarme algún lugar donde pueda encontrar más información sobre las áreas de investigación más importantes en torno a btc/crypto/blockchain?