ScalarDL 認証ガイド
注記
このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。
このドキ ュメントでは、ScalarDL の認証メカニズムとその適切な使用方法について説明します。
ScalarDL での認証
認証は ScalarDL の重要な役割の 1 つであり、プロトコルを期待どおりに動作させることができます。 ScalarDL は、次の 3 つの状況で認証を使用します。
- クライアント認証(Ledger と Auditor 用)
- Ledger と Auditor は、クライアントからのリクエストに添付されたクライアント生成の署名を使用してクライアントを認証します。
- Ledger 認証(Auditor 用)
- Auditor は、アセット証明 に添付された Ledger 生成の署名を使用して Ledger を認証します。
- Auditor 認証(Ledger 用)
- Ledger は、クライアントのリクエストに添付された Auditor が生成した署名を使用して Auditor を認証します。
Ledger 認証と Auditor 認証は Auditor モードでのみ使用されることに注意してください。 Auditor の詳細については、ScalarDL Auditor 入門 および ScalarDL 実装 を参照してください。
また、ここでは認証に使用されるバイト配列を指定するために signature
という用語を使用していることに注意してください。
認証方法
ScalarDL は、デジタル署名と HMAC という 2 つの認証方法をサポートしています。 以下に説明するように、これらの方法には両方とも長所と短所がありますが、どちらの方法でもビザンチン障害検出機能が犠牲になることはありません。
デジタル署名
- 利点
- クライアントのリクエスト、アセットレコード、およびアセット証明には否認防止特性があります。 具体的には、クライアントのリクエストに添付されたデジタル署名は、そのリクエストが生成する対応するアセットレコードとともに保存されるため、クライアントのリクエストと対応するレコードには否認防止の特性が備わります。つまり、クライアントのリクエストに署名した秘密鍵の所有者が誰であるかを保証できます。 リクエストによりレコードが作成されました。 さらに、実行の結果としてクライアントに返されるアセット証明に添付されたデジタル署名により、Ledger と Auditor がそれぞれ証明を作成したことが保証されます。 クライアント(アプリケーション)がプルーフを保持しておけば、クライアントは必要に応じてプルーフを使用して結果を検証できます。
- 短所
- デジタル署名は非常に遅いです。 上記の利点と引き換えに、無視できないパフォーマンスのオーバーヘッドが追加されます。