Sui で使用される暗号化ライブラリである Fastcrypto は、多くの速度記録を破っており、ベンチマークとセキュリティ分析に関する私たちの作業により、多数のセキュリティ脆弱性が修正され、新しい最適化のトリックを特定することでイノベーションへの扉が開かれました。

ロンドンのインペリアル・カレッジで開催された国際パフォーマンスエンジニアリング会議 (ICPE) のベンチマーク ワークショップで最近発表された論文「Fastcrypto: 継続的なベンチマークによる先駆的な暗号化」では、Fastcrypto ライブラリの暗号化機能の継続的かつ体系的なベンチマークについて説明しています。

このプレゼンテーションは、ソフトウェア システムの負荷テストとベンチマーク ワークショップの「パフォーマンス テストのイノベーション: 戦略とテクノロジ」というセッションの一部でした。このカンファレンスには、同じワークショップで講演した MongoDB と Amazon の代表者を含む、学界と業界の両方からゲストが集まりました。

私たちは、デジタル署名、ハッシュ関数、ゼロ知識証明などの暗号化関数のコレクションである Fastcrypto ライブラリの体系的かつ継続的なベンチマークを強調しました。Fastcrypto では、すべての関数がリリース時およびオンデマンドで継続的にベンチマークされ、その結果がオンラインで公開されます。類似の関数は簡単に比較でき、時間の経過に伴うパフォーマンスを追跡できるように履歴データを維持しています。

プレゼンテーションでは、これらのベンチマークが Fastcrypto と Sui の開発においてより情報に基づいた意思決定を促進し、依存関係と使用法の選択に影響を与え、開発者リソースの焦点を最適化した方法について強調しました。

ベンチマークに基づく適切な意思決定

この論文のケーススタディでは、Sui のバリデーターの署名スキームを選択するという課題が取り上げられています。ユーザーが Sui にトランザクションを送信するには、トランザクションがバリデータの定足数によって署名され、トランザクション証明書に結合される必要があります。約 100 人のバリデーターと均等に分散されたステークでは、定足数は 67 人のバリデーターで構成されます。つまり、各バリデータはトランザクションごとに 67 の署名を検証する必要があります。

BLS 署名方式では、複数の署名を 1 つの署名であるかのように検証できますが、EdDSA などの代替方式よりもはるかに低速です。詳細なベンチマークにより、これら 2 つの方式の損益分岐点は 40 から 45 の署名であることが明らかになりました。したがって、Sui にとっては BLS を使用する方が効率的であり、実際にこれが現在使用されています。

EdDSA と BLS 署名スキームのベンチマークにより、40 ~ 45 のバッチ署名で損益分岐点が明らかになり、Sui のバリデータ プールでは BLS がパフォーマンスの高い選択肢であることが示されました。

「ソフトウェアが突然大幅に高速化した場合も心配する必要があります」

プレゼンテーションでは、ベンチマークによって予期しないソフトウェアの動作を発見する方法も紹介されました。1 つの例は、公開鍵をキャッシュして署名関数への入力として提供することを前提とした EdDSA 署名スキームを実装するライブラリに関するものでした。間違った公開鍵が提供された場合、秘密鍵が抽出される可能性があります (ed25519-unsafe-libs GitHub で示されています)。

この問題は、一部のライブラリが、公開鍵の導出を回避し、引数として提供された可能性のある誤った公開鍵を使用して、異常に高速なパフォーマンスを示したために検出されました。ベンチマークはソフトウェアの高速化を目的とすることがよくありますが、「ソフトウェアが突然大幅に高速化した場合も心配する必要があります」とワークショップの聴衆の 1 人が指摘しました。