Timestamp GIT Secure your prior art without exposing code

← Tutti gli articoli

2026-08-25

Come Timestampare Crittograficamente i Commit Git (Senza Strumenti CLI)

Come Timestampare Crittograficamente i Commit Git (Senza Strumenti CLI)
timestamp git blockchain proof

Come apporre timestamp crittografici ai commit Git (senza strumenti CLI)

La maggior parte degli sviluppatori considera git log una registrazione affidabile di quando è avvenuto il lavoro. Ma la cronologia Git standard non è attendibile dal punto di vista crittografico: le date dei commit possono essere impostate su qualsiasi valore, la cronologia può essere riscritta con un force-push e un repository ospitato su GitHub può essere modificato da persone con accesso amministrativo. Se un troll dei brevetti, un ex collaboratore o un concorrente ti chiede di dimostrare quando è esistita una specifica implementazione, il tuo git log locale viene spesso liquidato come prova a proprio favore.

Questa guida mostra come apporre timestamp crittografici ai commit Git senza installare OpenTimestamps, senza eseguire un nodo Bitcoin e senza imparare strumenti a riga di comando. Utilizzerai Timestamp GIT, una GitHub App gestita che legge solo gli hash dei tuoi commit, li raggruppa ogni notte, li ancora nella blockchain di Bitcoin e restituisce ricevute di prova .ots. Alla fine, ogni commit in un repository monitorato sarà verificabile rispetto alla blockchain di Bitcoin.

Se il concetto di base ti è nuovo, consulta Proof of Existence in Software: A Beginner’s Guide. Questo articolo resta focalizzato sull’attività di configurazione.

Prerequisiti

Non serve alcuna competenza crittografica, ma ti occorrono:

  • Un account GitHub con almeno un repository che desideri proteggere.
  • Accesso alla GitHub App Timestamp GIT, disponibile dal sito web di Timestamp GIT.
  • Familiarità di base con i normali flussi di lavoro Git, come commit e push.
  • Un repository pubblico se vuoi iniziare gratuitamente. I repository privati sono disponibili nei piani a pagamento.

Per la configurazione standard non sono richiesti installazioni locali, client OpenTimestamps o wallet Bitcoin.

Passo dopo passo: configurare la timestamping automatica

Passo 1: installa la GitHub App Timestamp GIT

Parti dal sito web di Timestamp GIT o dal GitHub Marketplace. Fai clic su Install GitHub App, scegli se installare l’app sul tuo account personale o su un’organizzazione e completa il flusso di autorizzazione di GitHub.

L’app diventa un servizio gestito: dopo l’installazione, monitora i repository selezionati e ancora i commit automaticamente. Non devi aggiungere hook post-commit né modificare il tuo flusso di lavoro di sviluppo.

Passo 2: concedi i permessi richiesti

Timestamp GIT funziona in due modalità:

  • Modalità Standard: la GitHub App legge solo l’ultimo hash di commit dal repository sorgente. Poiché il sistema di permessi di GitHub non prevede un accesso limitato al solo “hash di commit”, l’app richiede accesso in sola lettura al repository sorgente. Richiede inoltre accesso in lettura-scrittura al repository di destinazione in cui verranno scritti i file di prova.
  • Modalità Enterprise ZK: una breve GitHub Action viene eseguita sulla tua infrastruttura e invia solo l’hash di commit all’API di Timestamp GIT. In questa modalità non è richiesto alcun accesso in lettura al repository sorgente. Serve solo accesso in lettura-scrittura al repository di destinazione in cui vengono archiviate le prove.

Per la maggior parte degli utenti, la Modalità Standard è il punto di partenza giusto. Il punto importante è che Timestamp GIT non legge mai il tuo codice sorgente in nessuna delle due modalità.

Passo 3: seleziona i repository da monitorare

Durante l’installazione, scegli se l’app deve monitorare tutti i repository attuali e futuri oppure solo repository selezionati. Se stai facendo un test con un repository pubblico, selezionalo ora.

I file di prova possono essere scritti nello stesso repository su un branch dedicato oppure in un repository ombra separato. Usare lo stesso repository è comune per i progetti piccoli. Un repository ombra separato è utile se vuoi tenere i file di prova completamente fuori dal repository principale.

Passo 4: conferma la configurazione nella dashboard

Dopo l’installazione, apri https://timestampgit.dev/repos. Dovresti vedere lì i tuoi repository monitorati.

Verifica che:

  • Il repository sorgente compaia nell’elenco.
  • La destinazione delle prove sia configurata come previsto.
  • Il repository sia contrassegnato come attivo.

Se il repository non compare, ricontrolla le impostazioni di installazione della GitHub App e conferma che i repository corretti siano selezionati.

Passo 5: crea un nuovo commit

Timestamp GIT elabora solo i commit effettuati dopo che il repository è stato collegato. Crea un commit normale ed esegui il push:

git add src/validation.js
git commit -m "Add payment validation logic"
git push origin main

Non devi eseguire nient’altro. La GitHub App rileva automaticamente il nuovo commit tramite webhook.

Passo 6: attendi il processo batch notturno

Timestamp GIT non ancora ogni commit immediatamente. I commit vengono raccolti in una coda e un worker notturno li raggruppa poco dopo la mezzanotte UTC.

Il worker:

  1. Crea un file manifest per ogni repository.
  2. Costruisce un albero di Merkle dagli hash dei commit in sospeso.
  3. Crea le prove OpenTimestamps.
  4. Ancora la radice di Merkle nella blockchain di Bitcoin.

La conferma su Bitcoin richiede normalmente diverse ore. Il processo completo di scrittura delle prove può richiedere alcune ore in totale, quindi non aspettarti che un badge o una pagina di stato si aggiornino entro pochi minuti dal push del commit.

Passo 7: verifica la consegna delle prove

Una volta confermato il batch, Timestamp GIT esegue il push dei file di prova verso la destinazione scelta. Vedrai un branch dedicato timestamps o un repository ombra contenente:

manifests/2026-08-25.txt
proofs/2026-08-25.ots

Il file .ots è la tua ricevuta crittografica. Puoi conservarla, pubblicarla o consegnarla a un revisore. La prova è indipendente dall’infrastruttura di Timestamp GIT.

Come confermare che ha funzionato (verifica)

Il modo più rapido per confermare che la timestamping è attiva è aprire la pagina di stato del repository:

https://timestampgit.dev/status/{user}/{repo}

Sostituisci {user} e {repo} con il tuo nome utente o organizzazione GitHub e il nome del repository. La pagina di stato mostra la prima data di ancoraggio, la regolarità giornaliera, i dati di blocco e transazione Bitcoin e una heatmap a calendario.

Per un controllo leggibile da una macchina, puoi chiamare l’API di stato pubblica:

curl -s https://timestampgit.dev/api/statusLast/octocat/hello-world

La risposta contiene le informazioni sull’ultimo blocco Bitcoin ancorato. Per i repository privati, l’URL include un HMAC crittografato in modo che solo gli utenti autorizzati possano accedere allo stato.

Per mostrare lo stato della prova direttamente nel tuo README, apri la dashboard del repository e copia il markdown del badge incorporabile. Apparirà simile a questo:

[![Timestamp GIT](YOUR_BADGE_URL)](https://timestampgit.dev/status/YOUR_USER/YOUR_REPO)

La dashboard fornisce lo snippet completo, incluso l’URL corretto del badge Shields.io per il tuo repository.

Per un controllo più approfondito della prova, visita:

https://timestampgit.dev/verification/{user}/{repo}/{date}

Quella pagina illustra la verifica della catena di Merkle localmente nel tuo browser. Puoi anche scaricare un certificato PDF per una data specifica o esportare l’intero registro di audit in formato CSV dalla dashboard di stato.

Se vuoi verificare il file .ots in modo completamente indipendente, puoi scaricarlo e controllarlo rispetto alla blockchain di Bitcoin usando gli strumenti open-source OpenTimestamps. Timestamp GIT non richiede di farlo manualmente, ma l’opzione esiste perché la prova è indipendente dal fornitore. Per una guida dedicata, consulta How to Verify Your Git Commit Timestamps.

Risoluzione dei problemi comuni

Problema: non compare alcuna prova dopo un commit.

Soluzione: conferma che il repository sia ancora selezionato nelle impostazioni di installazione della GitHub App. Conferma inoltre che il commit sia stato effettuato dopo l’installazione. I commit effettuati prima del collegamento dell’app non vengono elaborati retroattivamente.

Problema: il branch delle prove non è stato creato.

Soluzione: verifica che l’app abbia accesso in scrittura al repository di destinazione. Se stai scrivendo le prove in un repository diverso, tale destinazione deve avere accesso in lettura-scrittura. Usare un repository ombra spesso risolve il problema in modo pulito.

Problema: il badge di verifica mostra uno stato sconosciuto o non aggiornato.

Soluzione: attendi il completamento del batch notturno e la conferma su Bitcoin. Normalmente richiede diverse ore dopo la mezzanotte UTC. Aggiorna il badge dopo che i file di prova sono stati riscritti.

Problema: lo stato del repository privato non è visibile ad altri.

Soluzione: gli URL di stato dei repository privati includono un HMAC crittografato. Usa il link del badge autenticato dalla dashboard di Timestamp GIT anziché l’endpoint di stato pubblico.

Problema: serve una distribuzione air-gapped o self-hosted.

Soluzione: Timestamp GIT è disponibile come licenza Docker self-hosted. Una configurazione minima con Docker Compose si presenta così:

services:
  timestampgit:
    image: rue1401/timestampgit:prod
    ports:
      - "8080:8080"
    volumes:
      - ./data:/app/data
      - ./license.lic:/app/license.lic:ro
    restart: unless-stopped

  valkey:
    image: valkey/valkey:8
    restart: unless-stopped

Dopo l’avvio, l’applicazione è disponibile su http://localhost:8080 e una procedura guidata di configurazione ti accompagna nel collegamento della tua GitHub App. Una licenza demo a tempo limitato è disponibile dalla pagina delle licenze Docker.

FAQ

In che modo Timestamp GIT appone timestamp crittografici ai miei commit Git?

Timestamp GIT estrae l’hash SHA-1 o SHA-256 di ogni commit, raggruppa questi hash quotidianamente, costruisce un albero di Merkle e ancora la radice di Merkle nella blockchain di Bitcoin usando il protocollo OpenTimestamps. Questo crea una prova immutabile che il commit esisteva in quel momento.

Devo eseguire strumenti CLI o comprendere OpenTimestamps?

No. Timestamp GIT è una GitHub App gestita. Una volta installata, monitora automaticamente i tuoi repository e ancora i commit ogni notte. Non devi eseguire alcun comando né gestire il protocollo sottostante.

Il mio codice sorgente viene esposto durante la timestamping?

No. Timestamp GIT legge solo l’hash del commit, che è un’impronta crittografica, non il codice vero e proprio. In modalità Enterprise ZK, persino l’hash del commit viene inviato dalla tua infrastruttura tramite una GitHub Action, quindi il tuo codice sorgente non lascia mai il tuo ambiente.

Posso verificare il timestamp in modo indipendente senza fare affidamento su Timestamp GIT?

Sì. La prova è archiviata come file di ricevuta .ots standard. Chiunque può scaricarla e verificarla rispetto alla blockchain di Bitcoin usando gli strumenti open-source OpenTimestamps. La prova resta valida anche se Timestamp GIT dovesse scomparire.

Conclusione

Ora disponi di timestamping crittografica automatica per i tuoi commit Git. Dopo un’installazione una tantum della GitHub App, ogni commit in un repository monitorato viene raggruppato ogni notte, ancorato in Bitcoin e convertito in una ricevuta di prova .ots verificabile. Il processo non richiede strumenti CLI locali, né comandi manuali OpenTimestamps, né competenze su Bitcoin.

I repository pubblici possono iniziare gratuitamente. I repository privati sono disponibili nei piani a pagamento. Installa oggi la GitHub App e rendi la tua cronologia dei commit difendibile sul piano legale.

Post correlati

EU label: AI-generated content