Pular para o conteúdo
buybitcoinsmart

Glossário / Transações e taxas

Byte virtual

Outros nomes: vbyte, vB.

O que é um byte virtual?
Um byte virtual é a unidade em que as carteiras cotam as transações, igual a um quarto do peso de uma transação arredondado para cima, de modo que toda cotação de taxa é expressa em satoshis por vbyte.

Especificação no BIP-141.

As carteiras poderiam cotar taxas em unidades de peso e nunca mais mencionar bytes, mas o byte virtual mantém a aritmética antiga intacta: uma transação sem dados de testemunha tem um vsize exatamente igual ao seu tamanho em bytes. Um bloco comporta 1.000.000 deles. Ler uma cotação em sat/vB é como você distingue uma taxa de saque justa de uma inflada.

Como funciona

O tamanho virtual sai de uma linha de aritmética: pegue o peso, divida por quatro, arredonde para cima.

A diferença entre esse número e a serialização bruta é onde o dinheiro se perde. Um pagamento que gasta um UTXO segwit nativo em duas saídas tem 222 bytes na rede, pesa 561 unidades de peso e é cobrado como 141 bytes virtuais. Multiplique os 222 pela taxa escolhida em vez dos 141 e você pagou a mais cerca de 57%. Os exploradores mostram as duas cifras lado a lado e as rotulam size e vsize, e escolher a errada é o erro aritmético mais comum na estimativa de taxas.

O arredondamento acontece uma vez, no final. As partes não vêm em números inteiros: uma entrada Taproot por caminho de chave mede 57,5 vbytes, então um total intermediário pode terminar em meio. Duas carteiras que montam o mesmo gasto podem, portanto, divergir em um único vbyte sem que nenhuma esteja errada. O Bitcoin Core expõe as três visões da mesma transação, size, vsize e weight, para que você mesmo possa conferir qualquer uma delas.

Os estimadores de taxas usam a mesma unidade de forma disfarçada. O estimatesmartfee responde em bitcoin por quilo-byte virtual, então uma taxa retornada de 0,00005000 significa que 5.000 satoshis compram 1.000 bytes virtuais, o que é 5 sat/vB. Cada faixa de um painel de mempool, cada controle deslizante de carteira e cada mensagem de rejeição sobre um piso de retransmissão é expressa da mesma forma.

Onde você vê isso

Os bytes virtuais decidem quanto custa de fato um saque de corretora, e vale a pena fazer a conta antes de aceitar uma taxa fixa.

Tome uma plataforma que agrupa: uma entrada que paga 100 saques de clientes em uma única transação. A 31 vbytes por saída segwit nativa, mais 68 pela entrada e cerca de 11 de sobrecarga, o conjunto todo fica em aproximadamente 3.179 vbytes. A 5 sat/vB custa 15.895 satoshis, ou cerca de 159 satoshis para cada uma das cem pessoas incluídas nele. Uma cobrança fixa de 0,0001 BTC fatura a cada uma delas 10.000 satoshis por esse espaço, mais de sessenta vezes a sua parte. A relação se inverte em um pico: a 100 sat/vB o mesmo lote custa 3.179 satoshis por pessoa, e a taxa fixa vira um subsídio. Taxas de saque fixas são uma aposta, e nos dias calmos a casa ganha.

A mesma unidade precifica as suas próprias tarefas de manutenção. Reunir UTXOs pequenos é cobrado quase inteiramente pelo número de entradas, então uma consolidação de doze entradas segwit nativas em uma saída fica em cerca de 858 vbytes, quaisquer que sejam os valores envolvidos. Faça isso a 2 sat/vB e custa menos de 2.000 satoshis. Faça isso durante um pico de taxas e custa cinquenta vezes isso pelo mesmo trabalho.

Byte virtual vs unidade de peso

Um byte virtual e uma unidade de peso medem os mesmos dados em escalas que diferem por um fator de quatro, e o arredondamento é o único ponto em que deixam de ser intercambiáveis. Os limites de consenso são escritos em peso, e por isso o teto de um bloco é indicado como 4.000.000 unidades. As interfaces são escritas em vbytes, porque 8 sat/vB é mais fácil de guardar na cabeça do que 2 satoshis por unidade de peso. A função teto faz uma transação de 561 unidades de peso ser cobrada como 141 vbytes e não como 140,25, então você paga por três quartos de um byte que nunca usou. Ler uma especificação coloca você em peso; pagar por qualquer coisa coloca você em vbytes.

Não confundir com

Perguntas frequentes

Por que minha carteira diz 141 vbytes quando o explorador diz 222 bytes?

As duas cifras estão corretas. O 222 é o comprimento serializado na rede, e o 141 é esse comprimento depois de os dados de assinatura serem contados a um quarto da taxa. As taxas são cobradas sobre a cifra menor, então use o vsize sempre que multiplicar por uma taxa.

sat/vB é o mesmo que sat/byte?

Só para uma transação sem dados de testemunha, em que os dois tamanhos são idênticos. Para qualquer coisa que gaste uma saída segwit ou Taproot o vsize é menor, então uma ferramenta que ainda cota em sat/byte vai superestimar a taxa em até um fator de quatro.

Leia a seguir

Termos relacionados

Mais em Transações e taxas

Ler esta página em inglês