---
title: "O que é danksharding?"
description: "Um guia completo para entender o impacto do EIP-4844"
---

# O que é danksharding?

Um novo design de sharding chamado proto-danksharding foi introduzido como parte do roadmap rumo ao [sharding completo da blockchain](https://www.alchemy.com/overviews/ethereum-sharding-an-introduction-to-blockchain-sharding). Por ser tão novo, muita gente ainda não entende bem do que se trata.

Esta visão geral traz uma análise completa e de fácil compreensão sobre tudo o que você precisa saber sobre proto-danksharding e como ele ajudaria os Layer 2s a escalar. Vamos direto ao assunto.

## O que é sharding?

Sharding se refere a dividir uma blockchain em partes menores para melhorar a eficiência geral.

Por exemplo: em vez de processar uma transação de $100.000 na [Ethereum Mainnet](https://www.alchemy.com/rpc/ethereum), a transação pode ser dividida em dez shards, cada um carregando os dados de $10.000 em transações. A ideia é reduzir o congestionamento da rede.

Além de velocidade, as shard chains oferecem mais armazenamento e reduzem taxas.

É importante notar que sharding é uma implementação que passará por várias fases até chegar ao estágio final.

## O que é danksharding?

[Danksharding](https://notes.ethereum.org/@vbuterin/proto_danksharding_faq#What-is-Danksharding) é um design de sharding que implementa o conceito de um mercado de taxas unificado (merged market fee); diferente do sharding regular, no qual cada shard tem blocos e proponentes de blocos diferentes, no danksharding existe apenas um proponente.

Os block builders têm a função de escolher os dados e transações que entram em cada slot de um bloco.

Danksharding e sharding estão relacionados, mas são diferentes. Enquanto sharding é o design geral para a divisão de redes em um [esforço para escalar a Ethereum](https://www.alchemy.com/overviews/ethereum-scaling-solutions), danksharding é um passo em direção à concretização desse objetivo.

Tim Beiko — um dos principais pesquisadores da Ethereum — explicou no podcast _Bankless_ a origem do nome _Danksharding_, que foi batizado em homenagem a outro veterano pesquisador da Ethereum, Dankrad Feist.

### Como funciona o danksharding?

Os block builders enviam uma proposta para determinar o que vai em cada slot que mais tarde formará um bloco, e então cabe ao proponente selecionar o maior lance. Uma vez escolhido para supervisionar um slot, o builder tem a responsabilidade de processar o bloco inteiro.

Em alguns casos, é possível que oráculos desempenhem o papel de block builder. Segundo a equipe da Ethereum, o principal motivo por trás desse design é conter os dois controles injustos que os mineradores atualmente têm — o Maximum Extractable Value, ou MEV.

Primeiro, os mineradores podem demonstrar preferência injusta ao escolher suas próprias transações ou as de pessoas que conhecem. Segundo, os mineradores podem selecionar a dedo as transações com o maior lance, deixando milhões de outras [transações na mempool](https://www.alchemy.com/overviews/what-is-a-mempool) por horas ou dias.

Com o danksharding, no entanto, ninguém sabe o conteúdo da lista ordenada de transações que um builder submete. Assim, o poder dos _proponentes_ é reduzido.

#### Qual é a diferença entre block builders e proponentes?

Os block builders desempenham o papel de construção do bloco, enquanto os proponentes de bloco selecionam os cabeçalhos de transação que devem ser adicionados ao bloco e os transmitem adequadamente. Os dois trabalham lado a lado.

Os block builders agrupam transações em slots ou blocos menores para que possam ser adicionadas a um bloco, e então os submetem aos proponentes para seleção. Depois que o proponente seleciona um bloco com sucesso, os block builders processam o bloco.

## Amostragem de disponibilidade de dados no danksharding

Um princípio básico da blockchain é a transparência. Se um bloco malicioso ou inválido é adicionado a uma chain, isso pode ser prejudicial para toda a rede.

Normalmente, no [ecossistema Ethereum](https://www.alchemy.com/dapps/ecosystem/ethereum), full nodes podem apresentar provas de fraude a light clients — e à rede como um todo — como evidência de que uma transação não é válida. Mas isso só funciona bem com [roll-ups](https://www.alchemy.com/overviews/optimistic-rollups) e pode não funcionar tão bem para o danksharding.

Os mineradores podem verificar blocos com danksharding quando amostram os dados disponíveis. Antes de tudo, disponibilidade de dados significa que os dados subjacentes a um determinado hash foram publicados on-chain. Na ETH Dubai deste ano, **Protolambda** explicou disponibilidade de dados como _a capacidade [permissionless](https://www.alchemy.com/overviews/permissionless-vs-permissioned-blockchains) de reconstruir o estado_.

Na prática, essa amostragem de disponibilidade de dados é implementada com códigos de apagamento (erasure codes). Esses códigos podem ser amostrados para obter os dados reais que foram adicionados ao slot ou bloco.

Depois que as transações são processadas, pode haver discussões em andamento sobre quando os dados devem ser apagados da blockchain Ethereum para evitar gargalos no throughput.

Atualmente, há planos de que os dados sejam apagados após um mês. Mesmo assim, mesmo após a data de expiração, os dados ainda estarão acessíveis por diversos meios, como o Graph Protocol e exploradores de blocos.

## O que é proto-danksharding (EIP-4844)?

Do jeito que está, ainda há muitas coisas a serem resolvidas na busca por concretizar o danksharding completo. Isso levou à [criação da proposta EIP-4844](https://eips.ethereum.org/EIPS/eip-4844), que é um formato que implementa o proto-danksharding.

Essa proposta busca implementar mudanças centrais — em particular no formato de transação — que seriam necessárias para o sharding completo. O nome proto-danksharding também foi criado a partir do nome de outro pesquisador da Ethereum - Proto Lambda.

A mudança real que Proto Lambda introduziu ao danksharding é chamada de [Binary Large Objects](https://hackmd.io/@vbuterin/sharding_proposal#Blob-publication-process), frequentemente chamados de "blobs" para abreviar. De fato, blobs não são um conceito novo em programação, já que existem em JavaScript e Python. O que é novo, porém, é a possibilidade de que blobs sejam relevantes em smart contracts. Para entender melhor isso, precisamos perguntar: "O que são blobs?"

### O que são blobs (binary large objects)?

Os blobs são propostos pelos block proposers. Eles são comparados a _grandes embrulhos_ ou grandes pacotes portáteis que podem conter dados mais baratos. Cada bloco pode conter um tamanho limitado desses _grandes embrulhos_. Em termos de estrutura, um blob típico tem um corpo e um cabeçalho.

O corpo de um blob sempre armazena as partes relevantes dos dados que se relacionam diretamente com transações. Um cabeçalho, por outro lado, contém informações menores, como a assinatura do proponente.

No proto-danksharding, cada transação sempre tem um blob gêmeo, e o objetivo final disso é tornar as transações mais baratas. Para melhorar a escalabilidade, cada slot no proto-danksharding teria, na maioria dos casos, 1 MB de largura de banda de dados.

Observação: [a Ethereum Virtual Machine](https://www.alchemy.com/overviews/what-is-the-ethereum-virtual-machine-evm) só pode acessar os dados mais baratos que estão _embrulhados_ em um blob, e não os blobs em si, porque as transações no danksharding não ficarão na mempool usual, mas sim em uma diferente.

### Qual é a diferença entre EIP-4844 e EIP-4488?

A diferença é esta: a EIP-4844 oferece soluções que se alinham com — e até aceleram — todo o roadmap de sharding, enquanto a EIP-4488 tenta apenas resolver problemas por enquanto.

Em sua essência, a [EIP-4488](https://eips.ethereum.org/EIPS/eip-4488) tenta reduzir drasticamente o custo de gas dos call data. Embora isso possa ajudar por ora, seria irrelevante se houvesse sharding completo, já que os shards usariam blobs. Por outro lado, a EIP-4844 planeja usar blobs em seu formato transacional.

Ainda assim, devemos ter em mente que essas duas propostas não precisam ser vistas como concorrentes ou como um trade-off. Enquanto o proto-danksharding pode levar tempo devido a algumas dificuldades técnicas de engenharia, a EIP-4488 pode ser implementada para resolver problemas de custo temporários usando roll-ups.

## O proto-danksharding vai reduzir as taxas de gas?

A resposta a isso é um claro "Não". O proto-danksharding não vai reduzir as taxas de gas da Ethereum, mas vai reduzir os custos de transação dos protocolos Layer 2.

De fato, essa pergunta aparece bastante em conversas sobre proto-danksharding. Esse equívoco é natural, já que o proto-danksharding vai introduzir blobs.

Mesmo assim, os blobs apenas vão substituir os call data que os roll-ups normalmente usam. Portanto, as taxas de gas no protocolo Ethereum continuarão as mesmas.

De fato, desenvolvedores que acompanham as atualizações do ecossistema Ethereum há anos vão concordar que a maioria das propostas atuais não afetará diretamente nem reduzirá de forma significativa as taxas de gas do protocolo Ethereum principal, nem mesmo [The Merge](https://www.alchemy.com/overviews/the-ethereum-merge).

## O estado atual do proto-danksharding

Desde que a proposta de melhoria proto-danksharding foi criada em fevereiro, há expectativas sobre se algum progresso está sendo feito.

Enquanto a equipe de pesquisa da Ethereum ainda está resolvendo algumas questões importantes, o proto-danksharding ainda tem um longo caminho pela frente na tentativa de ser o precursor do sharding completo.

Antes de tudo, a amostragem de disponibilidade de dados ainda é teórica e não foi implementada. Parte do motivo disso é que os desenvolvedores ainda estão decidindo se a Ethereum Improvement Proposal deve implementar apenas o point evaluation precompile e abandonar a ideia de combiná-lo com o blob verification precompile.

De fato, o blob verification precompiling é algo que os Layer 2s conseguem realizar por conta própria. Como resultado, a comunidade Ethereum está avaliando se ainda há necessidade de provê-lo oficialmente.

A equipe da Ethereum está estudando a arquitetura mais realista para os blobs e as medidas de segurança mais inteligentes a serem implementadas.

## O futuro do proto-danksharding

A rede Ethereum vem enfrentando há anos os problemas de throughput relativamente baixo e taxas de gas altas, e pesquisadores da Ethereum propuseram várias soluções técnicas, incluindo o sharding.

O proto-danksharding é um caminho para a implementação do roadmap completo de sharding, e seu principal objetivo é reduzir os custos de transação para protocolos layer-2 por meio de um formato de transação centrado em blobs.

A comunidade Ethereum tem se dedicado a aprimorar sua meta de modularidade, fornecendo às blockchains Layer 2 a arquitetura necessária para construir de forma mais escalável sobre o protocolo Ethereum.
