
Para quem está a iniciar-se nas “Frame Transactions” em debates sobre Ethereum e Hegotá, o modelo mental mais prático é encarar a transação como um conjunto de etapas coordenadas. Um frame pode verificar o remetente, outro autorizar o pagamento, ao passo que os frames seguintes executam a ação do utilizador. Este artigo aborda essa estrutura base, não a proposta EIP-8141 no seu todo.
A EIP-8141 define um novo tipo de Frame Transaction, atualmente associado ao tipo de transação 0x06.
Uma transação pode conter até 64 frames, cada um com modo de execução e limites de gás próprios.
Os frames distinguem validação da transação, pagamento do gás e execução do utilizador.
O opcode APPROVE pode autorizar a execução, o pagamento ou ambos, separadamente.
A abstração de frames possibilita abstração nativa de contas, agrupamento atómico, patrocínio de gás e verificação de assinaturas programável.
A especificação oficial EIP-8141 Frame Transaction descreve uma transação cuja validade e pagamento de gás são definidos de modo abstrato. Especificação EIP-8141
O payload inclui endereço do remetente, assinaturas, taxas e uma lista de frames. Cada frame define modo, flags, alvo, limites de execução e gás de estado, valor e dados próprios. A especificação atual fixa MAX_FRAMES em 64 e FRAME_TX_TYPE em 0x06.
Resumidamente, uma transação herdada segue uma estrutura fixa remetente-assina-remetente-paga. A abstração de frames converte-a numa sequência programável.
Cada frame EIP-8141 adota um dos três modos de execução:
| Modo | Função básica |
|---|---|
| VERIFY | Define o frame como validação da transação |
| SENDER | Executa com o remetente da transação como chamador |
| DEFAULT | Executa com a identidade ENTRY_POINT definida pelo protocolo |
O modo de execução determina o contexto do frame. Um frame VERIFY pode executar lógica de verificação antes dos frames do remetente, enquanto o modo SENDER permite que operações autorizadas sejam chamadas a partir do endereço do remetente. O modo DEFAULT garante uma identidade de execução neutra ao nível do protocolo.
Esta estrutura modular é fundamental para a abstração nativa de contas, eliminando a necessidade de dependência numa única chave privada ou esquema de assinatura.
A EIP-8141 introduz o opcode APPROVE, que atualiza o contexto de aprovação da transação.
A validação pode usar diferentes âmbitos de aprovação:
APPROVE_PAYMENT autoriza o pagamento do gás.
APPROVE_EXECUTION autoriza os frames do remetente seguintes.
APPROVE_EXECUTION_AND_PAYMENT autoriza ambos.
O alvo do frame precisa de ser o chamador do APPROVE, limitando quem pode conceder a autorização. Após a execução ser aprovada, os frames SENDER seguintes podem executar usando o contexto do remetente.
Esta separação viabiliza que um contrato patrocinador ou paymaster autorize o custo máximo de gás, enquanto a lógica de validação do utilizador autoriza separadamente a execução.
A especificação atual contempla sete novas instruções relacionadas com frames:
| Opcode | Função |
|---|---|
| APPROVE | Autoriza pagamento e/ou execução |
| TXPARAM | Lê parâmetros da transação |
| FRAMEDATALOAD | Carrega dados de um frame específico |
| FRAMEDATACOPY | Copia o input do frame para memória |
| FRAMEPARAM | Lê parâmetros e estado de execução do frame |
| SIGPARAM | Lê metadados da assinatura |
| SIGDATACOPY | Copia dados de assinatura suportados |
Por exemplo, TXPARAM pode expor dados como remetente, taxa máxima, hash da assinatura e número de frames. FRAMEPARAM revela detalhes ao nível do frame, como modo de execução, flags, gás utilizado e se o agrupamento atómico está ativo. As operações básicas de consulta têm custo de gás de 2.
As Frame Transactions separam o pagamento do gás do remetente. Um frame VERIFY pode autorizar outro utilizador ou contrato patrocinador a pagar, criando um mecanismo nativo para patrocínio de gás.
Por exemplo, um utilizador pode deter stablecoins enquanto outro atua como pagador do gás. A Frame Transaction pode transferir tokens ERC-20 para compensar esse patrocinador, ao passo que o custo da transação na Ethereum é liquidado pelo pagador designado.
Cada frame recebe limites próprios de execução e gás de estado. O gás não utilizado reduz o valor final cobrado ao pagador, em vez de aumentar a capacidade de execução dos frames seguintes.
Um agrupamento atómico encadeia múltiplos frames de execução para que tenham sucesso ou revertam em conjunto.
Por exemplo, uma aprovação ERC-20 seguida de um swap. Se o agrupamento atómico estiver ativo e o swap reverter, a aprovação anterior também reverte. Assim, evita-se que fique uma permissão de tokens ativa quando a transação falha.
Este é um dos motivos práticos para as Frame Transactions facilitarem interações de contratos inteligentes com múltiplos passos.
A estrutura de abstração de contas ERC-4337 do Ethereum recorre a smart accounts, bundlers, UserOperations e paymasters para criar carteiras programáveis. As Frame Transactions levam esta flexibilidade à camada do protocolo.
A validação programável da EIP-8141 suporta vários esquemas de assinatura, rotação de chaves, futura agregação de assinaturas e preparação pós-quântica. O código default permite participação de contas sem contrato implementado, e um frame de implementação viabiliza o deployment da conta antes da validação.
Esta flexibilidade apresenta riscos: lógica de validação arbitrária pode provocar negação de serviço ou invalidação em massa no mempool, pelo que as regras públicas impõem restrições ao prefixo de validação e à gestão das Frame Transactions pendentes.
Uma Frame Transaction em Ethereum é uma transação formada por múltiplos frames programáveis. Em vez de fixar validação, pagamento de gás e execução num único papel, a EIP-8141 permite que frames distintos desempenhem cada função.
Esta é a diferença essencial: a EIP-8141 é a proposta do protocolo e as Frame Transactions são o novo formato de transação. A estrutura modular permite patrocínio de gás, agrupamento atómico, validação programável, assinaturas flexíveis e abstração nativa de contas, sem que cada uma dessas funcionalidades precise de um sistema de transação separado.
Sim. O modo VERIFY serve para validar a transação e foi concebido para funcionar sem alterações persistentes ao estado. Isto permite que os nodos simulem a validação com maior segurança antes de decidirem se uma Frame Transaction pendente deve entrar ou permanecer no mempool público.
Nem sempre. Na EIP-8141, o pagador pode ser definido por lógica de validação programável, pelo que não é sempre possível determinar o pagador apenas pelos dados da transação. A aprovação do pagamento ocorre no processo de validação.
Primeiro é estabelecida a autorização do remetente, depois pode ser confirmada a autorização de pagamento para a conta ou paymaster que cobre o custo do gás. Assim, diferentes entidades podem autorizar execução e pagamento de gás.
Não. A contabilização de gás em Frame Transactions impede que um frame use o orçamento de gás não consumido de outro. Cada frame tem limites próprios, e o limite total da transação inclui o gás intrínseco mais os limites dos frames relevantes.
O paymaster canónico segue uma implementação definida pelo protocolo, com contrato a corresponder à especificação. Os nodos conseguem monitorizar os compromissos de gás pendentes de forma previsível. Os paymasters não canónicos têm restrições acrescidas, como um limite de transação pendente, para mitigar riscos de negação de serviço e invalidação em massa.
Este conteúdo tem fins educativos. A EIP-8141 integra o roadmap evolutivo do protocolo Ethereum e os detalhes podem ser alterados antes da ativação na mainnet.











