Timestamp GIT Secure your prior art without exposing code

← Tutti gli articoli

2026-08-29

Come dimostrare lo stato dell'arte per il software: guida per sviluppatori

Come dimostrare lo stato dell'arte per il software: guida per sviluppatori
timestamp git blockchain proof

Come Dimostrare l’Arte Preesistente per il Software: Una Guida per Sviluppatori

Dimostrare l’arte preesistente per il software si riduce a una domanda precisa: puoi dimostrare che uno specifico commit Git esisteva in una data specifica, con la prova che nessun server interno, amministratore di repository o terza parte può alterare? Questa guida illustra esattamente come creare tale prova senza esporre il tuo codice sorgente.

Utilizzerai Timestamp GIT, un servizio gestito e GitHub App che ancora gli hash dei tuoi commit Git nella blockchain di Bitcoin tramite il protocollo OpenTimestamps. Il flusso di lavoro prevede l’installazione una tantum, commit normali e l’ancoraggio notturno automatizzato che produce file di ricevuta .ots immutabili.

Al termine di questa guida, avrai:

  • Installato la GitHub App sui repository che desideri proteggere.
  • Configurato dove vengono consegnate le prove crittografiche.
  • Attivato e confermato un timestamp ancorato a Bitcoin per un commit reale.
  • Verificato la prova tramite una dashboard pubblica e un badge.
  • Risolto i problemi più comuni relativi a permessi e consegna.

Prerequisiti

Prima di iniziare, assicurati di avere:

  • Un account GitHub e almeno un repository che desideri proteggere.
  • Familiarità di base con i commit Git e gli hash. Non è necessaria esperienza in crittografia o blockchain.
  • Un account Timestamp GIT. I repository pubblici utilizzano il piano gratuito; i repository privati richiedono il piano Pro Agency a $49/mese o Enterprise ZK a $199/mese.
  • Opzionale: Docker se prevedi di self-hostare Timestamp GIT in un ambiente air-gapped o aziendale.

Passo dopo Passo: Configurare Timestamp GIT

Il percorso gestito non richiede nulla sulle tue macchine di sviluppo. Installi la GitHub App una volta, selezioni i repository e ogni commit viene poi ancorato a Bitcoin automaticamente ogni notte.

Passo 1: Registrati e Collega GitHub

Vai su Timestamp GIT e accedi con il tuo account GitHub. Il flusso SaaS gestito è il percorso predefinito.

Se stai facendo self-hosting, inizia con il quick start Docker Compose:

services:
  timestampgit:
    image: rue1401/timestampgit:prod
    ports:
      - "8080:8080"
    volumes:
      - ./data:/app/data
    restart: unless-stopped
  valkey:
    image: valkey/valkey:8
    restart: unless-stopped

Quindi esegui:

docker compose pull
docker compose up -d
docker compose logs -f timestampgit

L’app self-hosted è disponibile su http://localhost:8080. Al primo avvio, una procedura guidata di configurazione ti accompagna nella connessione della tua GitHub App e nell’applicazione di un file di licenza.

Passo 2: Installa la Timestamp GIT GitHub App

Installa la GitHub App sui repository che desideri proteggere.

In modalità standard, Timestamp GIT necessita di accesso in sola lettura al repository sorgente. Questo non perché legga il tuo codice—legge solo l’hash del commit HEAD—ma perché il sistema di permessi di GitHub non espone un livello di accesso limitato al solo hash.

Se le prove vengono consegnate a un repository di destinazione separato, l’app necessita anche di accesso in lettura-scrittura a quel repository di destinazione.

Passo 3: Seleziona i Repository da Monitorare

Dalla dashboard di Timestamp GIT, apri la pagina Your Repositories e seleziona i repository che desideri monitorare.

Ogni repository selezionato viene aggiunto alla pipeline notturna di generazione delle prove. Timestamp GIT non ispeziona il contenuto dei file, il codice sorgente o il contenuto dei branch oltre agli hash dei commit necessari per l’ancoraggio.

Passo 4: Configura la Consegna delle Prove

Per ogni repository monitorato, scegli dove devono essere scritte le prove crittografiche:

  • Un branch timestamp dedicato all’interno dello stesso repository.
  • Un repository ombra separato, che può essere privato anche se il repository sorgente è pubblico.

Timestamp GIT scrive i file manifest e le ricevute .ots in quella posizione dopo che l’ancoraggio giornaliero è stato confermato.

Passo 5: Opzionale: Abilita la Modalità Enterprise ZK

Per i team che richiedono accesso zero al codice sorgente, la modalità Enterprise ZK è un modello di distribuzione più robusto.

Durante la configurazione, Timestamp GIT genera un workflow GitHub Action di 12 righe. Aggiungi quel file generato al tuo repository in:

.github/workflows/timestampgit.yml

L’action viene eseguita sulla tua infrastruttura, non sui sistemi di Timestamp GIT. Invia solo l’hash del commit all’API di Timestamp GIT. In questa modalità, Timestamp GIT non necessita di alcun accesso in lettura al repository sorgente—solo accesso in lettura-scrittura al repository di destinazione dove vengono consegnate le prove.

Passo 6: Effettua un Commit per Attivare il Processo

Una volta configurato il monitoraggio, esegui commit e push normalmente:

git add .
git commit -m "feat: add payment webhook handler"
git push origin main

In modalità standard, la GitHub App rileva automaticamente il nuovo hash del commit HEAD. In modalità Enterprise ZK, la GitHub Action invia l’hash dal tuo ambiente CI.

Passo 7: Attendi l’Ancoraggio Notturno a Bitcoin

Timestamp GIT raggruppa gli hash dei commit in sospeso in una coda in memoria. Ogni notte, un worker:

  1. Raggruppa gli hash in sospeso per repository.
  2. Crea i file manifest giornalieri.
  3. Costruisce un albero di Merkle dagli hash dei commit.
  4. Crea le prove OpenTimestamps utilizzando calendari OTS pubblici.
  5. Ancora la radice di Merkle nella blockchain di Bitcoin.

La conferma su Bitcoin richiede normalmente circa 3 ore. Dopo la conferma, il manifest e i file di ricevuta .ots vengono inviati al branch timestamp o al repository ombra configurato.

Come Confermare che Ha Funzionato

Una volta completata l’esecuzione notturna, puoi verificare la prova in diversi modi.

1. Ispeziona il Branch Timestamp

Recupera il branch timestamp e conferma che i file manifest e le ricevute .ots siano presenti:

git fetch origin timestamps
git ls-tree -r --name-only origin/timestamps | head

Il nome esatto del branch dipende dalla tua configurazione, ma il segnale importante è la presenza di file .ots abbinati ai dati manifest giornalieri.

2. Usa la Pagina di Verifica Pubblica

Timestamp GIT fornisce una pagina di verifica basata su browser in cui tutto il calcolo della catena di Merkle avviene localmente nel tuo browser:

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

Sostituisci {user}, {repo} e {date} con il tuo repository e la data che desideri verificare.

3. Controlla l’API di Stato

Puoi confermare l’ultimo blocco Bitcoin ancorato tramite l’endpoint di stato pubblico:

curl https://timestampgit.dev/api/statusLast/acme/widget-api

La risposta include le informazioni sull’ultimo blocco Bitcoin ancorato per il repository.

4. Scarica un Certificato PDF

Per un giorno specifico, scarica un certificato PDF da:

https://timestampgit.dev/api/report/{user}/{repo}/{date}

Il registro di audit per il repository è disponibile anche come CSV:

https://timestampgit.dev/api/audit/{user}/{repo}

5. Incorpora un Badge di Verifica

La dashboard di Timestamp GIT fornisce URL dei badge e snippet Markdown pronti da copiare e incollare per il tuo README. I repository privati aggiungono un HMAC crittografato agli URL dei badge in modo che solo gli spettatori autorizzati possano vedere le informazioni di stato.

Il badge rimanda a una pagina di verifica pubblica dove chiunque può ispezionare la prova. Il file .ots stesso rimane una ricevuta OpenTimestamps standard, quindi i revisori tecnici possono anche scaricarlo e verificarlo indipendentemente contro la blockchain di Bitcoin utilizzando gli strumenti OpenTimestamps standard.

Risoluzione dei Problemi Comuni

Nessuna prova dopo 24 ore

Controlla i permessi della GitHub App. La modalità standard necessita almeno dell’accesso in sola lettura al repository sorgente. Conferma inoltre che il repository sia ancora selezionato nella dashboard di Timestamp GIT.

Lo stato del repository privato non è visibile

I repository privati utilizzano URL firmati con HMAC. Assicurati che il badge o il link di stato provenga dalla dashboard di Timestamp GIT e includa il parametro HMAC. L’HMAC è specifico per l’istanza del server che lo ha generato.

L’action Enterprise ZK non consegna le prove

Verifica che il file di workflow generato sia presente in .github/workflows/timestampgit.yml e che la GitHub Action sia installata nel repository. Il repository di destinazione dove vengono consegnate le prove deve avere accesso in lettura-scrittura dalla configurazione della tua action.

L’istanza Docker self-hosted non produce timestamp

Conferma che il file di licenza sia stato caricato durante la procedura guidata di configurazione. Controlla inoltre che l’istanza disponga della connettività di rete necessaria per l’OAuth della GitHub App e l’ancoraggio dei timestamp.

La verifica della prova fallisce

Assicurati di verificare il file .ots e la data corretti. Una ricevuta per un repository e una data non convaliderà un commit di un giorno o repository diverso.

FAQ

D: Cos’è l’arte preesistente nel software?

R: L’arte preesistente è la prova che la tua invenzione, come codice, un algoritmo o un design, esisteva prima di una certa data. Viene tipicamente utilizzata per invalidare rivendicazioni di brevetto o dimostrare la paternità.

D: Come fa l’ancoraggio a Bitcoin a dimostrare l’arte preesistente?

R: L’hash del tuo commit Git viene incorporato in una transazione Bitcoin tramite il protocollo OpenTimestamps. Una volta confermato in un blocco, il timestamp è immutabile e verificabile da chiunque, dimostrando che l’hash esisteva in quel momento.

D: Timestamp GIT è gratuito per i progetti open source?

R: Sì. Timestamp GIT offre un piano gratuito per i repository pubblici. I repository privati richiedono un piano a pagamento, Pro Agency o Enterprise ZK.

D: Posso usare Timestamp GIT senza esporre il mio codice sorgente?

R: Sì. In modalità standard, vengono letti solo gli hash dei commit—non il codice sorgente. In modalità Enterprise ZK, una GitHub Action invia solo gli hash dalla tua infrastruttura, quindi il codice sorgente non lascia mai il tuo ambiente.

D: Quanto tempo ci vuole per la conferma di un timestamp?

R: Il worker notturno raggruppa e ancora gli hash dopo la mezzanotte. La conferma su Bitcoin richiede normalmente circa 3 ore dopo la transazione di ancoraggio, quindi aspettati che i file di prova .ots appaiano poco dopo.

Conclusione

La sola cronologia Git non è una prova robusta di arte preesistente perché può essere modificata, eliminata o respinta come autoreferenziale. Una ricevuta OpenTimestamps ancorata a Bitcoin è matematicamente più difficile da ignorare.

Timestamp GIT rende tutto questo pratico per gli sviluppatori che lavorano: installa la GitHub App una volta, seleziona un repository e continua a fare commit come al solito. L’ancoraggio notturno, la consegna delle prove, i badge, i certificati PDF e i CSV di audit vengono gestiti automaticamente. Non devi mai eseguire comandi OpenTimestamps né interagire manualmente con la blockchain di Bitcoin.

Inizia gratuitamente con i repository pubblici su Timestamp GIT.

Articoli correlati

EU label: AI-generated content