Este ano houve um grande aumento na demanda pelo espaço limitado disponível nos blocos de bitcoin, levando a taxas mais altas para transações em cadeia. Grande parte da demanda é por transações que revelam inscrições. O conteúdo dessas inscrições é revelado como parte dos dados testemunhais1 de uma transação bitcoin. Esses dados de testemunha1 são descontados em um quarto do custo de outros dados de transação. Por que estamos dando um desconto a essas inscrições? Deveríamos desembolsar o desconto para testemunhas?
Por que alguns bytes são mais baratos que outros?
O dinheiro em geral e o bitcoin em particular operam com base em incentivos humanos. O Bitcoin alinha os incentivos dos mineradores e transatores por meio do uso do token bitcoin nativo para pagar aos mineradores pela inclusão de transações específicas nos blocos que eles constroem. O mesmo não pode ser dito do alinhamento dos incentivos dos node runners com os mineradores e transatores, nem do alinhamento dos incentivos entre remetentes e destinatários.
Houve três grandes melhorias no alinhamento de incentivos do Bitcoin até o momento:
Limitando o tamanho do bloco
Transferindo o custo de scripts complexos do remetente para o destinatário (P2SH)
Alinhando os custos dos dados entre executores de nós e transatores (SegWit)
Os transatores querem fazer muitas transações e os mineradores querem cobrar muitas taxas de transação; mas os executores de nós precisam retransmitir, verificar e armazenar todos os dados da transação e não são remunerados como os mineradores por fazer isso. No início da história do bitcoin, Satoshi trabalhou para resolver isso adicionando um limite fixo de tamanho de bloco (aplicado pelos nós). O limite era de 1 milhão de bytes por bloco e impunha um limite superior à quantidade de dados que os nós precisariam baixar e verificar. Na época, Satoshi escreveu: “[podemos] implementar uma mudança mais tarde, se estivermos mais perto de precisar dela”. Mais tarde, referindo-se a um patch para aumentar o limite, ele observou: “[d]não use este patch, ele o tornará incompatível com a rede”, o que significa que aumentar o limite de tamanho do bloco é uma mudança difícil e requer mais coordenação até do que um soft fork. Nos anos que se seguiram, o Bitcoin evitou deliberadamente essas mudanças incompatíveis no hard fork, o que também significou manter o limite de tamanho de bloco de 1 milhão de bytes.
Como o bitcoin é protegido por scripts de bloqueio, sempre foi possível bloqueá-lo com scripts avançados, incluindo multisig. De acordo com o design original, o remetente de uma transação Bitcoin colocaria o script de bloqueio completo do destinatário em sua transação e pagaria quaisquer taxas para incluir esse script de bloqueio em um bloco. Os desenvolvedores perceberam que, à medida que as taxas aumentavam, os remetentes poderiam hesitar em pagar aos usuários de scripts de bloqueio maiores devido ao custo mais alto de pagar esses usuários. Esses scripts de bloqueio complexos também representavam um problema para codificação em endereços e compartilhamento por meio de mecanismos de baixa largura de banda, como QR Code.
Para resolver isso, o P2SH foi adicionado ao bitcoin como um soft fork. De acordo com as regras desta bifurcação, em vez de colocar todo o script de bloqueio do destinatário na saída da transação, o remetente simplesmente inclui um hash dele. Quando o destinatário inevitavelmente gasta esse resultado, ele inclui o script completo na transação de gasto, que é verificado em relação ao hash do script ao qual a moeda está bloqueada antes de ser validado. Com esta mudança, um script de resgate de qualquer tamanho poderia ser representado por um script de bloqueio de comprimento fixo e os remetentes não teriam mais necessidade (ou capacidade) de discriminar entre destinatários com base em suas condições de gasto.
A verificação mais fundamental que os nós realizam nas transações de bitcoin é que o bitcoin que eles tentam gastar realmente existe. Para fazer isso, cada nó mantém um índice de cada unidade de bitcoin gastável (saída de transação não gasta, UTXO). Quanto maior for esse índice, maior será o custo de operação de um nó e de verificação de transações futuras2. Como resultado, uma transação que aumenta o tamanho deste índice (tendo mais saídas do que entradas) custa mais ao longo do tempo do que uma transação com o mesmo número de bytes que reduz o tamanho do índice.
A maior parte da maioria dos scripts de desbloqueio de bitcoin são as assinaturas criptográficas. Essas assinaturas têm cerca de duas vezes o tamanho de suas chaves públicas correspondentes, o que torna os scripts de desbloqueio (mesmo sem P2SH) maiores que os scripts de bloqueio.
O custo significativamente mais alto de consumo versus criação de UTXOs cria um conflito de incentivo entre executores de nós e transatores. Os transatores são desincentivados a gastar seus pequenos UTXOs (especialmente em momentos com taxas altas), preferindo gastar grandes UTXOs e criar mais UTXOs de pequenos trocos. Enquanto isso, os executores de nós pagam o custo desse acúmulo de pequenos UTXOs em custos de validação mais elevados para todas as transações.
Por mais estranho que possa parecer, a verificação de que cada UTXO gasto por uma transação no blockchain histórico tem seu script de bloqueio satisfeito por um script de desbloqueio correspondente é significativamente menos fundamental. Por falar nisso, um nó bitcoin executando o bitcoin core 26.x padrão não validará a execução completa do script de bloqueio para transações anteriores ao bloco 804000 (19 de agosto de 2023).
Tudo o que foi dito acima significa que existem diferentes custos impostos aos nós do Bitcoin por diferentes partes do blockchain. Os dados necessários para determinar os efeitos de cada transação devem ser validados por cada nó sincronizado a partir do bloco genesis3, as saídas da transação tendem a ser mais caras do que as entradas da transação no longo prazo (especialmente se forem de longa duração), e muitos dos dados testemunhados nem sequer é verificado, exceto para as transações mais recentes.
O soft fork de testemunha segregada (SegWit) é a mudança mais ambiciosa feita no Bitcoin até o momento. A maior motivação para a mudança foi corrigir o problema de longa data da maleabilidade5 do TXID4 no bitcoin. Para corrigir essa maleabilidade, o script de desbloqueio é substituído por uma “testemunha” recém-criada. Ao remover os dados de autorização (que muitas vezes podem ser alterados por terceiros sem alterar os efeitos da transação) do TXID, tornam-se possíveis protocolos (como o Lightning) que dependem de TXIDs imutáveis.
Com os dados de autorização retirados da estrutura de transação original, eles não contam mais para o limite de bloco de 1 milhão de bytes. Um novo limite é necessário. Muitas abordagens para limitar os dados de testemunhas segregados foram discutidas na época: um limite de bytes de testemunhas separado6, um limite combinado de <1 milhão de bytes7 ou um limite combinado ponderado. No final, foi escolhido o limite combinado ponderado, com dados de testemunhas segregados ponderados em 1 unidade, dados de transação ponderados em 4 unidades e um limite de bloco de peso de 4 milhões. Cada unidade de peso é tratada como 1/4 de um byte virtual (vByte) para fins de cálculo de taxas.
Por que esses pesos? Vejamos o custo das entradas e saídas de transações com e sem testemunha segregada:
A primeira coisa a observar nesta tabela é como os tipos de script testemunha (P2WPKH, P2WSH) têm quase o mesmo número de bytes de entrada e saída (que são cobrados com um vByte completo cada). O gastador de um script testemunha é então cobrado 1/4 vByte pelos dados que autorizam o gasto, muitos dos quais não são verificados para nenhuma transação, exceto as mais recentes, e nenhuma delas tem um custo contínuo no índice UTXO. A outra coisa que vale a pena notar aqui é como o custo de usar um multisig 2 de 3 mais seguro em comparação com uma única assinatura é reduzido de 147 vBytes para 36,25 vBytes.
Como eu disse no início, o bitcoin depende de incentivos humanos, e aqui podemos ver como as mudanças foram feitas no bitcoin ao longo dos anos para melhorar o alinhamento de incentivos entre as partes que utilizam a rede.
O próprio Taproot é “apenas” uma forma alternativa de bloquear bitcoin usando testemunha segregada. Isso não altera esses incentivos significativamente. Uma das mudanças que surgiram com o Taproot foi remover certos limites de tamanho do script. Isso foi feito para reduzir a complexidade do projeto de ferramentas de análise para scripts Bitcoin e como um reconhecimento do custo relativo dos diferentes tipos de dados. A remoção desses limites tornou as inscrições mais simples do que eram antes do Taproot, mas não alterou fundamentalmente a estrutura de incentivos da rede.
Agora vamos ao cerne da questão. As inscrições são reveladas na testemunha, portanto, é cobrado apenas 1/4 vByte por byte de dados de inscrição. Isso é um abuso do desconto para testemunhas? A verdade é que os dados de inscrição são alguns dos dados mais baratos para serem validados pelos nós da rede. A estrutura de script usada pelas inscrições ignora explicitamente a execução dos dados da inscrição, portanto, a única verificação feita nela é uma única verificação de hash (garantindo que a inscrição revelada é o que o inscrito planejou revelar). Esses dados são hash uma vez e nunca mais são visualizados pelos nós. Tem um custo computacional muito baixo (uma ordem de grandeza inferior a um script multisig de tamanho equivalente).
Mas as inscrições estão aumentando as taxas e expulsando outros usuários.
Sim! Com o software atual disponível para interagir com a rede bitcoin, os inscritos têm maior incentivo econômico para fazer suas inscrições do que muitas pessoas para fazer outras transações.
Isso coloca em evidência o valor de aumentar a densidade econômica das transações de bitcoin. A Lightning Network dá um grande passo nessa direção, permitindo que centenas, milhares ou milhões de transações econômicas sejam agrupadas em uma única transação de bitcoin. Quanto maior for a densidade económica de cada byte numa transação, menor será a taxa paga por essa atividade económica. À medida que a densidade económica das transações de bitcoin aumenta, outras utilizações do espaço de bloco foram e continuarão a ser precificadas9.
É importante notar que se protocolos multisig fora da cadeia, como MuSig2 ou FROST, ou assinaturas de adaptador se tornarem predominantes; pode fazer sentido reduzir ou eliminar o desconto para testemunhas. Estes protocolos podem permitir que condições de despesas que de outra forma seriam elevadas sejam representadas por uma única assinatura. Isso, combinado com os gastos eficientes do caminho principal do Taproot, poderia reduzir o custo de uma entrada com condições quase arbitrariamente complexas para apenas 105 bytes.
A resposta às altas taxas causadas pelas inscrições é a mesma que a qualquer outro suposto cenário de queda do céu na história do bitcoin: construir pacientemente, construir pacientemente. Há muito que podemos fazer para aumentar a densidade econômica das transações de bitcoin, desde a construção de carteiras Lightning melhores até o Ark , contratos de registro discretos e muito mais. Remover o desconto de testemunha (prematuramente), reverter a raiz principal ou ações contraproducentes semelhantes servirão apenas para reduzir a densidade econômica das atuais transações de bitcoin e agravar a situação.
Mantenha-se humilde, empilhe sats e construa.
Este é um post convidado de Brandon Black. As opiniões expressas são inteiramente próprias e não refletem necessariamente as da BTC Inc ou da Bitcoin Magazine.
Este ano houve um grande aumento na demanda pelo espaço limitado disponível nos blocos de bitcoin, levando a taxas mais altas para transações em cadeia. Grande parte da demanda é por transações que revelam inscrições. O conteúdo dessas inscrições é revelado como parte dos dados testemunhais1 de uma transação bitcoin. Esses dados de testemunha1 são descontados em um quarto do custo de outros dados de transação. Por que estamos dando um desconto a essas inscrições? Deveríamos desembolsar o desconto para testemunhas?
Por que alguns bytes são mais baratos que outros?
O dinheiro em geral e o bitcoin em particular operam com base em incentivos humanos. O Bitcoin alinha os incentivos dos mineradores e transatores por meio do uso do token bitcoin nativo para pagar aos mineradores pela inclusão de transações específicas nos blocos que eles constroem. O mesmo não pode ser dito do alinhamento dos incentivos dos node runners com os mineradores e transatores, nem do alinhamento dos incentivos entre remetentes e destinatários.
Houve três grandes melhorias no alinhamento de incentivos do Bitcoin até o momento:
Limitando o tamanho do bloco
Transferindo o custo de scripts complexos do remetente para o destinatário (P2SH)
Alinhando os custos dos dados entre executores de nós e transatores (SegWit)
Os transatores querem fazer muitas transações e os mineradores querem cobrar muitas taxas de transação; mas os executores de nós precisam retransmitir, verificar e armazenar todos os dados da transação e não são remunerados como os mineradores por fazer isso. No início da história do bitcoin, Satoshi trabalhou para resolver isso adicionando um limite fixo de tamanho de bloco (aplicado pelos nós). O limite era de 1 milhão de bytes por bloco e impunha um limite superior à quantidade de dados que os nós precisariam baixar e verificar. Na época, Satoshi escreveu: “[podemos] implementar uma mudança mais tarde, se estivermos mais perto de precisar dela”. Mais tarde, referindo-se a um patch para aumentar o limite, ele observou: “[d]não use este patch, ele o tornará incompatível com a rede”, o que significa que aumentar o limite de tamanho do bloco é uma mudança difícil e requer mais coordenação até do que um soft fork. Nos anos que se seguiram, o Bitcoin evitou deliberadamente essas mudanças incompatíveis no hard fork, o que também significou manter o limite de tamanho de bloco de 1 milhão de bytes.
Como o bitcoin é protegido por scripts de bloqueio, sempre foi possível bloqueá-lo com scripts avançados, incluindo multisig. De acordo com o design original, o remetente de uma transação Bitcoin colocaria o script de bloqueio completo do destinatário em sua transação e pagaria quaisquer taxas para incluir esse script de bloqueio em um bloco. Os desenvolvedores perceberam que, à medida que as taxas aumentavam, os remetentes poderiam hesitar em pagar aos usuários de scripts de bloqueio maiores devido ao custo mais alto de pagar esses usuários. Esses scripts de bloqueio complexos também representavam um problema para codificação em endereços e compartilhamento por meio de mecanismos de baixa largura de banda, como QR Code.
Para resolver isso, o P2SH foi adicionado ao bitcoin como um soft fork. De acordo com as regras desta bifurcação, em vez de colocar todo o script de bloqueio do destinatário na saída da transação, o remetente simplesmente inclui um hash dele. Quando o destinatário inevitavelmente gasta esse resultado, ele inclui o script completo na transação de gasto, que é verificado em relação ao hash do script ao qual a moeda está bloqueada antes de ser validado. Com esta mudança, um script de resgate de qualquer tamanho poderia ser representado por um script de bloqueio de comprimento fixo e os remetentes não teriam mais necessidade (ou capacidade) de discriminar entre destinatários com base em suas condições de gasto.
A verificação mais fundamental que os nós realizam nas transações de bitcoin é que o bitcoin que eles tentam gastar realmente existe. Para fazer isso, cada nó mantém um índice de cada unidade de bitcoin gastável (saída de transação não gasta, UTXO). Quanto maior for esse índice, maior será o custo de operação de um nó e de verificação de transações futuras2. Como resultado, uma transação que aumenta o tamanho deste índice (tendo mais saídas do que entradas) custa mais ao longo do tempo do que uma transação com o mesmo número de bytes que reduz o tamanho do índice.
A maior parte da maioria dos scripts de desbloqueio de bitcoin são as assinaturas criptográficas. Essas assinaturas têm cerca de duas vezes o tamanho de suas chaves públicas correspondentes, o que torna os scripts de desbloqueio (mesmo sem P2SH) maiores que os scripts de bloqueio.
O custo significativamente mais alto de consumo versus criação de UTXOs cria um conflito de incentivo entre executores de nós e transatores. Os transatores são desincentivados a gastar seus pequenos UTXOs (especialmente em momentos com taxas altas), preferindo gastar grandes UTXOs e criar mais UTXOs de pequenos trocos. Enquanto isso, os executores de nós pagam o custo desse acúmulo de pequenos UTXOs em custos de validação mais elevados para todas as transações.
Por mais estranho que possa parecer, a verificação de que cada UTXO gasto por uma transação no blockchain histórico tem seu script de bloqueio satisfeito por um script de desbloqueio correspondente é significativamente menos fundamental. Por falar nisso, um nó bitcoin executando o bitcoin core 26.x padrão não validará a execução completa do script de bloqueio para transações anteriores ao bloco 804000 (19 de agosto de 2023).
Tudo o que foi dito acima significa que existem diferentes custos impostos aos nós do Bitcoin por diferentes partes do blockchain. Os dados necessários para determinar os efeitos de cada transação devem ser validados por cada nó sincronizado a partir do bloco genesis3, as saídas da transação tendem a ser mais caras do que as entradas da transação no longo prazo (especialmente se forem de longa duração), e muitos dos dados testemunhados nem sequer é verificado, exceto para as transações mais recentes.
O soft fork de testemunha segregada (SegWit) é a mudança mais ambiciosa feita no Bitcoin até o momento. A maior motivação para a mudança foi corrigir o problema de longa data da maleabilidade5 do TXID4 no bitcoin. Para corrigir essa maleabilidade, o script de desbloqueio é substituído por uma “testemunha” recém-criada. Ao remover os dados de autorização (que muitas vezes podem ser alterados por terceiros sem alterar os efeitos da transação) do TXID, tornam-se possíveis protocolos (como o Lightning) que dependem de TXIDs imutáveis.
Com os dados de autorização retirados da estrutura de transação original, eles não contam mais para o limite de bloco de 1 milhão de bytes. Um novo limite é necessário. Muitas abordagens para limitar os dados de testemunhas segregados foram discutidas na época: um limite de bytes de testemunhas separado6, um limite combinado de <1 milhão de bytes7 ou um limite combinado ponderado. No final, foi escolhido o limite combinado ponderado, com dados de testemunhas segregados ponderados em 1 unidade, dados de transação ponderados em 4 unidades e um limite de bloco de peso de 4 milhões. Cada unidade de peso é tratada como 1/4 de um byte virtual (vByte) para fins de cálculo de taxas.
Por que esses pesos? Vejamos o custo das entradas e saídas de transações com e sem testemunha segregada:
A primeira coisa a observar nesta tabela é como os tipos de script testemunha (P2WPKH, P2WSH) têm quase o mesmo número de bytes de entrada e saída (que são cobrados com um vByte completo cada). O gastador de um script testemunha é então cobrado 1/4 vByte pelos dados que autorizam o gasto, muitos dos quais não são verificados para nenhuma transação, exceto as mais recentes, e nenhuma delas tem um custo contínuo no índice UTXO. A outra coisa que vale a pena notar aqui é como o custo de usar um multisig 2 de 3 mais seguro em comparação com uma única assinatura é reduzido de 147 vBytes para 36,25 vBytes.
Como eu disse no início, o bitcoin depende de incentivos humanos, e aqui podemos ver como as mudanças foram feitas no bitcoin ao longo dos anos para melhorar o alinhamento de incentivos entre as partes que utilizam a rede.
O próprio Taproot é “apenas” uma forma alternativa de bloquear bitcoin usando testemunha segregada. Isso não altera esses incentivos significativamente. Uma das mudanças que surgiram com o Taproot foi remover certos limites de tamanho do script. Isso foi feito para reduzir a complexidade do projeto de ferramentas de análise para scripts Bitcoin e como um reconhecimento do custo relativo dos diferentes tipos de dados. A remoção desses limites tornou as inscrições mais simples do que eram antes do Taproot, mas não alterou fundamentalmente a estrutura de incentivos da rede.
Agora vamos ao cerne da questão. As inscrições são reveladas na testemunha, portanto, é cobrado apenas 1/4 vByte por byte de dados de inscrição. Isso é um abuso do desconto para testemunhas? A verdade é que os dados de inscrição são alguns dos dados mais baratos para serem validados pelos nós da rede. A estrutura de script usada pelas inscrições ignora explicitamente a execução dos dados da inscrição, portanto, a única verificação feita nela é uma única verificação de hash (garantindo que a inscrição revelada é o que o inscrito planejou revelar). Esses dados são hash uma vez e nunca mais são visualizados pelos nós. Tem um custo computacional muito baixo (uma ordem de grandeza inferior a um script multisig de tamanho equivalente).
Mas as inscrições estão aumentando as taxas e expulsando outros usuários.
Sim! Com o software atual disponível para interagir com a rede bitcoin, os inscritos têm maior incentivo econômico para fazer suas inscrições do que muitas pessoas para fazer outras transações.
Isso coloca em evidência o valor de aumentar a densidade econômica das transações de bitcoin. A Lightning Network dá um grande passo nessa direção, permitindo que centenas, milhares ou milhões de transações econômicas sejam agrupadas em uma única transação de bitcoin. Quanto maior for a densidade económica de cada byte numa transação, menor será a taxa paga por essa atividade económica. À medida que a densidade económica das transações de bitcoin aumenta, outras utilizações do espaço de bloco foram e continuarão a ser precificadas9.
É importante notar que se protocolos multisig fora da cadeia, como MuSig2 ou FROST, ou assinaturas de adaptador se tornarem predominantes; pode fazer sentido reduzir ou eliminar o desconto para testemunhas. Estes protocolos podem permitir que condições de despesas que de outra forma seriam elevadas sejam representadas por uma única assinatura. Isso, combinado com os gastos eficientes do caminho principal do Taproot, poderia reduzir o custo de uma entrada com condições quase arbitrariamente complexas para apenas 105 bytes.
A resposta às altas taxas causadas pelas inscrições é a mesma que a qualquer outro suposto cenário de queda do céu na história do bitcoin: construir pacientemente, construir pacientemente. Há muito que podemos fazer para aumentar a densidade econômica das transações de bitcoin, desde a construção de carteiras Lightning melhores até o Ark , contratos de registro discretos e muito mais. Remover o desconto de testemunha (prematuramente), reverter a raiz principal ou ações contraproducentes semelhantes servirão apenas para reduzir a densidade econômica das atuais transações de bitcoin e agravar a situação.
Mantenha-se humilde, empilhe sats e construa.
Este é um post convidado de Brandon Black. As opiniões expressas são inteiramente próprias e não refletem necessariamente as da BTC Inc ou da Bitcoin Magazine.