Timestamp GIT Secure your prior art without exposing code

← Tutti gli articoli

2026-09-21

Come dimostrare la paternità del software: una guida per sviluppatori

Come dimostrare la paternità del software: una guida per sviluppatori
timestamp git blockchain proof

Come Dimostrare la Paternità del Software: Una Guida per Sviluppatori

Maya è una sviluppatrice freelance che all’inizio del 2025 ha creato una libreria di sincronizzazione dati piccola ma critica per un cliente. Diciotto mesi dopo, il nuovo team di ingegneri del cliente sostiene che la libreria è stata creata nell’ambito di un contratto successivo e le chiede di smettere di usarla negli altri suoi progetti. Maya ha i commit Git del progetto originale, ma quando invia gli screenshot del log, l’avvocato del cliente li liquida con un gesto: “La cronologia Git può essere riscritta. Questi timestamp non dimostrano nulla.”

Il problema di Maya non è la mancanza di prove. È che le prove in suo possesso sono assertive, non verificabili. Dimostrare la paternità del software in una controversia, in una domanda di brevetto, in un audit di conformità o in una revisione per segreti commerciali richiede più di una data di commit. Richiede una registrazione crittografica che una parte indipendente possa verificare senza fidarsi del tuo repository, della tua piattaforma o della tua parola.

Questa guida spiega come sviluppatori e responsabili della conformità possano creare concretamente tale registrazione. Si concentra su Timestamp GIT, un servizio gestito che automatizza il protocollo OpenTimestamps sottostante. Installi una GitHub App una sola volta e il servizio ancora gli hash dei tuoi commit alla blockchain di Bitcoin in background.

Perché la Prova Tradizionale di Paternità Non Basta

La maggior parte degli sviluppatori dispone già di diversi modi per indicare una data. Il problema è che nessuno di questi regge a un esame approfondito.

La cronologia Git self-hosted è modificabile. Le date dei commit Git non sono a prova di manomissione. Con variabili d’ambiente come GIT_AUTHOR_DATE e GIT_COMMITTER_DATE, un commit può essere retrodatato. Rebase, force-push e riscrittura della cronologia possono alterare la linea temporale apparente. Anche se tu non lo fai mai, la controparte può sostenere che avresti potuto farlo.

Le piattaforme Git ospitate non risolvono il problema. Un repository GitHub mostra i timestamp, ma quei timestamp non sono una prova indipendente di esistenza. Dipendono dai server di GitHub, dalla sicurezza dell’account GitHub e dalla disponibilità o capacità di GitHub di garantire i dati in tribunale. Un attaccante che compromette un account può potenzialmente alterare i contenuti del repository. Un cambiamento delle policy della piattaforma può rendere più difficile ottenere le registrazioni storiche.

La protezione formale della proprietà intellettuale è costosa e lenta. I brevetti possono costare decine di migliaia di dollari, richiedere anni per essere concessi e possono richiedere la divulgazione di informazioni che preferiresti mantenere private. Per freelance, startup, agenzie e piccoli team, i brevetti sono spesso impraticabili come prima linea di difesa.

Un approccio più solido consiste nell’ancorare un’impronta crittografica del tuo lavoro in un registro pubblico immutabile. L’impronta è un hash unidirezionale. Dimostra che uno specifico stato del repository esisteva in un momento specifico, ma non rivela il codice sorgente dietro quello stato. Quando il registro è Bitcoin, la prova può essere verificata indipendentemente da chiunque disponga del file di ricevuta e di un nodo Bitcoin.

Per una spiegazione più approfondita del perché questo è importante per le controversie sulla proprietà intellettuale, vedi Cos’è l’Arte Anteriore Crittografica e Perché È Importante per il Software?.

Un Playbook Pratico per Dimostrare la Paternità con Timestamp GIT

Timestamp GIT è un livello gestito a configurazione zero sopra OpenTimestamps. Non devi eseguire comandi OpenTimestamps, gestire transazioni Bitcoin o operare la tua infrastruttura di timestamping. Installi una GitHub App, colleghi un repository e continui a scrivere codice. Il servizio fa il resto.

Passo 1: Installa la GitHub App Timestamp GIT

Installa la GitHub App Timestamp GIT sul repository o sull’organizzazione che vuoi proteggere.

La modalità standard richiede accesso in sola lettura al repository sorgente e accesso in lettura/scrittura a un repository di destinazione dove verranno archiviati i file di prova. La destinazione può essere lo stesso repository o un repository ombra separato. Poiché GitHub non offre accesso in sola lettura limitato agli hash dei commit, il permesso di lettura esiste anche se Timestamp GIT legge solo l’hash del commit HEAD.

Per la modalità enterprise zero-knowledge, non concedi affatto l’accesso in lettura al repository sorgente. Invece, una GitHub Action viene eseguita sulla tua infrastruttura e invia solo l’hash del commit all’API di Timestamp GIT.

Non c’è nulla da installare sulle tue macchine di sviluppo. Il tuo flusso di lavoro Git locale rimane invariato.

Passo 2: Continua a Fare Commit Come al Solito

Una volta installata l’App, i webhook notificano Timestamp GIT ogni volta che appare un nuovo commit. Nella modalità enterprise zero-knowledge, la tua GitHub Action invia invece l’hash.

Il tuo flusso di lavoro normale si presenta così:

git add src/
git commit -m "Implement rate limiter v2"
git push origin main

Non è richiesto alcun comando di timestamping aggiuntivo. Il commit stesso è il trigger.

Passo 3: Lascia che il Batch Notturno Ancorri i Tuoi Hash

Timestamp GIT non ancora ogni commit individualmente. Raggruppa il lavoro per efficienza preservando un percorso verificabile per ogni hash di commit.

Ogni giorno, il sistema:

  1. Rileva i nuovi commit tramite webhook o GitHub Action.
  2. Accoda gli hash dei commit in un archivio chiave-valore in memoria.
  3. Raggruppa gli hash in attesa in file manifest per repository tramite un worker pianificato.
  4. Costruisce un albero di Merkle dal batch giornaliero.
  5. Crea le prove OpenTimestamps utilizzando calendari OTS pubblici.
  6. Ancora la radice di Merkle nella blockchain di Bitcoin.

La conferma Bitcoin richiede normalmente circa tre ore, quindi i file di prova compaiono alcune ore dopo il batch notturno.

Passo 4: Ricevi i Tuoi File di Prova

Dopo che l’ancoraggio è stato confermato, Timestamp GIT invia il materiale di prova al branch timestamps dedicato o al repository ombra che hai configurato.

La prova include:

  • File manifest che registrano quali hash di commit sono stati inclusi.
  • File di ricevuta .ots che contengono i dati di prova OpenTimestamps.

Puoi ispezionare cosa è arrivato sul branch delle prove:

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

Puoi anche incorporare un badge di verifica nel tuo README tramite l’endpoint badge autenticato. Il badge mostra lo stato verificato corrente e si collega alla pagina di stato pubblica per il tuo repository.

Passo 5: Verifica in Qualsiasi Momento — Anche Senza Timestamp GIT

La verifica è disponibile tramite le pagine pubbliche del prodotto. La pagina di verifica crittografica esamina i dati della catena di Merkle localmente nel tuo browser, quindi il servizio non vede cosa stai verificando.

Puoi anche scaricare il file .ots e verificarlo indipendentemente utilizzando gli strumenti OpenTimestamps standard contro la blockchain di Bitcoin. Poiché la prova dipende solo da SHA-256 e dai dati dei blocchi Bitcoin, la verifica non richiede che Timestamp GIT rimanga online.

Un rapido controllo dello stato può essere effettuato tramite l’API pubblica:

curl -s https://timestampgit.dev/api/statusSummary/your-user/your-repo

Per un registro completo, puoi scaricare un CSV di audit. Per un giorno specifico, puoi scaricare un certificato PDF.

Deployment Self-Hosted ed Enterprise

Se hai bisogno del massimo isolamento o operi in un ambiente air-gapped, Timestamp GIT è disponibile come immagine Docker con licenza self-hosted. Uno stack Compose minimale si presenta così:

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

Poi avvialo con:

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

Al primo avvio, una procedura guidata di configurazione ti guida attraverso la connessione della tua GitHub App e la configurazione dell’istanza. Una licenza demo a tempo limitato è disponibile per la valutazione.

La modalità enterprise zero-knowledge utilizza una GitHub Action che viene eseguita sulla tua infrastruttura. Invia solo l’hash del commit all’API di Timestamp GIT, quindi il tuo codice sorgente non lascia mai il tuo ambiente.

Cosa Evitare Quando Dimostri la Paternità del Software

Non affidarti esclusivamente a log interni o timestamp del controllo versione. Non sono a prova di manomissione. Un tribunale o un revisore può liquidarli come autoreferenziali anche se sono accurati.

Non rivelare il tuo codice sorgente nel processo di prova. Un timestamp dovrebbe dimostrare che il codice esisteva, non pubblicare cosa fa. Usa un metodo zero-knowledge che ancori solo un hash unidirezionale. Questo protegge i segreti commerciali ed evita divulgazioni accidentali.

Non usare servizi di timestamping proprietari che potrebbero scomparire o alterare le registrazioni. Se la prova dipende da un sistema chiuso, torni a fidarti di un intermediario. Standard aperti come SHA-256, OpenTimestamps e Bitcoin sono verificabili senza il fornitore.

Non aspettare che sorga una controversia. Inizia a fare timestamping presto e spesso. Una catena continua di commit ancorati mostra un modello di lavoro in corso, non un tentativo dell’ultimo minuto di fabbricare prove.

L’approccio manuale a OpenTimestamps richiederebbe di operare il protocollo da soli. Timestamp GIT esiste per nascondere quella complessità dietro una GitHub App e una pipeline notturna automatizzata.

FAQ

Cos’è esattamente la prova crittografica di paternità del software?

La prova crittografica di paternità del software è un metodo per dimostrare che una versione specifica del tuo codice esisteva in un certo momento, senza rivelare il codice stesso. Funziona creando un hash univoco, o impronta digitale, del codice e ancorando quell’hash in un registro pubblico immutabile come la blockchain di Bitcoin. Chiunque può successivamente verificare che l’hash esisteva in quel momento, fornendo una prova di paternità a prova di manomissione.

Come fa Timestamp GIT a dimostrare la paternità senza vedere il mio codice?

Timestamp GIT utilizza un approccio zero-knowledge. Legge solo l’hash del commit, che è un’impronta crittografica, mai il codice sorgente effettivo. L’hash viene incluso in un albero di Merkle e ancorato a Bitcoin tramite il protocollo OpenTimestamps. Poiché l’hash è unidirezionale, nessuno può invertirlo per vedere il tuo codice, ma il timestamp dimostra che il codice esisteva in quel momento.

Posso verificare il timestamp da solo se Timestamp GIT scompare?

Sì. La prova si basa interamente su standard aperti: SHA-256, Bitcoin e OpenTimestamps. Ricevi file di ricevuta .ots che possono essere verificati indipendentemente utilizzando gli strumenti OpenTimestamps standard contro la blockchain di Bitcoin. Nessuna tecnologia o servizio proprietario è richiesto per la verifica, quindi la tua prova rimane valida anche se Timestamp GIT cessa di esistere.

È legalmente riconosciuto?

I timestamp crittografici ancorati a blockchain pubbliche sono sempre più riconosciuti come prove solide nei procedimenti legali. Forniscono una registrazione di esistenza a prova di manomissione e matematicamente verificabile in un momento specifico. Il riconoscimento legale varia a seconda della giurisdizione, ma tali prove sono di gran lunga più robuste dei log interni o dei timestamp delle email. Possono essere presentate a tribunali, revisori o controparti per stabilire arte anteriore o paternità.

Quanto costa Timestamp GIT?

I repository pubblici sono supportati con un piano gratuito. I repository privati sono disponibili con il piano Pro Agency a $49 al mese. La modalità enterprise zero-knowledge, che utilizza GitHub Actions, è disponibile a $199 al mese. È disponibile anche una licenza demo a tempo limitato per la valutazione self-hosted con Docker.

Conclusione: Rendi la Prova di Paternità Parte del Tuo Flusso di Lavoro

Dimostrare la paternità del software non deve complicare il tuo processo di sviluppo. Timestamp GIT trasforma automaticamente i tuoi commit Git esistenti in ricevute ancorate a Bitcoin. Il flusso di lavoro è zero-knowledge, il che significa che il tuo codice sorgente rimane privato. La prova è indipendente dal fornitore, il che significa che rimane verificabile anche se il servizio scompare.

Installa la Timestamp GIT GitHub App, collega un repository e lascia che l’ancoraggio notturno venga eseguito in background. I repository pubblici possono iniziare gratuitamente, mentre i repository privati sono coperti dai piani Pro ed Enterprise. Una volta che la prima conferma Bitcoin arriva, avrai una risposta crittografica alla domanda: “Puoi dimostrare di averlo scritto prima tu?”

Post correlati

EU label: AI-generated content