Symbol はデータの整合性を検証し、署名者の身元を認証するために 楕円曲線暗号 を使用します。
楕円曲線暗号は キーペア に基づきます: 秘密鍵に対応する公開鍵。特に Symbol はデジタル署名アルゴリズム Ed25519 とハッシュアルゴリズム SHA-512 と一緒に Twisted Edwards curve を使用します:
秘密鍵: エンティティ に署名するために使用する、所有者が知っているランダムな 256-bit (32 byte) 整数
公開鍵: 秘密鍵から導出される 256-bit (32 byte) の整数値。広く普及させることのできるキーペアの公開識別子です。対となる秘密鍵でエンティティが署名されていることの証明に使用します。
公開鍵は秘密鍵から取得できますが その逆はできません 。
キーペアは Symbol のさまざまな場所で さまざまな目的 に使用されます。これはキーの使用目的の要約です:
Main: このキーペアは資産やモザイク、ネームスペースを保有する 通常 アカウント を管理します。
Remote: このキーペアは リモートハーベスティング において リモートアカウント を管理します。
VRF: ハーベスティング で要求されます。
Voting: ファイナライゼーション プロセスに参加するノードに必要です。
Transport: このキーペアは TLS を介した、安全な転送のためにノードが使用します。
注釈
経験則から、キーペアの 秘密鍵 は常に秘密にしなければなりません。しかしながら 秘密鍵が盗まれるのはどれほど悪いことでしょう?
Key |
Severity |
Impact |
---|---|---|
Main |
🔴 高 |
資産は別のアカウントへ送信される場合があります。 |
Remote |
🟠 中 |
アカウントやノードには無害です。別のリモートアカウントをリンクすることで簡単に元に戻すことができます。攻撃者が多数のリモートキーを取得すると、多くのハーベスティング力が得られ、ブロックチェーンに追加されるブロックに影響を与える可能性があります。 |
VRF |
🟡 低 |
ハーベスティングに使用する鍵がなくても害はありません。 |
Voting |
🟠 中 |
アカウントやノードには無害です。別の投票アカウントをリンクすることで簡単に元に戻すことができます。攻撃者がネットワークの投票キーの 50 %以上を取得すると、ブロックのファイナライズに影響を与える可能性があります。 |
Transport |
🟡 低 |
攻撃者はハーベスティングの委任をノードから盗むことができますが、それ以外に害はありません。 |
すべてのトランザクションは秘密鍵を使用して署名され 512 bit (64 byte) の 署名 を生成します。
プロトコルは通常のワークフローの一部として、一致する公開鍵を使用して署名を 検証 します。これによりエンティティの署名者の信頼性が保証されます。
Symbol 公開鍵は より短い形式 である アドレス として共有できます。
前 24-byte Raw アドレス が構成されています:
network-id バイト
アカウントの公開鍵の 160-bit (20 byte) ハッシュ
アドレスのミスタイプを素早く確認するための 3-byte のチェックサム
しかし、Raw アドレスはバイナリ配列のため、普段使いには不便なので、通常は Base32 エンコード済み <https://en.wikipedia.org/wiki/Base32> __ を エンコード済みアドレス または単に アドレス と呼ばれる 39 文字 のテキストへ変換します。
最後に、読みやすくするために、6 文字ごとにハイフンを追加して きれいなアドレス へ整形します。
例:
Raw アドレス |
|
24 バイト |
アドレス |
|
39 文字 |
整形アドレス |
|
45 文字 |
ブロックチェーンと疎通せずにアドレスを作ることができます。実際、ブロックチェーンはあるトランザクションにおいて、初めて現れたアドレスと公開鍵だけを追跡しています。
階層的決定論的ウォレット (略して HD ウォレット) は、単一のシードアカウントから 一連のアカウントを導出 できます。これにより単一の キーペア を使用してアカウントのグループを処理できるようになり、管理が大幅に簡素化されます。
一つの鍵だけを守る
複数のアカウントを 1 つの QR コードまたは ニーモニック語群 に保存できます。
ニーモニック語群 は秘密鍵をヒューマンフレンドリーな 24 のランダムな英単語 表現です。ニーモニックフレーズは 人間にとって覚えやすく、書き留めやすい ため、秘密鍵の代わりに使用されることがあります。
ただし、これらは 秘密鍵 と同等なので、常に秘密にしておかなければなりません。 Symbol では、さらにそうですが デスクトップウォレット ニーモニックフレーズはシードアカウントのキーをエンコードします 。