Els contractes intel·ligents són programes que s'executen sobre una cadena de blocs i que mouen diners de manera automàtica, sovint quantitats molt grans. Un cop publicats, el seu codi no es pot modificar, i quan algú n'aprofita un error els fons robats rarament es recuperen. Les eines que hi ha per revisar-los solen marcar el contracte sencer com a sospitós, amb avisos escarits i sense explicar-ne el motiu.
Un equip del Japan Advanced Institute of Science and Technology (JAIST), dirigit pel professor Le-Minh Nguyen, ha publicat a la revista *ACM Transactions on Software Engineering and Methodology* (DOI 10.1145/3840386) un sistema en tres parts. Primer, una eina que introdueix errors realistes en contractes reals per crear un conjunt de dades públic de 4.208 contractes i més de 118.000 funcions, amb vuit tipus de vulnerabilitat. Segon, una xarxa neuronal de grafs, HCA-SGNN, que representa cada contracte com un conjunt d'elements de codi connectats i analitza cada funció i com interactua amb les altres, cosa important en atacs que encadenen diverses funcions. Tercer, uns models de llenguatge que redacten un informe amb el tipus d'error, on és, per què passa, què pot provocar i com arreglar-lo. Aquesta capacitat s'ha traslladat a models compactes que funcionen en ordinadors normals i que, segons els autors, arriben al 97-98% de la qualitat dels grans models comercials.
El treball és rellevant perquè no es limita a detectar: assenyala la funció concreta i ho explica, que és el que necessita un desenvolupador per corregir-ho abans de publicar un codi que després no podrà tocar. En una prova amb 242 contractes reals, el detector va superar els mètodes existents i els models de llenguatge generals ajustats per a la tasca, i va detectar fins i tot alguns tipus d'error que no eren a les dades d'entrenament.
Hi ha límits clars. Els errors de l'entrenament es van introduir de manera artificial i poden no reflectir del tot els que es troben al món real, i la prova amb contractes reals es limita a 242 casos. La nota de premsa no detalla quantes falses alarmes dona el sistema ni quant costa d'executar, i la qualitat de les explicacions es compara amb la dels grans models comercials, no amb la d'auditors humans.
