Por que é seguro
Dois livros-razão, e eles têm que bater.
Um voucher é um título ao portador. Quem o detém pode gastá-lo, então a única pergunta que importa é se o que está na sua frente é real e não usado. Respondemos isso mantendo o registro em dois lugares que não podem ser editados pelas mesmas mãos.
bullmark
Guarda o voucher em si — quem o tem, quanto vale, se já foi usado.
Envia o hash nunca o conteúdo
axowl
Guarda a âncora — uma impressão digital daquele registro, e o próprio relógio dizendo quando ela chegou.
a axowl nunca vê o que um voucher diz. Ela recebe uma impressão digital e a guarda com um carimbo de tempo próprio. É todo o arranjo, e é o que torna os dois lados independentes: mudar um voucher significa mudar a impressão digital dele, e a impressão digital não é nossa para mudar.
O que é coberto
A impressão digital é tirada sobre estes
Não a linha inteira — uma lista nomeada, para que seja conhecível em vez de uma questão de confiança. Mude qualquer um deles e a impressão digital deixa de bater.
O produto a marca quem o detém seu código de resgate seu número de série o preço ao consumidor o preço que ele concede quando expira se já foi usado quando foi usado o e-mail do detentor
Os três últimos entraram em agosto de 2026, e eram os importantes. Um voucher usado e revertido para não usado no banco mantinha sua impressão digital e passava em todas as checagens — o resgate era registrado em outro lugar, então a própria linha podia dizer que nunca tinha sido tocada. Não pode mais.
Duas coisas ficam de fora de propósito, porque incluí-las criaria alarmes falsos. A reserva é uma trava, não um fato sobre valor — um voucher segurado trinta segundos num caixa não é um voucher alterado. A expiração já é derivável, já que a data de validade está selada; selar também o estado significaria que um voucher verificado limpo na segunda falha na terça sem ninguém ter tocado nele. Um verificador que grita lobo é um que as pessoas aprendem a ignorar.
Onde cada ataque morre
Quatro formas de trapacear por dentro, e o que as detém
Editar um voucher no banco de dados
Baixe o preço, empurre a validade, ponha seu próprio nome. A impressão digital muda e deixa de bater com a âncora guardada na axowl. Recalcular nossa própria cópia não ajuda — a cópia que decide não está no nosso banco.
Gastar o mesmo voucher duas vezes
O resgate agora está dentro do selo, então revertê-lo para não usado muda a impressão digital. E o resgate é registrado à parte como sua própria entrada selada, encadeada à anterior — dois registros teriam que concordar com a mentira, e um deles não é nosso.
Cunhar um que nunca foi emitido
Emitir sela o lote inteiro como um fato: esta quantidade, a este preço, até esta data. Um voucher de número cento e um contradiz um registro já escrito. E uma âncora nova carrega o relógio da axowl, não o nosso — ela pode ser criada hoje, nunca no ano passado.
Passá-lo em silêncio para outra pessoa
O detentor está dentro do selo, então um voucher não pode trocar de mãos editando um campo. Repassá-lo fecha a cópia de quem dá e emite ao receptor a sua, com o mesmo número de série, com as duas metades no registro. Não existe versão da história com um lado só.
Códigos copiados
E se alguém copiar meu QR?
Um QR não é o voucher. É um ponteiro para uma linha numerada do nosso lado, e a linha é o voucher. Então a foto de um QR vale exatamente o que a linha por trás dele vale no momento em que alguém o apresenta — que é o jeito útil de pensar cada caso abaixo.
Um código inventado
Resgatar consulta o código; não lê um valor da imagem. Um código que nunca foi emitido não aponta para nada, por mais convincente que o QR à volta pareça. Não há como desenhar um voucher para que ele exista.
Uma cópia de um real
Uma cópia é o mesmo código, então é o mesmo voucher — não um segundo. O primeiro resgate é selado na linha; toda tentativa posterior, da cópia ou do original, recebe a resposta de que já foi usado. Dez capturas continuam sendo um voucher.
Uma captura guardada antes de vendê-lo
Repassar um voucher — um presente, uma revenda — fecha a linha de quem dá e emite ao receptor uma linha nova com um código novo, sob o mesmo número de série. O código da captura antiga agora aponta para uma linha fechada. Vender um voucher e então correr para gastá-lo antes do comprador não funciona.
Um código que outra pessoa viu primeiro
Este risco é real, e preferimos dizer: um voucher é um título ao portador, e uma marca que resgata por código não é informada de quem está segurando o telefone. Escanear um QR não entrega o código — um escaneamento mostra que o voucher é legítimo e não usado, e o código só ao detentor logado e à marca emissora — mas um código que você publica ou dita é um código que outra pessoa pode usar. Trate-o como o número de um vale-presente. Uma marca que queira fechar isso pode nos perguntar quais vouchers o cliente logado dela realmente detém e deixá-lo escolher dessa lista, em vez de aceitar um código digitado — aí um código copiado não tem onde ser inserido.
E seja como for, fica registrado. Emissão, repasse, reserva e resgate são cada um uma entrada selada encadeada à anterior. Uma marca pode puxar a cadeia completa de qualquer voucher seu — conteúdo incluído — e rederivar cada impressão digital sozinha, então "quem gastou isto, e quando" tem uma resposta que não depende da nossa palavra.
Crédito de marca
Podemos imprimir isso em silêncio?
Crédito de marca tem forma de dinheiro: uma marca o carrega, emite vouchers contra ele e saca o que ganha. Então a pergunta justa não é se alguém de fora consegue entrar — é se nós podemos adicionar uma linha ao nosso próprio livro e torcer para ninguém perceber.
O livro só cresce
Entradas são anexadas, nunca editadas ou removidas. Uma correção é outra entrada dizendo o que corrige, então o erro e o conserto ficam os dois visíveis. Não existe versão do saldo com a linha incômoda retirada.
Cada entrada é selada e encadeada
Cada uma carrega a impressão digital da anterior. Mudar uma entrada antiga quebra todas as seguintes, então o custo de uma única edição silenciosa é reescrever a cadeia inteira — em dois lugares, um dos quais não é nosso.
Alguém de dentro não é exceção
Aqui, acesso ao banco não é o mesmo que acesso ao livro. Alguém com direitos totais no nosso banco de produção ainda pode mudar uma linha — só não consegue fazer a âncora na axowl concordar com isso depois. É todo o sentido de manter a segunda cópia num lugar onde nossos administradores não são administradores.
Você pode auditar sem nos pedir
Uma marca pode entregar os ids das próprias entradas a um contador, que rederiva as impressões digitais da cadeia aberta e confere se as somas fecham. A checagem não passa pelo bullmark, então não há nada em que possamos ser prestativos.
O que não afirmamos
Verificamos um e-mail. Essa é a linha.
Não checamos passaportes, não operamos birôs de identidade nem fingimos saber quem está por trás de um endereço. Um selo prova que um registro não foi alterado — não torna verdadeira uma afirmação não verificada, e uma empresa que borra essas duas coisas está lhe vendendo uma sensação.
Então aqui está a promessa exata: este voucher, a este preço, foi emitido para este endereço de e-mail, neste horário, e não foi tocado desde então. O e-mail é aquele com que a conta se autenticou, nunca um campo de formulário que alguém digitou. Qualquer coisa além desse endereço está fora do que podemos provar, e preferimos dizer isso a deixar você descobrir depois.
Confira você mesmo
Você não precisa acreditar na nossa palavra
Cada entrada selada é legível, e a matemática que a produziu é aberta. Entregue a cadeia ao nosso sdk javascript — ou a qualquer coisa que faça sha-256 — e rederive as impressões digitais você mesmo. A checagem roda inteiramente do seu lado; ela não pergunta nada ao bullmark.
GET /integrity/events/VoucherInstance/{id}
Ele devolve hashes e veredictos, nunca conteúdos ou códigos de resgate — então pode continuar aberto sem virar um jeito de ler os vouchers dos outros.
Comece o ciclo
Sem dinheiro adiantado.
Cadastre sua startup Como funciona