Fastcrypto, biblioteca de criptografie folosită în Sui, a doborât multe recorduri de viteză, iar munca noastră privind benchmark-urile și analiza de securitate a remediat numeroase vulnerabilități de securitate, deschizând în același timp ușa inovației prin identificarea de noi trucuri de optimizare.

O lucrare, Fastcrypto: Pioneering Cryptography Via Continuous Benchmarking, prezentată recent la atelierul de evaluare comparativă al Conferinței Internaționale de Inginerie a Performanței (ICPE) de la Imperial College din Londra, descrie compararea noastră continuă și sistematică a funcțiilor criptografice din biblioteca Fastcrypto.

Prezentarea a făcut parte dintr-o sesiune numită „Inovații în testarea performanței: strategii și tehnologii” în cadrul atelierului de testare a sarcinii și evaluare comparativă a sistemelor software. Conferința a atras invitați atât din mediul academic, cât și din industrie, inclusiv reprezentanți de la MongoDB și Amazon, care au vorbit și ei în același workshop.

Am evidențiat evaluarea comparativă sistematică și continuă a bibliotecii Fastcrypto, care este o colecție de funcții criptografice, cum ar fi semnăturile digitale, funcțiile hash și dovezile de zero cunoștințe. În Fastcrypto, toate funcțiile sunt evaluate în mod continuu la lansare și la cerere, iar rezultatele sunt publicate online. Funcțiile similare pot fi comparate cu ușurință și menținem datele istorice pentru a putea urmări performanța în timp.

Prezentarea a subliniat modul în care aceste criterii de referință au facilitat luarea deciziilor mai informate în dezvoltarea Fastcrypto și Sui, influențând alegerile de dependențe și utilizare, precum și optimizând concentrarea resurselor dezvoltatorului.

Luare a deciziilor calificate din repere

Un studiu de caz din lucrare a abordat provocarea de a selecta o schemă de semnătură pentru validatori în Sui. Pentru ca un utilizator să trimită o tranzacție către Sui, tranzacția trebuie să fie semnată de un cvorum de validatori, combinate într-un certificat de tranzacție. Cu aproximativ 100 de validatori și o miză distribuită în mod egal, un cvorum este format din 67 de validatori, ceea ce înseamnă că fiecare validator trebuie să verifice 67 de semnături per tranzacție.

Schema de semnătură BLS permite verificarea mai multor semnături ca și cum ar fi o singură semnătură, dar este mult mai lentă decât alternativele, cum ar fi EdDSA. Analiza comparativă detaliată a arătat că pragul de rentabilitate dintre aceste două scheme este între 40 și 45 de semnături. Prin urmare, pentru Sui, utilizarea BLS este mai eficientă și asta este într-adevăr ceea ce este folosit astăzi.

Evaluarea comparativă a schemelor de semnătură EdDSA și BLS a dezvăluit un prag de rentabilitate de 40 până la 45 de semnături grupate, arătând că, cu grupul de validatori Sui, BLS este o alegere performantă.

„Ar trebui să vă faceți griji și dacă software-ul este brusc mult mai rapid”

Prezentarea a arătat, de asemenea, modul în care benchmark-urile pot descoperi comportamente software neașteptate. Un exemplu a implicat bibliotecile care implementau schema de semnătură EdDSA, care presupunea că cheia publică ar trebui să fie stocată în cache și furnizată ca intrare în funcția de semnare. Dacă a fost furnizată o cheie publică incorectă, aceasta ar putea duce la extragerea cheii private (după cum se arată în ed25519-unsafe-libs GitHub).

Această problemă a fost detectată deoarece unele biblioteci au prezentat performanțe neobișnuit de rapide, ocolind derivarea cheii publice și utilizând-o pe cea potențial incorectă furnizată ca argument. În timp ce benchmark-urile urmăresc adesea să accelereze software-ul, „ar trebui să fii îngrijorat și dacă software-ul este brusc mult mai rapid”, așa cum a menționat un membru al publicului la atelier.