Stickybit.← TelemetriaEnglishTelemetria · verificadores
Verificadores abertos · código e dados públicos

Não confie. Rode.

Tudo o que afirmamos sobre um arquivo comprimido ou um registro selado pode ser conferido por dois programas pequenos e abertos, na sua máquina, sem rede e sem conta. Abaixo, o que eles pegam e o que deixam passar, medido.

Espécime · um pacote de 20 mil medições, cinco tentativas

Saídas reais dos verificadores v1.1, rodados em 12 out 2026 sobre o pacote seno-ruído do corpus público. Só o nome do arquivo foi encurtado para seno.

No dia a dia

O fiscal traz o próprio peso.

Quando o fiscal confere a balança da feira, ele não pergunta ao feirante se ela está certa. Ele traz um peso padrão, põe no prato e lê o número. E confere se o lacre do Inmetro está intacto.

Aqui é igual. O verificador é o peso padrão: um programa que você baixa, lê e roda sem precisar de nós. O registro público é o lacre: cada pacote e cada versão do próprio verificador tem a impressão digital gravada num livro que só cresce, com a data provada no Bitcoin.

Os dois juntos fecham uma corrente. O arquivo bate com o seu selo, o selo está no registro, o registro está assinado por uma chave que você guardou antes, e a data está ancorada fora daqui.

pacote20 mil medições seloimpressão digital registroassinado, só cresce chave públicaguardada antes Bitcoina data, fora daqui tube-verifica verifica.py
Cada elo da corrente é conferido por um dos dois programas. Basta um elo falhar para o resultado ser reprovado.
O que medimos

Três mil fraudes de um bit. Quantas passam?

Pegamos um pacote honesto e trocamos um único bit, num ponto sorteado, 3.000 vezes. Em cada vez reescrevemos também o selo do pacote, como faria quem controla o arquivo. Depois rodamos o verificador sem os dados originais, só sobre o pacote.

A maioria das trocas se denuncia sozinha: o arquivo deixa de fazer sentido ou o índice deixa de bater. Mas 4,1% passam com a série alterada. Num dos casos, um bit no byte 330 mudou 70 medições em até 15,5, numa série que vai de −10 a 10. Sem os originais, nada no pacote mostra isso.

É aí que o registro entra. Ligue a alavanca: conferindo o selo contra o registro público, as 3.000 forjas são reprovadas, porque nenhum selo reescrito está lá.

pegapassa, com a série alteradapassa, mesma série (bytes diferentes, mesmo conteúdo)
2.861reprovadas
123passam com a série alterada
16passam com a mesma série

Antes de publicar, a primeira versão travava em alguns arquivos adulterados: um laço do decodificador não tinha teto. Hoje toda leitura tem limite, e qualquer byte forjado vira reprovação com motivo. Isso foi testado com as 3.000 trocas e um minuto de entradas aleatórias, cerca de 10 mil, sem nenhum travamento.

Baixar e rodar

Cerca de 900 linhas. Leia antes de confiar.

O pacote traz os dois verificadores, um corpus de teste com dados públicos de CO₂ de Mauna Loa (NOAA) e três séries sintéticas, e um script que confere tudo de ponta a ponta, inclusive contra o registro publicado neste site. Precisa de Go 1.22 ou mais novo e de Python 3.

# baixar e conferir a impressão digital
curl -O https://stickybit.com.br/static/verificadores/verificadores-v1.2.tar.gz
shasum -a 256 verificadores-v1.2.tar.gz   # 72b85f15d5c75aad…
tar xzf verificadores-v1.2.tar.gz && cd verificadores-v1.2

# rodar a corrente inteira
pip install cryptography
./verifica-tudo.sh --site

Chave pública do registro (Ed25519): e49648c5f81df74928259a016d5459dd2ca9bd07c1196ece89ab01fecebaa3a8

A impressão digital do próprio pacote dos verificadores também está selada no registro: a v1 na linha 7, a v1.1 na linha 8, a v1.2 na linha 9. Trocar o programa que você baixa é tão visível quanto trocar um dado.

Limites

O que um "verificado" não prova.

Sem originais, só coerência

Sem os dados originais e sem conferir o selo no registro, o verificador prova só que o pacote bate com ele mesmo. Ele diz isso na saída, e mostra o próximo comando.

O verificador do arquivo não é independente

Ele é o nosso decodificador, extraído. Um erro que o codificador e ele compartilhem passaria nos dois. O do registro foi reescrito em outra linguagem; o do arquivo ainda não tem segunda implementação.

A chave precisa chegar por outro caminho

Quem troca a pasta inteira troca a chave junto. Guarde a chave acima, compare com a do script e use a opção que a fixa.

O registro ainda não tem testemunha

Ele é assinado só por nós. A data no Bitcoin impede reescrever o passado sem ser visto, mas não impede manter dois registros. O registro já fala o protocolo da rede pública de testemunhas, e o verificador já confere cossignaturas; falta uma testemunha de fora aceitar o registro.

A tolerância é a que declaramos

O verificador confere que a tolerância foi cumprida, não que ela é a certa para a sua norma. Essa pergunta continua sendo sua.

Para conferir o verificador, leia

Usar o programa baixado para conferir o próprio programa é andar em círculo. O verificador do registro tem cerca de 130 linhas de Python: dá para ler numa tarde, ou reescrever.

Ver também
Conversar

Quer rodar isto nos seus dados?

Conte em duas linhas o que você precisa provar e para quem. A primeira conversa serve para ver se o verificador resolve o seu caso, e, se não resolve, dizemos.

Conversar pelo WhatsApp algorithms@stickybit.com.br Stickybit · Porto Alegre, desde 2004

← Telemetria certificada · stickybit.com.br