Timestamp GIT Secure your prior art without exposing code

← Tutti gli articoli

2026-08-23

Prova di esistenza nel software: guida per principianti

Prova di esistenza nel software: guida per principianti
timestamp git blockchain proof

Prova di Esistenza nel Software: Una Guida per Principianti

Cosa significa davvero dimostrare che un software è esistito in un momento specifico? Se ti è mai servito mostrare «l’ho creato io prima di te» senza rivelare il tuo codice sorgente, la risposta sta in un concetto chiamato prova di esistenza. Questa guida spiega l’idea, chiarisce i luoghi comuni errati e mostra come Timestamp GIT la trasformi in una GitHub App a configurazione zero.

Cos’è la Prova di Esistenza nel Software?

La prova di esistenza è una prova crittografica che uno specifico dato digitale sia esistito in uno specifico momento nel tempo. Nel software, quel dato è di solito l’hash di un commit Git. Il processo funziona così:

  • Creando un hash unidirezionale del dato — un’impronta digitale crittografica.
  • Ancorando quell’impronta in un registro pubblico immutabile, la blockchain di Bitcoin.
  • Conservando una ricevuta che consenta a chiunque di verificare l’ancoraggio in modo indipendente.

A differenza di log interni, email o normali timestamp di controllo versione, la prova crittografica non dipende dall’onestà di una singola persona o di un singolo server. La prova vive nella blockchain pubblica di Bitcoin, dove la matematica può essere verificata da chiunque.

La prova di esistenza è anche uno strumento chiave per stabilire l’arte nota nelle controversie di proprietà intellettuale. Se un troll dei brevetti rivendica la tua tecnica, un timestamp ancorato a Bitcoin può dimostrare che avevi già l’implementazione mesi o anni prima.

Una Semplice Analogia: Il Notaio per il Tuo Codice

Pensa a un notaio tradizionale. Firmi un documento, il notaio osserva e poi lo timbra con un sigillo ufficiale e una data. In seguito, chiunque può guardare il timbro e sapere che il documento esisteva in quella data.

La prova di esistenza fa lo stesso per i dati digitali:

  • Impronta digitale — L’hash del tuo commit Git è un’impronta unica dello stato esatto del tuo repository in quel momento.
  • Ancoraggio — L’impronta viene registrata nella blockchain di Bitcoin, come il registro ufficiale di un notaio.
  • Prova — Ricevi un file di ricevuta .ots, come un certificato notarile che chiunque può verificare.

La differenza fondamentale: nessuno deve fidarsi del server o del database del notaio. Il registro pubblico di Bitcoin rende la registrazione immutabile.

Come Funziona Sotto il Cofano (In Breve)

Sotto il cofano, la prova di esistenza per il software segue tre passaggi:

  1. Impronta digitale — Git genera un hash unidirezionale dello stato esatto del repository. Quell’hash è l’impegno.
  2. Ancoraggio — Timestamp GIT estrae solo gli hash dei commit, li raggruppa quotidianamente e crea un albero di Merkle. La radice di Merkle viene poi ancorata in una transazione Bitcoin usando il protocollo OpenTimestamps.
  3. Prova — Una volta confermato il blocco Bitcoin, ricevi un file di ricevuta .ots immutabile. Chiunque può verificarlo usando gli strumenti di verifica standard di OpenTimestamps contro la blockchain di Bitcoin.

Ecco come appare un hash di commit in locale:

# L'hash del tuo commit Git è un'impronta unidirezionale dello stato completo del repository
git rev-parse HEAD
# Esempio di output: 7c2f0a9b3e8d4f1c6a5b9c0d1e2f3a4b5c6d7e8f

Timestamp GIT automatizza l’intera pipeline. Installi la GitHub App una volta e ogni commit su un repository monitorato viene improntato e ancorato automaticamente ogni notte. Nessuno strumento CLI, nessun comando manuale OpenTimestamps e nessuna configurazione di wallet Bitcoin. Il prodotto è un servizio gestito che nasconde il protocollo dietro un’integrazione GitHub.

La conoscenza zero è integrata: Timestamp GIT non vede, copia o memorizza mai il tuo codice sorgente. Elabora solo gli hash dei commit. In modalità Enterprise ZK, persino l’hash del commit viene inviato dalla tua infrastruttura tramite una GitHub Action, quindi non è richiesto alcun accesso in lettura al repository sorgente.

La verifica è indipendente. Puoi scaricare la ricevuta .ots e verificarla tu stesso contro la blockchain di Bitcoin, anche se Timestamp GIT dovesse scomparire.

Perché la Prova di Esistenza è Importante: Luoghi Comuni Errati

Luogo comune 1: «La mia cronologia Git è sufficiente.»

La cronologia Git è utile per lo sviluppo, ma vive su server che non controlli completamente. I commit Git possono essere riscritti, le date possono essere modificate e i log interni sono spesso respinti negli audit legali come autoreferenziali o manipolabili. La prova di esistenza ancora un hash in una blockchain pubblica, rendendo la linea temporale matematicamente verificabile.

Luogo comune 2: «Devo pubblicare il mio codice per dimostrare l’arte nota.»

No. L’impronta è un hash unidirezionale. Timestamp GIT non vede mai il tuo codice sorgente e la prova non lo rivela. Puoi stabilire l’arte nota senza pubblicare il tuo codice o depositare documenti pubblici.

Luogo comune 3: «I timestamp blockchain servono solo per le criptovalute.»

Il valore principale di Bitcoin per gli sviluppatori software non è la valuta. È un registro pubblico e immutabile. Le stesse proprietà che impediscono la doppia spesa rendono Bitcoin ideale per datare qualsiasi dato digitale. La tua prova è incorporata nei dati dei blocchi Bitcoin, rendendola verificabile a livello globale e permanente.

Scenari reali in cui la prova di esistenza è importante:

  • Difendersi dai troll dei brevetti mostrando di aver implementato una tecnica prima del deposito di un brevetto
  • Dimostrare quando una funzionalità è stata concepita in una controversia tra dipendenti
  • Stabilire linee temporali di sviluppo clean-room quando un concorrente rivendica un’invenzione indipendente
  • Proteggere i segreti commerciali senza pubblicarli

Come Ottenere la Prova di Esistenza per il Tuo Codice con Timestamp GIT

Ecco il flusso di lavoro principale:

  1. Installa la GitHub App Timestamp GIT sul tuo repository. È una configurazione una tantum.
  2. Continua a committare come al solito. La GitHub App rileva automaticamente i nuovi commit tramite webhook.
  3. Ogni notte, Timestamp GIT raggruppa gli hash dei tuoi commit, crea un albero di Merkle e ancora la radice di Merkle nella blockchain di Bitcoin.
  4. Le prove vengono consegnate su un branch dedicato o su un repository ombra. Puoi mostrare un badge di verifica nel tuo README per dimostrare che i tuoi commit sono ancorati.
# Dopo aver installato la GitHub App, il tuo flusso di lavoro normale non cambia
git add .
git commit -m "Aggiungi esempio di prova di esistenza"
git push origin main

Se hai bisogno del massimo isolamento, la modalità Enterprise ZK esegue una GitHub Action sulla tua infrastruttura che invia solo l’hash del commit all’API di Timestamp GIT. Accesso zero al codice significa che il tuo sorgente non lascia mai il tuo ambiente.

Per ambienti air-gapped o regolamentati, Timestamp GIT è disponibile anche come immagine Docker self-hosted. Questo ti consente di eseguire la stessa automazione all’interno della tua infrastruttura.

FAQ

Qual è la differenza tra prova di esistenza e prova di paternità?

La prova di esistenza stabilisce che uno specifico artefatto digitale, come l’hash di un commit Git, è esistito in un certo momento. La prova di paternità lega inoltre quell’artefatto a una persona o entità specifica. Timestamp GIT fornisce la prova di esistenza; la paternità può essere dedotta dal repository e dai metadati del commit.

La prova di esistenza può essere verificata senza fidarsi di Timestamp GIT?

Sì. La prova si basa sul protocollo OpenTimestamps e sulla blockchain di Bitcoin. Puoi scaricare la ricevuta .ots e verificarla in modo indipendente usando gli strumenti di verifica standard di OpenTimestamps contro la blockchain di Bitcoin. Timestamp GIT non deve essere coinvolto nella verifica.

La prova di esistenza richiede di rivelare il mio codice sorgente?

No. Timestamp GIT elabora solo gli hash dei commit Git, che sono impronte unidirezionali. Il tuo codice sorgente non lascia mai il tuo repository. In modalità Enterprise ZK, persino l’hash del commit viene inviato dalla tua infrastruttura, garantendo accesso zero al codice.

Quanto tempo ci vuole per ottenere una prova dopo un commit?

Timestamp GIT raggruppa i commit quotidianamente e li ancora nella blockchain di Bitcoin. La conferma richiede in genere alcune ore dopo il raggruppamento giornaliero. Ricevi la ricevuta .ots una volta confermato l’ancoraggio.

Quanto costa Timestamp GIT?

Timestamp GIT offre un piano Open Source per repository pubblici, un piano Pro Agency per repository privati e un piano Enterprise ZK per la modalità a conoscenza zero basata su GitHub Actions. È disponibile anche una licenza Docker self-hosted per i team che devono eseguire il servizio sulla propria infrastruttura.

Cosa succede se voglio verificare il timestamp di un commit specifico?

Timestamp GIT fornisce una dashboard pubblica per ogni repository monitorato, con longevità, date di ancoraggio, dati dei blocchi Bitcoin e certificati CSV e PDF scaricabili per gli audit. Puoi anche usare gli endpoint API per stato, verifica e report. Per un approfondimento più dettagliato, consulta l’articolo correlato sulla verifica dei timestamp dei commit Git.

Conclusione

La prova di esistenza nel software non è magia. È la combinazione di un’impronta unidirezionale, un registro pubblico immutabile e una ricevuta verificabile in modo indipendente. Le alternative tradizionali — log Git, timestamp dei server e tracce email — sono deboli in un contesto legale. Una prova ancorata a Bitcoin è matematicamente molto più solida.

Timestamp GIT trasforma questo concetto in un prodotto che puoi installare una volta e dimenticare. La GitHub App osserva il tuo repository, raggruppa gli hash dei commit di notte e restituisce ricevute .ots senza mai leggere il tuo codice sorgente. Se vuoi dimostrare quando è esistito il tuo codice, installa Timestamp GIT e collega il tuo repository.

Articoli correlati

EU label: AI-generated content