A afirmação
Um certificado Signet faz uma única afirmação, restrita e forte: o titular da chave privada de um determinado endereço assinou um determinado desafio em um determinado momento. Nada mais. É uma prova de controle de uma chave, não de identidade.
Comprovado, sem necessidade de confiança
- Este endereço produziu esta assinatura sobre este desafio.
- O signatário detinha a chave privada no momento da assinatura.
- O hash do certificado existia, no máximo, até o momento da ancoragem on-chain.
Não comprovado
- A identidade do signatário.
- Que o controle é exclusivo, ou que a chave não foi compartilhada nem obtida sob coação.
- Que o signatário é cliente do solicitante — a vinculação com uma identidade cabe ao KYC do solicitante.
Como é comprovada
O solicitante emite um desafio que inclui um nonce de uso único vinculado a essa única solicitação. A contraparte assina os bytes exatos do desafio com a própria carteira. Verificamos a assinatura em relação ao endereço na blockchain correta, depois calculamos o hash do certificado resultante e ancoramos esse hash on-chain por meio de um lote merkle — o mesmo contrato Stamper usado em toda a família BA, para que o verificador público o valide sem alterações.
O nonce torna a reutilização impossível: uma assinatura sobre o desafio de uma solicitação não pode ser transferida para outra. Verificamos o desafio armazenado byte a byte, nunca uma cópia regenerada.
Criptografia por blockchain
Cada blockchain tem o próprio padrão de assinatura. A camada de verificação foi projetada para que novas blockchains sejam adicionadas sem alterar as existentes.
| Blockchain | Padrão | Verificação |
|---|---|---|
| Ethereum e EVM | EIP-191 personal_sign | Recuperação offline do signatário |
| Carteiras smart contract | EIP-1271 | Chamada on-chain a isValidSignature |
| Bitcoin (SegWit / Taproot) | BIP-322 | Offline |
| Bitcoin (P2PKH legacy) | BIP-137 signmessage | Offline |
| Litecoin, Dogecoin, Zcash (t1) | BIP-137 com o prefixo da rede | Offline |
| Solana | ed25519 | Offline |
| Polkadot, Kusama | sr25519 / ed25519 | Offline |
| TRON | TronWeb signMessageV2 (também app Ledger TRON) | Recuperação offline do signatário |
Verifique você mesmo
Cada certificado exporta um pacote de prova autossuficiente. Qualquer pessoa pode conferi-lo em blockchains públicas, sem conta e sem precisar confiar na BA | Signet:
signatureé uma assinatura válida dechallengeporaddressna blockchain indicada. Só isso já comprova o controle da chave.- Recalcule o
SHA-256do JSON canônico do certificado; ele deve ser igual acontentHash(a folha merkle). - Dobre a folha com
merkleProof(keccak256, pares ordenados); o resultado deve ser igual amerkleRoot. - Chame
timestamps(merkleRoot)no contrato Stamper na Polygon; um valor diferente de zero é o momento até o qual o certificado já existia. - Opcionalmente, verifique a prova OpenTimestamps em relação ao bloco Bitcoin.
O que armazenamos
A contraparte não é nossa cliente e não tem conta. Coletamos o mínimo: o endereço, o desafio, a assinatura, o carimbo de data e hora e a referência do solicitante. Nunca pedimos nem aceitamos uma chave privada ou frase de recuperação. Nenhuma criação de perfil baseada em IP além do que a prevenção de abusos exige. A retenção constitui o registro de compliance do solicitante e é excluída mediante solicitação.