Semântica da prova

O que prova um certificado Signet — com precisão.

Esta página faz parte do produto, não do marketing. Uma prova só é útil se todos concordarem exatamente sobre o que afirma. Eis a afirmação, a criptografia em que assenta e como a verificar sem confiar em nós.

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.

BlockchainNormaVerificação
Ethereum e EVMEIP-191 personal_signRecuperação offline do signatário
Carteiras smart contractEIP-1271Chamada on-chain a isValidSignature
Bitcoin (SegWit / Taproot)BIP-322Offline
Bitcoin (P2PKH legacy)BIP-137 signmessageOffline
Litecoin, Dogecoin, Zcash (t1)BIP-137 com o prefixo da redeOffline
Solanaed25519Offline
Polkadot, Kusamasr25519 / ed25519Offline
TRONTronWeb 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:

  1. signature é uma assinatura válida de challenge por address na blockchain indicada. Isto, por si só, prova o controlo da chave.
  2. Recalcule o SHA-256 do JSON canónico do certificado; tem de ser igual a contentHash (a folha merkle).
  3. Dobre a folha com merkleProof (keccak256, pares ordenados); o resultado tem de ser igual a merkleRoot.
  4. Chame timestamps(merkleRoot) no contrato Stamper na Polygon; um valor diferente de zero é o momento em que, o mais tardar, o certificado existia.
  5. 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.