O estado atual da rede Bitcoin e seu maior bloco
O maior bloco de Bitcoin até hoje foi minerado! Mas apesar de ser o maior bloco, teve cerca de 1.400 menos transações do que o bloco médio da rede Bitcoin.
De soft forks e hard forks a upgrades de protocolo, à implementação do Segwit e às perspectivas futuras da Lightning Network (LN), a rede Bitcoin já percorreu um longo caminho desde sua criação em janeiro de 2009. Em 18 de setembro de 2018, o tamanho médio de um bloco na rede Bitcoin é de .8MB e o número médio de transações por bloco é 1609, então foi uma surpresa quando um bloco com mais de 2MB foi adicionado ao blockchain em 5 de setembro de 2018.
O bloco de Bitcoin 54010 chegou a 2,26MB; em termos de megabytes, um bloco desse tamanho nunca foi adicionado ao blockchain antes. Embora o mercado dominado por ursos esteja em andamento há nove meses, o bloco 540107 pode ser um sinal de que a rede Bitcoin está progredindo tecnologicamente. Para entender por que, primeiro vamos dar uma olhada no estado atual da rede Bitcoin.
Atualmente, na rede Bitcoin, o tamanho médio do bloco é de 0,804MB e há uma média de 1609 transações por bloco – é por isso que um bloco como o 540107, que tem 2,26MB, mas tem apenas 230 transações incluídas, é uma anomalia.
O maior bloco até hoje
O bloco 540107 é o maior bloco na rede Bitcoin até hoje, devido em grande parte ao Segwit, um sofrt fork na rede Bitcoin. Essa atualização no código permitia que os dados da assinatura da transação fossem armazenados em um bloco estendido, uma unidade de armazenamento não necessariamente anexada a um bloco “normal”.
Um bloco estendido armazena os dados da assinatura da transação — que normalmente são empacotados em um bloco comum em uma transação não Segwit — em um local separado do bloco com os dados da transação. Quando o Segwit foi ativado em 24 de agosto de 2017, ele substituiu o limite de tamanho de bloco não Segwit de 1 MB por um bloco com peso máximo de 4 MB. Isso permitiu que mais dados de transação fossem empacotados em um único bloco, porque os dados da assinatura da transação são removidos e armazenados em um local separado, ou seja, blocos estendidos. Por causa disso, o Segwit fez possível que blocos tivessem mais de 2 MB de tamanho. Se um bloco foi preenchido com apenas dados de testemunha (assinatura), um bloco poderia tecnicamente ter 4 MB de tamanho. Portanto, o Segwit abriu o caminho para o bloco 540107 ser o maior bloco até hoje em termos de tamanho (2.26MB).
Mas embora o bloco 540107 tenha sido o maior até hoje em megabytes, havia só 230 transações nele, o que é cerca de 86% (1379, para ser exato) a menos do que um bloco médio na rede Bitcoin permite.
Por que o maior bloco estava tão vazio?
Esta não é a primeira vez que um grande bloco permitia muito menos transações do que um bloco médio na rede Bitcoin. Em 20 de janeiro de 2018, foi a primeira vez que houve um bloco com mais de 2MB a rede Bitcoin, quando o bloco 505225 chegou a ter 2.17MB, e semelhante ao bloco 540107, ele teve um número relativamente baixo de transações comparado a um bloco médio na rede Bitcoin. O bloco 505225 continha apenas 225 transações – cerca de 15% da quantidade normal de transações em um bloco.
Embora o baixo número de transações em blocos tão grandes pareça incomum, um pesquisador independente na área de cripto da AltcoinXP-Anthony acredita que devemos estar menos preocupados com o número de transações em um bloco e mais preocupados se o peso do bloco está perto ou no limite de sua capacidade. Comentando porque o bloco tinha apenas 230 transações, ele disse à Cointelegraph:
“Você teria que perguntar ao minerador que o minerou — são eles que tomam essa decisão. Mas meu palpite seria de quantas [transações] preencheram o limite do bloco [peso]. O número de transações não importa tanto. Você pode ter uma transação que envia milhares de peças de poeira do BTC (pequenas quantidades de BTC espalhadas entre muitos endereços) enviadas para um único endereço. A poeira ocupa mais espaço no bloco […] e mais dados são necessários para uma transação […] Então, o que eu quero dizer é que nem todas as transações são iguais, algumas têm um peso/tamanho maior devido ao quantidade de entradas [ou saídas].”
Com o soft fork do Segwit, uma nova adição ao parâmetro técnico veio chamada ‘peso’. Antes do Segwit, 1MB de dados na rede Bitcoin era tecnicamente igual a 4 milhões de unidades de peso, ou em outras palavras, toda a capacidade de peso de um bloco. Mas com o Segwit, cada byte pesa apenas uma unidade de peso, o que permite que mais dados sejam empacotados em um bloco e é por isso que podemos ter blocos maiores que um e dois megabytes.
Assim, uma transação pode enviar milhares de partículas da “poeira BTC” – ou seja, transações na rede Bitcoin que podem ser consolidadas, também conhecidas como em lote. Transação em lote é quando várias transações na rede Bitcoin são compactadas em uma transação (entrada) com várias saídas, em vez de ter transações separadas com entradas e saídas únicas. Transações em lote reduzem a quantidade de dados necessária para entregar transações diferentes para endereços diferentes; no entanto, quanto mais transações forem agrupadas, maior será o tamanho do byte da transação.
Transação em lote: uma entrada, várias saídas
Um pesquisador de Bitcoin, David A. Harding, fornece um ótimo exemplo de agrupamento em seu artigo,
“Vamos imaginar que um Bitcoin seja igual a um dólar. Alice recebe a fatura de 10 BTC e inicia uma transação adicionando uma entrada de 20 BTC de sua carteira. Em seguida, ela adiciona duas saídas: uma saída de 10 BTC que vai para Bob e outra saída de 10 BTC que retorna o troco para sua própria carteira.”
Nesse caso, o tamanho total dessa transação seria 226 bytes, porque o código necessário para executar uma transação na rede Bitcoin ocupa 226 bytes de dados. Mas o exemplo da história tem continuação:
“Mas per aí, Alice quase esqueceu de dar uma gorjeta pelo excelente serviço que recebeu. Com dinheiro físico, Alice faria uma segunda transação pegando os US $ 10 que recebeu como troco, trocando por uma pequena quantia e deixando uma gorjeta de 15% de US $ 1,50 sobre a mesa, mantendo os outros US $ 8,50 para si mesma.”
Mas na rede Bitcoin, Alice precisaria criar uma nova transação para a dar uma gorjeta, e o tamanho dessa transação seria de 226 bytes também. Para Alice pagar pela refeição e deixar uma gorjeta, seu objetivo requer que a rede Bitcoin adicione um total de 452 bytes a um bloco, se isso for feito em duas transações separadas.
No entanto, existe uma maneira de consolidar essas transações separadas em uma.
Com dinheiro físico, Alice poderia pagar sua conta original, entregando ao caixa US $ 20 e dizendo a ele para deduzir a gorjeta antes de devolver $ 8.50 de troco, mantendo o resto ($ 1.50, ou 15%) como a gorjeta. Na rede Bitcoin, também podemos consolidar o número de transações que ocorrem adicionando uma saída adicional à transação original. Segundo Harding, cada saída adicional consome 34 bytes. Então, quando Alice agrupa uma transação para pagar sua comida (saída # 1) e gorjeta (saída # 2), a rede Bitcoin exigirá 260 bytes no total para que ela complete seu objetivo – em oposição ao 452 que requer se Alice prosseguir em dois transações separadas. Semelhante ao Segwit, a ideia por trás das transações em lotes é liberar espaço em bloco para que mais dados — e esperamos que transações também — possam se encaixar em um bloco.
Mais participantes = mais bytes
Embora as transações em lotes reduzam drasticamente a quantidade de dados necessários para realizar várias transações de uma só vez, cada nova saída adicionada à transação em lote exigirá que a rede Bitcoin consuma mais dados para concluir a transação. Embora essa quantidade de dados não seja tão alta quanto seria se um usuário estivesse fazendo transações com várias entradas e saídas diferentes, ele ainda pode ser adicionado.
Embora houvesse apenas 230 transações no bloco, é possível que algumas dessas transações tenham sido agrupadas, de modo que uma entrada tenha um grande número de saídas; isso exigiria que a rede Bitcoin consuma uma quantidade maior de bytes para tornar a transação possível, dependendo de quantas saídas foram anexadas a cada entrada. Mas, independentemente do número de transações que foram incluídas no bloco 540107, um bloco acima de 2MB é uma boa notícia.
Esperança para o futuro
Embora os mercados de criptomoeda estejam passando por uma fase difícil há quase nove meses, o bloco 540107 pode ser uma prova de que há progresso em relação à solução do problema de escalabilidade do Bitcoin. Para aqueles que pregam que o Bitcoin será o dinheiro do futuro, tal desenvolvimento poderia inaugurar esse futuro – em que as transações não levariam entre sete ou oito transações por segundo para serem processadas. Os principais processadores de pagamento podem lidar com dezenas de milhares de transações por segundo, como a Visa, que pode processar 24.000 transações por segundo. Se quisermos que o Bitcoin seja adotado e usado como um método de pagamento na sociedade, a quantidade de transações que a rede pode manipular é uma questão que precisa ser resolvida.
Alguns têm esperança de que a Lightning Network irá desempenhar um papel importante na solução do problema de escalabilidade, e embora a Lightning Network não precise que o Segwit exista, a implementação do Segwit impede que transações mal feitas ocorram nos canais da Lightning. Embora possamos estar um pouco longe da implementação do Lightning Network, o bloco 540107 parece indicar que a rede Bitcoin está se movendo na direção necessária para a Lightning Network, bem como outras possíveis soluções de escalabilidade para se tornarem realidade.