Il tempo ritardato tra invio della transazione e la sua prima conferma è fondamentale, la presenza di questo lasso di tempo completa (non sostituisce) il meccanismo dell'address trappola.
L'allarme si innesca solo al momento dell'invio della transazione (o meglio quando questa raggiunge la mempool di qualche nodo monitorato in qualche posto). Se quella transazione venisse immediatamente confermata, allora l'allarme sarebbe inutile: scatterebbe di fatto quando il ladro sta già andando via. A quel punto tanto varrebbe aspettare che il ladro esca di casa e poi telefonare autonomamente alla polizia.
Un allarme utile anche come deterrente dovrebbe scattare ben prima che i bitcoin siano effettivamente spostati, non quasi contemporaneamente.
Hai ragione, avevo considerato male il fattore tempo.... te ne do atto.
Proseguendo nella lettura delle vostre considerazioni: mi piace l'idea del wallet multisig con la seconda (e la terza?) firma da consegnare a qualcun altro. Non mi piace invece l'idea di depositarla a qualche sportello fisico con i vincoli che stavate iniziando a descrivere, soprattutto questo punto:
3) dovrebbe fornirci immediatamente una transazione firmata (che noi custodiremo) la quale ci permetta di rientrare in pieno possesso dei nostri bitcoin dopo un certo blocco x, casomai l'ente fallisca o scompaia
mi sembra andare parecchio contro uno dei punti chiave delle cripto (l'autonomia: dover attendere il blocco Y prima di recuperare i soldi mi sembrerebbe un vincolo davvero pesante).
D'altro canto perché scomodare un servizio da creare ex novo? se io consegnassi a mia zia e al mio miglior amico le due firme aggiuntive, non sortirei lo stesso effetto dell'andare allo sportello che ipotizzavate per farmele consegnare ? dovrei comunque andarci da solo senza la presenza fisica di chi mi minaccia in ambedue gli scenari.
Del resto se fossi davvero sottoposto a minaccia fisica (uno che è entrato in casa e che mi fa fare qualsiasi cosa minacciando di prendersela con mia moglie) penso che andrei a prendere le firme senza "fare storie" sia se le avesse mia zia sia se le avessi messe in un servizio ad hoc. Giusto?
Quindi...... quindi il fatto di separare le firme è una buona cosa ma non è elemento sufficiente.
Seguiamo allora il suggerimento di arulbero di introdurre un delta temporale, che però non possiamo (imho) introdurre
in ogni transazione per evitare di perdere in flessibilità di utilizzo.
Si potrebbe fare una cosa del genere: introdurre un certo tempo (variabile e specificabile
all'atto della creazione del wallet) che la transazione deve attendere prima di essere accettata dai nodi.
E' chiaro che questo richiederebbe una modifica al protocollo..... ma l'idea potrebbe essere:
creo wallet diversi:
- uno A per le operazioni quotidiane, usando questo wallet il delta temporale sarebbe 0
- uno B per conservare il capitale (come fosse un cold wallet), usando questo wallet il delta temporale sarebbe prefissato all'atto della creazione del wallet, per esempio 3 giorni
In questo modo se anche facessi sotto minaccia una transizione da B, questa verrebbe subito inviata ai nodi ma gli stessi non la accetterebbero (o meglio la terrebbero in una coda di stand by) per 3 giorni prima di iniziare a considerarla per il nuovo blocco.
Parlo di wallet con un tempo specificabile ma è chiaramente un'imprecisione: il wallet consentirebbe di definire il delta temporale all'atto della sua creazione, ma poi questo delta dovrebbe essere tradotto in una differente classe di chiavi, cioè il fattore temporale dovrebbe essere:
- specificabile da me quando creo un nuovo wallet
- ma poi essere implementato a livello di chiave (privata e quindi pubb + address) in modo che non sia il wallet a dire alla rete di attendere 3 giorni (se no sarebbe facilmente aggirabile venendo da me con un client modificato) ma che sia qualcosa nella transazione a far capire alla rete che deve aspettare 3 giorni prima di..... non so se ho reso l'idea. Per esempio associare all'address destinatario un numero (due byte aggiuntivi?) che indichi il tempo di attesa?
Questo richiederebbe per forza una modifica al protocollo, ma consentirebbe di creare wallet con ritardi personalizzabili e quindi potrebbe rispondere in parte a questa esigenza di sicurezza.
Pareri?