Taxa (Fee)

O restante de uma transação

Uma taxa de transação é o restante de uma transação.

Se você somar todos os valores das entradas e subtrair todos os valores das saídas, o que sobra é a taxa. Por exemplo:

entrada 0 = 2699815 satoshis
saída   0 = 1593900 satoshis
saída   1 = 1060915 satoshis
taxa      =   45000 satoshis

Como você pode ver, não há uma saída designada de "taxa" nem nada assim. A taxa é só a quantidade de moedas que você não consome na transação.

Cuidado, pois qualquer quantidade de satoshis que sobre em uma transação será recolhida como taxa. Algumas pessoas já definiram taxas enormes por engano ao dimensionar incorretamente suas saídas. Por exemplo, uma transação chegou a ter uma taxa de 291,240900 BTC.

Incentivo ao Minerador

Por que definir uma taxa em uma transação?

Uma taxa de transação funciona como um incentivo para um minerador incluir sua transação no bloco candidato dele. Os mineradores coletam todas as taxas das transações que incluem no bloco (via a transação coinbase). Então, se há mais transações no memory pool do que cabem no próximo bloco, os mineradores escolhem as de maior taxa.

Se todas as transações do memory pool cabem no próximo bloco, você pode definir a taxa mínima, pois não há competição.

Taxas por Byte (Feerates)

Como as taxas de transação são medidas?

Os mineradores querem maximizar as taxas. Para isso, medem cada transação pela taxa que ela fornece por espaço que ocupa em um bloco. Uma transação pequena com uma taxa grande é mais valiosa do que uma transação grande com a mesma taxa. Pegamos o tamanho da taxa e dividimos pelo tamanho da transação — isso é a taxa por byte (feerate).

Há 3 formas de medir feerates:

  1. sats/byte (Obsoleto) – usado quando o limite do bloco era de 1.000.000 bytes.
  2. sats/wu (Usado internamente) – satoshis por unidade de peso.
  3. sats/vbyte (Mais comum) – satoshis por byte virtual (peso ÷ 4). É o que a maioria das carteiras e exploradores usa.

Aumentar a Taxa (Fee Bumping)

E se a taxa for baixa demais e a transação travar?

Há duas formas de aumentar a taxa de uma transação que já está no memory pool:

  1. Replace By Fee (RBF). Se a transação original tem a flag RBF habilitada (no campo sequence), você pode transmitir uma nova versão da transação que gasta as mesmas entradas, mas com uma taxa mais alta. A nova versão substitui a antiga.
  2. Child Pays For Parent (CPFP). Você cria uma nova transação ("filha") que gasta uma saída da transação travada ("pai"), colocando uma taxa alta nela. Como o minerador só pode minerar a filha junto com a pai, a taxa alta da filha incentiva a mineração de ambas.

Taxa Mínima de Retransmissão

Cada nó tem uma taxa mínima (padrão: 1 sat/vbyte) abaixo da qual não aceita nem retransmite uma transação. Então a taxa mínima prática para uma transação é geralmente 1 sat/vbyte.