Massa de assinatura de Bitcoin: Porque é que alguns UTXOs são mais difíceis de assinar do que outros

PrincipianteDec 27, 2023
Este artigo explora o uso de UTXO (Saída de Transação Não Gastada) e o impacto do tamanho da assinatura nas taxas de transação.
Massa de assinatura de Bitcoin: Porque é que alguns UTXOs são mais difíceis de assinar do que outros

O que é a missa de assinatura UTXO?

Embora saibamos que assinar transações com muitos UTXOs pode causar falhas no dispositivo, esta declaração geral ainda deixa algumas questões: existe um número definido de UTXOs que faria com que uma carteira de hardware falhasse ao assinar? Alguns UTXOs podem causar mais dificuldades do que outros?

Enquanto pesquisava as respostas a essas perguntas, descobri que o tempo e o esforço que uma carteira de hardware requer para assinar uma transação não depende apenas do número de UTXOs enviados e de quantos endereços de recebimento haverá. Depende também de detalhes semelhantes em torno das transações anteriores de onde veio cada UTXO, um fenómeno a que chamo “massa de assinatura”. Não tenho conhecimento de nenhuma outra publicação que faça referência a este conceito.

Por outras palavras, UTXOs com maior massa de assinaturas — explicado mais detalhadamente abaixo — podem ser mais difíceis de assinar do que outros. Mesmo que dois UTXOs possam usar a mesma quantidade de dados na cadeia de blocos, pode ser necessário um processamento substancialmente maior para assinar usando uma carteira de hardware.

Este facto vai além dos tipos de endereço e quóruns multisig; um UTXO num endereço multisig 2 de 3 pode demorar substancialmente mais esforço para assinar do que outro UTXO nesse mesmo endereço (ou um endereço equivalente, e mesmo se os valores de bitcoin e os endereços de destino forem exatamente os mesmos).

Porque é que alguns UTXOs são mais difíceis de assinar?

Para perceber porque é que dois UTXOs de aparência semelhante podem ter massas de assinatura dramaticamente diferentes, tem de compreender o método indirecto que as carteiras de hardware usam para verificar os valores de entrada sem uma ligação à Internet e como a complexidade da transação pode diferir entre os vários métodos de receber bitcoin na sua carteira.

Introduza verificações de segurança do valor

Para qualquer transação de bitcoin, verificar os valores das entradas é importante; caso contrário, grandes quantidades do seu bitcoin podem ser acidentalmente pagas aos mineiros. Porquê? Porque as taxas cobradas pelos mineradores não são declaradas explicitamente _na transação, mas calculadas _implicitamente subtraindo o valor das saídas do valor das entradas. Portanto, se houver uma grande diferença entre os dois números, a taxa cobrada também será grande.

Por exemplo, se tivesse UTXOs num total de 0.8 BTC e os usasse para enviar 0.3 BTC para algum lugar, se não enviasse os ~0.5 BTC restantes de volta para si como troco, o mineiro do bloco pode agora reivindicar o 0.5 BTC como parte das suas taxas ganhas.

Não te preocupes! Todas as ferramentas bitcoin modernas e respeitadas incluem mecanismos automáticos de segurança, pelo que cometer este erro seria bastante difícil (se não impossível). O processo pode ser tão simples como pesquisar na cadeia de blocos para verificar o valor das entradas e depois comparar o seu total com a soma das saídas escolhidas para determinar se a taxa é razoável.

Mas é claro que as carteiras de hardware são concebidas para funcionar independentemente da internet, o que é especialmente evidente para dispositivos com lacas de ar. Sem a internet ou uma conexão de nó, a cadeia de blocos não pode ser observada. Portanto, a maioria das carteiras de hardware deve usar um método alternativo e indiferente para verificar os valores de entrada. Essencialmente, o dispositivo não só precisa importar a informação que descreve a transação que irá assinar, mas também deve importar o histórico de onde cada entrada veio.

Dito de forma diferente, para cada UTXO a ser movido, o dispositivo vai querer verificar novamente os detalhes da transação diretamente antes, o que levou à criação desse UTXO. Se essa transação fosse complexa, envolveria a importação de mais dados, o que se refletiria em algo como o tamanho de um ficheiro PSBT. Vamos dar uma olhada na complexidade da transação.

Complexidade da transação de fontes comuns

A maioria das pessoas recebe bitcoin na sua carteira de três maneiras: de uma bolsa, de um pool de mineração, ou diretamente de outra pessoa numa transação peer-to-peer (P2P). As transações ponto a ponto geralmente contêm uma complexidade muito baixa e os UTXOs resultantes terão uma massa de assinatura relativamente pequena.

No entanto, as bolsas e os pools de mineração tendem a distribuir fundos em lotes, enviando bitcoin para muitas pessoas ao mesmo tempo dentro da mesma transação. Estas transações são mais complexas e os UTXOs resultantes terão uma massa de assinatura maior.

Investigei as tendências de distribuição para vários pools de mineração e bolsas populares na América, e as minhas descobertas são apresentadas no gráfico abaixo. O número de saídas indica o número de pessoas que normalmente enviam bitcoin dentro de cada distribuição. Um número mais elevado significa mais complexidade de transação e uma carga de massa de assinatura mais considerável para os destinatários.

Estes números são aproximações no momento em que este artigo foi escrito e estão sujeitos a alterações de acordo com a forma como cada pool ou bolsa executa distribuições no futuro.

Observe que as distribuições dos pools de mineração são geralmente maiores do que as trocas, e certos pools de mineração, como o F2Pool, usam distribuições extraordinariamente grandes. Consequentemente, se receber um UTXO diretamente de um pagamento F2Pool, é mais provável que esse UTXO cause dificuldades de assinatura em certas carteiras de hardware.

Uma nota sobre o SegWit e a vulnerabilidade BIP 143

Em 2017, ocorreu o soft fork da testemunha segregada e o processo de assinatura foi alterado para as transações SegWit. Foi introduzido um requisito para incluir valores de entrada nos dados com os que os utilizadores se comprometem com uma assinatura. Como resultado, acreditava-se que qualquer tentativa de induzir um utilizador ou dispositivo a assinar inadvertidamente uma transação com taxas absurdamente altas seria impedida. A maioria dos fabricantes de carteiras de hardware agiu em conformidade, removendo as verificações de segurança do valor de entrada e simplificando o processo de assinatura das transações SegWit.

No entanto, em meados de 2020, foi encontrada uma vulnerabilidade no BIP 143, levando muitos fabricantes de carteiras de hardware a reintroduzir verificações de segurança de quantidade de entrada para transações SegWit. No momento em que este artigo foi escrito, as verificações de segurança do valor de entrada continuam a ser um processo normal durante a assinatura de uma carteira de hardware. Há alguma discussão na comunidade sobre mudanças futuras que poderiam eliminar de forma mais eficaz a necessidade de verificações de segurança de quantidade de entrada, como tornar as taxas explícitas dentro de cada transação em vez de implícitas.

Como é que a massa de assinaturas me afeta?

As variações na massa de assinatura significam que, quando está a tentar retirar bitcoin da sua carteira de armazenamento a frio de autocustódia, há alguma relevância na forma como conseguiu o bitcoin em primeiro lugar. Os métodos que utiliza para adquirir bitcoin podem criar diferenças quando chega a hora de aprovar transferências.

Antecipar e navegar por falhas de assinatura

Se possui um UTXO que foi movido de uma carteira diferente que controla ou foi recebido de uma transação ponto a ponto, é provável que a transação tenha sido relativamente simples. O UTXO terá uma massa de assinaturas menor e será mais fácil de assinar durante uma despesa futura. Por outro lado, se recebeu um UTXO diretamente de um pool de mineração, ou especialmente um pool de mineração que faz distribuições muito grandes (como mostrado no gráfico anterior), pode esperar que o UTXO seja mais difícil de assinar.

Felizmente, se a sua carteira de hardware não assinar porque está a tentar mover demasiados UTXOs de grande massa simultaneamente, isso não significa que o seu bitcoin esteja permanentemente preso. Uma solução rápida e fácil é dividir a sua transação em várias transações, movendo o seu bitcoin em pedaços. Cada pedaço conterá apenas uma fração dos dados e o seu dispositivo provavelmente fornecerá uma assinatura com sucesso.

Outra estratégia é prevenir falhas de assinatura em primeiro lugar controlando o número de UTXOs que detém e a massa de assinatura desses UTXOs. Embora não possa mudar a forma como os pools de mineração e as bolsas distribuem fundos, é essencial lembrar que a massa de assinatura de um UTXO é determinada pela transação imediatamente anterior, não por qualquer histórico de transações antes disso. Isto significa que pode receber um UTXO de um pool de mineração e transferi-lo imediatamente para outra carteira ou endereço que controla, imitando uma transação ponto a ponto. O UTXO resultante no novo endereço terá uma pequena massa de assinatura em vez de uma grande.

Assinar massa não afeta as taxas de transação

É importante destacar que a massa de assinatura afeta apenas o tempo e o esforço que uma carteira de hardware requer para assinar uma transação, não as taxas de rede que vai pagar. Isto porque a massa de assinatura só é relevante durante o processo de assinatura e não fará com que a sua transação tenha mais dados na cadeia de blocos.

Isto significa que não pagará necessariamente mais taxas de transação se receber bitcoin de um pool de mineração como o F2Pool, nem as suas taxas de transação serão reduzidas escolhendo um serviço que use menos saídas para as suas distribuições.

Isenção de responsabilidade:

  1. Este artigo foi reimpresso de [unchained]. Todos os direitos autorais pertencem ao autor original [Tom Honzik]. Se houver objeções a esta reimpressão, contacte a equipa do Gate Learn, e eles tratarão disso imediatamente.
  2. Isenção de responsabilidade: As opiniões e opiniões expressas neste artigo são exclusivamente do autor e não constituem nenhum conselho de investimento.
  3. As traduções do artigo para outras línguas são feitas pela equipa do Gate Learn. A menos que mencionado, é proibido copiar, distribuir ou plagiar os artigos traduzidos.
learn.articles.start.now
learn.articles.start.now.voucher
learn.articles.create.account