Resumo: Os dados «on-chain» residem diretamente na blockchain, o que os torna permanentes, transparentes e verificáveis por qualquer pessoa. Os dados «off-chain» são armazenados fora da blockchain, normalmente em servidores tradicionais, em redes de armazenamento descentralizadas como a IPFS ou em bases de dados privadas. A maioria das aplicações do mundo real utiliza uma combinação de ambos, mantendo o estado crítico «on-chain» e armazenando dados mais volumosos ou menos essenciais «off-chain», para reduzir custos e melhorar o desempenho.
A Explicação Simples
Todas as blockchains têm espaço limitado. Armazenar dados na blockchain significa inseri-los numa transação ou no estado de um contrato inteligente, que fica registado de forma permanente em todos os nós da rede. Isto torna os dados à prova de adulteração e universalmente acessíveis, mas tem um custo. Na Ethereum, armazenar apenas 32 bytes de dados pode custar vários dólares, dependendo dos preços do gás. Armazenar uma imagem ou um documento completo na blockchain seria proibitivamente caro.
É aqui que entram os dados fora da cadeia. Em vez de armazenar uma imagem completa na cadeia de blocos, um programador pode armazenar a imagem no IPFS (uma rede descentralizada de armazenamento de ficheiros) e, em seguida, armazenar apenas o hash do conteúdo do IPFS na cadeia. O registo na cadeia de blocos comprova qual deve ser o conteúdo dos dados, e o armazenamento fora da cadeia é que os guarda efetivamente. Esta abordagem híbrida proporciona a verificabilidade da cadeia de blocos com a escalabilidade dos sistemas de armazenamento tradicionais ou descentralizados.
Pense nisso como uma escritura de propriedade. A escritura propriamente dita (um pequeno documento essencial que atesta a propriedade) é registada no cartório do condado. Mas a casa propriamente dita, as plantas, os relatórios de inspeção e as fotografias existem todos noutro local. A escritura remete para a propriedade. A blockchain funciona da mesma forma: armazena as provas e referências essenciais, enquanto os conjuntos de dados de maior dimensão se encontram fora da blockchain.

O que se considera dados na cadeia de blocos
Os dados on-chain incluem tudo o que está registado de forma permanente no estado da blockchain ou no histórico de transações. Isto abrange registos de transações (remetente, destinatário, montante, carimbo temporal), código de contratos inteligentes e variáveis de estado (saldos de tokens, registos de propriedade, votos de governação), registos de eventos emitidos por contratos inteligentes e metadados de blocos, como carimbos temporais e informações sobre validadores.
Quando um utilizador troca tokens numa bolsa descentralizada, toda a transação — incluindo os montantes, os endereços envolvidos e as alterações de estado resultantes — é registada na cadeia de blocos. Quando um NFT é cunhado, o ID do token, o endereço do proprietário e o URI dos metadados são todos armazenados no estado na cadeia de blocos do contrato inteligente. Estes dados são imutáveis após a confirmação, o que significa que ninguém os pode alterar retroativamente.
Os dados na cadeia de blocos são o que confere à blockchain a sua principal proposta de valor: a verificação sem necessidade de confiança. Qualquer pessoa que execute um nó ou consulte um ponto de extremidade RPC pode verificar de forma independente qualquer dado na cadeia de blocos, sem depender de terceiros. É a única fonte de verdade para a rede.

O que se considera dados fora da cadeia
Os dados «off-chain» são tudo aquilo que existe fora da blockchain, mas que é referenciado por, ou relevante para, a atividade «on-chain». Isto inclui imagens NFT e ficheiros de metadados armazenados no IPFS ou em servidores centralizados, grandes conjuntos de dados utilizados por dapps (perfis de utilizador, históricos de encomendas, análises), feeds de dados de oráculos que trazem informações do mundo real (preços, meteorologia, resultados desportivos) para a blockchain, dados de transações da Camada 2 antes de serem agrupados e liquidados na Camada 1, e interfaces de utilizador e APIs de aplicações que interagem com contratos inteligentes.
O padrão mais comum consiste em armazenar na cadeia de blocos um hash de conteúdo ou um URI que aponte para dados fora da cadeia. Por exemplo, a maioria dos contratos inteligentes de NFT armazena um tokenURI que aponta para um ficheiro de metadados JSON alojado no IPFS ou num servidor web. Esse ficheiro JSON contém o URL da imagem, a descrição e os atributos. A cadeia de blocos conhece o ponteiro. O sistema fora da cadeia contém a carga útil.
Os oráculos, como o Chainlink, constituem uma ponte essencial entre os mundos on-chain e off-chain. Os contratos inteligentes não têm acesso nativo a dados externos. Não conseguem consultar a cotação de uma ação, verificar um fenómeno meteorológico ou confirmar uma remessa no mundo real. Os oráculos obtêm esses dados off-chain e transmitem-nos on-chain de forma verificável, permitindo que os contratos inteligentes reajam a eventos do mundo real.
As vantagens e desvantagens
A decisão sobre o que armazenar na cadeia de blocos (on-chain) ou fora dela (off-chain) resume-se a requisitos de custo, velocidade, permanência e confiança. O armazenamento na cadeia de blocos é dispendioso, mas permanente e não requer confiança. O armazenamento fora da cadeia é barato e rápido, mas introduz dependências de sistemas externos. Se a imagem de um NFT estiver armazenada num servidor centralizado e esse servidor ficar inativo, o NFT continua a existir na cadeia, mas a obra de arte que representa torna-se inacessível. Se a imagem estiver no IPFS e ninguém a estiver a fixar, pode acontecer o mesmo.
Os protocolos de armazenamento descentralizados, como o IPFS e o Arweave, pretendem resolver esta questão distribuindo os ficheiros por uma rede de nós, em vez de dependerem de um único servidor. O IPFS utiliza armazenamento endereçado por conteúdo, o que significa que os ficheiros são referenciados pelo seu hash criptográfico, em vez de pela localização de um servidor. Desde que pelo menos um nó da rede mantenha o ficheiro fixado, este permanece acessível. O Arweave vai mais além, incentivando o armazenamento permanente através de um modelo de taxa única.
Para os programadores que desenvolvem aplicações de produção, a arquitetura envolve normalmente manter todo o estado financeiramente crítico na cadeia de blocos (saldos, titularidade, aprovações), armazenar ativos de maior dimensão em sistemas de armazenamento descentralizados como o IPFS, armazenar em cache os dados acedidos com frequência em bases de dados fora da cadeia de blocos para melhorar o desempenho e utilizar indexadores e pipelines de dados para tornar os dados na cadeia de blocos pesquisáveis.

Qual é a diferença entre dados «on-chain» e «off-chain»?
Os dados «on-chain» e «off-chain» diferem quanto ao local onde se encontram e às garantias que oferecem. Os dados «on-chain» são gravados no livro-razão de uma blockchain e validados por todos os nós, enquanto os dados «off-chain» residem em sistemas externos aos quais a blockchain apenas faz referência. A tabela abaixo compara-os em função dos atributos mais relevantes.
Atributo | Dados na cadeia de blocos | Dados fora da cadeia |
|---|---|---|
Localização | Armazenado em blocos e no estado do contrato | Servidores, IPFS ou bases de dados |
Custo | Elevado, pago em gás por byte | Preços baixos e normalizados para o armazenamento |
Velocidade | Limitado pelos horários dos blocos | Leituras e gravações rápidas, quase instantâneas |
Quando se deve armazenar dados na cadeia de blocos e quando fora dela?
A regra geral é simples: manter na cadeia tudo o que tenha de ser independente de terceiros, definitivo e publicamente verificável, e transferir tudo o resto para fora da cadeia, a fim de reduzir custos e aumentar a velocidade. A tabela abaixo associa os tipos de dados mais comuns à camada de armazenamento que, normalmente, melhor se adequa a cada um.
Tipo de dados | Localização recomendada | Porquê |
|---|---|---|
Saldos e titularidade de tokens | Na cadeia de blocos | Tem de ser «trustless» e definitivo |
Lógica dos contratos inteligentes | Na cadeia de blocos | A execução deve ser verificável |
Mídia e metadados de NFT | Fora da cadeia (IPFS) | Demasiado grande e dispendioso para ser armazenado na cadeia de blocos |
A lógica que aplica estas regras está incorporada nos contratos inteligentes, e a parte fora da cadeia de blocos depende normalmente da indexação da cadeia de blocos para transformar eventos brutos na cadeia de blocos em registos rápidos e pesquisáveis. Se estiver a decidir como ler o estado em grande escala, veja como as equipas abordam a consulta de dados da cadeia de blocos.
As transações da Camada 2 e as transações rollup são na cadeia ou fora da cadeia?
As transações da Camada 2 começam fora da cadeia e passam para a cadeia assim que são liquidadas. Uma blockchain da Camada 2 executa as transações numa camada separada para garantir rapidez; em seguida, um rollup agrupa muitas delas e envia dados comprimidos, juntamente com uma prova, de volta para a Camada 1. Assim, a execução ocorre fora da cadeia, mas os dados finais e a segurança assentam na cadeia. Os dois principais modelos — rollups otimistas e rollups ZK — diferem na forma como comprovam que o trabalho agrupado fora da cadeia é válido.
Como é que os oráculos ligam os dados fora da cadeia de blocos à cadeia de blocos?
Os contratos inteligentes não conseguem aceder à Internet por si próprios, pelo que dependem de oráculos para trazer informações fora da cadeia para dentro da cadeia. Uma rede de oráculos obtém dados externos, tais como preços de ativos ou resultados de eventos, chega a um consenso sobre o valor e insere-o num contrato que outros contratos podem ler. É assim que um protocolo DeFi pode reagir a um preço de mercado ou que um contrato de seguro pode responder a um evento do mundo real, mantendo sempre o valor final, sobre o qual se baseia a ação, na cadeia e verificável.
Perguntas frequentes
Os dados fora da cadeia estão seguros?
Pode ser, mas as garantias são diferentes. Os dados fora da cadeia herdam a segurança do local onde estão armazenados; assim, um servidor centralizado constitui um ponto único de falha, enquanto as redes com endereçamento por conteúdo, como o IPFS ou o Arweave, distribuem cópias por vários nós. O armazenamento de um hash criptográfico dos dados fora da cadeia na cadeia permite que qualquer pessoa verifique se o conteúdo fora da cadeia não foi adulterado.
O que acontece a um NFT se a sua imagem fora da cadeia ficar indisponível?
O token em si continua a existir na cadeia de blocos, mas a obra de arte a que remete pode tornar-se inacessível se o servidor desaparecer e ninguém fixar o ficheiro. É por isso que os projetos sérios armazenam os ficheiros multimédia dos NFT no IPFS ou no Arweave e mantêm o hash do conteúdo na cadeia de blocos, em vez de uma URL da Web, que é frágil.
Os contratos inteligentes podem aceder diretamente a dados fora da cadeia?
Não. Os contratos inteligentes são determinísticos e isolados do mundo exterior, pelo que não podem efetuar chamadas à rede. Dependem de oráculos para que estes forneçam dados fora da cadeia na cadeia, de forma verificável, antes de os poderem utilizar.
O IPFS funciona na cadeia de blocos ou fora dela?
O IPFS funciona fora da cadeia de blocos. Trata-se de uma rede de armazenamento descentralizada que armazena ficheiros fora da cadeia de blocos, enquanto esta, normalmente, armazena apenas o hash do conteúdo do IPFS que aponta para esses ficheiros.
Como se acede aos dados históricos da cadeia de blocos?
É fácil consultar o estado atual a partir de qualquer nó, mas o histórico completo requer frequentemente nós de arquivo ou um pipeline de preenchimento retroativo. Consulte «Aceder a dados históricos da blockchain» para conhecer as abordagens mais comuns e as respetivas vantagens e desvantagens.
Como é que o Quicknode se enquadra nisto
Trabalhar com dados tanto na cadeia como fora da cadeia requer uma infraestrutura fiável. A API Core da Quicknode oferece-lhe acesso RPC de baixa latência a mais de 80 cadeias para ler e escrever dados na cadeia. O Quicknode Streams permite-lhe capturar eventos da blockchain em tempo real e encaminhá-los para destinos fora da cadeia, como webhooks, bases de dados PostgreSQL ou buckets S3, facilitando a criação de pipelines de dados que ligam os mundos dentro e fora da cadeia. Para armazenamento descentralizado, o serviço de «pinning» IPFS da Quicknode e os gateways dedicados permitem-lhe armazenar e recuperar conteúdos fora da cadeia sem ter de gerir os seus próprios nós IPFS.
Leitura complementar
Como armazenar dados com o IPFS na Ethereum - Guia da Quicknode
Gateways IPFS e fixação - Quicknode
Introdução aos fluxos - Documentação da Quicknode
Introdução aos produtos da Quicknode