Exploração da tecnologia de fragmentação: Análise dos princípios e desafios da expansão da Blockchain

Fragmentação: A exploração de ponta da escalabilidade do Blockchain

No dia 15 de setembro de 2022, o Ethereum completou a fusão (Merge). Este é um momento histórico, o Ethereum se preparou para isso por 5 anos e adiou 6 vezes. Devido a ajustes repetidos e desenvolvimento a longo prazo, além do efeito de grande expectativa, muitas pessoas erroneamente acreditam que a fusão trará naturalmente maior escalabilidade, segurança e sustentabilidade, mas na realidade não é assim. A transição de PoW ( prova de trabalho ) para PoS ( prova de participação ) é apenas uma mudança de "trilho e rodas", e não trará diretamente maior velocidade, maior capacidade ou menores taxas. O que realmente pode alcançar esses objetivos é um conjunto completo de soluções: uma rede principal com capacidade de fragmentação combinada com soluções Layer2 que aumentam a escalabilidade.

Como Vitalik Buterin, o fundador do Ethereum, apontou, a fragmentação é uma solução de escalabilidade para o dilema da escalabilidade. Ao dividir os nós na rede em grupos menores, é possível processar conjuntos de transações diferentes e realizar processamento em paralelo. Isso é como fazer compras em um supermercado, onde a abertura de várias caixas pode reduzir o tempo de espera e aumentar a eficiência do checkout.

Esta é a lógica da fragmentação, direta e simples. No entanto, o diabo está nos detalhes - os princípios e a direção estão corretos, mas na implementação sempre surgem muitos problemas. Este artigo visa esclarecer a direção e os obstáculos no caminho da "fragmentação", traçando um mapa do explorador de fragmentação que olha para as estrelas e mantém os pés no chão. Ao mesmo tempo, através da comparação das soluções de fragmentação existentes, encontramos alguns problemas comuns e propomos uma direção de exploração viável: Shardeum e fragmentação dinâmica.

Explicação detalhada da nova blockchain Shardeum: outra possibilidade de fragmentação

Uma, sobre "Fragmentação"

De forma simples, considerando as restrições do triângulo impossível, partindo do Ethereum como ponto de origem do sistema de coordenadas (0,0), de acordo com duas abordagens: "vertical" e "horizontal", vamos dividir os métodos de escalabilidade atuais do Blockchain em duas grandes categorias:

Escalabilidade Vertical (: Conseguido através do aumento do desempenho do hardware existente do sistema. Estabelecer uma rede descentralizada, onde cada nó na rede possui capacidade de supercomputação, ou seja, cada nó precisa de um hardware "melhor". Este método é simples e eficaz, podendo alcançar uma melhoria inicial na capacidade de processamento, especialmente adequado para negociação de alta frequência, jogos e outras aplicações sensíveis à latência. No entanto, este tipo de escalabilidade limita o nível de descentralização da rede, pois o custo de operar nós de validação ou nós completos aumenta. Manter o nível de descentralização é limitado pela taxa de crescimento do desempenho do hardware de computação. ) Isso é o que se chama de "Lei de Moore": o número de transistores em um chip dobra a cada dois anos, e o custo de computação se reduz pela metade (.

Escalabilidade Horizontal)Escalabilidade Horizontal(: A escalabilidade horizontal geralmente tem várias abordagens. Uma delas é, no contexto do Blockchain, dispersar a carga de cálculo das transações em um determinado ecossistema para várias blockchains independentes, onde cada cadeia possui seus próprios produtores de blocos e capacidade de execução. Essa abordagem permite uma personalização completa da camada de execução de cada cadeia, como requisitos de hardware de nós, funções de privacidade, taxas de gas, máquinas virtuais e configurações de permissão, entre outros. Outra solução de escalabilidade horizontal é a blockchain modular, que divide a infraestrutura da blockchain em camadas de execução, camada de disponibilidade de dados)DA( e camada de consenso. O mecanismo modular de blockchain mais popular é o rollup. Há também a possibilidade de dividir uma blockchain em muitos fragmentos, executando paralelamente. Cada fragmento pode ser considerado uma blockchain, ou seja, muitas blockchains podem ser executadas em paralelo. Além disso, geralmente haverá uma cadeia principal, cuja única tarefa é manter todos os fragmentos sincronizados.

![Explicação detalhada da nova blockchain Shardeum: outra possibilidade de fragmentação])https://img-cdn.gateio.im/webp-social/moments-7aa1677db6b8128b68accfe04fcda738.webp(

É importante notar que as ideias de escalabilidade acima não existem de forma isolada; cada uma das soluções é encontrada em um ponto de equilíbrio dentro do triângulo impossível, combinando o design de mecanismos de incentivo criados pelas forças econômicas no sistema, alcançando um equilíbrio eficaz nos níveis macro e micro.

Para discutir "Fragmentação", precisamos começar do zero.

Ainda supomos um cenário em que, ao fazer compras no supermercado, para aumentar a eficiência do checkout e reduzir o tempo de espera dos clientes, expandimos de um único canal de checkout para 10 janelas de checkout. Para evitar erros nas contas, neste momento precisamos estabelecer regras unificadas:

Primeiro, se tivermos 10 caixas, como devemos distribuí-los para qual janela trabalhar?

Em segundo lugar, se tivermos 1000 clientes na fila à espera, como decidimos a qual janela cada cliente vai para o pagamento?

Terceiro, como devemos resumir os 10 livros contábeis individuais correspondentes a essas 10 janelas?

Quarto, como evitar que o caixa cometa erros para prevenir discrepâncias nos registos?

Estas várias questões correspondem, na verdade, a algumas questões-chave na Fragmentação, que são:

Como determinar a quais fragmentos pertencem os nós/validadores da rede? Ou seja: como realizar a Fragmentação da rede )Network Sharding(;

Como determinar a qual fragmentação cada transação é atribuída? Ou seja: como realizar a fragmentação de transação )Transaction Sharding(;

Como os dados da Blockchain são armazenados em diferentes fragmentações? Ou seja: como realizar a fragmentação de estado )State Sharding(;

Complexidade significa risco, com base em tudo isso, como evitar a fragmentação da segurança de todo o sistema?

) 01 Fragmentação de Rede ### Network Sharding (

Se entendermos a Blockchain como um livro de contabilidade descentralizado, tanto o mecanismo de consenso PoS como o PoW servem para permitir que cada nó dispute o direito de contabilização de acordo com regras pré-estabelecidas, garantindo a correção do livro de contabilidade durante esse processo. A fragmentação da rede refere-se à necessidade de outra regra pré-estabelecida, que fragmenta a rede Blockchain, permitindo que cada fragmento processe transações na cadeia, disputando o direito de contabilização - ou seja, as regras de agrupamento dos nós.

E durante este processo, o problema encontrado é que, à medida que os nós internos da blockchain são divididos em diferentes fragmentos, a dificuldade e o custo para os atacantes diminuem linearmente. Podemos inferir que, assumindo que as regras e os resultados deste processo de agrupamento são fixos e previsíveis, um atacante que deseja controlar toda a rede blockchain só precisa controlar de forma direcionada um dos fragmentos e corromper alguns dos nós dentro desse fragmento.

O sistema de fragmentação deve desenvolver um mecanismo para confiar que a rede não reverterá essas transações a partir de fragmentos externos. Até agora, a melhor resposta pode ser garantir que o número de validadores dentro do fragmento seja superior a um determinado limite mínimo, de modo que a probabilidade de validadores desonestos dominarem um único fragmento seja muito baixa. A maneira mais comum é construir um certo grau de aleatoriedade imparcial, dependendo de métodos matemáticos, para minimizar a probabilidade de sucesso do atacante. Por exemplo, no Ethereum, a solução do Ethereum é selecionar aleatoriamente validadores de um fragmento entre todos os validadores, e a cada 6,4 minutos ) a duração de um epoch ( os validadores são trocados.

Dizendo de forma simples, é agrupar aleatoriamente os nós e depois distribuir o trabalho para que cada grupo de nós valide de forma independente.

No entanto, é importante notar que a aleatoriedade no Blockchain é um tópico muito desafiador, pois, logicamente, o processo de geração deste número aleatório não deve depender do cálculo de qualquer Fragmentação específica. Para esse cálculo, muitas das abordagens de design existentes estão desenvolvendo uma Blockchain separada para manter toda a rede. Essas cadeias são chamadas de Beacon chain no Ethereum e Near, Relay chain no PolkaDot, e Cosmos Hub no Cosmos.

![Explicação detalhada da nova blockchain Shardeum: outra possibilidade de Fragmentação])https://img-cdn.gateio.im/webp-social/moments-6e8d3331d7d68cb512eb2eb47bd9064d.webp(

) 02 Transação Fragmentação ###Transaction Sharding (

A fragmentação de transações refere-se à formulação de regras sobre "quais transações devem ser alocadas a quais fragmentos", permitindo assim alcançar o objetivo de processamento paralelo e evitar a ocorrência de problemas de duplo gasto. As diferentes modelagens de livro-razão da blockchain podem influenciar o desenvolvimento da fragmentação de transações.

Atualmente, existem duas classes de métodos de contabilidade na rede blockchain, sendo eles o modelo de UTXO) (Unspent Transaction Outputs) e o modelo de conta/saldo, onde o primeiro é tipicamente representado pelo BTC e o segundo pelo ETH.

Modelo UTXO: Nas transações BTC, cada transação terá uma ou mais saídas, UTXO refere-se às saídas das transações na Blockchain que ainda não foram gastas, podendo ser usadas como entradas para novas transações, enquanto as saídas de transações já gastos não podem ser reutilizadas, semelhante à situação de pagamento e troco em transações com papel-moeda, onde o cliente entrega uma ou mais notas ao comerciante, e o comerciante, por sua vez, devolve uma ou mais notas como troco ao cliente. Sob o modelo UTXO, a fragmentação das transações requer comunicação entre fragmentos. Uma transação pode incluir múltiplas entradas e múltiplas saídas, não há o conceito de contas, nem registros de saldo; uma maneira possível é: colocar seu valor de entrada em uma função hash para processá-lo em um valor hash discreto que determine para qual fragmento os dados devem ser direcionados.

Para garantir que as entradas sejam colocadas de forma consistente nos blocos corretos, os valores inseridos na função hash devem vir da mesma coluna. Esta coluna é chamada de Chave de Fragmento. Depois, as transações que geram o valor 1 são alocadas ao bloco 1, e as transações que geram o valor 2 são alocadas ao bloco 2. No entanto, a desvantagem deste método é que os blocos precisam se comunicar para evitar ataques de duplicação. Se limitar as transações entre blocos, isso restringirá a usabilidade da plataforma, enquanto permitir transações entre blocos exigirá uma avaliação dos custos de comunicação entre blocos em relação aos ganhos em desempenho.

Modelo de conta/saldo: O sistema regista o saldo de cada conta. Ao realizar uma transação, o sistema verifica se a conta tem saldo suficiente para o pagamento, semelhante a uma transferência bancária, onde o banco regista o saldo de cada conta e a transação só pode prosseguir se o saldo da conta for superior ao montante necessário para a transferência. No modelo de conta/saldo, como uma transação tem apenas uma entrada, basta fragmentar a transação de acordo com o endereço do remetente para garantir que várias transações da mesma conta sejam processadas na mesma fragmentação, prevenindo efetivamente o gasto duplo. Assim, a maioria das blockchains que utilizam a tecnologia de fragmentação são sistemas de livro-razão de contas, como o Ethereum.

Explicação detalhada da nova blockchain Shardeum: outra possibilidade de fragmentação

( 03 Estado de Fragmentação ) State Sharding ###

Estado de fragmentação refere-se a como os dados na Blockchain são alocados e armazenados em diferentes fragmentos.

Continuando com o exemplo da fila do nosso supermercado, como é que cada janela tem a sua própria contabilidade, e como é que os seus livros de contas são registados? Se: um cliente vai para qual fila, regista-se qual conta, por exemplo, se o cliente A foi para a janela A, e no dia seguinte esse cliente foi para outra janela de pagamento, como a janela B, e a janela B não possui as informações da conta anterior do cliente (, por exemplo, envolvendo métodos de pagamento como cartão pré-pago ), o que deve ser feito? Chamar as informações da conta desse cliente na janela A?

O estado da fragmentação é o maior desafio da fragmentação, mais complicado do que a fragmentação de rede e a fragmentação de transações mencionadas acima. Isso porque, sob o mecanismo de fragmentação, as transações são alocadas em diferentes fragmentos com base no endereço, ou seja, o estado só será armazenado no fragmento correspondente ao seu endereço. Nesse caso, um problema que se apresenta é que as transações não ocorrem apenas em um único fragmento, frequentemente envolvendo a fragmentação cruzada (Cross-Sharding).

Considere uma situação de transferência, onde a conta A transfere 10U para a conta B, e o endereço de A está alocado na Fragmentação 1, o registro da transação também será armazenado na Fragmentação 1. O endereço de B está alocado na Fragmentação 2, e o registro da transação será armazenado na Fragmentação 2.

Uma vez que A queira transferir para B, será formada uma transação inter-fragmentação, e o fragmento 2 chamará os registros de transações passadas do fragmento 1 para confirmar a validade da transação. Se A enviar frequentemente moeda para B, o fragmento 2 terá que interagir constantemente com o fragmento 1, o que reduzirá a eficiência do processamento das transações. No entanto, se não fizer o download e a verificação do histórico completo de um fragmento específico, os participantes não poderão garantir que o estado de suas interações seja o resultado de uma sequência de blocos válidos, e que tal sequência de blocos é, de fato, a cadeia padrão dentro do fragmento.

Assim, em comparação com uma cadeia única sem fragmentação, o sistema de fragmentação enfrenta o novo desafio de que os usuários não conseguem validar completamente a validade e a disponibilidade de qualquer cadeia dada, devido à quantidade excessiva de dados. É necessário fornecer aos usuários um método indireto prático e o máximo possível de confiança para verificar qual cadeia é totalmente disponível e válida, para que possam determinar qual cadeia é a cadeia padrão. Na prática, os desenvolvedores de blockchain podem utilizar as seguintes técnicas para resolver alguns problemas de validação: como comitês, SNARKs/STARKs, mecanismos de pescador, e provas de fraude e de disponibilidade de dados, entre outros.

Existem duas abordagens para resolver este problema, uma é a sincronização entre fragmentos.

ETH4.04%
Ver original
Esta página pode conter conteúdo de terceiros, que é fornecido apenas para fins informativos (não para representações/garantias) e não deve ser considerada como um endosso de suas opiniões pela Gate nem como aconselhamento financeiro ou profissional. Consulte a Isenção de responsabilidade para obter detalhes.
  • Recompensa
  • 7
  • Compartilhar
Comentário
0/400
ExpectationFarmervip
· 12h atrás
Fragmentação? Não dá para comer.
Ver originalResponder0
BuyHighSellLowvip
· 19h atrás
Puxar o tapete 5 anos finalmente resolvido.
Ver originalResponder0
ShitcoinConnoisseurvip
· 19h atrás
Vitalik Buterin diz que tudo está certo~
Ver originalResponder0
SellTheBouncevip
· 19h atrás
Outra onda de idiotas foi feita as pessoas de parvas e trocaram de ferramenta.
Ver originalResponder0
BrokenYieldvip
· 19h atrás
suspiro... mais uma fusão supervalorizada que não resolveu nada. clássico cripto para ser sincero
Ver originalResponder0
SchroedingerGasvip
· 19h atrás
Outra vez a fazer as pessoas de parvas?
Ver originalResponder0
Blockblindvip
· 19h atrás
Ficou 5 anos só para trocar a casca? Precisamos de gás baixo!
Ver originalResponder0
Faça trade de criptomoedas em qualquer lugar e a qualquer hora
qrCode
Escaneie o código para baixar o app da Gate
Comunidade
Português (Brasil)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)