O que é Sharding?

iniciantes11/21/2022, 9:35:55 AM
O sharding é uma técnica de particionamento de banco de dados que ajuda os blockchains a criar escalabilidade, permitindo que as transações sejam processadas em paralelo por várias cadeias de sharding para reduzir o congestionamento da rede e aumentar as transações por segundo (TPS).

Introdução

Em um blockchain convencional, as transações devem ser confirmadas por cada nodo da rede enquanto um consenso precisa ser alcançado entre os nodos antes que as transações sejam empacotadas para gerar um novo bloco. A segurança é totalmente garantida, pois cada nó registra o histórico completo do livro-razão, dificultando que os hackers adulterem os dados sem serem detectados.
Segurança e escalabilidade são incompatíveis
No entanto, a alta segurança tem um preço. A frequência dos nós que se comunicam e trocam informações ocupa a largura de banda da rede e retarda o processamento das transações. Para evitar que a falha de um único nó interrompa toda a rede, são necessários mais nós para aprimorar a descentralização e dispersar o risco. Essas diferentes compensações também são conhecidas como “triângulo impossível”, o que significa que a escalabilidade, descentralização e segurança da rede blockchain não podem ser alcançadas ao mesmo tempo.


Fonte: blog de Vitalik Buterin “Por que sharding é ótimo: desmistificando as propriedades técnicas”

O sharding permite um escalonamento eficiente ao mesmo tempo em que garante segurança e descentralização
O sharding é uma solução que aumenta a escalabilidade de uma rede blockchain sem abrir mão da segurança e da descentralização. O sharding divide um único blockchain em vários blockchains menores, cada um dos quais gerencia seus próprios registros separadamente, e a troca de datas é realizada apenas quando necessário. Portanto, nós em diferentes cadeias de sharding podem verificar apenas as transações pertencentes às suas próprias cadeias de forma síncrona, em vez de dados de todo o blockchain.
Contanto que o número de nós em cada cadeia de fragmentação seja grande o suficiente, a segurança e a descentralização serão confirmadas. A aplicação de fragmentação pode aumentar a taxa de transferência de blockchains para atender à crescente demanda do usuário. O ETH 2.0 também aumentará sua escalabilidade por meio do sharding.

O que é fragmentação?

Sharding é uma técnica de otimização para melhorar o desempenho do acesso ao banco de dados, dividindo o banco de dados original em vários fragmentos com base nas condições de demanda, o que pode distribuir a carga e o tráfego do usuário para fornecer um serviço mais rápido. Considerando que um blockchain é essencialmente um grande ledger descentralizado, é possível melhorar a escalabilidade por meio do sharding.
Por exemplo, há um grande número de produtos com preços diferentes em sites de compras, os consumidores vêm com uma variedade de necessidades enquanto alguns preferem produtos com desconto e baratos e outros como caros e premium. Para lidar com um grande pedido como esse, uma triagem simples pode ser feita usando faixas de preço para agilizar o processamento dos verificadores.

Fonte: DigitalOcean
A fragmentação faz a triagem dos dados e os processa de acordo com diferentes necessidades
Um verificador (nó) precisa confirmar todas as informações do pedido sem dividir os dados do pedido (sharding), o que leva muito tempo para executar tarefas repetitivas. Por outro lado, dividir os dados do pedido em vários fragmentos permite que diferentes verificadores processem pedidos de preços baixos e de preços altos separadamente.
Uma vez que cada tipo de pedido é uma pequena parte do pedido completo, e os verificadores encarregados de itens com preços diferentes podem trabalhar simultaneamente sem afetar uns aos outros, então a fragmentação permite operações paralelas; cada verificador só precisa verificar parte do pedido, portanto, a fragmentação reduz a carga de trabalho dos nós e acelera a verificação.
Um banco de dados fragmentado é como um quebra-cabeça, e cada peça do quebra-cabeça representa um fragmento. Uma blockchain não fragmentada precisa redesenhar todo o quebra-cabeça toda vez que um novo bloco é gerado (replicação de estado) e, em seguida, modificar uma pequena parte do quebra-cabeça (atualização de estado). Um blockchain sharded só precisa encontrar a peça específica que requer modificação (shard) e substituí-la por uma nova ao adicionar um novo registro de transação.

Por que a fragmentação é necessária?

As aplicações on-chain são mais diversificadas e a demanda cresce exponencialmente
Uma vez que haja um aumento significativo no tamanho do usuário, não importa de que tipo seja o sistema, ele inevitavelmente precisará ser dimensionado para acomodar o tráfego crescente. Por exemplo, se um jogo online é tão popular que o número de jogadores aumenta de 100.000 para um milhão ou até dez milhões por dia, é necessário configurar um novo servidor para desviar o tráfego e evitar lag. Uma situação semelhante pode ser vista na vida real. Durante as férias, os turistas em locais de interesse sempre sofrem com terríveis engarrafamentos. O que normalmente levaria apenas duas horas para chegar a um destino agora leva muito mais tempo devido ao aumento do tráfego. Rotinas alternativas são a solução comum para efetivamente aliviar o congestionamento do tráfego.
O escalonamento encontra gargalos, procurando alternativas
Blockchain também encontrou o gargalo da escalabilidade durante seu desenvolvimento. Em uma blockchain P2P com apenas 10 nós, todas as trocas de dados podem ser concluídas após 10 9 vezes de comunicação entre nós; quando o número de nós atinge 100, significa 100 99 vezes de comunicação entre nós se não houver otimização do algoritmo. Em geral, uma rede blockchain P2P com N nós, onde cada nó troca dados com outros nós N-1, é concebível que a quantidade de tempo e computação gasta em cada transação cresça exponencialmente após o dimensionamento das redes blockchain.

Por ser o mainstream, Bitcoin e Ethereum ainda estão aplicando mecanismos desatualizados
O Bitcoin, atualmente a maior criptomoeda por capitalização de mercado, e o Ethereum pré-atualizado são ambos de baixa velocidade, com o Bitcoin processando cerca de 7 transações por segundo (TPS) e o Ethereum um pouco mais a 15 TPS. Isso tem sido insuficiente para atender às necessidades de um grande número de usuários e é ofuscado pelo sistema centralizado, como a empresa líder de cartão de crédito VISA, que processa até 24.000 transações por segundo. Além do congestionamento da rede, a velocidade lenta também aumenta os custos, e os usuários precisam pagar taxas mais altas para priorizar suas transações, tornando a experiência do usuário ainda pior.


Fonte: Etherscan

Não há necessidade de cada nó possuir o histórico completo de transações em um blockchain fragmentado, pois um nó só precisa reter informações relacionadas ao fragmento ao qual pertence, o custo de configuração de nós e o limite de participação são reduzidos pelo fragmentamento. As redes Blockchain podem se tornar mais descentralizadas com a ajuda do sharding. As especificações do equipamento de hardware necessárias para executar os nós se tornarão cada vez maiores sem fragmentação. No final, apenas participantes com condições econômicas favoráveis sobreviverão. O sharding permite que computadores comuns, laptops e até smartphones se tornem nós, o que levará à adoção em massa de blockchains e dAPPs.

Como funciona a fragmentação no ETH 2.0?

O mecanismo de consenso do Ethereum será convertido de Proof of Work (PoW) para Proof of Stake (PoS) no ETH 2.0 e a rede principal Ethereum original será mesclada na Beacon Chain. Como resultado, o poder de computação massivo não é mais necessário para os nós Ethereum gerarem novos blocos. Em vez disso, eles apostam seu ETH em contratos inteligentes para se tornarem validadores para obter o direito de obter taxas de transação ao enviar novos blocos.
No ETH 2.0, serão criados 64 shards para melhorar a escalabilidade, um dos quais se chama Beacon Chain. Ele desempenha um papel fundamental nas atualizações de sharding Ethereum e é responsável pela coordenação e compartilhamento de informações entre diferentes shards. Todos os nós ETH 2.0 também apostarão ETHs nas cadeias de fragmentos e processarão transações em diferentes fragmentos de acordo com as instruções, e os blocos nas cadeias de fragmentos só serão válidos com a aprovação da Beacon Chain.

Fonte: Hsiao-wei Wang
A fragmentação valida transações pendentes por triagem
Quando o ETH 2.0 adotar o sharding, o algoritmo de amostragem aleatória atribuirá números aleatórios de nós a cada shard para verificar as transações e determinar a ordem e a validade das transações na cadeia de shards por votação, então as informações dos blocos de shards recém-gerados serão adicionado na Cadeia Beacon. Um novo bloco deve ser aprovado por mais de dois terços dos nós da cadeia de fragmentos.
Conforme mostrado na figura abaixo, cada nó recebe um número (1~100) em uma sequência de conjuntos de nós validadores; o algoritmo de amostragem aleatória quebrará a ordem de atribuição dos nós, resultando em um novo conjunto de nós sem ordem fixa; os primeiros 1 a 10 nós recém-gerados podem ser designados como o primeiro comitê para processar transações na primeira cadeia de fragmentos, enquanto o 11º a 20º é o segundo comitê para processar a segunda cadeia de fragmentos e assim por diante.


Fonte: blog de Vitalik Buterin “Por que sharding é ótimo: desmistificando as propriedades técnicas”
O nó validador não é atribuído de forma fixa para processar transações em uma determinada cadeia de fragmentos, pois o algoritmo de amostragem aleatória interromperá novamente a ordem dos nós por um período de tempo. Portanto, os membros do comitê responsáveis por cada shard chain não são fixos, o que evita o risco de centralização causado por um nó específico verificando uma shard chain por muito tempo e aumenta a dificuldade de ataque.
Como o sharding aumentará muito a taxa de transferência do ETH 2.0, torna-se inviável para todos os nós atualizar os dados completos da transação em diferentes cadeias de shards de forma síncrona, o Collation Header, que é semelhante ao cabeçalho do bloco no PoW, torna-se o meio para compartilhamento de informações . Como o nome indica, um cabeçalho de agrupamento contém metadados sobre as informações dentro do agrupamento, como:

  1. O único estilhaço ao qual o agrupamento pertence
  2. O hash raiz do agrupamento pai
  3. A raiz Merkle de todas as transações em um agrupamento
  4. A raiz pré-estado e a raiz pós-estado
  5. Assinaturas de notários


Fonte: Hackernoon
O cabeçalho de agrupamento fornecerá ao nó informações suficientes e somente fará o download do registro completo da transação de acordo com o índice quando necessário.

Prós e Contras do Sharding

Uma alternativa que efetivamente desvia a demanda de uso e melhora significativamente a escalabilidade
Imagine que um milhão de carros são forçados a dirigir na mesma estrada para se deslocar da cidade A para a cidade B. A jornada deve ser lenta e esse é o caso das blockchains convencionais, pois todos os nós da cadeia são necessários para verificar todas as transações. A fragmentação divide os dados na cadeia em partes para que cada nó precise processar apenas uma parte da transação. Quando um blockchain adiciona várias rodovias para dispersar o tráfego, os usuários podem concluir as transações com mais rapidez.

Fonte: Bloco Genesis See More

Reduza o congestionamento da rede e reduza os custos
No Ethereum pré-atualização, os nós de mineradores empacotam transações com base em quanto os usuários estão dispostos a pagar, com taxas mais altas sendo processadas mais rapidamente e taxas mais baixas sendo processadas mais lentamente, resultando em uma licitação de taxa patológica em que os usuários ocasionalmente pagam mais de $ 50 por uma única transação . O sharding permite que o blockchain opere de forma mais suave e reduz a necessidade de licitação de taxas, e os usuários podem recorrer a outro se ocorrer congestionamento em um shard.

Nós mais fáceis de executar, aprimorando a descentralização e a segurança
Como não é necessário acessar os dados completos de todo o blockchain, pois cada nó só precisa processar informações em um fragmento ao mesmo tempo, o hardware necessário para configurar um nó torna-se menor. Os usuários podem usar dispositivos mais baratos como nós para participar da verificação e obter receita. O limite decrescente beneficia a descentralização e a popularização das redes blockchain, e a visão do ETH 2.0 é permitir que indivíduos executem aplicativos Ethereum a partir de seus smartphones. Um benefício colateral da descentralização é o aprimoramento da segurança da rede, quanto mais nós e mais dispersos eles estiverem, mais difícil será atacar o blockchain.

Embora a fragmentação destaque uma lista de vantagens, ela também apresenta uma série de novos problemas:

A possibilidade do Ataque de 1%
O blockchain é vulnerável a 51% de ataques, o que significa que um invasor é capaz de adulterar arbitrariamente os dados da transação ou até mesmo controlar toda a rede blockchain quando ele controla 51% do poder de computação dos nós. Em redes blockchain maiores, como Bitcoin e Ethereum pré-atualização, o custo de um ataque de 51% é muito alto, tornando-o inviável de implementar.
No entanto, com a adoção do sharding, o número de nós que processam cada shard é drasticamente reduzido e torna-se muito mais fácil para um invasor mal-intencionado comprometer, desde que ele ataque um dos shards e forje as transações com sucesso, em vez de atacar toda a rede. Para ser mais específico, para uma rede blockchain contendo 1.000 nós com o mesmo poder de computação, um hacker precisa controlar mais de 500 nós para atacar toda a rede. Mas quando esses 1.000 nós são distribuídos em 100 estilhaços, um hacker só precisa controlar mais de 5 nós em um dos estilhaços para adulterar os dados.

Fonte: Bloco Genesis See More

O risco de segurança de contratos inteligentes aumenta
A adoção de sharding requer reescrever a estrutura de dados e a lógica de código subjacente do registro da rede blockchain, e a complicação adicional tornará mais difícil atualizar e manter a rede, resultando em vulnerabilidades de segurança e riscos de contratos inteligentes, enquanto erros não intencionais também podem ocorrer durante a execução.

Conluio entre os membros do comitê
Embora a fragmentação adote um algoritmo de amostragem aleatória para evitar que nós idênticos sejam atribuídos a uma cadeia de fragmentos fixa, ainda existe a possibilidade de que combinações duplicadas de nós idênticos possam covalidar transações após um período de tempo longo o suficiente e membros do comitê verificando a cadeia de fragmentos também é possível conspirar entre si e enviar transações maliciosas à cadeia.
Desequilíbrio de carga
O pré-requisito para melhorar o desempenho da rede por meio do sharding é que o “sharding” traga com sucesso o “diversion”. Quando um blockchain é otimizado com 100 cadeias de fragmentos, no entanto, todos os usuários ainda usam uma cadeia de fragmentos específica, então a fragmentação falha e a escalabilidade não melhora muito. Esse também é um problema potencial para o ETH 2.0, pois a capacidade de executar operações de contrato inteligente para cada cadeia de fragmentos não está incluída no planejamento inicial.
Exploradores de blockchain mais complicados
A melhoria da escalabilidade trazida pelo sharding é alcançada adicionando mais algoritmos e dados a toda a rede, maior poder de processamento é necessário para que os exploradores de blockchain recuperem efetivamente as informações no blockchain.

Outras Blockchains Adotando Sharding

Elrond:

Elrond é um blockchain público descentralizado que visa melhorar a escalabilidade, velocidade e segurança desenvolvendo três tecnologias principais, incluindo Adaptive State Sharding com tecnologia de escalonamento de blockchain, Secure Proof of Stake (SPoS) que determina a seleção de validadores para acelerar a verificação e Elrond Virtual Machine, que suporta várias linguagens de programação e é compatível com Ethereum VM.

O exclusivo Adaptive State Sharding de Elrond combina três formas de fragmentação:

  1. Network Sharding representa o processo de agrupamento dos nós em shards.
  2. O Transaction Sharding leva a complexidade para o próximo nível e lida com a distribuição de transações em diferentes shards, mas todos os nós mantêm toda a blockchain em seu estado.
  3. O sharding de estado representa a parte mais sofisticada e é descrito como um mecanismo que permite que diferentes shards lidem apenas com uma parte do estado sem replicar os dados entre nós de diferentes shards.

Atualmente, Elrond pode atingir 15.000 TPS, mantendo a taxa tão baixa quanto $ 0,001, o que é uma vantagem razoável sobre o Ethereum.

Perto:

Near é uma blockchain public chain baseada em full-state sharding, aplicações de desenvolvimento simplificadas e mecanismo proof-of-stake. Ele define o objetivo de aumentar a escalabilidade para o desenvolvimento de aplicativos descentralizados e abrir a porta da tecnologia blockchain para todos. Seu mecanismo de consenso Doomslug, que adota o algoritmo Nightshade, é capaz de escalar o TPS para 100.000. A arquitetura técnica de Near é diferente de outras cadeias públicas fragmentadas, como a Beacon Chain, que é composta de uma cadeia e várias cadeias de fragmentos, é dividida em blocos individuais e a fragmentação é realizada entre esses blocos. Um bloco contém todas as transações de todos os shards enquanto o estado do shard é dividido e os validadores são atribuídos aleatoriamente para verificar o estado correspondente do shard da transação, melhorando assim a segurança.

Zilliqa:

Zilliqa é um pássaro bastante adiantado em blockchains. Foi lançado para resolver a baixa escalabilidade do blockchain na época usando fragmentação de rede e fragmentação de transação, bem como PoW e algoritmo de consenso tolerante a falhas (PBFT) bizantino com complexidade simplificada para acelerar o consenso dentro dos fragmentos. Ele ainda pode ser executado rapidamente com mais de 600 nós, e o dimensionamento constante leva o Zilliqa a um TPS mais alto, de 2.400 a 3.600 TPS.

Harmonia:

Harmony é uma cadeia pública baseada em sharding de estado, que é estruturada por uma Beacon Chain e várias cadeias de sharding e acompanhada pelo algoritmo de consenso tolerante a falhas bizantino (PBFT) para alcançar um consenso profundamente otimizado enquanto acelera com assinaturas BLS para agregar várias assinaturas em um único. Em uma cadeia pública fragmentada, 1% do poder de computação pode ser usado para ataques de gasto duplo, considerando isso, Harmony adota EPoS (prova efetiva de participação) e fragmentação aleatória para dispersar tokens apostados em grande escala e alocá-los aleatoriamente para vários fragmentos para reduzir o risco de serem atacados e aumentar a segurança dos fragmentos. Ele também adota o Kademlia Cross-shard Communication para controlar os gastos da rede enquanto aproveita o Erasure Code, que permite a recuperação de dados, para otimizar o processo de transmissão em bloco para realizar uma escala de fragmentação horizontal eficiente.

Conclusão

Com a explosão do uso de criptomoedas e a proliferação de dAPPs, alguns blockchains tradicionais estão sobrecarregados e incapazes de atender à crescente demanda do mercado. Como melhorar a escalabilidade sem abrir mão da descentralização e da segurança tornou-se um grande problema para a atual indústria de blockchain.

O sharding efetivamente desvia as necessidades on-chain e melhora a eficiência do acesso

O sharding é uma tecnologia de otimização que melhora a eficiência do acesso ao banco de dados, dividindo os dados da transação on-chain e processando-os por diferentes nós de forma síncrona. É assim que o desvio de tráfego e o aumento da velocidade são alcançados. Como uma solução de escalonamento de Camada 1 altamente antecipada, quando o sharding é realizado com sucesso após superar as dificuldades técnicas de alto nível, seus benefícios potenciais são bastante grandes. O sharding foi adotado por alguns blockchains e no próximo ETH 2.0, também será adotado com a esperança de melhorar significativamente o desempenho da rede.

Sharding é extremamente difícil de conseguir com muitos desafios não resolvidos, mas eventualmente o triângulo impossível será superado

No entanto, sharding não é uma solução perfeita. Além do aumento da complexidade, pode expor a rede a mais riscos. Muitos desenvolvedores continuam suas pesquisas sobre como coordenar diferentes shards para operar com eficiência, esperando que o sharding seja a chave para superar o “triângulo impossível” de segurança, descentralização e escalabilidade, para que todos os aplicativos de blockchain e criptomoedas existentes possam ser ainda mais popularizado.

Autor: Piccolo Tradutor:Yulei
Revisor(es): Hugo, Edward
Isenção de responsabilidade:

  • Este artigo representa apenas as opiniões dos observadores e não constitui nenhuma sugestão de investimento.
    *Gate.io reserva todos os direitos deste artigo. A republicação do artigo será permitida desde que Gate.io seja referenciado. Em todos os outros casos, serão tomadas medidas legais devido à violação de direitos autorais.
Autor: Piccolo
Tradutor: Yuler
Revisores: Hugo, Edward, Cecilia, Ashley
* As informações não pretendem ser e não constituem aconselhamento financeiro ou qualquer outra recomendação de qualquer tipo oferecida ou endossada pela Gate.io.
* Este artigo não pode ser reproduzido, transmitido ou copiado sem referência à Gate.io. A contravenção é uma violação da Lei de Direitos Autorais e pode estar sujeita a ação legal.

O que é Sharding?

iniciantes11/21/2022, 9:35:55 AM
O sharding é uma técnica de particionamento de banco de dados que ajuda os blockchains a criar escalabilidade, permitindo que as transações sejam processadas em paralelo por várias cadeias de sharding para reduzir o congestionamento da rede e aumentar as transações por segundo (TPS).

Introdução

Em um blockchain convencional, as transações devem ser confirmadas por cada nodo da rede enquanto um consenso precisa ser alcançado entre os nodos antes que as transações sejam empacotadas para gerar um novo bloco. A segurança é totalmente garantida, pois cada nó registra o histórico completo do livro-razão, dificultando que os hackers adulterem os dados sem serem detectados.
Segurança e escalabilidade são incompatíveis
No entanto, a alta segurança tem um preço. A frequência dos nós que se comunicam e trocam informações ocupa a largura de banda da rede e retarda o processamento das transações. Para evitar que a falha de um único nó interrompa toda a rede, são necessários mais nós para aprimorar a descentralização e dispersar o risco. Essas diferentes compensações também são conhecidas como “triângulo impossível”, o que significa que a escalabilidade, descentralização e segurança da rede blockchain não podem ser alcançadas ao mesmo tempo.


Fonte: blog de Vitalik Buterin “Por que sharding é ótimo: desmistificando as propriedades técnicas”

O sharding permite um escalonamento eficiente ao mesmo tempo em que garante segurança e descentralização
O sharding é uma solução que aumenta a escalabilidade de uma rede blockchain sem abrir mão da segurança e da descentralização. O sharding divide um único blockchain em vários blockchains menores, cada um dos quais gerencia seus próprios registros separadamente, e a troca de datas é realizada apenas quando necessário. Portanto, nós em diferentes cadeias de sharding podem verificar apenas as transações pertencentes às suas próprias cadeias de forma síncrona, em vez de dados de todo o blockchain.
Contanto que o número de nós em cada cadeia de fragmentação seja grande o suficiente, a segurança e a descentralização serão confirmadas. A aplicação de fragmentação pode aumentar a taxa de transferência de blockchains para atender à crescente demanda do usuário. O ETH 2.0 também aumentará sua escalabilidade por meio do sharding.

O que é fragmentação?

Sharding é uma técnica de otimização para melhorar o desempenho do acesso ao banco de dados, dividindo o banco de dados original em vários fragmentos com base nas condições de demanda, o que pode distribuir a carga e o tráfego do usuário para fornecer um serviço mais rápido. Considerando que um blockchain é essencialmente um grande ledger descentralizado, é possível melhorar a escalabilidade por meio do sharding.
Por exemplo, há um grande número de produtos com preços diferentes em sites de compras, os consumidores vêm com uma variedade de necessidades enquanto alguns preferem produtos com desconto e baratos e outros como caros e premium. Para lidar com um grande pedido como esse, uma triagem simples pode ser feita usando faixas de preço para agilizar o processamento dos verificadores.

Fonte: DigitalOcean
A fragmentação faz a triagem dos dados e os processa de acordo com diferentes necessidades
Um verificador (nó) precisa confirmar todas as informações do pedido sem dividir os dados do pedido (sharding), o que leva muito tempo para executar tarefas repetitivas. Por outro lado, dividir os dados do pedido em vários fragmentos permite que diferentes verificadores processem pedidos de preços baixos e de preços altos separadamente.
Uma vez que cada tipo de pedido é uma pequena parte do pedido completo, e os verificadores encarregados de itens com preços diferentes podem trabalhar simultaneamente sem afetar uns aos outros, então a fragmentação permite operações paralelas; cada verificador só precisa verificar parte do pedido, portanto, a fragmentação reduz a carga de trabalho dos nós e acelera a verificação.
Um banco de dados fragmentado é como um quebra-cabeça, e cada peça do quebra-cabeça representa um fragmento. Uma blockchain não fragmentada precisa redesenhar todo o quebra-cabeça toda vez que um novo bloco é gerado (replicação de estado) e, em seguida, modificar uma pequena parte do quebra-cabeça (atualização de estado). Um blockchain sharded só precisa encontrar a peça específica que requer modificação (shard) e substituí-la por uma nova ao adicionar um novo registro de transação.

Por que a fragmentação é necessária?

As aplicações on-chain são mais diversificadas e a demanda cresce exponencialmente
Uma vez que haja um aumento significativo no tamanho do usuário, não importa de que tipo seja o sistema, ele inevitavelmente precisará ser dimensionado para acomodar o tráfego crescente. Por exemplo, se um jogo online é tão popular que o número de jogadores aumenta de 100.000 para um milhão ou até dez milhões por dia, é necessário configurar um novo servidor para desviar o tráfego e evitar lag. Uma situação semelhante pode ser vista na vida real. Durante as férias, os turistas em locais de interesse sempre sofrem com terríveis engarrafamentos. O que normalmente levaria apenas duas horas para chegar a um destino agora leva muito mais tempo devido ao aumento do tráfego. Rotinas alternativas são a solução comum para efetivamente aliviar o congestionamento do tráfego.
O escalonamento encontra gargalos, procurando alternativas
Blockchain também encontrou o gargalo da escalabilidade durante seu desenvolvimento. Em uma blockchain P2P com apenas 10 nós, todas as trocas de dados podem ser concluídas após 10 9 vezes de comunicação entre nós; quando o número de nós atinge 100, significa 100 99 vezes de comunicação entre nós se não houver otimização do algoritmo. Em geral, uma rede blockchain P2P com N nós, onde cada nó troca dados com outros nós N-1, é concebível que a quantidade de tempo e computação gasta em cada transação cresça exponencialmente após o dimensionamento das redes blockchain.

Por ser o mainstream, Bitcoin e Ethereum ainda estão aplicando mecanismos desatualizados
O Bitcoin, atualmente a maior criptomoeda por capitalização de mercado, e o Ethereum pré-atualizado são ambos de baixa velocidade, com o Bitcoin processando cerca de 7 transações por segundo (TPS) e o Ethereum um pouco mais a 15 TPS. Isso tem sido insuficiente para atender às necessidades de um grande número de usuários e é ofuscado pelo sistema centralizado, como a empresa líder de cartão de crédito VISA, que processa até 24.000 transações por segundo. Além do congestionamento da rede, a velocidade lenta também aumenta os custos, e os usuários precisam pagar taxas mais altas para priorizar suas transações, tornando a experiência do usuário ainda pior.


Fonte: Etherscan

Não há necessidade de cada nó possuir o histórico completo de transações em um blockchain fragmentado, pois um nó só precisa reter informações relacionadas ao fragmento ao qual pertence, o custo de configuração de nós e o limite de participação são reduzidos pelo fragmentamento. As redes Blockchain podem se tornar mais descentralizadas com a ajuda do sharding. As especificações do equipamento de hardware necessárias para executar os nós se tornarão cada vez maiores sem fragmentação. No final, apenas participantes com condições econômicas favoráveis sobreviverão. O sharding permite que computadores comuns, laptops e até smartphones se tornem nós, o que levará à adoção em massa de blockchains e dAPPs.

Como funciona a fragmentação no ETH 2.0?

O mecanismo de consenso do Ethereum será convertido de Proof of Work (PoW) para Proof of Stake (PoS) no ETH 2.0 e a rede principal Ethereum original será mesclada na Beacon Chain. Como resultado, o poder de computação massivo não é mais necessário para os nós Ethereum gerarem novos blocos. Em vez disso, eles apostam seu ETH em contratos inteligentes para se tornarem validadores para obter o direito de obter taxas de transação ao enviar novos blocos.
No ETH 2.0, serão criados 64 shards para melhorar a escalabilidade, um dos quais se chama Beacon Chain. Ele desempenha um papel fundamental nas atualizações de sharding Ethereum e é responsável pela coordenação e compartilhamento de informações entre diferentes shards. Todos os nós ETH 2.0 também apostarão ETHs nas cadeias de fragmentos e processarão transações em diferentes fragmentos de acordo com as instruções, e os blocos nas cadeias de fragmentos só serão válidos com a aprovação da Beacon Chain.

Fonte: Hsiao-wei Wang
A fragmentação valida transações pendentes por triagem
Quando o ETH 2.0 adotar o sharding, o algoritmo de amostragem aleatória atribuirá números aleatórios de nós a cada shard para verificar as transações e determinar a ordem e a validade das transações na cadeia de shards por votação, então as informações dos blocos de shards recém-gerados serão adicionado na Cadeia Beacon. Um novo bloco deve ser aprovado por mais de dois terços dos nós da cadeia de fragmentos.
Conforme mostrado na figura abaixo, cada nó recebe um número (1~100) em uma sequência de conjuntos de nós validadores; o algoritmo de amostragem aleatória quebrará a ordem de atribuição dos nós, resultando em um novo conjunto de nós sem ordem fixa; os primeiros 1 a 10 nós recém-gerados podem ser designados como o primeiro comitê para processar transações na primeira cadeia de fragmentos, enquanto o 11º a 20º é o segundo comitê para processar a segunda cadeia de fragmentos e assim por diante.


Fonte: blog de Vitalik Buterin “Por que sharding é ótimo: desmistificando as propriedades técnicas”
O nó validador não é atribuído de forma fixa para processar transações em uma determinada cadeia de fragmentos, pois o algoritmo de amostragem aleatória interromperá novamente a ordem dos nós por um período de tempo. Portanto, os membros do comitê responsáveis por cada shard chain não são fixos, o que evita o risco de centralização causado por um nó específico verificando uma shard chain por muito tempo e aumenta a dificuldade de ataque.
Como o sharding aumentará muito a taxa de transferência do ETH 2.0, torna-se inviável para todos os nós atualizar os dados completos da transação em diferentes cadeias de shards de forma síncrona, o Collation Header, que é semelhante ao cabeçalho do bloco no PoW, torna-se o meio para compartilhamento de informações . Como o nome indica, um cabeçalho de agrupamento contém metadados sobre as informações dentro do agrupamento, como:

  1. O único estilhaço ao qual o agrupamento pertence
  2. O hash raiz do agrupamento pai
  3. A raiz Merkle de todas as transações em um agrupamento
  4. A raiz pré-estado e a raiz pós-estado
  5. Assinaturas de notários


Fonte: Hackernoon
O cabeçalho de agrupamento fornecerá ao nó informações suficientes e somente fará o download do registro completo da transação de acordo com o índice quando necessário.

Prós e Contras do Sharding

Uma alternativa que efetivamente desvia a demanda de uso e melhora significativamente a escalabilidade
Imagine que um milhão de carros são forçados a dirigir na mesma estrada para se deslocar da cidade A para a cidade B. A jornada deve ser lenta e esse é o caso das blockchains convencionais, pois todos os nós da cadeia são necessários para verificar todas as transações. A fragmentação divide os dados na cadeia em partes para que cada nó precise processar apenas uma parte da transação. Quando um blockchain adiciona várias rodovias para dispersar o tráfego, os usuários podem concluir as transações com mais rapidez.

Fonte: Bloco Genesis See More

Reduza o congestionamento da rede e reduza os custos
No Ethereum pré-atualização, os nós de mineradores empacotam transações com base em quanto os usuários estão dispostos a pagar, com taxas mais altas sendo processadas mais rapidamente e taxas mais baixas sendo processadas mais lentamente, resultando em uma licitação de taxa patológica em que os usuários ocasionalmente pagam mais de $ 50 por uma única transação . O sharding permite que o blockchain opere de forma mais suave e reduz a necessidade de licitação de taxas, e os usuários podem recorrer a outro se ocorrer congestionamento em um shard.

Nós mais fáceis de executar, aprimorando a descentralização e a segurança
Como não é necessário acessar os dados completos de todo o blockchain, pois cada nó só precisa processar informações em um fragmento ao mesmo tempo, o hardware necessário para configurar um nó torna-se menor. Os usuários podem usar dispositivos mais baratos como nós para participar da verificação e obter receita. O limite decrescente beneficia a descentralização e a popularização das redes blockchain, e a visão do ETH 2.0 é permitir que indivíduos executem aplicativos Ethereum a partir de seus smartphones. Um benefício colateral da descentralização é o aprimoramento da segurança da rede, quanto mais nós e mais dispersos eles estiverem, mais difícil será atacar o blockchain.

Embora a fragmentação destaque uma lista de vantagens, ela também apresenta uma série de novos problemas:

A possibilidade do Ataque de 1%
O blockchain é vulnerável a 51% de ataques, o que significa que um invasor é capaz de adulterar arbitrariamente os dados da transação ou até mesmo controlar toda a rede blockchain quando ele controla 51% do poder de computação dos nós. Em redes blockchain maiores, como Bitcoin e Ethereum pré-atualização, o custo de um ataque de 51% é muito alto, tornando-o inviável de implementar.
No entanto, com a adoção do sharding, o número de nós que processam cada shard é drasticamente reduzido e torna-se muito mais fácil para um invasor mal-intencionado comprometer, desde que ele ataque um dos shards e forje as transações com sucesso, em vez de atacar toda a rede. Para ser mais específico, para uma rede blockchain contendo 1.000 nós com o mesmo poder de computação, um hacker precisa controlar mais de 500 nós para atacar toda a rede. Mas quando esses 1.000 nós são distribuídos em 100 estilhaços, um hacker só precisa controlar mais de 5 nós em um dos estilhaços para adulterar os dados.

Fonte: Bloco Genesis See More

O risco de segurança de contratos inteligentes aumenta
A adoção de sharding requer reescrever a estrutura de dados e a lógica de código subjacente do registro da rede blockchain, e a complicação adicional tornará mais difícil atualizar e manter a rede, resultando em vulnerabilidades de segurança e riscos de contratos inteligentes, enquanto erros não intencionais também podem ocorrer durante a execução.

Conluio entre os membros do comitê
Embora a fragmentação adote um algoritmo de amostragem aleatória para evitar que nós idênticos sejam atribuídos a uma cadeia de fragmentos fixa, ainda existe a possibilidade de que combinações duplicadas de nós idênticos possam covalidar transações após um período de tempo longo o suficiente e membros do comitê verificando a cadeia de fragmentos também é possível conspirar entre si e enviar transações maliciosas à cadeia.
Desequilíbrio de carga
O pré-requisito para melhorar o desempenho da rede por meio do sharding é que o “sharding” traga com sucesso o “diversion”. Quando um blockchain é otimizado com 100 cadeias de fragmentos, no entanto, todos os usuários ainda usam uma cadeia de fragmentos específica, então a fragmentação falha e a escalabilidade não melhora muito. Esse também é um problema potencial para o ETH 2.0, pois a capacidade de executar operações de contrato inteligente para cada cadeia de fragmentos não está incluída no planejamento inicial.
Exploradores de blockchain mais complicados
A melhoria da escalabilidade trazida pelo sharding é alcançada adicionando mais algoritmos e dados a toda a rede, maior poder de processamento é necessário para que os exploradores de blockchain recuperem efetivamente as informações no blockchain.

Outras Blockchains Adotando Sharding

Elrond:

Elrond é um blockchain público descentralizado que visa melhorar a escalabilidade, velocidade e segurança desenvolvendo três tecnologias principais, incluindo Adaptive State Sharding com tecnologia de escalonamento de blockchain, Secure Proof of Stake (SPoS) que determina a seleção de validadores para acelerar a verificação e Elrond Virtual Machine, que suporta várias linguagens de programação e é compatível com Ethereum VM.

O exclusivo Adaptive State Sharding de Elrond combina três formas de fragmentação:

  1. Network Sharding representa o processo de agrupamento dos nós em shards.
  2. O Transaction Sharding leva a complexidade para o próximo nível e lida com a distribuição de transações em diferentes shards, mas todos os nós mantêm toda a blockchain em seu estado.
  3. O sharding de estado representa a parte mais sofisticada e é descrito como um mecanismo que permite que diferentes shards lidem apenas com uma parte do estado sem replicar os dados entre nós de diferentes shards.

Atualmente, Elrond pode atingir 15.000 TPS, mantendo a taxa tão baixa quanto $ 0,001, o que é uma vantagem razoável sobre o Ethereum.

Perto:

Near é uma blockchain public chain baseada em full-state sharding, aplicações de desenvolvimento simplificadas e mecanismo proof-of-stake. Ele define o objetivo de aumentar a escalabilidade para o desenvolvimento de aplicativos descentralizados e abrir a porta da tecnologia blockchain para todos. Seu mecanismo de consenso Doomslug, que adota o algoritmo Nightshade, é capaz de escalar o TPS para 100.000. A arquitetura técnica de Near é diferente de outras cadeias públicas fragmentadas, como a Beacon Chain, que é composta de uma cadeia e várias cadeias de fragmentos, é dividida em blocos individuais e a fragmentação é realizada entre esses blocos. Um bloco contém todas as transações de todos os shards enquanto o estado do shard é dividido e os validadores são atribuídos aleatoriamente para verificar o estado correspondente do shard da transação, melhorando assim a segurança.

Zilliqa:

Zilliqa é um pássaro bastante adiantado em blockchains. Foi lançado para resolver a baixa escalabilidade do blockchain na época usando fragmentação de rede e fragmentação de transação, bem como PoW e algoritmo de consenso tolerante a falhas (PBFT) bizantino com complexidade simplificada para acelerar o consenso dentro dos fragmentos. Ele ainda pode ser executado rapidamente com mais de 600 nós, e o dimensionamento constante leva o Zilliqa a um TPS mais alto, de 2.400 a 3.600 TPS.

Harmonia:

Harmony é uma cadeia pública baseada em sharding de estado, que é estruturada por uma Beacon Chain e várias cadeias de sharding e acompanhada pelo algoritmo de consenso tolerante a falhas bizantino (PBFT) para alcançar um consenso profundamente otimizado enquanto acelera com assinaturas BLS para agregar várias assinaturas em um único. Em uma cadeia pública fragmentada, 1% do poder de computação pode ser usado para ataques de gasto duplo, considerando isso, Harmony adota EPoS (prova efetiva de participação) e fragmentação aleatória para dispersar tokens apostados em grande escala e alocá-los aleatoriamente para vários fragmentos para reduzir o risco de serem atacados e aumentar a segurança dos fragmentos. Ele também adota o Kademlia Cross-shard Communication para controlar os gastos da rede enquanto aproveita o Erasure Code, que permite a recuperação de dados, para otimizar o processo de transmissão em bloco para realizar uma escala de fragmentação horizontal eficiente.

Conclusão

Com a explosão do uso de criptomoedas e a proliferação de dAPPs, alguns blockchains tradicionais estão sobrecarregados e incapazes de atender à crescente demanda do mercado. Como melhorar a escalabilidade sem abrir mão da descentralização e da segurança tornou-se um grande problema para a atual indústria de blockchain.

O sharding efetivamente desvia as necessidades on-chain e melhora a eficiência do acesso

O sharding é uma tecnologia de otimização que melhora a eficiência do acesso ao banco de dados, dividindo os dados da transação on-chain e processando-os por diferentes nós de forma síncrona. É assim que o desvio de tráfego e o aumento da velocidade são alcançados. Como uma solução de escalonamento de Camada 1 altamente antecipada, quando o sharding é realizado com sucesso após superar as dificuldades técnicas de alto nível, seus benefícios potenciais são bastante grandes. O sharding foi adotado por alguns blockchains e no próximo ETH 2.0, também será adotado com a esperança de melhorar significativamente o desempenho da rede.

Sharding é extremamente difícil de conseguir com muitos desafios não resolvidos, mas eventualmente o triângulo impossível será superado

No entanto, sharding não é uma solução perfeita. Além do aumento da complexidade, pode expor a rede a mais riscos. Muitos desenvolvedores continuam suas pesquisas sobre como coordenar diferentes shards para operar com eficiência, esperando que o sharding seja a chave para superar o “triângulo impossível” de segurança, descentralização e escalabilidade, para que todos os aplicativos de blockchain e criptomoedas existentes possam ser ainda mais popularizado.

Autor: Piccolo Tradutor:Yulei
Revisor(es): Hugo, Edward
Isenção de responsabilidade:

  • Este artigo representa apenas as opiniões dos observadores e não constitui nenhuma sugestão de investimento.
    *Gate.io reserva todos os direitos deste artigo. A republicação do artigo será permitida desde que Gate.io seja referenciado. Em todos os outros casos, serão tomadas medidas legais devido à violação de direitos autorais.
Autor: Piccolo
Tradutor: Yuler
Revisores: Hugo, Edward, Cecilia, Ashley
* As informações não pretendem ser e não constituem aconselhamento financeiro ou qualquer outra recomendação de qualquer tipo oferecida ou endossada pela Gate.io.
* Este artigo não pode ser reproduzido, transmitido ou copiado sem referência à Gate.io. A contravenção é uma violação da Lei de Direitos Autorais e pode estar sujeita a ação legal.
Comece agora
Inscreva-se e ganhe um cupom de
$100
!