Hace unas semanas ya que publié un artículo llamado “Gas en Ethereum” y claro, mis amigos bitcoiners, poco han tardado en decirme “Y bitcoin queeeeeee?”. Pues bien, con algo de retraso, llegamos. Hoy hablamos de lo que se conoce como “Fee de minería”, porque en bitcoin, amigos, no hay Gas. Hay “Fee de minería”
Y empiezo recordándote que Ethereum es POS (Proof of Stake) y Bitcoin es POW (Proof of Work). Si no tienes esto claro, a comentarios, pero esto creo que ya debería estar claro.
Las fees fueron inicialmente establecidas por dos razones. La primera de ellas es para incentivar la sostenibilidad de la red. Las fees son recibidas por los mineros que validan las transacciones y las añaden a los bloques.
La segunda razón es para evitar el SPAM de la red, que podría llegar a bloquearla. Y aquí vemos que fue el SPAM (o al menos en parte) algo que influyó en la creación de Bitcoin.
Hashcash
Hashcash fue un sistema de prueba de trabajo (POW - Proof of Work) inventado por Adam Back en 1997, cuyo objetivo era combatir el correo basura (SPAM). Su objetivo era disuadir a los spammers al exigirles que un trabajo de cálculo computacional complicado (y por tanto costoso) antes de enviar un correo electrónico.
De hecho, no me invento nada. HashCash es citado en el Whitepaper de Bitcoin en la página 2, dónde habla de “Proof of Work”:
To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proofof-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash.
Entonces, la usuarios que quieren hacer una transacción deberán pagar una comisión. Esa comisión será recibida por el minero para confirmarla y añadirla a un bloque. Ese bloque es lo que conforma, uno trás otro, lo que denominamos Cadena de Bloques o Blockchain.
La fee
Entonces nos queda claro que hay que pagar, y quien lo recibe. Además los mineros son un poco avaros y hay gente que quiere que sus transacciones lleguen antes.
Se juntan el hambre y las ganas de comer
Si tu quieres hacer una transacción y tienes prisa pues lo mismo quieres pagar más. Y los mineros siempre van a buscar la máxima eficiencia en su trabajo, así que a más dinero mejor. Entonces cuando todo el mundo tiene prisa todos pagan más, y si todos pagan más los que pagan menos verán que sus transacciones se encolan.
Pero ojo, al contrario que en Ethereum aquí no hay propina. Es lo mismo. Pagas más. Y punto.
El mempool
El mempool de Bitcoin, también conocido como "piscina de memoria", es un espacio temporal donde se almacenan todas las transacciones de Bitcoin que aún no se han incluido en un bloque. Es como una sala de espera donde las transacciones esperan su turno para ser procesadas por los mineros.
¿Cómo funciona?
Cuando un usuario envía una transacción de Bitcoin, esta se transmite a la red.
Los nodos de la red verifican la validez de la transacción y la agregan al mempool.
Los mineros seleccionan las transacciones del mempool para incluirlas en los bloques que minan.
Cuando un bloque se mina, las transacciones que contiene se consideran confirmadas y se agregan a la blockchain.
¿Quieres ver el mempool?
En el preciso momento que estamos hablando hay 118.015 TXs sin confirmar (arriba a la derecha). Aquí una web.
Este artículo está patrocinado por Keystone 📱. Si no tienes Hardware o si ya tienes uno y necesitas renovar o mejorar, el Keystone 3 es la solución perfecta.
Compatible con decenas de wallets, 3 secure element chip para máximas seguridad, multiples semilla, open source, passphrase y más. No te pierdas la review y aprovecha ahora el descuento.
Determinación de la fee
Las fees se miden en satoshis, que es la unidad de medida más pequeña de bitcoin. Hay 100.000.000 de satoshis en 1 bitcoin.
Si un Bitcoin (BTC) vale $75,000, entonces 1 satoshi vale $0.00075.
Ahora viene lo sorprendente. Una transacción está compuesta de datos, información. Esa información se mide en bytes, y transacciones más complejas implican más datos, ergo más bytes, las cuales requieren más fees.
Lo sorprendente. Puede que hacer una transacción de 1 bitcoin conlleve información y por tanto sea más costosa, que enviar 10 bitcoins. Así que si pensabas que a más cantidad de bitcoin en la transacción más fee: Te equivocas.
El tamaño de una transacción en Bitcoin depende de varios factores:
1. Número de entradas: Cada entrada en una transacción representa una UTXO (Unspent Transaction Output) que se está gastando. Las UTXO son las "monedas" de Bitcoin y se crean cuando se recibe una transacción. Cuantos más UTXO se gasten en una transacción, mayor será su tamaño.
2. Número de salidas: Cada salida en una transacción representa una nueva UTXO que se crea. Si una transacción envía Bitcoin a múltiples destinatarios, habrá una salida por cada destinatario.
3. Datos adicionales: Las transacciones pueden incluir datos adicionales, como scripts de firma o información de OP_RETURN. Estos datos pueden aumentar el tamaño de la transacción.
UTXO
Imagina que tienes un monedero lleno de billetes, pero en lugar de billetes enteros, solo tienes pedacitos. Cada pedacito tiene un valor (por ejemplo, 10€, 5€ o 1€) y no se puede romper más pequeño.
En Bitcoin, las monedas también están como pedacitos llamados UTXO (siglas en inglés de "Salida de Transacción No Gastada"). Cada vez que recibes Bitcoin, se te agrega un UTXO a tu monedero digital.
A más billetes uses (UTXO) uses para hacer una transacción, más datos, sería la parte de entradas. Y si estuvieras haciendo el pago a varias direcciones diferentes más datos, que sería la parte de salidas.
Y la congestión de la red
Y ya lo he puesto arriba, pero lo pongo de nuevo. Si hay muchas transacciones pendientes pasan las más caras antes. Y se acumulan las que pagan menos. Porque ojo, tu pagas la comisión en sats/satoshis, por byte:
¿Y cuanto ocupa una transacción estándar, en bytes? Pues hay páginas que intentan simularlo, pero honestamente son muy orientativas. Por ejemplo esta.
Para mi son poco fiables, porque luego depende mucho de la wallet que uses, como de buena es estimando los costes de la red. Pero para que aprendamos por donde van los tiros nos vale.
¿Cuando debemos pagar si tenemos 1 UTXO y queremos enviar a un solo destinatario y además queremos confirmar rápidamente?
¿Y si no tenemos prisa?
La diferencia entre que nuestra transacción llegue de forma inmediata o tarde horas y horas son $2.2. Pero ahora imagina que en vez de 1 y 1 tenemos 10 y 100: 10 entradas que vamos a enviar a 100 wallets diferentes:
Pues ya hemos pasado a $105.08 para una confirmación inmediata. Y si no tenemos prisa….
Si quieres hacer pruebas aquí te dejo, de nuevo, la web.
Y todo lo anterior va a variar según la congestión de la red.
La consolidación de UTXO
Mucha gente lo que hace, sobretodo cuando tiene muchos UTXO (entradas en su wallet) es consolidar. Esto consiste en aprovechar:
Momentos que la red está poco congestionada
Que movemos fondos entre nuestra propia wallet.
Para enviar todos los UTXO de nuestra wallet, a otra dirección de nuestra misma wallet. Y entonces pasamos de 100 UTXO (o los que tengamos) a 1 solo UTXO.
Y esto nos permitiría que en algún determinado momento pudiéramos ahorrar algo de dinero (es decir bitcoin) cuando hacemos una transacción, y más ante una red congestionada.
¿Cómo se establecen las fees cuando hacemos una transacción?
En el post de Sparrow Wallet que hicimos usando esta wallet con mi Keystone 3 lo vimos muy de pasada.
Básicamente le decimos en cuantos bloques queremos tener la confirmación y la propia wallet usando los datos de la red y los datos de nuestra transacción, nos calcula lo que vamos a pagar:
En general, hoy en día, esto ya va fino. Es poco complicado y no suele fallar.
Como ves el tema de las fees en Bitcoin es mucho más sencillo e intuitivo. No digo que sea fácil de calcular, para eso ya usamos wallets, pero si es fácil de entender.
¿Tienes alguna duda? Yo te hago una. Si después del halving el minado de un bloque se paga a 3.125 bitcoins….¿es esa la cantidad que reciben los mineros por cada bloque?
Otro día quizás hablamos del tamaño del bloque, los hard forks de bitcoin y otras mierdas.
fantastico , gran valor