Cómo optimizar los costos por transacciones en Bitcoin (1)

Dado los recientes eventos en Bitcoin, principalmente con respecto a las comisiones y procesamiento de transacciones, donde se ha llegado a pagar hasta $40 por una transacción; se hace necesario buscar alternativas para optimizar los costos. Aquí queremos presentarles algunas posibilidades que estamos explorando.

Antes de ir al detalle refresquemos los conceptos respecto a las transacciones. El costo de una transacción se calcula en base a la fórmula: satoshi por tamaño en bytes de la misma. El tamaño en bytes varía de acuerdo a cómo está estructurada la transacción. Aspectos que pueden afectar son: entradas, salidas, múltiples firmas, datos (Bitcoin script).

En Bitcoin no existen fondos almacenados en un lugar, sino UTXO (salidas de transacción no gastadas) que se pueden gastar por una determinada clave privada que pueda desbloquearlos. Es así que cuando uno envía fondos a otra persona, la transacción utiliza estos UTXO como entradas y genera uno o más nuevos UTXO como salida. Este concepto es importante al momento de pensar en el costo de las comisiones. Una transacción promedio con dos entradas y dos salidas ocupa aproximadamente 256 bytes. Si el precio de momento es 100 satoshi/byte, el costo será 25600 satoshis, que multiplicado por el precio de mercado de Bitcoin (digamos $14000) resultaría en $3.5.

Supongamos que una persona ha recibido muchos pagos pequeños, digamos de 0.0004 BTC y debe enviar una transacción por 0.05, lo que ocurrirá es que se utilizarán cuanto menos 12 entradas para poder generar esa salida. Un caso inverso es cuando se tiene 0.05 y se desea enviar 0.0004 a diferentes cuentas en la misma transacción. En estos dos últimos ejemplos el tamaño de la transacción en bytes se incrementará por esas razones.

SegWit
SegWit ha sido una de las principales innovaciones en el ecosistema Bitcoin. Desde su activación en agosto pasado ya se pueden efectuar transacciones en la red de Bitcoin utilizando este nuevo formato que reduce efectivamente el tamaño en bytes de la transacción a la mitad al no incluir los datos de las firmas en la misma. Sin embargo, salvo poco casos, todavía no se encuentra disponible en muchas billeteras, casas de cambio, etc. que son populares entre los usuarios de Bitcoin.

Para efectuar transacciones con SegWit se debe contar primero con una billetera en este formato, cuya dirección pública inicia con el número 3. En el cliente Bitcoin (0.13.1+) la interfaz gráfica todavía no tiene habilitada la opción para generar direcciones SegWit. Sin embargo, se puede generar billeteras SegWit desde la línea de ordenes. Para esto debe seguir los siguientes pasos:

  1. Arrancar bitcoind o Bitcoin Qt
  2. Invocar la orden bitcoin-cli addwitnessaddress
  3. Se deberá generar una dirección que inicia con 3.

Hay que mencionar que el envío de fondos desde una dirección SegWit a otra que no lo es funciona sin inconvenientes, lo mismo en el sentido inverso. Para el primer caso hay que tener en cuenta que al efectuar la transacción el destinatario no va a visualizarla hasta que esta se incluya en un bloque. Esto es una medida de seguridad para evitar que los clientes o billeteras que no han implementado SegWit puedan confundirla.

Otras billeteras que ya soportan SegWit son:

  • GreenAddress
  • AirBitz
  • BitGo
  • Purse.io
  • Blockchain.info
  • Samourai
  • Electrum (Escritorio)
  • Trezor (Hardware)
  • Ledger (Hardware)

Hemos visto que el uso de billeteras SegWit efectivamente ayuda a reducir el costo de transacción directamente pues emplea menos bytes en cada transacción. Para terminar, es importante mencionar que el cliente o usuario puede definir cuanto desea pagar de comisión por su transacción. Lo que usualmente se hace, directa o indirectamente, es pagar una comisión sobre el precio de mercado para asegurar que los mineros incluyan la misma en el siguiente bloque. Sin embargo, no es necesario hacerlo si no existe tal premura como veremos posteriormente.

2 Me gusta

También tener en cuenta de que se habla de una transacción con dos salidas (UTXO) porque, eventualmente, en una se está enviando los fondos a otra cuenta y en la otra se retorna el cambio al propietario que origina la transacción a fin de que pueda gastarlo en un futuro.
El no hacer esto puede resultar en pérdida del total de fondos que tiene disponibles puesto que la transacción opera con el total de fondos que la cuenta puede desbloquear.

2 Me gusta

Exactamente. Es el análogo de pagar una cuenta de 24 dólares/euros/soles con un billete de 100 dólares/euros/soles. Si no pides el cambio, pierdes los 76.

1 me gusta