Fastcrypto, perpustakaan kriptografi yang digunakan di Sui, telah memecahkan banyak rekor kecepatan, dan pekerjaan kami pada tolok ukur dan analisis keamanan memperbaiki banyak kerentanan keamanan sekaligus membuka pintu bagi inovasi dengan mengidentifikasi trik pengoptimalan baru.

Sebuah makalah, Fastcrypto: Pioneering Cryptography Via Continuous Benchmarking, baru-baru ini dipresentasikan pada lokakarya benchmarking Konferensi Internasional tentang Rekayasa Kinerja (ICPE) di Imperial College di London, menjelaskan benchmarking fungsi kriptografi kami yang berkelanjutan dan sistematis di perpustakaan Fastcrypto.

Presentasi tersebut merupakan bagian dari sesi “Inovasi dalam Pengujian Kinerja: Strategi dan Teknologi” dalam lokakarya Pengujian Beban dan Tolok Ukur Sistem Perangkat Lunak. Konferensi ini menarik tamu dari kalangan akademisi dan industri, termasuk perwakilan dari MongoDB dan Amazon yang juga berbicara dalam lokakarya yang sama.

Kami menyoroti pembandingan perpustakaan Fastcrypto yang sistematis dan berkelanjutan, yang merupakan kumpulan fungsi kriptografi seperti tanda tangan digital, fungsi hash, dan bukti tanpa pengetahuan. Di Fastcrypto, semua fungsi diukur secara terus menerus setelah dirilis dan sesuai permintaan, dan hasilnya dipublikasikan secara online. Fungsi serupa dapat dengan mudah dibandingkan dan kami menyimpan data historis agar dapat melacak kinerja dari waktu ke waktu.

Presentasi tersebut menekankan bagaimana tolok ukur ini memfasilitasi pengambilan keputusan yang lebih tepat dalam pengembangan Fastcrypto dan Sui, memengaruhi pilihan ketergantungan dan penggunaan, serta mengoptimalkan fokus sumber daya pengembang.

Pengambilan keputusan yang berkualitas dari tolok ukur

Sebuah studi kasus dari makalah ini membahas tantangan dalam memilih skema tanda tangan untuk validator di Sui. Agar pengguna dapat mengirimkan transaksi ke Sui, transaksi tersebut harus ditandatangani oleh kuorum validator, yang digabungkan menjadi sertifikat transaksi. Dengan sekitar 100 validator dan saham yang didistribusikan secara merata, kuorum terdiri dari 67 validator, yang berarti setiap validator harus memverifikasi 67 tanda tangan per transaksi.

Skema tanda tangan BLS memungkinkan beberapa tanda tangan diverifikasi seolah-olah itu adalah satu tanda tangan, namun jauh lebih lambat dibandingkan alternatif lain, seperti EdDSA. Pembandingan yang terperinci menunjukkan bahwa titik impas antara kedua skema ini adalah antara 40 dan 45 tanda tangan. Makanya, bagi Sui, penggunaan BLS lebih efisien dan memang itulah yang digunakan saat ini.

Pembandingan skema tanda tangan EdDSA dan BLS menunjukkan titik impas dari 40 hingga 45 kumpulan tanda tangan, yang menunjukkan bahwa, dengan kumpulan validator Sui, BLS adalah pilihan yang berkinerja baik.

“Anda juga harus khawatir jika perangkat lunak tiba-tiba menjadi jauh lebih cepat”

Presentasi tersebut juga menunjukkan bagaimana benchmark dapat mengungkap perilaku perangkat lunak yang tidak terduga. Salah satu contohnya melibatkan perpustakaan yang menerapkan skema tanda tangan EdDSA, yang mengasumsikan bahwa kunci publik harus di-cache dan diberikan sebagai masukan ke fungsi penandatanganan. Jika kunci publik yang diberikan salah, hal ini dapat menyebabkan ekstraksi kunci pribadi (seperti yang ditunjukkan di GitHub ed25519-unsafe-libs kami).

Masalah ini terdeteksi karena beberapa perpustakaan menunjukkan kinerja yang luar biasa cepat, melewati derivasi kunci publik dan menggunakan kunci yang mungkin salah sebagai argumen. Meskipun tolok ukur sering kali bertujuan untuk mempercepat perangkat lunak, “Anda juga harus khawatir jika perangkat lunak tiba-tiba menjadi jauh lebih cepat,” seperti yang disampaikan oleh salah satu peserta lokakarya.