WEB3DEV

Cover image for Análise da Disponibilidade da Blockchain com Base no Block Lag
Diogo Jorge
Diogo Jorge

Posted on

Análise da Disponibilidade da Blockchain com Base no Block Lag

Análise da Disponibilidade da Blockchain com Base no Block Lag

Image description

Índice

  1. 1. Análise da Disponibilidade da Blockchain com Base no Block Lag
    1. 1.1 Por que os atrasos de bloco são importantes?
    2. 1.2 Estatísticas agregadas em horários de bloqueio
    3. 1.3 Ethereum antes do POS
    4. 1.4 Ethereum após PDV
    5. 1.5 Bitcoin
    6. 1.6 Binance Smart Chain
      1. 1.6.1 Solana
    7. 1.7 Números de Disponibilidade Agregados
      1. 1.7.1 Conjuntos de dados
        1. 1.7.1.1 Caderno Jupyter

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:

Image description

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):

Image description

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:

Image description

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):

Image description

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):

Image description

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.

Image description

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):

Image description

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):

Image description

Solana é famosa pelos tempos de bloco muito rápidos… e longas interrupções! Estes são blocos que levaram mais de 10 minutos:

Image description

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:

Image description

Image description

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:

Cadeia Inteligente da Binance

Rede principal Ethereum

Bitcoin

Solana Mainnet

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.

Top comments (0)