Ancorato non vuol dire ancorato adesso: la finestra prima dell'ancoraggio
Tra una decisione e il suo ancoraggio sulla catena c'è una finestra in cui solo il vostro sistema protegge la voce. Concatenate le voci, ancorate a evento, dite ancorato solo quando è definitivo.

L'ancoraggio di un registro delle decisioni su una blockchain non avviene nel momento della decisione. Le voci vengono raccolte, messe in hash insieme e ancorate a intervalli, perché ogni ancoraggio costa una transazione e impiega tempo a diventare definitivo. Tra la decisione e l'ancoraggio c'è una finestra, e durante quella finestra l'unica cosa che protegge la voce è il vostro sistema.
Cos'è la finestra
Quando l'agente decide, la voce entra nel registro. Il sistema calcola un hash, spesso combinato con altre voci in un'unica radice, e pubblica quella radice sulla catena con una certa cadenza. Finché quella pubblicazione non è inclusa e definitiva, nessuno all'esterno della vostra organizzazione può provare che la voce esistesse in quella forma. Chiunque abbia accesso in scrittura al vostro archivio potrebbe ancora modificare o togliere una voce recente, e sulla catena nulla lo contraddirebbe. Più lunga la cadenza, più lunga la finestra. Non è un difetto: è un compromesso di costo che va scritto, non nascosto. Anche una finestra breve conta quando le decisioni sono frequenti: molte voci aspettano lo stesso ancoraggio e condividono la stessa esposizione.
Ridurre il danno
Collegate ogni voce alla precedente includendo l'hash della precedente in quella successiva, e dategli un numero di sequenza. Così togliere o cambiare una voce nel mezzo spezza la catena, e la rottura si vede al prossimo ancoraggio. La finestra non sparisce, ma un attacco al suo interno deve riscrivere tutto ciò che segue il punto toccato prima che arrivi il prossimo ancoraggio, e senza lasciare un buco nella sequenza. Potete anche ancorare a evento, non solo a tempo: una decisione sopra una certa soglia di impatto, o una chiusura manuale a fine giornata, fa partire un ancoraggio subito. La cadenza segue allora il rischio e il costo segue le decisioni che contano.
Dire «ancorato» solo quando è definitivo
Una transazione inviata non è un ancoraggio. Aspettate il numero di conferme che la catena scelta considera definitivo, e registrate nel registro quale blocco contiene la radice e quando è diventato definitivo. Mostrate nel verificatore i tre stati senza abbellimenti: registrato, inviato, definitivo. Un revisore che vede «ancorato» su una voce ancora in attesa ha ricevuto un'informazione falsa. Neanche la definitività è istantanea, e la profondità di conferma è una decisione che richiede un motivo, non un valore copiato da un tutorial.
Cosa significa per una consegna
Per una software house .NET che consegna a una PMI, mettete nel documento di progetto la cadenza, le regole di attivazione e la profondità di conferma, con il motivo di ciascuna e il costo di un ancoraggio sulla catena scelta. La domanda del revisore non è se ancorate. È che cosa non potete ancora provare, e per quanto tempo.
Decidete anche chi viene avvisato quando un ancoraggio fallisce o resta in attesa oltre il previsto. È un incidente, non una riga di log: la finestra si sta allungando e qualcuno deve occuparsene.
Qual è il tempo massimo in cui una voce del vostro registro può esistere senza essere ancorata?