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 num determinado momento. Nada mais. É uma prova de controlo de uma chave, não de identidade.
Provado, 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, o mais tardar, no momento da ancoragem on-chain.
Não provado
- A identidade do signatário.
- Que o controlo é exclusivo, ou que a chave não foi partilhada nem obtida sob coação.
- Que o signatário é cliente do requerente — a associação a uma identidade cabe ao KYC do requerente.
Como é provada
O requerente emite um desafio que inclui um nonce de utilização única associado a esse único pedido. A contraparte assina os bytes exatos do desafio com a sua carteira. Verificamos a assinatura face ao endereço na blockchain certa, depois calculamos o hash do certificado resultante e ancoramos esse hash on-chain através de um lote merkle — o mesmo contrato Stamper utilizado em toda a família BA, pelo que o verificador público o valida sem alterações.
O nonce torna a reutilização impossível: uma assinatura sobre o desafio de um pedido não pode ser transferida para outro. Verificamos o desafio guardado byte a byte, nunca uma cópia regenerada.
Criptografia por blockchain
Cada blockchain tem a sua própria norma de assinatura. A camada de verificação foi concebida para que novas blockchains sejam acrescentadas sem alterar as existentes.
| Blockchain | Norma | 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 por si
Cada certificado exporta um pacote de prova autónomo. Qualquer pessoa o pode verificar face às blockchains públicas, sem conta e sem confiar na BA | Signet:
signatureé uma assinatura válida dechallengeporaddressna blockchain indicada. Isto, por si só, prova o controlo da chave.- Recalcule o
SHA-256do JSON canónico do certificado; tem de ser igual acontentHash(a folha merkle). - Dobre a folha com
merkleProof(keccak256, pares ordenados); o resultado tem de ser igual amerkleRoot. - Chame
timestamps(merkleRoot)no contrato Stamper na Polygon; um valor diferente de zero é o momento em que, o mais tardar, o certificado existia. - Opcionalmente, verifique a prova OpenTimestamps face ao bloco Bitcoin.
O que guardamos
A contraparte não é nossa cliente e não tem conta. Recolhemos o mínimo: o endereço, o desafio, a assinatura, o carimbo temporal e a referência do requerente. Nunca pedimos nem aceitamos uma chave privada ou uma frase de recuperação. Nenhuma definição de perfis com base no IP além do que a prevenção de abusos exige. A conservação constitui o registo de conformidade do requerente, eliminado a pedido.