O que é o Sharding?

PrincipianteNov 21, 2022
Sharding é uma técnica de partição de bases de dados que ajuda as blockchains a aumentar a escalabilidade, permitindo que as transações sejam processadas em paralelo por várias cadeias de partilha para reduzir o congestionamento da rede e aumentar as transações por segundo (TPS).
O que é o Sharding?

Introdução

Numa blockchain convencional, as transações devem ser confirmadas por cada nó da rede enquanto é necessário chegar a um consenso entre os nós antes das transações serem embaladas para gerar um novo bloco. A segurança é totalmente garantida à medida que cada nó regista o histórico completo do registo, tornando difícil para os hackers adulterarem sub-repticiamente os dados sem serem detectados.
A segurança e a escalabilidade são incompatíveis
No entanto, a alta segurança vem a um preço. A frequência dos nós que comunicam e trocam informações ocupa a largura de banda da rede e atrasa o processamento das transações. Para evitar que um único nó pare a rede inteira, são necessários mais nós para aumentar a descentralização e dispersar o risco. Essas diferentes compensações são também conhecidas como o “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: O blogue de Vitalik Buterin “Porque é que a partilha é ótima: desmistificar as propriedades técnicas”

Sharding permite uma escala eficiente ao mesmo tempo que alcança segurança e descentralização O
Sharding é uma solução que aumenta a escalabilidade de uma rede blockchain sem abdicar da segurança e da descentralização. O compartilhamento divide uma única blockchain em várias blockchains mais pequenas, cada uma delas gerencia os seus próprios registos separadamente, e a troca de datas só é realizada quando necessário. Portanto, os nós em diferentes cadeias de partilha podem verificar sincronicamente apenas as transações pertencentes às suas próprias cadeias, em vez dos dados da blockchain inteira.
Desde que o número de nós em cada cadeia de partilha seja grande o suficiente, a segurança e a descentralização serão confirmadas. A aplicação de sharding pode aumentar o rendimento das blockchains para satisfazer a crescente procura dos utilizadores. O ETH 2.0 também melhorará a sua escalabilidade através do sharding.

O que é o compartilhamento?

Sharding é uma técnica de otimização para melhorar o desempenho do acesso à base de dados cortando a base de dados original em vários fragmentos com base nas condições de demanda, que podem espalhar a carga e o tráfego do usuário para fornecer um serviço mais rápido. Considerando que uma blockchain é essencialmente um grande livro de registro descentralizado, é possível melhorar a escalabilidade através do compartilhamento.
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 pedido grande como este, uma simples triagem pode ser feita usando intervalos de preços para acelerar o processamento dos verificadores.

Fonte: DigitalOcean
Sharding triagem os dados e processa os dados de acordo com necessidades diferentes
Um verificador (nó) tem de confirmar todas as informações do pedido sem dividir os dados do pedido (partilha), que demora muito tempo a executar tarefas repetitivas. Por outro lado, dividir os dados do pedido em vários fragmentos permite que verificadores diferentes processem pedidos de preços baixos e de preço elevado separadamente.
Visto que cada tipo de pedido é uma pequena parte do pedido completo, e os verificadores responsáveis para itens com preços diferentes podem funcionar simultaneamente sem se afetarem mutuamente, então o compartilhamento permite operações paralelas; cada verificador precisa apenas verificar parte do pedido, portanto, a partilha reduz a carga de trabalho dos nós e acelera a verificação.
Uma base de dados afiada é como um quebra-cabeças e cada pedaço do puzzle representa um pedaço. Uma blockchain não codificada tem de redesenhar o quebra-cabeças toda vez que é gerado um novo bloco (replicação do estado) e depois modificar uma pequena parte do quebra-cabeça (atualização do estado). Uma blockchain fragada só precisa encontrar a peça específica que precisa de modificação (fragmento) e substituí-la por uma nova quando adicionar um novo registo de transação.

Por que é necessário o compartilhamento?

As aplicações em cadeia são mais diversas e a procura cresce exponencialmente
Assim que há um aumento significativo no tamanho do utilizador, independentemente do tipo que o sistema seja, tem inevitavelmente de ser escalado 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 atrasos. Uma situação semelhante pode ser vista na vida real. Durante as férias, os turistas para locais de interesse sofrem sempre de terríveis engarrafamentos. O que normalmente pode demorar apenas duas horas a chegar a um destino agora demora muito mais tempo devido ao aumento do tráfego. Rotinas alternativas são a solução comum para aliviar efetivamente o congestionamento do tráfego.
Dimensionar os encontros de estrangulamentos, procurar alternativas a
Blockchain também encontrou o gargalo da escalabilidade durante o seu desenvolvimento. Numa blockchain P2P com apenas 10 nós, toda a troca de dados pode ser concluída após 10 9 vezes de comunicação entre nós; quando o número de nós chega a 100, significa 100 99 vezes de comunicação entre nós se não houver otimização de algoritmo. Em geral, uma rede de 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 a escala das redes blockchain.

Por serem os principais, a Bitcoin e a Ethereum continuam a aplicar mecanismo desatualizado
Bitcoin, atualmente a maior criptomoeda por capitalização de mercado, e a Ethereum pré-upgrade são ambas de baixa velocidade, com Bitcoin a processar cerca de 7 transações por segundo (TPS) e Ethereum um pouco mais a 15 TPS. Há muito que isso é insuficiente para satisfazer as necessidades de um grande número de utilizadores e é anedado pelo sistema centralizado, como a empresa líder de cartões 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 utilizadores precisam pagar taxas mais altas para priorizar as suas transações, tornando a experiência do utilizador ainda pior.


Fonte: Etherscan

Não é necessário que cada nó possua o histórico completo de transações numa blockchain compartilhada já que um nó só precisa reter informações relacionadas com o pedaço a que pertence, o custo de configuração de nós e o limite para participação é reduzido pela partilha. As redes de blockchain são possíveis de se tornarem mais descentralizadas com a ajuda de partilhas. As especificações do equipamento de hardware necessário para executar os nós vão tornar-se mais altas e mais altas sem compartilhamento. No final, só sobreviverão os participantes com condições económicas favoráveis. A partilha permite que computadores, portáteis e até smartphones comuns se tornem nós, o que levará à adoção em massa das blockchains e DAPPs.

Como funciona o Sharding no ETH 2.0?

O mecanismo de consenso da Ethereum será convertido de Proof of Work (PoW) em Prova de Aposta (POs) no ETH 2.0 e a rede principal Ethereum original será fundida na Cadeia de Farol. Como resultado, o poder de computação massiva já não é necessário para os nós Ethereum gerarem novos blocos. Em vez disso, eles apostam os seus ETH nos contratos inteligentes para se tornarem validadores a ter o direito de obter taxas de transação ao enviar novos blocos.
No ETH 2.0, 64 pedaços serão criados para melhorar a escalabilidade, um dos quais se chama Beacon Chain. Desempenha um papel fundamental na Ethereum que partilha atualizações e é responsável pela coordenação e partilha de informações entre diferentes pedaços. Todos os nós ETH 2.0 também passarão ETH nas cadeias de fragmento e processarão transações em diferentes cacos de acordo com as instruções, e os blocos nas cadeias de fragmentos só serão válidos com a aprovação da Cadeia de Beacon.

Souce: Hsiao-wei Wang
Sharding valida transações pendentes por triagem
Quando o ETH 2.0 adota a partilha, o algoritmo de amostragem aleatória atribuirá números aleatórios de nós a cada fragmento para verificar as transações e determinar a ordem e a validade das transações na cadeia de fragmentos através da votação, então a informação dos blocos de fragmentos recém-gerados será adicionada na Cadeia de Beacon. Um novo bloco deve ser aprovado por mais de dois terços dos nós da cadeia de fragmentos.
Como mostrado na figura abaixo, a cada nó recebe um número (1~100) numa seqüência de conjuntos de nós validadores; o algoritmo de amostragem aleatória quebrará a ordem de atribuição dos nós, resultando num novo conjunto de nós sem ordem fixa; os primeiros 1~10 nós recém-gerados podem ser designados como o primeiro comité a processar transações na primeira cadeia de fragmentos enquanto o 11~20 é o segundo comité para processar o segundo comité para processar o segundo pedaço cadeia, e assim por diante.


Fonte: O blogue de Vitalik Buterin “Porque é que a partilha é ótima: desmistificar as propriedades técnicas”
O nó do validador não é atribuído com precisão para processar transações numa certa cadeia de fragmentos já que o algoritmo de amostragem aleatória vai interromper a ordem dos nós por um período de tempo. Portanto, os membros do comité responsáveis por cada cadeia de fragmentos não são fixos, o que evita o risco de centralização causada por um nó específico verificando uma cadeia de fragmentos por muito tempo, e aumenta a dificuldade de atacar.
Visto que a partilha vai aumentar muito o rendimento do ETH 2.0, torna-se inviável para todos os nós atualizarem os dados completos da transação em diferentes cadeias de fragmentos sincronicamente, o Cabeçalho de Colação, que é semelhante ao cabeçalho do bloco no PoW, torna-se no meio para a partilha de informação. Como o nome indica, um cabeçalho de agrupamento contém metadados sobre a informação dentro da compilação, tais como:

  1. O pedaço único a que pertence a colação
  2. O hash da raiz da colação pai.
  3. A raiz Merkle de todas as transações numa colação
  4. A raiz do pré-estado e a raiz pós-estado
  5. Assinaturas de notários


Fonte: Hackermeio-dia
O cabeçalho do alceamento fornecerá ao nó informações suficientes e só descarregará o registo completo da transação de acordo com o índice quando necessário.

Prós e contras de Sharding

Uma alternativa que desvia efetivamente a procura de uso e melhorando significativamente a escalabilidade
Imagine que um milhão de carros são forçados a conduzir na mesma estrada para se mudar da cidade A para a cidade B. A viagem deve ser lenta e é o caso das blockchains convencionais, uma vez que todos os nós em cadeia são necessários para verificar todas as transações. Dividir fatias de dados em cadeia em pedaços para que cada nó precise apenas processar uma parte da transação. Quando uma blockchain adiciona várias autoestradas para dispersar o tráfego, os utilizadores podem concluir as transações com direito mais rápido.

Fonte: Genesis Block

Reduz o congestionamento da rede e reduza os custos
No pré-upgrade Ethereum, os nós miner pack transações com base no quanto os usuários estão dispostos a pagar, com as taxas mais altas a serem processadas mais rápido e as taxas mais baixas são processadas mais lentamente, resultando em uma taxa patológica licitar em que os usuários ocasionalmente pagam mais de US$ 50 por uma única transação. O compartilhamento permite que a blockchain funcione mais suavemente e reduz a necessidade de licitar taxas, e os utilizadores podem recorrer a outro se ocorrer congestionamento num pedaço.

Mais fácil de executar os nós, aumentando a descentralização e a segurança
Visto que não é necessário aceder aos dados completos de toda a blockchain já que cada nó só precisa processar informações num fragmento ao mesmo tempo, o hardware necessário para configurar um nó torna-se mais baixo. Os utilizadores podem usar dispositivos mais baratos como nós para aderir à verificação para ganhar receita. O limiar decrescente beneficia a descentralização e popularização das redes blockchain e a visão do ETH 2.0 é permitir que os indivíduos executem apps Ethereum a partir dos seus smartphones. Um benefício secundário da descentralização é o reforço da segurança da rede, quanto mais nós e mais dispersos estiverem, mais difícil é atacar a blockchain.

Embora o compartilhamento destaque uma lista de vantagens, também introduz uma série de novos problemas:

A possibilidade do ataque de 1%
A blockchain é vulnerável a 51% de ataques, o que significa que um atacante é capaz de adulterar arbitrariamente os dados de transações ou mesmo controlar toda a rede de blockchain quando controla 51% do poder computacional dos nós. Em redes de blockchain maiores, como Bitcoin e Ethereum pre-upgrade, o custo de um ataque de 51% é demasiado alto, tornando inviável implementar.
No entanto, com a adoção do compartilhamento, o número de nós a processar cada fragmento é drasticamente reduzido e torna-se muito mais fácil para um atacante mal-intencionado comprometer desde que ataca um dos pedaços e falsifique as transações com êxito, em vez de atacar a rede inteira. Para ser mais específico, para uma rede blockchain que contenha 1.000 nós com o mesmo poder de computação, um hacker precisa controlar mais de 500 nós para atacar a rede inteira. Mas quando esses 1000 nós são distribuídos para 100 fragmentos, um hacker só precisa controlar mais de 5 nós num dos pedaços para adulterar os dados.

Fonte: Genesis Block

O risco de segurança dos contratos inteligentes aumenta
A adoção do compartilhamento exige reescrever a estrutura de dados e a lógica de código subjacente do ledger da rede blockchain e a maior complicação 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 o compartilhamento 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 combinações duplicadas de nós idênticos poderem co-validar transações após um período de tempo suficiente, e os membros do comité verificando a cadeia de fragmento também são possíveis para conluir uns com os outros e enviar transações mal-intencionadas para a cadeia.
Desequilíbrio de carga
O pré-requisito para melhorar o desempenho da rede através do sharding é que o “sharding” traz com êxito “desvio”. Quando uma blockchain é otimizada com 100 cadeias de fragmentos, no entanto, todos os utilizadores ainda usam uma determinada cadeia de fragmentos, então o compartilhamento falha e a escalabilidade não foi muito melhorada. Isso também é um problema potencial para o ETH 2.0 pois a capacidade de realizar operações de contratos inteligentes para cada cadeia de fragmentos não está incluída no planeamento inicial.
Exploradores de blockchain mais complicados
A melhoria da escalabilidade proporcionada pelo compartilhamento é conseguida adicionando mais algoritmos e dados a toda a rede, é necessário um maior poder de processamento para que os exploradores de blockchain recuperem efetivamente informações na blockchain.

Outras Blockchains que adotam o Sharding

Elrond:

Elrond é uma blockchain pública descentralizada pretende melhorar a escalabilidade, a velocidade e a segurança através do desenvolvimento de três tecnologias-chave, incluindo Adaptive State Sharding com tecnologia de escala de blockchain, Proof of Stake (SPOs) que determina a seleção de validadores para acelerar a verificação, e a Máquina Virtual Elrond, que suporta várias linguagens de programação e é compatível com a Ethereum VM.

O único Adapttive State Sharding combina três formas de partilha:

  1. O compartilhamento de rede representa o processo de agrupamento dos nós em pedaços.
  2. O Transaction Sharding leva a complexidade para o próximo nível e trata da distribuição das transações por diferentes fragmentos, mas todos os nós mantêm a blockchain inteira no seu estado.
  3. A partilha de estados representa a parte mais sofisticada e é descrita como um mecanismo que permite que diferentes pedaços lidem apenas com uma parte do estado sem replicar os dados entre nós de fragmentos diferentes.

Atualmente, Elrond pode chegar aos 15 000 TPS mantendo a taxa tão baixo como $0.001, o que é uma vantagem razoável sobre a Ethereum.

Perto:

Perto é uma cadeia pública de blocos baseada em compartilhamento de estado completo, aplicações de desenvolvimento simplificado e mecanismo de prova de jogo. Estabelece o objetivo de aumentar a escalabilidade para o desenvolvimento de aplicações descentralizadas e abrir a porta da tecnologia blockchain a todos. O seu mecanismo de consenso Doomslug, que adota o algoritmo Nightshade, consegue escalar o TPS para 100.000. A arquitetura técnica do próximo é diferente com outras cadeias públicas afiadas, como a Beacon Chain, que é composta por uma corrente e várias cadeias de pedaços, é dividida em blocos individuais e a partilha é executada entre esses blocos. Um bloco contém todas as transações de todos os fragmentos enquanto o estado de fragmento é dividido e os validadores são atribuídos aleatoriamente para verificar o estado correspondente do fragmento da transação, melhorando assim a segurança.

Zilliqa:

A Zilliqa é um pássaro bastante cedo nas cadeias de blocos. Foi lançado para resolver a fraca escalabilidade da blockchain na altura usando compartilhamento de redes e compartilhamento de transações, bem como PoW e algoritmo de consenso tolerante a falhas bizantino (PBFT) com complexidade simplificada para acelerar o consenso dentro de caxos. Ainda pode correr rápido com mais de 600 nós e o dimensionamento constante leva o Zilliqa para o TPS mais alto, de 2400 a 3600 TPS.

Harmonia:

A Harmony é uma cadeia pública baseada na partilha de estados, que é estruturada por uma Beacon Chain e várias cadeias de partilha e acompanhada pelo algoritmo de consenso tolerante a falhas bizantino (PBFT) para alcançar um consenso profundamente otimizado enquanto acelera as assinaturas BLS para agregar várias assinaturas em uma única. Numa cadeia pública fragilhada, 1% do poder informático pode ser usado para ataques de gastos duplos, considerem isso, Harmony adota EPO Prova-de-jogo Eficaz e Sharding Aleatório para dispersar fichas de stakes em grande escala e alocá-los aleatoriamente a vários fragmentos para reduzir o risco de serem atacados de forma a aumentar a segurança de destroços. Também adota a Kademlia Cross-shard Communication para controlar as despesas da rede enquanto aproveita o Código de Erasure, que permite a recuperação de dados, para otimizar o processo de transmissão em blocos para realizar uma escala de partilha horizontal eficiente.

Conclusão

Com a explosão do uso de criptomoedas e a proliferação de DAPPs, algumas blockchains tradicionais estão sobrecarregadas e não conseguem satisfazer a crescente procura do mercado. Como melhorar a escalabilidade sem abdicar da descentralização e da segurança tornou-se um problema importante para a indústria atual de blockchain.

O compartilhamento efetivamente desvia as necessidades em cadeia e melhora a eficiência do acesso

Sharding é uma tecnologia de otimização que melhora a eficiência do acesso à base de dados ao dividir os dados de transações em cadeia e processá-los por nós diferentes sincronicamente, é assim que o desvio de tráfego e o aumento da velocidade são alcançados. Como uma solução de escala de camada 1 altamente esperada, quando a partilha é realizada com sucesso depois de superar as dificuldades técnicas de alto nível, os seus benefícios potenciais são bastante enormes. O compartilhamento foi adotado por algumas blockchains e no próximo ETH 2.0, também será adotado com a esperança de melhorar o desempenho da rede significativamente.

Sharding é extremamente difícil de alcançar com muitos desafios por resolver mas eventualmente o triângulo impossível será ultrapassado

No entanto, a partilha não é uma solução perfeita. Além da maior complexidade, pode expor a rede a mais riscos. Muitos desenvolvedores estão a continuar a sua pesquisa sobre como coordenar diferentes pedaços para operar com eficiência, esperando que a partilha seja a chave para ultrapassar o “triângulo impossível” de segurança, descentralização e escalabilidade, para que todas as aplicações e criptomoedas blockchain existentes possam ser ainda mais popularizadas.

Autor: Piccolo Translator:Yulei
Reviewer (es): Hugo, Edward
Disclaimer:

  • Este artigo representa apenas a opinião dos observadores e não constitui nenhuma sugestão de investimento.
    *Gate.io reserva todos os direitos a este artigo. A repostagem do artigo será permitida desde que o Porta.IO seja referenciado. Em todos os outros casos, uma ação judicial será tomada devido a violação de direitos de autor.
Autor: Piccolo
Tradutor(a): Yuler
Revisor(es): Hugo, Edward, Cecilia, Ashley
* As informações não se destinam a ser e não constituem aconselhamento financeiro ou qualquer outra recomendação de qualquer tipo oferecido ou endossado pela Gate.io.
* Este artigo não pode ser reproduzido, transmitido ou copiado sem fazer referência à Gate.io. A violação é uma violação da Lei de Direitos de Autor e pode estar sujeita a ações legais.

O que é o Sharding?

PrincipianteNov 21, 2022
Sharding é uma técnica de partição de bases de dados que ajuda as blockchains a aumentar a escalabilidade, permitindo que as transações sejam processadas em paralelo por várias cadeias de partilha para reduzir o congestionamento da rede e aumentar as transações por segundo (TPS).
O que é o Sharding?

Introdução

Numa blockchain convencional, as transações devem ser confirmadas por cada nó da rede enquanto é necessário chegar a um consenso entre os nós antes das transações serem embaladas para gerar um novo bloco. A segurança é totalmente garantida à medida que cada nó regista o histórico completo do registo, tornando difícil para os hackers adulterarem sub-repticiamente os dados sem serem detectados.
A segurança e a escalabilidade são incompatíveis
No entanto, a alta segurança vem a um preço. A frequência dos nós que comunicam e trocam informações ocupa a largura de banda da rede e atrasa o processamento das transações. Para evitar que um único nó pare a rede inteira, são necessários mais nós para aumentar a descentralização e dispersar o risco. Essas diferentes compensações são também conhecidas como o “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: O blogue de Vitalik Buterin “Porque é que a partilha é ótima: desmistificar as propriedades técnicas”

Sharding permite uma escala eficiente ao mesmo tempo que alcança segurança e descentralização O
Sharding é uma solução que aumenta a escalabilidade de uma rede blockchain sem abdicar da segurança e da descentralização. O compartilhamento divide uma única blockchain em várias blockchains mais pequenas, cada uma delas gerencia os seus próprios registos separadamente, e a troca de datas só é realizada quando necessário. Portanto, os nós em diferentes cadeias de partilha podem verificar sincronicamente apenas as transações pertencentes às suas próprias cadeias, em vez dos dados da blockchain inteira.
Desde que o número de nós em cada cadeia de partilha seja grande o suficiente, a segurança e a descentralização serão confirmadas. A aplicação de sharding pode aumentar o rendimento das blockchains para satisfazer a crescente procura dos utilizadores. O ETH 2.0 também melhorará a sua escalabilidade através do sharding.

O que é o compartilhamento?

Sharding é uma técnica de otimização para melhorar o desempenho do acesso à base de dados cortando a base de dados original em vários fragmentos com base nas condições de demanda, que podem espalhar a carga e o tráfego do usuário para fornecer um serviço mais rápido. Considerando que uma blockchain é essencialmente um grande livro de registro descentralizado, é possível melhorar a escalabilidade através do compartilhamento.
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 pedido grande como este, uma simples triagem pode ser feita usando intervalos de preços para acelerar o processamento dos verificadores.

Fonte: DigitalOcean
Sharding triagem os dados e processa os dados de acordo com necessidades diferentes
Um verificador (nó) tem de confirmar todas as informações do pedido sem dividir os dados do pedido (partilha), que demora muito tempo a executar tarefas repetitivas. Por outro lado, dividir os dados do pedido em vários fragmentos permite que verificadores diferentes processem pedidos de preços baixos e de preço elevado separadamente.
Visto que cada tipo de pedido é uma pequena parte do pedido completo, e os verificadores responsáveis para itens com preços diferentes podem funcionar simultaneamente sem se afetarem mutuamente, então o compartilhamento permite operações paralelas; cada verificador precisa apenas verificar parte do pedido, portanto, a partilha reduz a carga de trabalho dos nós e acelera a verificação.
Uma base de dados afiada é como um quebra-cabeças e cada pedaço do puzzle representa um pedaço. Uma blockchain não codificada tem de redesenhar o quebra-cabeças toda vez que é gerado um novo bloco (replicação do estado) e depois modificar uma pequena parte do quebra-cabeça (atualização do estado). Uma blockchain fragada só precisa encontrar a peça específica que precisa de modificação (fragmento) e substituí-la por uma nova quando adicionar um novo registo de transação.

Por que é necessário o compartilhamento?

As aplicações em cadeia são mais diversas e a procura cresce exponencialmente
Assim que há um aumento significativo no tamanho do utilizador, independentemente do tipo que o sistema seja, tem inevitavelmente de ser escalado 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 atrasos. Uma situação semelhante pode ser vista na vida real. Durante as férias, os turistas para locais de interesse sofrem sempre de terríveis engarrafamentos. O que normalmente pode demorar apenas duas horas a chegar a um destino agora demora muito mais tempo devido ao aumento do tráfego. Rotinas alternativas são a solução comum para aliviar efetivamente o congestionamento do tráfego.
Dimensionar os encontros de estrangulamentos, procurar alternativas a
Blockchain também encontrou o gargalo da escalabilidade durante o seu desenvolvimento. Numa blockchain P2P com apenas 10 nós, toda a troca de dados pode ser concluída após 10 9 vezes de comunicação entre nós; quando o número de nós chega a 100, significa 100 99 vezes de comunicação entre nós se não houver otimização de algoritmo. Em geral, uma rede de 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 a escala das redes blockchain.

Por serem os principais, a Bitcoin e a Ethereum continuam a aplicar mecanismo desatualizado
Bitcoin, atualmente a maior criptomoeda por capitalização de mercado, e a Ethereum pré-upgrade são ambas de baixa velocidade, com Bitcoin a processar cerca de 7 transações por segundo (TPS) e Ethereum um pouco mais a 15 TPS. Há muito que isso é insuficiente para satisfazer as necessidades de um grande número de utilizadores e é anedado pelo sistema centralizado, como a empresa líder de cartões 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 utilizadores precisam pagar taxas mais altas para priorizar as suas transações, tornando a experiência do utilizador ainda pior.


Fonte: Etherscan

Não é necessário que cada nó possua o histórico completo de transações numa blockchain compartilhada já que um nó só precisa reter informações relacionadas com o pedaço a que pertence, o custo de configuração de nós e o limite para participação é reduzido pela partilha. As redes de blockchain são possíveis de se tornarem mais descentralizadas com a ajuda de partilhas. As especificações do equipamento de hardware necessário para executar os nós vão tornar-se mais altas e mais altas sem compartilhamento. No final, só sobreviverão os participantes com condições económicas favoráveis. A partilha permite que computadores, portáteis e até smartphones comuns se tornem nós, o que levará à adoção em massa das blockchains e DAPPs.

Como funciona o Sharding no ETH 2.0?

O mecanismo de consenso da Ethereum será convertido de Proof of Work (PoW) em Prova de Aposta (POs) no ETH 2.0 e a rede principal Ethereum original será fundida na Cadeia de Farol. Como resultado, o poder de computação massiva já não é necessário para os nós Ethereum gerarem novos blocos. Em vez disso, eles apostam os seus ETH nos contratos inteligentes para se tornarem validadores a ter o direito de obter taxas de transação ao enviar novos blocos.
No ETH 2.0, 64 pedaços serão criados para melhorar a escalabilidade, um dos quais se chama Beacon Chain. Desempenha um papel fundamental na Ethereum que partilha atualizações e é responsável pela coordenação e partilha de informações entre diferentes pedaços. Todos os nós ETH 2.0 também passarão ETH nas cadeias de fragmento e processarão transações em diferentes cacos de acordo com as instruções, e os blocos nas cadeias de fragmentos só serão válidos com a aprovação da Cadeia de Beacon.

Souce: Hsiao-wei Wang
Sharding valida transações pendentes por triagem
Quando o ETH 2.0 adota a partilha, o algoritmo de amostragem aleatória atribuirá números aleatórios de nós a cada fragmento para verificar as transações e determinar a ordem e a validade das transações na cadeia de fragmentos através da votação, então a informação dos blocos de fragmentos recém-gerados será adicionada na Cadeia de Beacon. Um novo bloco deve ser aprovado por mais de dois terços dos nós da cadeia de fragmentos.
Como mostrado na figura abaixo, a cada nó recebe um número (1~100) numa seqüência de conjuntos de nós validadores; o algoritmo de amostragem aleatória quebrará a ordem de atribuição dos nós, resultando num novo conjunto de nós sem ordem fixa; os primeiros 1~10 nós recém-gerados podem ser designados como o primeiro comité a processar transações na primeira cadeia de fragmentos enquanto o 11~20 é o segundo comité para processar o segundo comité para processar o segundo pedaço cadeia, e assim por diante.


Fonte: O blogue de Vitalik Buterin “Porque é que a partilha é ótima: desmistificar as propriedades técnicas”
O nó do validador não é atribuído com precisão para processar transações numa certa cadeia de fragmentos já que o algoritmo de amostragem aleatória vai interromper a ordem dos nós por um período de tempo. Portanto, os membros do comité responsáveis por cada cadeia de fragmentos não são fixos, o que evita o risco de centralização causada por um nó específico verificando uma cadeia de fragmentos por muito tempo, e aumenta a dificuldade de atacar.
Visto que a partilha vai aumentar muito o rendimento do ETH 2.0, torna-se inviável para todos os nós atualizarem os dados completos da transação em diferentes cadeias de fragmentos sincronicamente, o Cabeçalho de Colação, que é semelhante ao cabeçalho do bloco no PoW, torna-se no meio para a partilha de informação. Como o nome indica, um cabeçalho de agrupamento contém metadados sobre a informação dentro da compilação, tais como:

  1. O pedaço único a que pertence a colação
  2. O hash da raiz da colação pai.
  3. A raiz Merkle de todas as transações numa colação
  4. A raiz do pré-estado e a raiz pós-estado
  5. Assinaturas de notários


Fonte: Hackermeio-dia
O cabeçalho do alceamento fornecerá ao nó informações suficientes e só descarregará o registo completo da transação de acordo com o índice quando necessário.

Prós e contras de Sharding

Uma alternativa que desvia efetivamente a procura de uso e melhorando significativamente a escalabilidade
Imagine que um milhão de carros são forçados a conduzir na mesma estrada para se mudar da cidade A para a cidade B. A viagem deve ser lenta e é o caso das blockchains convencionais, uma vez que todos os nós em cadeia são necessários para verificar todas as transações. Dividir fatias de dados em cadeia em pedaços para que cada nó precise apenas processar uma parte da transação. Quando uma blockchain adiciona várias autoestradas para dispersar o tráfego, os utilizadores podem concluir as transações com direito mais rápido.

Fonte: Genesis Block

Reduz o congestionamento da rede e reduza os custos
No pré-upgrade Ethereum, os nós miner pack transações com base no quanto os usuários estão dispostos a pagar, com as taxas mais altas a serem processadas mais rápido e as taxas mais baixas são processadas mais lentamente, resultando em uma taxa patológica licitar em que os usuários ocasionalmente pagam mais de US$ 50 por uma única transação. O compartilhamento permite que a blockchain funcione mais suavemente e reduz a necessidade de licitar taxas, e os utilizadores podem recorrer a outro se ocorrer congestionamento num pedaço.

Mais fácil de executar os nós, aumentando a descentralização e a segurança
Visto que não é necessário aceder aos dados completos de toda a blockchain já que cada nó só precisa processar informações num fragmento ao mesmo tempo, o hardware necessário para configurar um nó torna-se mais baixo. Os utilizadores podem usar dispositivos mais baratos como nós para aderir à verificação para ganhar receita. O limiar decrescente beneficia a descentralização e popularização das redes blockchain e a visão do ETH 2.0 é permitir que os indivíduos executem apps Ethereum a partir dos seus smartphones. Um benefício secundário da descentralização é o reforço da segurança da rede, quanto mais nós e mais dispersos estiverem, mais difícil é atacar a blockchain.

Embora o compartilhamento destaque uma lista de vantagens, também introduz uma série de novos problemas:

A possibilidade do ataque de 1%
A blockchain é vulnerável a 51% de ataques, o que significa que um atacante é capaz de adulterar arbitrariamente os dados de transações ou mesmo controlar toda a rede de blockchain quando controla 51% do poder computacional dos nós. Em redes de blockchain maiores, como Bitcoin e Ethereum pre-upgrade, o custo de um ataque de 51% é demasiado alto, tornando inviável implementar.
No entanto, com a adoção do compartilhamento, o número de nós a processar cada fragmento é drasticamente reduzido e torna-se muito mais fácil para um atacante mal-intencionado comprometer desde que ataca um dos pedaços e falsifique as transações com êxito, em vez de atacar a rede inteira. Para ser mais específico, para uma rede blockchain que contenha 1.000 nós com o mesmo poder de computação, um hacker precisa controlar mais de 500 nós para atacar a rede inteira. Mas quando esses 1000 nós são distribuídos para 100 fragmentos, um hacker só precisa controlar mais de 5 nós num dos pedaços para adulterar os dados.

Fonte: Genesis Block

O risco de segurança dos contratos inteligentes aumenta
A adoção do compartilhamento exige reescrever a estrutura de dados e a lógica de código subjacente do ledger da rede blockchain e a maior complicação 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 o compartilhamento 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 combinações duplicadas de nós idênticos poderem co-validar transações após um período de tempo suficiente, e os membros do comité verificando a cadeia de fragmento também são possíveis para conluir uns com os outros e enviar transações mal-intencionadas para a cadeia.
Desequilíbrio de carga
O pré-requisito para melhorar o desempenho da rede através do sharding é que o “sharding” traz com êxito “desvio”. Quando uma blockchain é otimizada com 100 cadeias de fragmentos, no entanto, todos os utilizadores ainda usam uma determinada cadeia de fragmentos, então o compartilhamento falha e a escalabilidade não foi muito melhorada. Isso também é um problema potencial para o ETH 2.0 pois a capacidade de realizar operações de contratos inteligentes para cada cadeia de fragmentos não está incluída no planeamento inicial.
Exploradores de blockchain mais complicados
A melhoria da escalabilidade proporcionada pelo compartilhamento é conseguida adicionando mais algoritmos e dados a toda a rede, é necessário um maior poder de processamento para que os exploradores de blockchain recuperem efetivamente informações na blockchain.

Outras Blockchains que adotam o Sharding

Elrond:

Elrond é uma blockchain pública descentralizada pretende melhorar a escalabilidade, a velocidade e a segurança através do desenvolvimento de três tecnologias-chave, incluindo Adaptive State Sharding com tecnologia de escala de blockchain, Proof of Stake (SPOs) que determina a seleção de validadores para acelerar a verificação, e a Máquina Virtual Elrond, que suporta várias linguagens de programação e é compatível com a Ethereum VM.

O único Adapttive State Sharding combina três formas de partilha:

  1. O compartilhamento de rede representa o processo de agrupamento dos nós em pedaços.
  2. O Transaction Sharding leva a complexidade para o próximo nível e trata da distribuição das transações por diferentes fragmentos, mas todos os nós mantêm a blockchain inteira no seu estado.
  3. A partilha de estados representa a parte mais sofisticada e é descrita como um mecanismo que permite que diferentes pedaços lidem apenas com uma parte do estado sem replicar os dados entre nós de fragmentos diferentes.

Atualmente, Elrond pode chegar aos 15 000 TPS mantendo a taxa tão baixo como $0.001, o que é uma vantagem razoável sobre a Ethereum.

Perto:

Perto é uma cadeia pública de blocos baseada em compartilhamento de estado completo, aplicações de desenvolvimento simplificado e mecanismo de prova de jogo. Estabelece o objetivo de aumentar a escalabilidade para o desenvolvimento de aplicações descentralizadas e abrir a porta da tecnologia blockchain a todos. O seu mecanismo de consenso Doomslug, que adota o algoritmo Nightshade, consegue escalar o TPS para 100.000. A arquitetura técnica do próximo é diferente com outras cadeias públicas afiadas, como a Beacon Chain, que é composta por uma corrente e várias cadeias de pedaços, é dividida em blocos individuais e a partilha é executada entre esses blocos. Um bloco contém todas as transações de todos os fragmentos enquanto o estado de fragmento é dividido e os validadores são atribuídos aleatoriamente para verificar o estado correspondente do fragmento da transação, melhorando assim a segurança.

Zilliqa:

A Zilliqa é um pássaro bastante cedo nas cadeias de blocos. Foi lançado para resolver a fraca escalabilidade da blockchain na altura usando compartilhamento de redes e compartilhamento de transações, bem como PoW e algoritmo de consenso tolerante a falhas bizantino (PBFT) com complexidade simplificada para acelerar o consenso dentro de caxos. Ainda pode correr rápido com mais de 600 nós e o dimensionamento constante leva o Zilliqa para o TPS mais alto, de 2400 a 3600 TPS.

Harmonia:

A Harmony é uma cadeia pública baseada na partilha de estados, que é estruturada por uma Beacon Chain e várias cadeias de partilha e acompanhada pelo algoritmo de consenso tolerante a falhas bizantino (PBFT) para alcançar um consenso profundamente otimizado enquanto acelera as assinaturas BLS para agregar várias assinaturas em uma única. Numa cadeia pública fragilhada, 1% do poder informático pode ser usado para ataques de gastos duplos, considerem isso, Harmony adota EPO Prova-de-jogo Eficaz e Sharding Aleatório para dispersar fichas de stakes em grande escala e alocá-los aleatoriamente a vários fragmentos para reduzir o risco de serem atacados de forma a aumentar a segurança de destroços. Também adota a Kademlia Cross-shard Communication para controlar as despesas da rede enquanto aproveita o Código de Erasure, que permite a recuperação de dados, para otimizar o processo de transmissão em blocos para realizar uma escala de partilha horizontal eficiente.

Conclusão

Com a explosão do uso de criptomoedas e a proliferação de DAPPs, algumas blockchains tradicionais estão sobrecarregadas e não conseguem satisfazer a crescente procura do mercado. Como melhorar a escalabilidade sem abdicar da descentralização e da segurança tornou-se um problema importante para a indústria atual de blockchain.

O compartilhamento efetivamente desvia as necessidades em cadeia e melhora a eficiência do acesso

Sharding é uma tecnologia de otimização que melhora a eficiência do acesso à base de dados ao dividir os dados de transações em cadeia e processá-los por nós diferentes sincronicamente, é assim que o desvio de tráfego e o aumento da velocidade são alcançados. Como uma solução de escala de camada 1 altamente esperada, quando a partilha é realizada com sucesso depois de superar as dificuldades técnicas de alto nível, os seus benefícios potenciais são bastante enormes. O compartilhamento foi adotado por algumas blockchains e no próximo ETH 2.0, também será adotado com a esperança de melhorar o desempenho da rede significativamente.

Sharding é extremamente difícil de alcançar com muitos desafios por resolver mas eventualmente o triângulo impossível será ultrapassado

No entanto, a partilha não é uma solução perfeita. Além da maior complexidade, pode expor a rede a mais riscos. Muitos desenvolvedores estão a continuar a sua pesquisa sobre como coordenar diferentes pedaços para operar com eficiência, esperando que a partilha seja a chave para ultrapassar o “triângulo impossível” de segurança, descentralização e escalabilidade, para que todas as aplicações e criptomoedas blockchain existentes possam ser ainda mais popularizadas.

Autor: Piccolo Translator:Yulei
Reviewer (es): Hugo, Edward
Disclaimer:

  • Este artigo representa apenas a opinião dos observadores e não constitui nenhuma sugestão de investimento.
    *Gate.io reserva todos os direitos a este artigo. A repostagem do artigo será permitida desde que o Porta.IO seja referenciado. Em todos os outros casos, uma ação judicial será tomada devido a violação de direitos de autor.
Autor: Piccolo
Tradutor(a): Yuler
Revisor(es): Hugo, Edward, Cecilia, Ashley
* As informações não se destinam a ser e não constituem aconselhamento financeiro ou qualquer outra recomendação de qualquer tipo oferecido ou endossado pela Gate.io.
* Este artigo não pode ser reproduzido, transmitido ou copiado sem fazer referência à Gate.io. A violação é uma violação da Lei de Direitos de Autor e pode estar sujeita a ações legais.
Comece agora
Registe-se e ganhe um cupão de
100 USD
!