Oggi mi sono preso il tempo necessario a leggere il “Position Paper” prodotto da Clusit e dall’Osservatorio BlockChain & Distributed Ledged Technology del Politecnico di Milano, intitolato “Blockchain & Distributed Ledger: aspetti di governance, security e compliance“.
Nella parte finale, sono stati analizzati alcuni aspetti relativi alla qualità ed alla sicurezza; come purtroppo abbiamo sperimentato da decenni, la caratteristica più importante del software è che funzioni (e che sia approntato velocemente).
Concetti quali “qualità del software”, “programmazione sicura”, “vulnerability analysis” non facevano parte del secolo precedente e continuano a non fare parte dell’attuale.
Inoltre, la sicurezza delle infrastrutture DLT è anche – purtoppo – dipendente dalla sicurezza della sottostanti componenti sulle quali esse sono basate; quando vengono perpetrati attacchi agli exchange, di solito sono sfruttate le vulnerabilità – quasi sempre presenti – nei componenti e librerie software standard.
Per non parlare della caratteristica di moltissimi wallet di poter ripristinare il contenuto e l’accesso allo stesso tramite una procedura che utilizza un “recovery seed” (seme di generazione); pur essendo teoricamente moltissime le combinazioni, nulla ci autorizza a credere che l’algoritmo di generazione sia esente da bug.
Da ultimo, vorrei spendere due parole sul concetto stesso di sicurezza degli smart contracts; qui siamo proprio in alto mare, ad esempio considerando che il codice di funzionamento di uno smart contract utilizza quasi sempre degli “oracoli” (informazioni o triggers esterni, sui quali si basa la procedura), che possono essere forgiati – da persone esperte e motivate – come meglio credono.
Quindi abbiamo ancora molti anni di studio e confronto, per poter abbinare con un minino di certezza, le parole blockchain e security; per adesso non possiamo.
Lo studio congiunto di Clusit – Osservatorio DLT del Politecnico è uno dei primi passi di un percorso lungo ed accidentato, il quale non sappiamo ancora se condurrà ad una destinazione finale.