暗号理論

Symbol はデータの整合性を検証し、署名者の身元を認証するために 楕円曲線暗号 を使用します。

キーペア

楕円曲線暗号は キーペア に基づきます: 秘密鍵に対応する公開鍵。特に Symbol はデジタル署名アルゴリズム Ed25519 とハッシュアルゴリズム SHA-512 と一緒に Twisted Edwards curve を使用します:

  • 秘密鍵: エンティティ に署名するために使用する、所有者が知っているランダムな 256-bit (32 byte) 整数
  • 公開鍵: 秘密鍵から導出される 256-bit (32 byte) の整数値。広く普及させることのできるキーペアの公開識別子です。対となる秘密鍵でエンティティが署名されていることの証明に使用します。

公開鍵は秘密鍵から取得できますが その逆はできません

Symbol キー

キーペアは Symbol のさまざまな場所で さまざまな目的 に使用されます。これはキーの使用目的の要約です:

注釈

経験則から、キーペアの 秘密鍵 は常に秘密にしなければなりません。しかしながら 秘密鍵が盗まれるのはどれほど悪いことでしょう?

Key Severity Impact
Main 🔴 高 資産は別のアカウントへ送信される場合があります。
Remote 🟠 中 アカウントやノードには無害です。別のリモートアカウントをリンクすることで簡単に元に戻すことができます。攻撃者が多数のリモートキーを取得すると、多くのハーベスティング力が得られ、ブロックチェーンに追加されるブロックに影響を与える可能性があります。
VRF 🟡 低 ハーベスティングに使用する鍵がなくても害はありません。
Voting 🟠 中 アカウントやノードには無害です。別の投票アカウントをリンクすることで簡単に元に戻すことができます。攻撃者がネットワークの投票キーの 50 %以上を取得すると、ブロックのファイナライズに影響を与える可能性があります。
Transport 🟡 低 攻撃者はハーベスティングの委任をノードから盗むことができますが、それ以外に害はありません。

署名

すべてのトランザクションは秘密鍵を使用して署名され 512 bit (64 byte) の 署名 を生成します。

プロトコルは通常のワークフローの一部として、一致する公開鍵を使用して署名を 検証 します。これによりエンティティの署名者の信頼性が保証されます。

アドレス

Symbol 公開鍵は 39 文字のより 短い形式 である、アドレスとして共有できます。

前 24-byte トリプレットが構成されています:

  • network-id バイト
  • アカウントの公開鍵の 160-bit (20 byte) ハッシュ
  • アドレスのミスタイプを素早く確認するための 3-byte のチェックサム

次に、39文字のアドレスを生成するために、文字列全体が Base32 でエンコード されます。

ブロックチェーンと疎通せずにアドレスを作ることができます。実際、ブロックチェーンはあるトランザクションにおいて、初めて現れたアドレスと公開鍵だけを追跡しています。

HD-Wallets とニーモニック

階層的決定論的ウォレット (略して HD ウォレット) は、単一のシードアカウントから 一連のアカウントを導出 できます。これにより単一の キーペア を使用してアカウントのグループを処理できるようになり、管理が大幅に簡素化されます。

  • 一つの鍵だけを守る
  • 複数のアカウントを 1 つの QR コードまたは ニーモニック語群 に保存できます。

ニーモニック語群 は秘密鍵をヒューマンフレンドリーな 24 のランダムな英単語 表現です。ニーモニックフレーズは 人間にとって覚えやすく、書き留めやすい ため、秘密鍵の代わりに使用されることがあります。

ただし、これらは 秘密鍵 と同等なので、常に秘密にしておかなければなりません。 Symbol では、さらにそうですが デスクトップウォレット ニーモニックフレーズはシードアカウントのキーをエンコードします

HD ウォレットを作成する Symbol のメカニズムに関する技術的な詳細は `NIP-6 <https://github.com/nemtech/NIP/blob/main/NIPs/nip-0006.md>`_ドキュメントを参照してください。

次項: ブロック