Sui'de kullanılan kriptografi kütüphanesi Fastcrypto, birçok hız rekoru kırdı ve kıyaslamalar ve güvenlik analizi üzerindeki çalışmalarımız, yeni optimizasyon püf noktalarını belirleyerek inovasyonun kapısını açarken çok sayıda güvenlik açığını giderdi.

Yakın zamanda Londra'daki Imperial College'daki Uluslararası Performans Mühendisliği Konferansı'nın (ICPE) kıyaslama çalıştayında sunulan Fastcrypto: Sürekli Kıyaslama Yoluyla Öncü Kriptografi başlıklı bir makale, Fastcrypto kütüphanesindeki kriptografik işlevlerin sürekli ve sistematik kıyaslamasını anlatıyor.

Sunum, Yazılım Sistemlerinin Yük Testi ve Kıyaslanması çalıştayında “Performans Testinde Yenilikler: Stratejiler ve Teknolojiler” başlıklı oturumun bir parçasıydı. Konferansa, aynı çalıştayda konuşan MongoDB ve Amazon temsilcileri de dahil olmak üzere hem akademiden hem de sektörden konuklar katıldı.

Dijital imzalar, hash fonksiyonları ve sıfır bilgi kanıtları gibi kriptografik fonksiyonların bir koleksiyonu olan Fastcrypto kütüphanesinin sistematik ve sürekli kıyaslamasını vurguladık. Fastcrypto'da, tüm işlevler piyasaya sürüldüğünde ve talep üzerine sürekli olarak karşılaştırılıyor ve sonuçlar çevrimiçi olarak yayınlanıyor. Benzer işlevler kolayca karşılaştırılabilir ve zaman içindeki performansı takip edebilmek için geçmiş verileri saklarız.

Sunumda, bu kriterlerin Fastcrypto ve Sui'nin geliştirilmesinde daha bilinçli karar almayı nasıl kolaylaştırdığı, bağımlılık ve kullanım seçimlerini etkilemenin yanı sıra geliştirici kaynaklarının odağını optimize ettiği vurgulandı.

Karşılaştırmalı değerlendirmelerden nitelikli karar alma

Makaledeki bir vaka çalışması, Sui'de doğrulayıcılar için bir imza şeması seçme zorluğunu ele aldı. Bir kullanıcının Sui'ye işlem gönderebilmesi için işlemin, doğrulayıcılardan oluşan bir çoğunluk tarafından imzalanması ve bir işlem sertifikası halinde birleştirilmesi gerekir. Yaklaşık 100 doğrulayıcı ve hisselerin eşit olarak dağıtıldığı bir yeter sayı, 67 doğrulayıcıdan oluşur; bu, her doğrulayıcının işlem başına 67 imzayı doğrulaması gerektiği anlamına gelir.

BLS imza şeması, birden fazla imzanın tek bir imzaymış gibi doğrulanmasına olanak tanır ancak EdDSA gibi alternatiflerden çok daha yavaştır. Ayrıntılı kıyaslama, bu iki plan arasındaki başa baş noktasının 40 ila 45 imza arasında olduğunu ortaya çıkardı. Dolayısıyla Sui için BLS kullanmak daha verimlidir ve bugün gerçekten de kullanılan şey budur.

EdDSA ve BLS imza şemalarının karşılaştırılması, 40 ila 45 toplu imzadan oluşan bir başabaş noktası ortaya çıkardı; bu, Sui'nin doğrulayıcı havuzuyla BLS'nin performanslı bir seçim olduğunu gösterdi.

"Yazılımın aniden çok daha hızlı hale gelmesi durumunda da endişelenmelisiniz"

Sunumda ayrıca kıyaslamaların beklenmedik yazılım davranışlarını nasıl ortaya çıkarabileceği de gösterildi. Bir örnek, genel anahtarın önbelleğe alınması ve imzalama işlevine girdi olarak sağlanması gerektiğini varsayan EdDSA imza şemasını uygulayan kütüphaneleri içeriyordu. Yanlış bir genel anahtar sağlanırsa, bu durum özel anahtarın çıkarılmasına yol açabilir (ed25519-unsafe-libs GitHub'ta gösterildiği gibi).

Bu sorun, bazı kitaplıkların genel anahtarın türetilmesini atlayarak ve olası yanlış olanı argüman olarak kullanarak alışılmadık derecede hızlı performans sergilemesi nedeniyle tespit edildi. Karşılaştırmalar genellikle yazılımı hızlandırmayı hedeflerken, atölyedeki bir dinleyicinin de belirttiği gibi, "yazılımın aniden çok daha hızlı hale gelmesi durumunda da endişelenmelisiniz."