Private Schlüssel
Der Spend Key b, der View Key a und ihre öffentlichen Hälften B und A
Eine Monero-Wallet ist ein Paar von Skalaren: b (privater Spend Key) und a = Hs(b) (privater View Key). Ihre öffentlichen Versionen: B = b·G und A = a·G. Eine Adresse ist einfach B und A zusammen aufgeschrieben.
Der Spend Key
Der private Spend Key (Ausgabeschlüssel) b ist ein zufälliger Skalar modulo l. Im klassischen Format ist der 25-Wörter-Seed b, nur in Wörtern geschrieben. Erzeugung:
- nimm 32 zufällige Bytes (oder mehr, für Gleichverteilung);
- lies sie als Little-Endian-Zahl;
- reduziere modulo
l(sc_reduce32).
Der Spend Key wird für zwei Dinge gebraucht: um den privaten Schlüssel eines Einmal-Outputs zu berechnen (zum Signieren einer Ausgabe) und um das Key Image zu berechnen.
Der View Key
Der private View Key (Ansichtsschlüssel) könnte eine unabhängige Zufallszahl sein, aber Standard-Wallets leiten ihn aus dem Spend Key ab:
Deshalb reicht ein einziger Seed, um beide Schlüssel wiederherzustellen. Der View Key wird beim Durchsuchen der Blockchain verwendet: Für jede Transaktion berechnet die Wallet das gemeinsame Geheimnis 8·a·R und prüft, ob ein Output an sie adressiert ist (Details unter Einmal-Adressen).
Öffentliche Schlüssel
Zwei Kurvenpunkte, je 32 Bytes. Sie sind nicht geheim: Deine Adresse besteht aus ihnen.
Wer was kann
| Du hast | Du kannst | Du kannst nicht |
|---|---|---|
A, B (Adresse) | Geld an diese Wallet senden | irgendetwas sehen |
a, B (View-only) | eingehende Outputs und ihre Beträge finden | ausgeben; Ausgaben zuverlässig sehen |
a, b | alles | — |
Mit Carrot wird die Schlüsselhierarchie tiefer: eigene Schlüssel für „Eingänge sehen“, „alles sehen“, „Key Images erzeugen“. Bei bestehenden Wallets funktionieren a und b weiter.