- Voltar ao menu
- Voltar ao menuPreços
- Voltar ao menuPesquisar
- Voltar ao menuConsenso
- Voltar ao menu
- Voltar ao menu
- Voltar ao menu
- Voltar ao menuWebinars e Eventos
Construindo um melhor mercado de taxas de Bitcoin
O Bitcoin pode agora ter um mercado de taxas, mas essa realidade T significa que a rede foi otimizada para esse ambiente, argumenta o desenvolvedor Jameson Lopp.
No ano passado, vimos o mercado de taxas para transações de Bitcoin evoluir em ritmo acelerado. À medida que o volume de transações continua a aumentar, também aumenta a demanda por espaço de bloco, que permanece em suprimento limitado de 1 megabyte (MB) aproximadamente a cada 10 minutos.
Já que temosdebatido a questão do aumento da oferta de espaço em bloco ad nauseam, este artigo se concentrará na história e no estado atual das taxas de transação do Bitcoin .
O fato é que as pressões resultantes da alta disputa por espaço em bloco degradaram a experiência do usuário e, portanto, incentivaram as carteiras de Bitcoin a fazer ajustes para KEEP seus usuários satisfeitos, garantindo a confirmação oportuna das transações.
No entanto, estamos muito longe de operar um mercado de taxas ideal.
A História das Taxas de Transação
Durante os primeiros anos de existência do bitcoin, as taxas de transação eram opcionais – eram consideradas uma doação aos mineradores.

As carteiras pagavam a mesma taxa em todas as transações, adotando a taxa que o desenvolvedor da carteira considerasse apropriada.
A taxa padrão da 's mudou várias vezes ao longo dos anos conforme a taxa de câmbio do Bitcoin aumentou, de 0,01 BTC para 0,0005 BTC para 0,0001 BTC. Também havia regras em torno de "transações prioritárias"que permitia que os usuários enviassem transações sem taxas se as entradas fossem antigas e de alto valor, embora os mineradores já tenham eliminado essas informações gradualmente neste momento.
Aprendemos ao longo dos anos que taxas de transação estáticas codificadas são terríveis por vários motivos:
- Não é a taxa absoluta que importa para os mineradores, mas sim a taxa de taxa por bytes de dados de transação. Da perspectiva do minerador, eles têm apenas 1 MB de espaço no qual desejam inserir o máximo de transações possível para coletar mais taxas. Como tal, uma transação de 200 bytes com uma taxa de 0,0001 BTC é preferível a uma transação de 1.000 bytes com uma taxa de 0,0001 BTC, porque eles podem inserir cinco das primeiras e coletar cinco vezes mais em taxas.
- Da perspectiva do usuário, se você sempre definir uma taxa estática, provavelmente acabará criando uma transação de grande tamanho de dados (devido ao gasto de muitas entradas de baixo valor) com uma taxa muito baixa que pode nunca ser confirmada.
- Carteiras com taxas estáticas T conseguem se adaptar a condições de mercado que mudam rapidamente, resultando em usuários transmitindo transações que estão pagando a mais ou a menos. As primeiras T terão transações confirmadas muito mais rápido, enquanto as últimas resultarão em longos tempos de confirmação porque os mineradores as ignoram em favor de transações mais lucrativas para confirmar.
O lançamento deBitcoin 0,3,15em novembro de 2010 incluiu uma mudança para começar a calcular taxas relativas ao tamanho dos dados da transação, mas nem todo software de carteira seguiu o exemplo e muitos usuários continuaram definindo cegamente a mesma taxa estática em cada transação. Isso geralmente não era um problema até que começamos a bater contra o tamanho máximo do bloco, porque os mineradores confirmariam praticamente qualquer transação válida que fosse retransmitida com sucesso para eles.
À medida que os blocos começaram a ser preenchidos em 2015, ficou claro que a melhor prática é usar um algoritmo de taxa dinâmica porque ele pode responder a mudanças nas condições da rede.
O Bitcoin CORE começou a calcular estimativas de taxas dinâmicas a partir de o lançamento 0.10em fevereiro de 2015, e Alex Morcos vem melhorando-os constantemente desde então. O algoritmo de estimativa de taxas do Core é bastante complexo; você podeveja seu código aquie oexplicação em inglês aqui.
Surge um mercado de taxas
Antoine Le Calvez, desenvolvedor do p2sh.info, fornece uma análise histórica de taxas dinâmicas e estáticas.
Aqui estão os últimos dois anos:

Podemos ver saltos significativos no uso de taxas dinâmicas durante os testes de estresse e ataques de redeoutono passado.
No entanto, suspeito que isso não se deveu à mudança de usuários normais para carteiras de taxas dinâmicas, mas sim àos próprios atacantes pagam as taxasque eles intencionalmente definiram como sendo maiores do que as taxas estáticas usadas pela maioria das carteiras na época.
Alguns dos usuários mais sofisticados ajustaram suas taxas codificadas durante os ataques, mas essas provavelmente foram uma pequena minoria do total de transações. Também podemos ver um salto no início de março de 2016 – isso provavelmente é parcialmente resultado da nova carteira do Blockchainimplantando taxas dinâmicassobre ummês antes.
Rusty Russell se apresentouuma excelente análisedo mercado emergente de taxas em dezembro de 2015, que mostrou que mais transações estão usando taxas calculadas dinamicamente e que o valor médio de uma transação está aumentando à medida que pequenos pagamentos estão sendo excluídos do blockchain.

AJ Towns deu continuidade à postagem de Rusty comanálise mais aprofundada. Ele identificou oito fases distintas do mercado de taxas ao longo da história do bitcoin:
Towns continuou sua investigação emum segundo poste chegou a várias conclusões sobre os efeitos que o mercado emergente de taxas teve sobre os usuários.
Eram eles:
- Um número significativo de carteiras está calculando taxas dinamicamente, com granularidade por byte.
- Muitas carteiras ainda T calculam taxas dinamicamente, ou mesmo calculam taxas por byte.
- As taxas orientadas pelo mercado só poderão aumentar ainda mais com a adoção crescente de carteiras que suportam estimativas dinâmicas de taxas.
- Pagar uma taxa de mercado significativamente maior não fará com que sua transação seja confirmada mais rapidamente.
- Houve dois Eventos de taxas que impactaram carteiras com taxas estáticas, e um terceiro evento de taxas ocorrerá em breve.
- Carteiras que calculam taxas dinamicamente pagam taxas substancialmente mais baixas, em média, do que aquelas que T.
Tenho monitorado as estimativas de taxas do Bitcoin Core com a Statoshi; aqui você pode ver que elas triplicaram nos últimos seis meses, à medida que a disputa pelo espaço do bloco continua aumentando.

Calvez também fornece um painel com todas as APIs de estimativa de taxas disponíveis publicamente e seus dados históricos de estimativa:

Curiosamente, parece que as estimativas de taxas da 21, BitGo e Blocktrail parecem ser as mais responsivas às mudanças nas condições de mercado, enquanto BitPay, Blockchain e BlockCypher têm estimativas menos voláteis.
No entanto, seria negligente da minha parte recomendar amplamente que todos passassem a usar taxas de transação calculadas dinamicamente sem primeiro observar os perigos envolvidos.
Como diz o ditado, toda solução leva a novos problemas. Taxas de transação dinâmicas não são exceção.
Dificuldades dinâmicas
As estimativas dinâmicas de taxas nunca serão perfeitas porque são uma tentativa de prever o futuro (NEAR).
Como físico dinamarquêsNiels Bohr certa vez gracejou: "a previsão é muito difícil, especialmente sobre o futuro". Se um algoritmo de estimativa de taxas não consegue prever corretamente o estado futuro do mercado de taxas, os usuários ficam presos em um "armadilha de taxas"conforme observado pelo Dr. Washington Sanchez do OpenBazaar.
Isso pode ocorrer se você transmitir uma transação com uma taxa perfeitamente razoável para as condições atuais do mercado, mas imediatamente após fazer isso, muitas outras transações com taxas mais altas são transmitidas por outros usuários, o que essencialmente empurra sua transação para o final da fila de prioridade dos mineradores. O problema é que você T pode, sem Substituir por taxa(RBF), atualize seu "lance" para compensar as novas condições de mercado.
Bugs em algoritmos de estimativa de taxas também têm potencial para causar estragos no mercado de taxas. Tomemos, por exemplo, um erro recente de usuário que resultou em alguém criando uma transação com um valor colossalTaxa de 300 BTC. Isso foi ruim o suficiente para o usuário infeliz que provavelmente digitou incorretamente os valores de "taxa" e "valor" em algum software mal codificado, mas também teve efeitos colaterais:
[incorporar]https://twitter.com/khannib/status/725090752531959808[/incorporar]
Este é um palpite bem fundamentado, mas parece que o "1 to 2 block target" do BlockCypher está usando um algoritmo de estimativa de taxa com base em uma média móvel ponderada de taxas dos últimos dois dias de blocos. Como resultado, quando a transação de taxa de 300 BTC foi minerada, a média de taxa recente e, portanto, sua estimativa aumentaram em 800%.
Mas isso não é para pegar no pé do BlockCypher, pois vimos muitas carteiras terem problemas com taxas de transação. Nem mesmo o Bitcoin CORE está isento, pois recentemente observei um pico inesperado nas estimativas de taxas do Bitcoin CORE 0.12.0:

Notei que a estimativa de taxa "two block target" do Statoshi.info aumentou de 44 para 112 satoshis por byte em 27 de fevereiro sem nenhuma razão aparente. Meus outros nós de Bitcoin não relataram o mesmo pico.
Isso talvez possa ser explicado pelas diferenças nas transações do mempool, já que o algoritmo de estimativa de taxas do Core usa apenas taxas de transações que foram recebidas inicialmente como não confirmadas.
É preocupante e demonstra uma desvantagem em extrapolar o futuro com base na visão da rede do seu nó, que não é garantidamente igual à de todos os outros.
Colapso macro
Embora existam muitos desafios apresentados aos desenvolvedores de Bitcoin por transação, também devemos estar cientes dos efeitos sobre o mercado de taxas como um todo.
Estou preocupado com alguns cenários potenciais que podem fazer com que as taxas aumentem mais rápido do que o necessário:
- Algoritmos de taxas dinâmicas mal codificados podem criar um loop de feedback que eleva a taxa de taxa sem teto, pois as transações continuam a inundar a rede sem levar em conta o backlog do mempool. Isso não é uma grande preocupação se a maioria das transações estiver sendo iniciada por humanos que estão vendo uma taxa exibida e decidindo se ela é ou não muito alta para seus gostos. No entanto, se muitas transações estiverem sendo criadas automaticamente sem nenhuma tomada de decisão Human e os algoritmos que as criam T tiverem nenhuma verificação de sanidade sobre a taxa máxima paga, o mercado pode fugir até que os engenheiros que escreveram esses algoritmos percebam e façam alterações neles.
- Usuários frustrados (ou desenvolvedores preguiçosos) que ainda dependem de taxas codificadas podem KEEP atualizando manualmente suas configurações de carteira até que suas transações comecem a ser confirmadas, provavelmente pagando a mais significativamente, mas eventualmente forçando outros usuários de taxas estáticas a fazer o mesmo para permanecerem competitivos. Usuários de taxas dinâmicas serão puxados para cima como resultado. Já observei o primeiro acontecendo, embora ainda não na extensão em que tenha afetado as taxas dinâmicas significativamente.
[incorporar]https://twitter.com/lopp/status/713095965155192832[/embed]
Um desenvolvimento recente que T recebeu muita atenção, apesar do fato de ter o potencial de afetar o mercado de taxas, é o desenvolvimento de Mercados secundários de taxas de mineração.
Isto pode assumir a forma de programas especiais de incentivo ao cliente, comoServiço BlockPriority do BTCC ou pode assumir a forma de compras privadas de espaço em bloco pré-pago. Isso significa problemas para qualquer desenvolvedor que esteja escrevendo algoritmos de estimativa de taxas, porque agora há Mercados de taxas opacos que são invisíveis para o resto do mundo.
Para citar o comunicado de imprensa do BTCC:
"A BlockPriority prioriza todas as transações dos clientes da BTCC, incluindo aqueles que pagam zero taxas de transação."
Isso não deve ser um problema para o algoritmo de estimativa de taxas do Bitcoin Core porque ele requer que 95% das transações do mempool com uma determinada taxa de taxa sejam confirmadas em blocos X após serem vistas, mas pode afetar algoritmos mais ingênuos. A lição para os desenvolvedores é que só porque você está vendo transações com uma taxa de taxa baixa de X sendo confirmadas não significa mais que é seguro para seu serviço transmitir transações com essa taxa de taxa.
Pode fazer sentido econômico para pools de mineração vender contratos de espaço em bloco pré-pagos porque isso lhes dá um novo fluxo de receita previsível.
No entanto, meu aviso aos pools é este: você T conseguirá esconder essa atividade se ela se tornar uma parte significativa de suas transações mineradas. Há muitos engenheiros de carteira como eu que estão monitorando esse tipo de comportamento e, se isso se tornar um problema, iremos a público. Suspeito que quaisquer pools de mineração públicos que participem desse comportamento não se sairão tão bem se os hashers individuais descobrirem que o pool tem minerado transações de taxas mais baixas e não compartilhado os lucros dos contratos de espaço de bloco privado.
Isso pode fazer com que os hashers migrem para um pool que eles acham que será mais lucrativo.
Testemunha Segregadaprovavelmente também terá um efeito sobre o mercado de taxas. Ele oferecerá um desconto de 75% nas taxas em uma tentativa de reequilibrar os custos de criação versus consumo de saídas de transações não gastas.
Espera-se que isso incentive os usuários a favorecer o uso de transações que minimizem o impacto no conjunto UTXO, a fim de minimizar as taxas e incentivar os desenvolvedores a projetar contratos inteligentes e novos recursos de uma forma que também minimize o impacto no conjunto UTXO.
David Harding escreveu um útildetalhamento da economia de dadosfornecido pela SegWit.
[incorporar]https://twitter.com/lopp/status/705122188106604546[/embed]
Acho que esse é o caminho certo a seguir, embora eu não tenha certeza de que 75% seja o número ideal. Parece-me que o desconto mais justo seria dinâmico e baseado na proporção do tamanho dos dados da saída para o tamanho dos dados correspondente da mesma saída quando ela é gasta como uma entrada.
Embora isso certamente seria muito mais difícil de implementar, se é que é possível.
Seguindo em frente
Ainda há muitas carteiras e serviços de Bitcoin que não implementaram taxas dinâmicas. Você sabe quem você é, e sua inação provavelmente está resultando em uma experiência ruim para alguns de seus usuários. Se você T implementou taxas dinâmicas, então cada transação que você transmite se encaixa em uma de duas categorias:
- Você está pagando a mais do que o preço de mercado e não obtendo confirmação significativamente mais rápido.
- Você está pagando pouco e as transações estão travando, resultando em uma experiência ruim para o usuário.
É altamente improvável que uma transação transmitida com uma taxa codificada esteja atingindo o ponto ideal e pagando a taxa ideal para corresponder às condições atuais do mercado.
Os desenvolvedores de carteiras devem adicionar mecanismos de segurança, como limites de verificação de integridade no nível micro e disjuntores no nível macro para evitar que os usuáriosatirando em si mesmos no pé.
As carteiras devem definir um limite mínimo que seja maior do que apenas a taxa mínima de retransmissão. Ao observar as transações de taxa mínima que entram em blocos, podemos ver claramente que, a partir de hoje, se você estiver pagando menos de cinco satoshis por byte, você terá um momento ruim.

Os desenvolvedores de carteiras devem pensar adversamente sobre seus algoritmos de estimativa de taxas e escrevê-los para serem robustos contra casos extremos que podem ocorrer devido a erros em outros softwares de carteira ou ataques maliciosos por entidades tentando manipular o mercado de taxas. Eles também devem monitorar seus dados de estimativa de taxas e definir alertas para notificá-los se as estimativas se tornarem mais voláteis do que o esperado.
Mas devemos reconhecer que não existe um algoritmo de estimativa de taxas "único para todos" — isso depende do caso de uso em que suas transações de Bitcoin se enquadram.
O algoritmo do Bitcoin Core visa ser o mais genérico e conservador possível para que seja incrivelmente confiável, mas para alguns casos de uso pode resultar em pagamento excessivo. Cada carteira e serviço precisará decidir qual troca estão dispostos a fazer para equilibrar o risco de confirmações atrasadas contra a recompensa de economizar dinheiro em taxas.
Como tal, eu encorajo todas as carteiras de Bitcoin a tornarem suas estimativas de taxas acessíveis por meio de APIs públicas. Eu suspeito que os algoritmos de estimativa de taxas em si se tornarão um ponto de competição e muitas vezes permanecerão de código fechado, mas se as estimativas forem públicas, então poderemos observar mais facilmente atividades anormais. Talvez alguém até construa um "Média de Bitcoin"agregador para estimativas de taxas!
Devemos reconhecer que o "mercado de taxas"T é exatamente um mercado no sentido tradicional da palavra.
Os usuários podem fazer um "lance" transmitindo uma transação, mas os mineradores T divulgam seus "pedidos" — as carteiras precisam adivinhar com base nas transações que os mineradores confirmaram recentemente e em quais transações estão atualmente aguardando confirmação.
Konrad S Grafdeclarou seus pensamentosno "mercado de taxas" recentemente:
"Taxas são pagas; produtos e serviços são comprados. Então, esse termo já obscurece o produto real. Usuários enviam transações com uma taxa como um lance aberto na esperança de confirmação. Eu descrevo isso como um mercado para serviços de inclusão de transações. Usuários dão lances para que mineradores incluam transações em blocos candidatos. Inclusão em mais blocos candidatos — especialmente em relação à mineração de hashrate total para esses candidatos — aumenta as chances de confirmação mais rápida. Usuários preferem confirmação mais rápida do que mais lenta, tudo o mais constante, então o elemento de tempo da escassez é fundamental. É um mercado para prioridade de confirmação, um mercado de tempo."
Talvez se os pools de mineração publicassem APIs públicas com suas políticas de mineração e "taxas correntes", isso poderia ajudar os serviços de carteira a tomar decisões mais informadas ao calcular taxas dinâmicas em vez de forçar os desenvolvedores a confiar em suposições. Isso também poderia ajudar a aliviar os problemas causados por mineradores que criam Mercados de taxas secundárias opacos por meio de contratos de espaço de bloco privado.
Os usuários de Bitcoin não precisam KEEP o estado atual da contenção de blocos.
As carteiras devem lidar com as complexidades do mercado de taxas sob os panos, dando ao usuário várias opções simples ao enviar uma transação. Uma rota potencial seria o usuário autorizar uma taxa máxima dependendo da urgência da transação e fazer com que a carteira use RBF para aumentar a taxa paga após cada bloco que passa sem ser confirmado.
Os valores das taxas de transação devem ser exibidos ao usuário em termos de sua unidade de conta preferida, como dólares. Provavelmente também faria sentido exibir a taxa em termos de uma porcentagem do valor da transação se ela exceder um certo limite, como 1%. Isso tornará mais fácil para os usuários decidirem se o estado atual do mercado de taxas é muito controverso e se eles prefeririam adiar a realização da transação até que possam fazê-lo com segurança a uma taxa de taxa mais baixa.
Quando estamos discutindo taxas de transação, os usuários de Bitcoin devem parar de dizer que pagaram "X centavos" ou "Y bits" em taxas de transação porque esse tipo de declaração é absurda sem saber o tamanho da transação. Devemos padronizar o uso de taxas de taxas em discussões, preferencialmente denominadas em termos de satoshis por byte. É mais simples para humanos escrever e KEEP o controle de "20 satoshis por byte" em comparação a "20.000 satoshis por quilobyte".
A evolução do mercado de taxas de transação do bitcoin tem sido um caminho difícil até agora.
No início, as taxas eram definidas manualmente pelos desenvolvedores, depois manualmente pelos usuários, e agora estamos em um ponto mais caótico e potencialmente perigoso, em que os desenvolvedores estão desempenhando um papel mais ativo na condução da economia desse mercado emergente.
ATLAS de Kristov observou eloquentemente os riscos nós tomamos planejando centralmente mudanças econômicas para Bitcoin sem estudá-las completamente; os desenvolvedores devem KEEP isso em mente ao escrever algoritmos de estimativa de taxas. Devemos nos esforçar para garantir que o mercado de taxas continue sendo conduzido por humanos com a ajuda de máquinas, e não o contrário. Os desenvolvedores de carteiras devem ter cuidado ao construir sua lógica de taxas para que possamos fornecer uma experiência suave ao usuário sem tirar a liberdade de escolha dos usuários, o que é necessário para manter um mercado de taxas funcional.
Imagem via Dan Nott para CoinDesk
Jameson Lopp
Jameson Lopp é o CTO e cofundador da Casa, um serviço de autocustódia. Um cypherpunk cujo objetivo é construir Tecnologia que empodere indivíduos, ele vem construindo carteiras de Bitcoin multiassinatura desde 2015. Antes de fundar a Casa, ele foi o engenheiro-chefe de infraestrutura na BitGo. Ele é o fundador do Bitcoin Special Interest Group da Mensa, do Triangle Blockchain and Business meetup e de vários projetos de Bitcoin de código aberto. Durante todo esse tempo, ele trabalhou para educar outras pessoas sobre o que aprendeu da maneira mais difícil, enquanto escrevia software robusto que pode resistir tanto a adversários quanto a usuários finais não sofisticados.
