sei que é chutar cachorro morto mas bora lá, discussão sempre saudável:
Pergunta: Por que aumentar o blocksize aumenta a velocidade de transações? Qual o impacto negativo de aumentaro blocksize?
> Por que aumentar o blocksize aumenta a velocidade de transações?
Essa pergunta é capciosa. Não aumenta a velocidade das transações, aumenta o "throughput" (largura de banda?) das transações. O que isso quer dizer? Vamos usar um exemplo:
O bitcoin tem 1 bloco a cada 10 minutos. Cada bloco tem no máximo 1 Mb, e cada transação tem cerca de 250 bytes. Isso quer dizer que cada bloco comporta 4000 transações, ou seja, a cada 10 minutos, ou 600 segundos. Dividindo 4000/600 temos, na média, um "throughput" de 6.67 transações por segundo. A "formula" do throughput fica sendo então:
Tp = B
s/(T
s*P
b)
onde Tp é o throughput, B
s é o tamanho do bloco em bytes, T
s é o tamanho das transações e P
b é o tempo (período) entre os blocos.
Acho que vendo assim fica claro perceber que tem 3 jeitos de aumentar o numero de transações por segundo: aumentar o tamanho do bloco, diminuir o tempo entre blocos ou diminuir o tamanho das transações. Cada uma dessas soluções tem seus problemas, vou focar na que você perguntou primeiro...
> Qual o impacto negativo de aumentar o blocksize?
O principal impacto é tornar a manutenção de full nodes insustentável. Hoje um bloco de tamanho 1Mb a cada 10 minutos significa que a cada dia (1440 minutos ou 144 periodos de 10 minutos) teremos 144 Mb de novas transações acrescentadas na blockchain. Em um ano, isso dá cerca de 52 Gb a mais na blockchain. Esse crescimento ainda é razoável para os HDs que temos hoje, e um HD de 1 TB poderia armazenar quase 20 anos de blockchain.
Agora vamos supor que o tamanho do bloco seja aumentado em 10 vezes. Isso significa que, se usado "no limite" e todos os blocos estiverem lotados de transações, um HD de 1Tb duraria apenas 2 anos. Isso tornaria o custo de manter um full node inviável para usuário comum, comprometendo o principio de descentralização da rede.
Além disso temos o tempo de transmissão dos blocos e os problemas que derivam disso: blocos órfãos e blocos vazios. O tempo de transmissão de um bloco pela rede, hoje, é de 7 segundos (estimativa feita com o numero de blocos "vazios" de 1.1%
(1)). Com o aumento do to tamanho dos blocos esse tempo sobe proporcionalmente, e consequentemente, o numero de blocos vazios ou órfãos cresce na mesma proporção (reduzindo o throughput efetivo da rede). Se hoje temos uma "perda" de 1.1% da velocidade da rede com os blocos vazios, com o aumento dos blocos em 10x isso cresce para 11%, reduzindo o throughput da rede também em 11%. Esse tipo de redução começa a ficar significativa, e impactar negativamente a rede como um todo. Sem contar com o processamento (e gasto de energia) exigido dos full nodes que vão precisar validar 10x mais transações.
Então, concluindo, o aumento do tamanho dos blocos impacta
1- no custo de armazenamento da blockchain, inviabilizando os usuarios domesticos ou de pequeno porte, e
2- no tempo de propagação da rede, criando mais blocos órfãos e blocos vazios, e reduzindo o benefício de aumento de throughput de forma significativa.