O que é disponibilidade de dados em blockchains?
A disponibilidade de dados garante que as informações necessárias para verificar um bloco foram publicadas, para que qualquer pessoa possa baixá-las e conferi-las.
Disponibilidade de dados é a garantia de que os dados necessários para verificar um bloco foram de fato publicados, para que qualquer pessoa possa baixá-los e verificá-los. Isso se torna um problema real para redes de camada 2 e clientes leves, que dependem de terceiros para publicar esses dados. Se esses dados forem retidos, ninguém consegue provar se as transações neles contidas eram válidas.
Uma forma cotidiana de entender
Imagine uma loja que lhe entrega um recibo mostrando apenas o total. O total pode estar correto, mas você não consegue conferi-lo, porque a lista detalhada dos itens está ausente. Disponibilidade de dados é a garantia de que a lista detalhada existe e de que qualquer pessoa pode lê-la. Uma blockchain ou uma camada 2 que publica apenas um resumo de suas transações, sem os dados subjacentes, está pedindo que os usuários confiem no total.
Por que é simples em uma blockchain básica
Em uma cadeia base, como Bitcoin ou a camada principal do Ethereum, um nó completo baixa cada bloco na íntegra e verifica cada transação. Se parte de um bloco estiver ausente, o nó não consegue validá-lo e simplesmente o rejeita. A disponibilidade de dados é garantida pelo próprio ato de verificação. Nosso guia sobre nós de blockchain explica esse processo.
Por que se torna difícil para rollups
Um rollup processa transações fora da cadeia principal e publica um resumo de volta. Para que o sistema seja seguro, qualquer pessoa deve conseguir reconstruir o estado do rollup e contestar ou verificar o que o operador fez. Isso só é possível se os dados subjacentes das transações forem publicados em algum lugar onde outros possam obtê-los.
O risco tem nome: um ataque de retenção de dados. Um operador poderia publicar um compromisso aparentemente válido enquanto oculta os dados por trás dele. Com rollups otimistas, ninguém conseguiria produzir uma prova de fraude sem esses dados. Com rollups ZK, a prova ainda mostra que a mudança de estado foi válida, mas os usuários não conseguiriam calcular seus próprios saldos para sacar de forma independente. Nosso guia sobre blockchains de camada 1 vs. camada 2 explica os dois modelos de rollup.
O que acontece se os dados forem retidos
Considere um rollup otimista cujo operador se torna desonesto. Ele publica no Ethereum um novo estado alegando que agora é dono de todos os fundos, junto com um compromisso com as transações que supostamente produziram esse estado. Normalmente, qualquer pessoa que estivesse monitorando baixaria os dados das transações, constataria que a alegação é falsa e enviaria uma prova de fraude dentro do período de contestação, e o estado incorreto seria rejeitado.
Se o operador também retiver os dados das transações, ninguém consegue construir essa prova, porque ninguém consegue mostrar qual etapa estava errada. O estado fraudulento poderia então se tornar definitivo. Os mesmos dados ausentes também impediriam os usuários de usar as rotas de saída do rollup, que lhes permitem sacar diretamente pela camada 1 caso o operador deixe de cooperar, pois essas rotas exigem que os usuários provem o que possuem. Publicar os dados é o que mantém os dois mecanismos de segurança funcionando.
Como o Ethereum lida com isso: blobs
Antes, os rollups publicavam seus dados como dados de transação comuns no Ethereum, que eram processados por todos os nós e mantidos para sempre. Isso fazia deles a maior parte das taxas dos rollups.
Uma atualização do Ethereum em 2024, conhecida como proto-danksharding (EIP-4844), introduziu os blobs: um tipo separado de dado anexado aos blocos. Os blobs são mais baratos porque a camada de execução não os processa, e os nós os excluem após um período fixo, de cerca de 18 dias. Esse prazo é suficiente para que qualquer pessoa baixe e verifique os dados, e os compromissos com eles permanecem na cadeia permanentemente. O resultado foi uma grande queda nas taxas em muitas redes de camada 2.
Quem verifica se os dados estão disponíveis?
No Ethereum atual, cada nó de consenso baixa os dados dos blobs de cada bloco, pelo menos até que expirem. Os usuários de rollups e observadores independentes dependem disso.
O espaço para blobs tem mercado próprio
Os blobs são precificados separadamente das transações comuns, com taxa própria que sobe quando a demanda por espaço de blobs excede a quantidade-alvo por bloco e cai quando a demanda é baixa. Na maior parte do tempo desde o lançamento, o espaço para blobs tem sido barato, o que explica a queda acentuada das taxas dos rollups. Mas, como muitos rollups utilizam o mesmo espaço de blobs, um aumento repentino de demanda em uma parte do ecossistema pode elevar os custos de dados para todos ao mesmo tempo. Por isso, as taxas dos rollups dependem em parte da atividade em outros lugares, e não apenas do tráfego do próprio rollup.
| Onde um rollup publica seus dados | Custo relativo | Por quanto tempo os nós mantêm os dados | Quem garante a disponibilidade |
|---|---|---|---|
| Dados de transação da Ethereum (calldata) | Mais alto | Permanentemente | Validadores da Ethereum |
| Blobs da Ethereum | Mais baixo | Cerca de 18 dias | Validadores da Ethereum |
| Uma rede separada de disponibilidade de dados | Geralmente o mais baixo | Depende da rede | Os validadores dessa rede |
Amostragem de disponibilidade de dados
Os blobs ainda exigem que os nós processem todos os dados dos blobs, o que limita a quantidade que pode ser adicionada. O plano de longo prazo, frequentemente chamado de full danksharding, usa amostragem de disponibilidade de dados (DAS).
Figura: Amostragem de disponibilidade de dados. Por causa da codificação redundante, ocultar qualquer dado faz com que muitas amostras falhem.
A ideia é engenhosa. Os dados são expandidos com partes redundantes extras, de modo que, se qualquer parte do original estiver faltando, uma grande parte dos dados expandidos também estará. Cada nó então baixa algumas amostras pequenas e aleatórias. Se todas as suas amostras chegarem, ele pode ter alta confiança de que os dados completos estão disponíveis, sem precisar baixar tudo. Quando muitos nós amostram de forma independente, fica extremamente difícil ocultar dados.
Camadas de disponibilidade de dados
Alguns projetos se especializam em disponibilidade de dados como um serviço separado: redes cuja principal função é publicar e garantir dados para rollups e outras cadeias, em vez de executar transações. Isso é uma das peças por trás da ideia de blockchains modulares, nas quais execução, liquidação, consenso e disponibilidade de dados podem ser tratados por camadas diferentes.
Usar uma camada separada de disponibilidade de dados pode reduzir custos, mas muda as premissas de segurança. Um rollup que publica seus dados na Ethereum depende dos validadores da Ethereum para a disponibilidade; um que publica em outro lugar depende dessa outra rede.
Você raramente verá as palavras “disponibilidade de dados” em uma carteira, mas elas moldam duas coisas que você percebe. Ela é uma parte importante do que você paga em taxas nas redes de camada 2 e determina se você pode sair de uma camada 2 com seus fundos caso o operador deixe de cooperar. Ao comparar redes, vale saber onde cada uma publica seus dados. Para informações básicas sobre taxas, veja nosso guia sobre taxas de transação em blockchain.
Rollups e validiums
Onde uma camada 2 mantém seus dados define que tipo de sistema ela é:
| Modelo | Prova de execução correta | Para onde vão os dados | Principal compromisso |
|---|---|---|---|
| Rollup otimista | Provas de fraude durante um período de contestação | Na Ethereum | Longa espera para saques |
| ZK rollup | Prova de validade com cada lote | Na Ethereum | Tecnologia mais complexa |
| Validium | Prova de validade com cada lote | Fora da Ethereum, com um comitê ou rede de dados separado | Mais barato, mas os usuários dependem de quem guarda os dados |
Um validium pode provar que suas mudanças de estado estão corretas e, ainda assim, deixar os usuários incapazes de sacar se os detentores dos dados deixarem de cooperar. Por isso, “onde estão os dados?” é uma das perguntas mais úteis a fazer sobre qualquer camada 2.
Este artigo é conteúdo educacional e não constitui aconselhamento financeiro, de investimento, jurídico ou tributário. Ativos digitais são voláteis e você pode perder o valor investido.
Para entender onde a disponibilidade de dados se encaixa entre os outros blocos de construção de aplicações descentralizadas, veja o que é Web3.