imutabilidade
Registros verificáveis
Todos os resultados publicados são ancorados criptograficamente e verificáveis por qualquer um. Inclusive contra nós.
as três âncoras
1. A corrente de hash
Cada registro publicado carrega o sha256 do anterior, calculado sobre o JSON canônico (chaves em ordem alfabética, sem espaço). Alterar qualquer registro antigo muda o hash dele, que quebra o elo seguinte, que quebra o próximo — até o topo. Não dá para consertar um elo sem reescrever todos os que vieram depois.
2. O histórico do git
A corrente vive em records/ no repositório público. Reescrever a história de um repo com forks e clones é ruidoso de um jeito que não passa despercebido.
3. OpenTimestamps
Periodicamente o hash do topo é carimbado fora do nosso controle, ancorado na rede Bitcoin. É de graça e prova uma coisa específica: que aquele hash já existia naquela data. Blockchain de verdade é upgrade opcional futuro, nunca pré-requisito — os dados já encadeados tornam a migração trivial.
O que a corrente NÃO prova. Ela não prova que o número está certo. Prova que o número não foi editado depois de publicado. Para o número estar certo existem outras coisas: juiz cego, juiz versionado, grupo de controle, e o dado cru publicado junto para você conferir por conta própria.
Últimos elos
verificar você mesmo
git clone https://github.com/filipecrocks/batuta
cd batuta
node script/chain.mjs verifyO comando percorre a corrente inteira e diz exatamente onde ela quebra, se quebrar. Não precisa confiar na nossa palavra, e é esse o ponto.