Análise da Disponibilidade da Blockchain com Base no Block Lag
Índice
- 1. Análise da Disponibilidade da Blockchain com Base no Block Lag
- 1.1 Por que os atrasos de bloco são importantes?
- 1.2 Estatísticas agregadas em horários de bloqueio
- 1.3 Ethereum antes do POS
- 1.4 Ethereum após PDV
- 1.5 Bitcoin
- 1.6 Binance Smart Chain
- 1.6.1 Solana
- 1.7 Números de Disponibilidade Agregados
- 1.7.1 Conjuntos de dados
- 1.7.1.1 Caderno Jupyter
- 1.7.1 Conjuntos de dados
Análise da Disponibilidade da Blockchain com Base no Block Lag
Esta análise examina o atraso do bloco on-chain de quatro redes blockchain: Bitcoin, Ethereum, Solana e Binance Smart Chain. O objetivo é calcular várias estatísticas relacionadas ao tempo do bloco.
Para conduzir esta análise, conjuntos de dados foram obtidos e processados usando as ferramentas Pandas em um ambiente de Jupyter Notebook. As descobertas e insights resultantes estão documentados em um projeto do GitHub. Ao explorar as estatísticas de demora do bloco, podemos entender melhor o desempenho e a eficiência dessas redes blockchain.
Por que as demoras do bloco são importantes?
O objetivo desta análise é medir quão bem as redes blockhain de diferentes tipos atendem às expectativas do cliente em termos de disponibilidade e velocidade. Isso não é definido apenas pelas estatísticas médias, como o tempo médio do bloco e transações por segundo. A distribuição desses parâmetros também é importante, especialmente os casos extremos de atrasos inesperadamente longos nos tempos do bloco.
Quando a rede blockchain não adiciona o novo bloco por um longo tempo, todos os aplicativos que estão nessa rede são efetivamente paralisados. É equivalente ao programa travar em seu computador. Os clientes Blockchain, como carteiras ou DApps, não podem executar transações, fazer transferências ou chamadas de contratos inteligentes.
Um intervalo de tempo muito longo entre os blocos é equivalente à interrupção do serviço da rede blockchain. Aqui tentamos medir com que frequência isso acontece e quão grave é em diferentes blockchains.
Aqui, consideramos a interrupção quando o próximo bloco não aparece no intervalo de tempo 10x do período médio de bloqueio. Por exemplo, se o período médio no Ethereum for de 14 segundos, consideramos 140 segundos como interrupção. Isso é calculado em relação aos valores médios, porque as expectativas dos clientes (humanos e aplicativos) são adaptadas aos tempos médios de bloqueio, sendo muito diferentes nas redes blockchain
Estatísticas agregadas em tempo de bloco
Aqui estão as estatísticas agregadas das 4 redes blockchain em consideração:
A Ethereum pode ser dividida em dois períodos: antes do fork do Proof of Stake (POS) e depois dele, pois as estatísticas mostram diferenças notáveis. . Agora examinaremos cada cadeia individualmente e depois voltaremos para analisar os números do SLA como um todo.
Ethereum antes do POS
A distribuição do tempo de bloco na Ethereum Before POS (escala de frequência logarítmica):
O histograma em escala logarítmica parece muito suave e tem inclinação quase linear para um intervalo de 10 a 120 segundos por bloco.
\
Pode ser aproximadamente modelado como de decaimento exponencial:
Freq ~ A * exp ( -t * B )
A prova de trabalho (POW) requer a adivinhação do quebra-cabeça criptográfico, o qual é uma adivinhação aleatória, que deve seguir a distribuição Binomial. Vemos aqui a trilha dessa distribuição com t >> average(t), a média é de aproximadamente 14 segundos.
Isso significa que qualquer projeto consensual de POW assume as interrupções, quando o tempo de bloqueio devido a razões probabilísticas excede algum valor pré-definido.
Neste diagrama, os 140 segundos (média de 14 segundos x 10 fator) estão no meio, mostrando muitos blocos, que levaram mais tempo do que isso para minerar.
Existem também vários blocos com a demora (lag) superior a 300 seg
ethereum[(ethereum[‘lag’]>300) & (ethereum[‘block’]<15537393)]
nos dá os blocos com tempos de bloco extremos:
Boas notícias, que todos eles estão bem no passado!
Ethereum após POS
A distribuição do tempo de bloco na Ethereum Depois da POS (escala de frequência logarítmica):
Aqui vemos um histograma muito discreto, com tempos de bloco de múltiplos de 6 e 12 segundos. O tempo máximo é 96 = 12 * 8, o mínimo é 6 segundos.
Bitcoin
A distribuição do tempo de bloco no Bitcoin (escala de frequência logarítmica):
Bitcoin e Ethereum empregam Proof of Work (PoW) para mineração de blocos, o que contribui para suas tendências semelhantes em direção a valores maiores. Notavelmente, há uma faixa negativa notável de tempos de bloqueio. Isso decorre da utilização do tempo de mineração do bloco como um carimbo de data/hora, em vez da hora real em que o bloco foi adicionado à blockchain. Na prática, os tempos de mineração podem ser estabelecidos bem antes da inclusão do bloco na cadeia, resultando em um número considerável de blocos com defasagens negativas.
No entanto, esses atrasos negativos não devem afetar significativamente a medição de atrasos de blocos na faixa positiva. Isso ocorre porque sua distribuição declina muito mais rapidamente do que as defasagens positivas. Entre os blocos, há 151 ocorrências em que a mineração levou mais de 2 horas, com algumas demorando mais de 10 horas.
Observe que tudo isso está bem no começo da rede… bons tempos!
Binance Smart Chain
A distribuição do tempo de bloco na Binance Smart Chain (escala de frequência logarítmica):
A distribuição da BSC cai muito rápido e não há tempos de bloco extremamente longos aqui.
Solana
A distribuição do tempo de bloco na Solana (escala de frequência logarítmica):
Solana é famosa pelos tempos de bloco muito rápidos… e longas interrupções! Estes são blocos que levaram mais de 10 minutos:
E você vê, às vezes eles estão perto de um dia todo, (!) quando a rede efetivamente parou.
Números de Disponibilidade Agregados
Os números agregados das distribuições são coletados na tabela a seguir:
Binance Smart Chain e Ethereum, particularmente após a introdução do Proof of Stake (PoS), são altamente favorecidos por sua disponibilidade excepcional, aproximando-se de quase 100%. Esse nível de disponibilidade garante um alto grau de previsibilidade no desempenho do aplicativo.
Por outro lado, Solana, embora seja uma das redes mais rápidas, exibe uma disponibilidade ligeiramente inferior em 97%. Esse nível de disponibilidade é considerado inadequado, mesmo para sistemas centralizados não redundantes, como um site de servidor único.
Conjuntos de dados
Os dados para a demora entre blocos em segundos versus o número do bloco são consultados a partir de conjuntos de dados Bitquery para 4 blockchains.
Eles estão disponíveis em público S3:
Jupyter Notebook
O notebook Jupyter está neste projeto github. Para executar o código, você precisará da instalação padrão dos laboratórios Jupyter e baixar os conjuntos de dados na pasta de dados dentro do projeto
Depois dessa execute
% jupyter-lab
e carregue o notebook BlockhainTimes.ipynb
Este artigo foi escrito por Aleksey Studnev e traduzido por Diogo Jorge. O artigo original pode ser encontrado aqui.
Latest comments (0)