
Time lock: monete che non possono muoversi fino a un certo momento
Gran parte della sicurezza nel mondo crypto riguarda chi può spendere: quali chiavi, quante firme. I time lock aggiungono una seconda dimensione: quando. Una moneta soggetta a time lock non può essere spesa prima di una data o di un'altezza di blocco stabilita, indipendentemente da chi possieda le chiavi.
Sembra una funzione di nicchia, ma i time lock alimentano silenziosamente buona parte del mondo crypto: canali di pagamento, piani di vesting, pianificazioni ereditarie e ritardi nella governance. Capirli spiega anche una scelta di progettazione che incontrerai nella maggior parte dei wallet.
Due tipi di tempo
Le blockchain misurano il tempo in due modi, e i time lock li usano entrambi:
- Tempo assoluto. «Non prima del 1° gennaio 2030» oppure «non prima del blocco 1.000.000». La moneta resta bloccata fino a quel momento, poi si comporta normalmente.
- Tempo relativo. «Non prima di 1.000 blocchi dalla ricezione di questa moneta.» Il conteggio parte quando la moneta viene creata, quindi ogni deposito ha il proprio conto alla rovescia.
I blocchi assoluti sono adatti a date fisse, come il cliff di un vesting. Quelli relativi si adattano a regole del tipo «se nessun altro agisce entro 30 giorni, quest'altra chiave può spendere», uno schema che ricorre nei sistemi di recupero e di successione.
Come lo fa Bitcoin
Bitcoin prevede time lock su due livelli:
- Livello di transazione. Ogni transazione ha un campo
nLockTime. Se è impostato su un momento o un blocco futuro, la rete non accetterà la transazione fino ad allora. Questo blocca la transazione, non la moneta: chi detiene le chiavi può comunque firmare una transazione diversa senza il blocco. - Livello di script. Due opcode,
OP_CHECKLOCKTIMEVERIFY(assoluto) eOP_CHECKSEQUENCEVERIFY(relativo), consentono alle regole di spesa di un indirizzo di richiedere che sia trascorso un certo tempo. Questi bloccano la moneta: nessuna transazione può spenderla in anticipo, chiunque la firmi.
Le versioni a livello di script sono quelle potenti. Permettono di creare indirizzi con più percorsi di spesa, come «2 di queste 3 chiavi in qualsiasi momento, oppure questa singola chiave di backup dopo un anno».
Come lo fanno le chain con smart contract
Su Ethereum e chain simili, un time lock è semplicemente logica del contratto: il contratto confronta l'orario del blocco corrente con una scadenza memorizzata e si rifiuta di agire prima. Ciò rende i time lock flessibili: contratti di vesting che rilasciano token ogni mese, sistemi di governance che impongono un periodo di attesa tra l'approvazione di un voto e la sua esecuzione, e contratti aggiornabili che annunciano le modifiche con giorni di anticipo così che gli utenti possano reagire.
Quest'ultimo utilizzo conta per la sicurezza. Un intervallo tra «una chiave di amministrazione ha deciso qualcosa» e «è successo» dà a tutti il tempo di accorgersi di una modifica malevola: è una delle domande da porsi sui poteri di aggiornamento di qualsiasi contratto.
A cosa servono i time lock
- Eredità e accesso di emergenza. Un percorso di backup che si apre solo dopo un lungo periodo di inattività consente agli eredi di recuperare i fondi senza poterli toccare finché sei attivo. Pianificare l'eredità spesso si riduce proprio a una regola di questo tipo.
- Chiavi di recupero. Una chiave di recupero che può agire da sola, ma solo dopo un ritardo, è molto meno pericolosa se viene rubata: il proprietario ha il tempo di spostare prima i fondi.
- Canali di pagamento. Il Lightning Network si basa su time lock relativi per dare a ciascuna parte una finestra in cui contestare un tentativo di imbroglio.
- Vesting e impegni. Bloccare dei token fino a una data rende una promessa applicata dalla chain anziché affidata alla fiducia.
I compromessi
I time lock non sono gratuiti:
- Bloccano fuori anche te. Un blocco non sa distinguere un attaccante da un'emergenza. Se ti servono i soldi prima della data, restano bloccati.
- La complessità ha un costo. Gli script con più percorsi sono più difficili da costruire, verificare e ripristinare. Un errore in uno script con time lock può rendere i fondi non spendibili, e potrebbe emergere solo anni dopo, alla scadenza del blocco.
- I blocchi relativi richiedono manutenzione. Gli schemi del tipo «dopo un anno di inattività» di solito richiedono che il proprietario aggiorni periodicamente le proprie monete per far ripartire il conteggio.
- Il supporto dei wallet è disomogeneo. Un indirizzo con time lock è utile solo se il software con cui alla fine effettuerai il recupero lo comprende.
I time lock e SSP
Oggi i vault di SSP sono multisig puri: un insieme di chiavi M-di-N, senza condizioni di spesa basate sul tempo. Il tuo vault 2-di-2 può essere speso in qualsiasi momento quando entrambe le chiavi sono d'accordo, e mai altrimenti. È un compromesso deliberato: uno script semplice è facile da verificare, facile da ripristinare con strumenti standard e non ha alcun orologio che possa sorprenderti tra qualche anno.
In SSP il recupero passa per le tue chiavi e i loro backup, non per percorsi con ritardo temporale. Come si confrontano le diverse configurazioni multisig illustra le scelte che contano per la maggior parte delle persone e, per i team, i vault di SSP Enterprise permettono di scegliere quanti firmatari devono approvare.
Il riepilogo onesto
I time lock permettono alla chain di stabilire quando le monete possono muoversi, non solo chi può muoverle. Rendono possibili piani ereditari, chiavi di recupero e canali di pagamento senza dover confidare che qualcuno aspetti.
Aggiungono però complessità e possono escludere i loro proprietari con la stessa fermezza con cui escludono gli attaccanti. Usati con attenzione, sono tra gli strumenti più utili del mondo crypto, e gli script più semplici restano spesso i più sicuri.


