Glossário / Transações e taxas
Unidade de peso
Outros nomes: WU.
- O que é uma unidade de peso?
- Uma unidade de peso é a unidade contábil que substituiu o byte no limite de tamanho de bloco do bitcoin, permitindo que o SegWit aumentasse a capacidade sem um hard fork ao cobrar os dados de assinatura a um quarto.
Especificação no BIP-141.
Os nós antigos contam os bytes de um bloco sem os dados de testemunha e rejeitam tudo que passe de 1.000.000, enquanto os nós novos contam o peso e rejeitam tudo que passe de 4.000.000. Os mesmos blocos satisfazem as duas regras, e esse é o truque que fez do Segregated Witness um soft fork quando ele foi ativado no bloco 481.824, em agosto de 2017. Tudo o que você paga para mover bitcoin é cobrado nesta unidade ou em um quarto dela.
Como funciona
A unidade de peso existe porque nós que executam softwares diferentes precisam concordar sobre quando um bloco está cheio, mesmo quando não estão vendo os mesmos bytes.
Um nó que nunca foi atualizado não recebe dados de testemunha. Ele vê o bloco sem esses dados e aplica o teto que sempre aplicou, 1.000.000 bytes. Um nó atualizado remonta o bloco inteiro e aplica um teto de 4.000.000 unidades de peso. Cobre quatro unidades por cada byte que não seja de testemunha e uma unidade por cada byte de testemunha, e os dois testes nunca podem discordar: qualquer bloco dentro do orçamento de peso também fica abaixo de um megabyte quando os dados de testemunha são removidos. Uma regra que só restringe o que o software antigo já aceita é exatamente o que é um soft fork, e essa forma de cobrar foi o que fez o aumento de capacidade caber dentro de um.
A escolha de um quarto não foi arbitrária. Os bytes de testemunha são assinaturas, e as assinaturas são a parte de uma transação que um nó pode descartar depois que o gasto está enterrado; elas nunca entram no conjunto de UTXO, a única estrutura que toda máquina que valida precisa manter à mão para sempre. Cobrar pouco por elas levou as carteiras a um formato que faz esse conjunto caro crescer mais devagar, e isso foi feito tornando a escolha responsável também a mais barata.
Um segundo orçamento corre na mesma escala e recebe muito menos atenção. O BIP141 limita um bloco a 80.000 unidades de operação de assinatura, com as operações antigas contadas quatro vezes, de modo que um bloco cheio de multiassinatura no estilo antigo pode esgotar as verificações de assinatura antes de esgotar o espaço.
A capacidade, portanto, é uma faixa e não um número. Um bloco só de pagamentos no formato antigo ainda não pode passar de 1.000.000 bytes, enquanto um bloco com muitos dados de testemunha pode chegar perto de quatro megabytes, e a maioria fica entre um e dois porque a maioria dos blocos é uma mistura.
Onde você vê isso
As unidades de peso aparecem ao lado de cada bloco em todos os exploradores e são o número em função do qual um pool de mineração de fato otimiza.
O lugar mais claro onde elas aparecem é em uma frase que deixou de ser verdadeira em agosto de 2017. O Bitcoin não tem um limite de bloco de um megabyte; tem um orçamento de quatro milhões de unidades, e a barra de preenchimento que você vê em um explorador é medida em relação a esse orçamento. Os pools montam um modelo preenchendo o orçamento com os candidatos que pagam melhor e guardando uma parte para a transação coinbase, então um bloco minerado geralmente fica logo abaixo do teto, e não exatamente nele.
As unidades de peso são também o tema oculto da discussão mais barulhenta do bitcoin. Guardar dados no espaço de testemunha custa um quarto do que os mesmos bytes custam em qualquer outro lugar, e é justamente por isso que as inscrições ficam lá. O debate sobre se esses dados pertencem à cadeia é, por baixo do ruído, um debate sobre uma proporção escolhida quando o BIP141 foi escrito, em 2015.
Para quem compra e guarda, a unidade é encontrada de forma indireta. Você nunca vai digitar um peso em uma carteira, mas ele é a razão de gastar um UTXO de formato antigo custar mais do que gastar um moderno.
Unidade de peso vs peso de bloco
Uma unidade de peso é a régua; o peso de bloco é uma medição feita com ela. As transações também têm peso, e o número de um bloco é a soma do peso de suas transações mais o cabeçalho e os contadores, e é por isso que as duas palavras não são intercambiáveis. A confusão fica cara quando alguém lê o número de 4.000.000 como um limite por transação. Não é: a política de retransmissão rejeita uma única transação padrão muito antes de ela se aproximar do teto do bloco, e o consenso mede apenas o bloco.