Verifica
Tutto il resto di questo sito ti chiede di credere a qualcosa. Questo no. Dato l'archivio probatorio e il certificato, il controllo è aritmetica — e il record con cui lo confronti sta su una blockchain pubblica che non possiamo alterare.
Un certificato è un puntatore a due cose. Nessuna delle due è la fotografia di uno schermo, e nessuna delle due è la nostra parola.
Un solo file JSON, evidence.json, che contiene tutto ciò che è stato certificato: l'NDA e la sua impronta, ogni parte con il modo in cui si è davvero identificata e l'istante in cui ha accettato, e — per una sessione certificata — la trascrizione confermata, le impronte di entrambe le sue versioni, l'event log della riunione e l'impronta della registrazione. Non è il riassunto di ciò che è successo. È ciò che è successo.
Una transazione pubblica su Polygon PoS in cui l'impronta di quel pacchetto è stata scritta, con un numero di blocco e il momento del blocco. Da quando è minata, né noi né altri possiamo spostarla, correggerla o ritirarla.
In quest'ordine. Il terzo ha senso solo se il secondo è passato.
01
Prendi lo SHA-256 di evidence.json così com'è. Il file dentro l'archivio è già in forma canonica, quindi non c'è niente da normalizzare prima e nessuna libreria nostra da installare.
02
Deve coincidere con l'impronta del pacchetto stampata sul certificato — sul PDF, in certificate.json dentro l'archivio, e sulla pagina di verifica pubblica. Se differisce, la prova che hai in mano non è quella che è stata certificata, e il terzo controllo è inutile.
03
Apri la transazione di ancoraggio su un block explorer qualsiasi e leggi l'evento Anchored. L'impronta che porta deve essere quella che hai appena calcolato. Il momento del blocco ti dice da quando quell'impronta non è più stata modificabile da nessuno.
Calcolare l'hash di un JSON alla buona sarebbe una lotteria: lo stesso contenuto, scritto da due programmi, dà due flussi di byte diversi — un altro ordine delle chiavi, un'altra spaziatura, un altro modo di scrivere lo stesso numero — e quindi due hash diversi.
Perciò il pacchetto è scritto nella forma canonica dell'RFC 8785. Canonico vuol dire che esiste esattamente un modo ammesso di scrivere un dato contenuto: chiavi ordinate, una sola forma scritta per ogni numero e per ogni stringa, uscita in UTF-8. Due persone, su due macchine, a dieci anni di distanza, dallo stesso pacchetto ottengono gli stessi byte — ed è ciò che rende «ricalcola l'impronta» una procedura invece che un invito.
È anche il motivo per cui il file che consegniamo è già canonico: su quel file, un semplice SHA-256 è tutto il primo controllo.
Due comandi e un link. Qui dentro non c'è niente di nostro.
Ricalcola l'impronta — macOS, Linux
shasum -a 256 evidence.jsonRicalcola l'impronta — Windows
certutil -hashfile evidence.json SHA256Apri la transazione di ancoraggio — l'id è sul tuo certificato
https://polygonscan.com/tx/<id transazione>Il contratto di ancoraggio — Polygon PoS, chain 137
0x5CceC6F5806b7C949eB90D61fB9D13Cb639AC203Sorgente verificato su Polygonscan. Anchored(hash, timestamp, sender) viene emesso per una transazione dedicata, BatchAnchored(merkleRoot, timestamp, sender) per un batch giornaliero.
Apri il contratto su PolygonscanManteniamo un verificatore a riga di comando che fa tutto quanto sopra in un comando solo, prove Merkle comprese. È sotto licenza MIT e non è ancora pubblicato su alcun registro pubblico, quindi al momento non hai modo di procurartelo — ed è esattamente per questo che questa pagina è scritta intorno a strumenti che hai già. Quando sarà pubblicato, l'istruzione comparirà qui.
Un'impronta raggiunge la catena in due modi, e sono ugualmente controllabili. Ciò che cambia è il costo e l'immediatezza, non la forza.
L'evento Anchored porta direttamente l'impronta del tuo pacchetto. Cerchi il tuo hash e lo trovi, oppure non lo trovi.
Sulla catena va solo la radice di un albero, in un evento BatchAnchored, e il certificato porta la prova che conduce dalla tua impronta a quella radice: la foglia è il keccak-256 dell'impronta del pacchetto, ogni nodo interno il keccak-256 della coppia ordinata dei suoi figli. La prova si controlla offline, sulla tua macchina, e poi la radice deve comparire in un evento BatchAnchored. Un certificato in batch non è un certificato più debole: è la stessa prova con un passo breve in più.
Un certificato che dice «ancoraggio in corso» è stato sigillato ma non ancora scritto sulla catena. La sua impronta è già fissata; manca la transazione. È uno stato, e la pagina dice quale — mai un «ancorato» detto in silenzio.
Verificabilità e riservatezza qui non sono in conflitto, perché il confine non è una regola che qualcuno rispetta: è una vista del database, e una vista può restituire solo ciò che seleziona.
Niente di tutto questo viene oscurato dopo. Non viene selezionato: la query che serve quella pagina non raggiunge proprio quelle colonne.
Una discordanza è un'informazione, non un'accusa. Leggila in quest'ordine.
La causa di gran lunga più comune è che il file sia stato aperto e risalvato da uno strumento che l'ha riformattato — basta uno spazio in più. Riscarica l'archivio originale e ricalcola sul file intatto.
Allora la prova che ti è stata data non è la prova che è stata certificata, e il certificato non la copre. Dillo a chi ti ha dato il file, e scrivi a noi con il codice del certificato.
Ricontrollalo carattere per carattere sul certificato: il codice ha una forma fissa, CNDA-XXXX-XXXX-XXXX. Un codice ben formato e comunque sconosciuto significa che nessun certificato è mai stato emesso con quel codice.
La verifica pubblica non chiede altro: nessun account, nessun indirizzo email, nessuna motivazione.
Verifica un certificato