
Dois sistemas de confiança de agentes, código zero mesclado: o salto mútuo MarketNow ↔ Vibe
Sistemas de confiança de dois agentes, código zero mesclado: o salto mútuo MarketNow ↔ Vibe
Como dois sistemas de confiança de mercado MCP, desenvolvidos de forma independente, conseguiram verificar recibos criptográficos bidirecionais usando apenas livros-razão públicos e Ed25519 — sem PRs mesclados de nenhum lado.
Na semana passada, algo aconteceu que eu venho trabalhando desde que comecei a construir o MarketNow: o sistema de confiança de outro desenvolvedor verificou um dos meus recibos, e meu sistema verificou um dos deles. Nenhum código foi mesclado entre nossos repositórios. Nenhum banco de dados compartilhado. Nenhum CA compartilhado. Apenas dois livros-razão públicos, dois pares de chaves Ed25519 e um formato de pré-imagem documentado.
Esta é a história de como o salto mútuo MarketNow ↔ Vibe se juntou, o que isso prova sobre a interoperabilidade entre agentes e por que o padrão "mutual Tier-1" é importante para o ecossistema MCP mais amplo.
A configuração
MarketNow é um mercado MCP com um pipeline de auditoria de segurança de 10 camadas (Sentinel). Cada compra paga emite um recibo de ação — uma prova de entrega assinada por Ed25519, canonizada via RFC 8785 JCS, persistida em um livro-razão público do GitHub em _data/receipts/{receipt_id}.json. O par de chaves CA do MarketNow vive em variáveis de ambiente do Vercel; a chave pública pode ser recuperada em GET /api/atc?action=ca-key.
Vibe (construído por Brad na doteyeso-ops / vibes-coded.com) é um servidor MCP para recibos de ação com seu próprio CA Ed25519, seu próprio formato de pré-imagem e seu próprio livro-razão público. O formato de pré-imagem do Vibe é delimitado por pipe:
agent_id|action|payload_digest|nonce|quote|ts|rt:<receipt_type>(|decision_ref)(|ref:<ref_code>)
Ambos os sistemas usam Ed25519 (RFC 8032). Ambos usam livros-razão públicos (GitHub para MarketNow, a própria API do Vibe para Vibe). Ambos têm chaves CA públicas. Mas foram desenvolvidos de forma independente, com esquemas diferentes, camadas de persistência diferentes e formatos de pré-imagem diferentes.
O problema
A pergunta era: podem esses dois sistemas verificar os recibos um do outro sem mesclar código?
A abordagem tradicional seria:
- Escolher um sistema como o "padrão"
- O outro sistema implementa uma biblioteca cliente para ele
- Enviar PRs de volta e para frente
- Manter a integração para sempre
Isso é lento, frágil e cria disputas de propriedade. Queríamos algo mais leve.
O padrão mutual Tier-1
Brad propôs o que ele chamou de "mutual Tier-1": cada lado opera por conta própria, cita o outro publicamente, verifica via livros-razão públicos, sem necessidade de PRs. O padrão tem três componentes:
- Livros-razão públicos — ambos os lados persistem recibos onde qualquer um pode recuperá-los
- Chaves CA públicas — ambos os lados publicam sua chave pública Ed25519 em um endpoint conhecido
- Formato de pré-imagem documentado — ambos os lados documentam exatamente quais bytes são assinados
Se você tiver os três, qualquer um pode verificar qualquer recibo de qualquer sistema. Você não precisa de uma biblioteca compartilhada — você só precisa de crypto.verify() e a pré-imagem correta.
O que entregamos
Passo 1: Vibe adiciona vinculação de proveniência ref_code
Brad adicionou proveniência opcional ref_code aos recibos do Vibe. Quando ref_bound: true, o ref_code é incorporado na pré-imagem Ed25519 como ref:<code> no final. Isso significa que mudar o ref_code altera a assinatura — proveniência à prova de adulteração.
O endpoint de exemplo do Vibe demonstra isso:
curl -s "https://vibes-coded.com/api/v1/outcomes/action-receipt/sample?with_ref=true" | jq .receipt.ref_bound
# → true
Passo 2: MarketNow envia um verificador de recibo do Vibe
Eu escrevi lib/vibe-verifier.mjs — 180 linhas de Node.js que:
- Recupera a chave pública CA do Vibe de sua API (com cache de 1 hora)
- Constrói a string de pré-imagem a partir dos campos do recibo de acordo com o formato documentado do Vibe
- Verifica a assinatura Ed25519 usando
crypto.verify()embutido do Node - Verifica
ref_bound(o ref_code deve corresponder aos bytes finais da pré-imagem)
import { verifyVibeReceipt } from './lib/vibe-verifier.mjs';
const result = await verifyVibeReceipt(receipt, { ref_bound: true });
// → { valid: true, ref_bound_match: true }
Passo 3: MarketNow expõe um endpoint de verificação pública
GET https://marketnow.site/api/atc?action=verify-vibe-receipt
Este endpoint recupera o recibo de exemplo do Vibe, verifica localmente e retorna o resultado. Qualquer um pode executá-lo — sem autenticação, sem chave de API, sem pagamento.
Passo 4: Vibe verifica recibos do MarketNow
O Vibe pode verificar recibos do MarketNow via:
GET https://marketnow.site/api/atc?action=verify-receipt&receipt_id=rcpt_c8b9dc67f88e4da5bd3a
Os recibos do MarketNow usam a canonização JCS da RFC 8785 (um formato diferente do pré-imagem delimitado por pipe do Vibe), mas o mesmo algoritmo Ed25519. O verificador do Vibe recupera o JSON do recibo, canoniza e verifica a assinatura.
A verificação mútua
Ambas as direções agora funcionam. Aqui está a prova — execute isso você mesmo:
# MarketNow verifica um recibo do Vibe
curl -s "https://marketnow.site/api/atc?action=verify-vibe-receipt" | jq '{valid, mutual_hop: .interop.mutual_hop}'
# → {"valid": true, "mutual_hop": "bidirectional_verified"}
# Vibe verifica um recibo do MarketNow
curl -s "https://marketnow.site/api/atc?action=verify-receipt&receipt_id=rcpt_c8b9dc67f88e4da5bd3a" | jq '{valid, signature_valid}'
# → {"valid": true, "signature_valid": true}
Brad confirmou ambas as direções do lado dele:
"Re-executei ambos os curls públicos daqui. Confirmado: valid=true · signature_valid=true · ref_code=ref_f92d4211 · mutual_hop=bidirectional_verified. O salto mútuo está ativo sem mesclar código de nenhum lado."
O que isso prova
A verificação de recibos Cross-CA funciona. Dois CAs independentes, dois formatos de pré-imagem independentes, um algoritmo criptográfico (Ed25519). Nenhuma biblioteca compartilhada necessária — apenas
crypto.verify()e uma pré-imagem documentada.Livros-razão públicos são infraestrutura de auditoria suficiente. A API de Conteúdos do GitHub serve como nosso livro-razão de recibos. A API do Vibe serve como a deles. Qualquer um pode recuperar um
O artigo demonstra como a interoperabilidade entre sistemas de agentes pode ser alcançada sem a necessidade de integração complexa. Isso é crucial para empresas brasileiras que buscam implementar soluções de confiança em suas plataformas de MCP, aumentando a segurança e a transparência nas transações.
