7 Minuten Lesezeit
Übersicht
Eine Solana-Adresse ist lediglich der öffentliche Schlüssel im Base58-Format eines Schlüsselpaars, und mit einer benutzerdefinierten Vanity-Wallet-Adresse können Sie eine Adresse erstellen, die mit Zeichen Ihrer Wahl beginnt und endet. Beispielsweise beginnt und endet der MetaDAO -Token „METAwkXcqyXKy1AtsSgJ8JiUHwGCafnZL38n3vYmeta“ jeweils mit „meta“. Diese Vanity-Adressen werden ermittelt, indem immer wieder Kandidaten generiert werden, bis einer davon mit einem ausgewählten Präfix, Suffix oder beidem übereinstimmt.
Eine wiedererkennbare Adresse macht es einfacher, die Token-Prägung, die Kasse oder das Programm eines Projekts auf den ersten Blick zu erkennen und ihnen zu vertrauen. Sie stärkt die Marke und hilft den Nutzern zu bestätigen, dass sie mit dem richtigen Konto interagieren und nicht mit einem Nachahmerkonto. Der Nachteil dabei ist: Je mehr Zeichen benötigt werden, desto länger dauert die Suche.
Was ist Schleifen?
Das „Grinding“ ist ein Prozess, bei dem durch Brute-Force-Verfahren eine Solana-Vanity-Wallet-Adresse generiert wird. Ein „Grinder“ erstellt ein neues Schlüsselpaar, prüft, ob dessen Base58-Adresse mit Ihrem gewünschten Präfix oder Suffix übereinstimmt, und wiederholt diesen Zyklus – oft millionenfach –, bis eine Übereinstimmung gefunden wird. Es gibt keine Abkürzung, daher hängt die Geschwindigkeit vollständig von Ihrem Tool und Ihrer Hardware ab.
In dieser Anleitung werden zwei Möglichkeiten beschrieben, wie man einen schleift. Zunächst verwenden Sie solana-keygen-Grind, den in der Solana-CLI integrierten Befehl – das ist der einfachste Weg und erfordert keine zusätzlichen Schritte. Anschließend verwenden Sie Eitelkeit, ein Open-Source-Tool mit GPU-Beschleunigung, das viel schneller und schaltet längere Muster frei.
- Eine Scheinadresse mit der nativen Funktion generieren
solana-keygen-GrindBefehl, keine zusätzlichen Werkzeuge erforderlich - Mit dem GPU-beschleunigten Vanity-Tool geht das Grinden viel schneller (und man findet längere Muster)
- Behandeln Sie die drei Möglichkeiten des Mahlens mit
Eitelkeit, ein Samen (mahlen), ein Schlüsselpaar (Schlüsselpaar generieren) sowie ein Doppler-Schlüsselpaar (grind-doppler), und erfahren, wann man die einzelnen verwendet - Verstehen Sie den Unterschied zwischen Schlüssel -Seed und Schlüsselpaar und warum dies Geschwindigkeit und Sicherheit beeinflusst
Ihre Aufgaben
- Eine Scheinadresse generieren mit
solana-keygen-Grind - Installieren
Eitelkeitund einen Vanity-Seed, ein Vanity-Schlüsselpaar und ein Doppler-Schlüsselpaar generieren - Überprüfen Sie das Schleifergebnis und finden Sie heraus, welches Werkzeug für welchen Anwendungsfall geeignet ist
- Befolgen Sie die bewährten Vorgehensweisen zur Wallet-Sicherheit für die von Ihnen generierten Schlüssel
Was Sie benötigen
- Ein Befehlszeilenterminal
- Die Solana-CLI ist installiert
- Rost und Fracht zu installieren
Eitelkeit - Grundlegende Kenntnisse über Solana-Adressen und Schlüsselpaare, die im Artikel „So erstellen Sie eine Adresse in Solana mit JavaScript“ behandelt werden
Mit Solana-Keygen grinden
Möchten Sie lieber eine Videoanleitung? Folgen Sie Sahil und erfahren Sie, wie Sie auf Solana eine benutzerdefinierte Vanity-Adresse erstellen.
solana-keygen hat ein mahlen Unterbefehl, der Schlüsselpaare generiert, bis eines Ihren Suchkriterien entspricht. Der --beginnt-mit flag nimmt ein PRÄFIX:ANZAHL Wert, also QN:1 bedeutet „Finde eine Adresse, die mit QN".
solana-keygen grind --starts-with QN:1
Sie sollten eine Antwort wie diese sehen:
Searching with 10 threads for:
1 pubkey that starts with 'QN' and ends with ''
Wrote keypair to QN...mgr.json
Die passende .json Die Datei in Ihrem aktuellen Verzeichnis ist eine Standard-Solana-Schlüsselpaar-Datei. Sie können sie als Standard-Wallet festlegen oder im Code laden:
solana config set --keypair ./QN...mgr.json
Jedes zusätzliche Zeichen erschwert die Suche exponentiell, da Base58 pro Position 58 mögliche Zeichen umfasst. In der Praxis sind zwei bis fünf definierte Zeichen ein angemessener Bereich für solana-keygen. Darüber hinaus wirst du die GPU-beschleunigte Eitelkeit das im Folgenden beschriebene Tool.
Entdecken Sie die Mahloptionen
Führen Sie den Befehl „help“ aus, wann immer Sie eine Anleitung benötigen:
solana-keygen grind --help
Die nützlichsten Optionen sind:
--beginnt-mit PREFIX:COUNTstellt festANZAHLSchlüsselpaare, deren Adresse mitPRÄFIX(zum Beispiel,--beginnt mit QN:2findet zwei).--endet mit SUFFIX:COUNTstimmt stattdessen mit einem Suffix überein.--beginnt-und-endet-mit PREFIX:SUFFIX:COUNTgilt für beide Enden gleichzeitig.--Groß-/Kleinschreibung ignorierenstellt die Suche groß-/kleinschreibungsunabhängig ein (standardmäßig wird zwischen Groß- und Kleinschreibung unterschieden).--use-mnemonicGibt eine Seed-Phrase anstelle einer Schlüsselpaar-Datei aus. Rechnen Sie mit einer erheblichen Verlangsamung.--num-threads <NUMBER>Legt die Anzahl der Grind-Threads fest.
Ein Präfix oder Suffix muss aus Base58-Zeichen bestehen (A–Z, a–z, 0–9) mit Ausnahme derjenigen, die leicht verwechselt werden können: Null (0), Großbuchstabe i (I), Großbuchstabe O (O) und das kleine L (l).
Schuften aus Eitelkeit
vanity ist ein leistungsstarker Grinder, der auf CPUs und GPUs läuft. Auf einer einzigen RTX 4090 durchsucht er weit über eine Milliarde Kandidaten pro Sekunde, wodurch längere Muster nicht mehr nur theoretisch, sondern auch praktisch umsetzbar sind.
Bevor Sie das Programm ausführen, müssen Sie verstehen, was es eigentlich erzeugt.
Seeds vs. Schlüsselpaare
Eitelkeit kann zwei grundlegend verschiedene Dinge mahlen:
- Samen: Eine kurze Textzeichenfolge, die mit
KontoMitSeedErstellen. Die Adresse lässt sich wie folgt ableiten:base58(SHA256(Basis + Startwert + Eigentümer)). Es hat keinen eigenen privaten Schlüssel. Es wird gesteuert durch dieBasisWallet, das dafür signiert, sowie dasEigentümerProgramm, dem das Konto gehört. - Schlüsselpaar: Ein echtes ed25519-Schlüsselpaar, dessen öffentlicher Schlüssel Ihrem Muster entspricht. Die Adresse kann wie jede andere Wallet Signaturen erstellen.
Diese Aufteilung sorgt sowohl für Geschwindigkeit als auch für Sicherheit. Das „Seed-Grinding“ ist ein reines SHA-256-Hashverfahren ohne elliptische Kurven, sodass es etwa 20-mal schneller läuft als das „Keypair-Grinding“. Das „Keypair-Grinding“ dauert zwar länger, erzeugt aber einen privaten Schlüssel.
Waschtisch einbauen
Installieren Sie das Programm mit Cargo. Wählen Sie die für Ihre Hardware geeignete Version aus:
# CPU only (default)
cargo install vanity
# NVIDIA GPU (requires the CUDA toolkit / nvcc on the build machine)
cargo install vanity --features=gpu
# AMD, Intel, or Apple GPUs (requires an OpenCL 1.2 ICD loader and headers)
cargo install vanity --features=opencl
Einen Samen mahlen
Verwendung mahlen wenn die Adresse zu etwas gehört, das von einem Programm gesteuert wird, wie beispielsweise einer Token-Prägeanstalt, einem Stake-Konto oder einem Programmdatenkonto. Die Basis (deine Signatur-Wallet) und Eigentümer (das Programm, dem das Konto gehören wird) sind beide in der abgeleiteten Adresse fest verankert; legen Sie diese daher vor dem Grinden fest. In diesem Beispiel wird ein Token-Mint generiert, der dem SPL-Token-Programm gehört:
vanity grind \
--base <YOUR_WALLET_PUBKEY> \
--owner TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA \
--prefix QN \
--num-gpus 1
Die Ausgabe enthält die resultierende Adresse und einen 16-Zeichen-Seed (der der Übersichtlichkeit halber gekürzt wurde):
unter Verwendung von 14 CPUs und 1 GPU
Ziel: QN | Wahrscheinlichkeit: 1,748728e-5 | Erwartete Versuche: 57.184
CPU 6 Übereinstimmung: QNey...qrGn; [122, ..., 73] -> zynnPwuquKefX73I in 0,003 s; 6.862.657 Versuche/Sek.
Fertig: 34.459.020 Versuche in 1 s bei 34.284.098 Versuchen/Sek.
Überprüfen Sie ein Ergebnis immer, bevor Sie es in der Blockchain festschreiben:
vanity verify --base <YOUR_WALLET_PUBKEY> --owner TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA --seed <SEED>
Um den Seed in der Blockchain zu verwenden, übergeben Sie ihn an Konto_mit_Seed_erstellen; die abgeleitete Adresse wird zur Adresse des neuen Kontos to_pubkey.
Ein Vanity-Schlüsselpaar generieren
Verwendung Schlüsselpaar generieren wenn die Adresse selbst signieren muss, beispielsweise eine Wallet, von der aus Sie eine Transaktion durchführen, oder eine Programm-ID. Dabei wird ein Standard-JSON-Array mit einem Solana-Schlüsselpaar erzeugt:
vanity grind-keypair --prefix QN --suffix qn
Die Ausgabe enthält den öffentlichen Schlüssel, den Seed (hexadezimal) und ein Solana-kompatibles JSON-Array mit einem Schlüsselpaar (der Übersichtlichkeit halber gekürzt):
unter Verwendung von 14 CPUs und 1 GPU
Ziel: QN...qn | Wahrscheinlichkeit: 5,198358e-9 | Erwartete Versuche: 192.368.424
GPU 0 Treffer: QNg83...q5qn in 0,323 s
Öffentlicher Schlüssel: QNg83...q5qn
Seed (hexadezimal): 0132...36c4
Schlüsselpaar JSON (Solana-kompatibel): [1, ..., 125]
Fertig: 104.422.574 Versuche in 17 s bei 6.117.490 Versuchen/Sek.
Schlüsselpaar generieren gibt einen echten privaten Schlüssel aus. Generieren Sie niemals ein Schlüsselpaar, das Sie zur Einzahlung nutzen möchten, auf Hardware, über die Sie keine Kontrolle haben. Bei einer gemieteten GPU oder einem Generierungsdienst eines Drittanbieters wurde der private Schlüssel eingesehen; betrachten Sie daher jedes ausgelagerte Schlüsselpaar als kompromittiert.
Ein Doppler-Schlüsselpaar generieren
grind-doppler erzeugt ebenfalls ein echtes, signierbares Schlüsselpaar, sucht jedoch nach einer anderen Art von Übereinstimmung. Anstelle eines lesbaren Präfixes sucht es nach einem öffentlichen Schlüssel, dessen Rohdaten einem Muster entsprechen, das Solana-Programme mit weniger Recheneinheiten abgleichen können. Die resultierende Adresse sieht für einen Menschen ganz normal aus; der Vorteil liegt ausschließlich in der Leistung.
vanity grind-doppler --segments 1 --num-gpus 1 # find one cheaper-to-check key
vanity grind-doppler --segments 2 --num-gpus 1 # stricter match, much rarer to find
Das Ergebnis gibt das Schlüsselpaar (als Solana-kompatibles JSON-Array, analog zu „grind-keypair“) sowie eine Aufschlüsselung nach Segmenten aus, einschließlich der .equ-Konstanten für jedes Segment (der Übersichtlichkeit halber gekürzt):
unter Verwendung von 14 CPUs und 1 GPU
Doppler: >= 1 vorzeichenbehaftetes 32-Bit-Segment | Wahrscheinlichkeit: 9,313226e-10 | Erwartete Anzahl: 1.073.741.824 Versuche
GPU 0-Treffer: CSvy...YFYHy in 0,398 s
Öffentlicher Schlüssel: CSvy...YFYHy
Seed (hex): 4f92c...f09d
Schlüsselpaar JSON (Solana-kompatibel): [79, ..., 52]
Doppler: 1/4 vorzeichenverlängerbare Segment(e)
Segment 0 (Bytes 0–7): imm32 -904391254 (0xca1815aa) => .equ EXPECTED_KEY_0, 0xca1815aa
Segment 1 (Bytes 8–15): 0xcd61910e9f5edb4e (nicht vorzeichenverlängerbar) => .equ EXPECTED_KEY_1, 0xcd61910e9f5edb4e
Segment 2 (Bytes 16–23): 0x91f8ae8d74e04ddf (nicht vorzeichenverlängerbar) => .equ EXPECTED_KEY_2, 0x91f8ae8d74e04ddf
Segment 3 (Bytes 24–31): 0x3423fa148de6ec68 (nicht vorzeichenverlängerbar) => .equ EXPECTED_KEY_3, 0x3423fa148de6ec68
Fertig: 16.085.250 Versuche in 6 s bei 2.672.178 Versuchen/Sek.
Wenn ein Programm einen bestimmten öffentlichen Schlüssel fest einbaut und eingehende Konten damit abgleicht (beispielsweise eine Zugriffskontrollschranke, die nur ein bekanntes Administratorkonto durchlässt), muss es diesen 32-Byte-Schlüssel bei jedem Aufruf laden und vergleichen. Ein grind-doppler key ist so aufgebaut, dass ein Teil dieser Last kostengünstiger ist, was die Rechenkosten jedes Vergleichs senkt. Die --Segmente Das Flag (1 bis 4) bestimmt, wie viel des Schlüssels auf diese Weise verarbeitet wird: Je mehr Segmente, desto größer die Einsparung, aber desto länger dauert die Berechnung exponentiell.
Dies spielt nur dann eine Rolle, wenn die Rechenleistung auf der Blockchain eine echte Einschränkung darstellt, beispielsweise bei einem stark ausgelasteten Programm, bei dem jede Recheneinheit pro Befehl zählt. Bei einer normalen Wallet, der Ausgabe von Token oder einem einmaligen Programm bringt Ihnen das keinerlei Vorteile gegenüber Schlüsselpaar generieren, greifen Sie also nur dann darauf zurück, wenn die Minimierung des Rechenaufwands ein bewusstes Ziel ist.
Gängige Optionen für Waschtische
Diese Flags gelten für alle Schleifmodi:
| Flagge | Gilt für | Standard | Bedeutung |
|---|---|---|---|
--num-cpus <N> | alle | 0 (alle logischen Kerne) | CPU-Mining-Threads |
--num-gpus <N> | alle (GPU-Builds) | 1 | GPUs zum Schürfen |
--count <N> | alle | 1 | Nach N Treffern anhalten |
--Groß-/Kleinschreibung wird nicht berücksichtigt | mahlen, Schlüsselpaar generieren | aus | Übereinstimmung ohne Berücksichtigung der Groß-/Kleinschreibung |
--Präfix / --Suffix | mahlen, Schlüsselpaar generieren | keine | Base58-Ziel(e); mindestens eines angeben |
--segments <1-4> | grind-doppler | 1 | Segmente, die vorzeichenbehaftet erweitert werden können, erforderlich |
Wählen Sie das richtige Werkzeug
Nutzen Sie diesen kurzen Entscheidungsleitfaden, um einen Modus auszuwählen:
| Dein Ziel | Verwendung |
|---|---|
| Ein kurzes Muster aus zwei bis fünf Zeichen ohne zusätzlichen Einrichtungsaufwand | solana-keygen-Grind |
| Eine lesbare Adresse, die signiert werden muss, z. B. eine Wallet- oder Programm-ID | Vanity-Grind-Schlüsselpaar |
| Ein gutes Modell für eine Adresse, die von einer Wallet oder einem Programm verwaltet wird, wie beispielsweise eine Token-Prägeplattform, ein Staking-Konto oder ein programmgeführtes Konto (am schnellsten und das einzige, dessen Verwaltung sicher ausgelagert werden kann) | Eitelkeits-Grind |
| Vergleiche kostengünstigerer On-Chain-Schlüssel innerhalb eines stark genutzten Programms | Vanity Grind-Doppler |
Sicherheit gewährleisten
Unabhängig davon, wie Sie eine Wallet erstellen, sollten Sie die bewährten Verfahren zur Wallet-Sicherheit befolgen. Halten Sie Schlüsselpaar-Dateien aus der Versionskontrolle fern, fügen Sie niemals einen privaten Schlüssel oder eine Seed-Phrase in ein nicht vertrauenswürdiges Tool ein und beachten Sie die Regel „Seed statt Schlüsselpaar“: a mahlen Der Seed kann bedenkenlos weitergegeben werden, aber ein Schlüsselpaar generieren Der private Schlüssel hingegen nicht. Eine ausführlichere Einführung finden Sie in unserem Einführung in Krypto-Wallets und wie man sie sicher aufbewahrt.
Zusammenfassung
Sie haben nun zwei Möglichkeiten, eine Solana-Vanity-Adresse zu generieren, und – was noch wichtiger ist – das nötige Wissen, um zwischen diesen beiden Möglichkeiten zu wählen. solana-keygen-Grind liefert Ihnen in Sekundenschnelle ein kurzes Muster ohne zusätzlichen Werkzeugaufwand, während Eitelkeit ermöglicht die Geschwindigkeit und die längeren Muster, die echte Münzen und Geldbörsen erfordern.
Häufig gestellte Fragen
Was ist eine Solana-Vanity-Adresse?
Eine Vanity-Adresse ist eine Solana-Adresse, die ein gewähltes Präfix oder Suffix enthält, beispielsweise eine Adresse, die mit „QN“ beginnt. Sie wird ermittelt, indem wiederholt Adresskandidaten generiert werden, bis einer dem Muster entspricht. Die Übereinstimmungssuche erfolgt nach dem Brute-Force-Verfahren, sodass jedes zusätzliche Zeichen die Suche exponentiell verlangsamt.
Was ist der Unterschied zwischen „solana-keygen grind“ und dem „Vanity“-Tool?
„solana-keygen grind“ ist in die Solana-CLI integriert, läuft auf Ihrer CPU und ist die einfachste Methode, um kurze Muster mit zwei bis fünf Zeichen zu finden. Das „Vanity“-Tool ist GPU-beschleunigt und durchsucht auf einer einzelnen High-End-GPU weit über eine Milliarde Kandidaten pro Sekunde, wodurch auch längere Muster praktikabel werden. Es bietet zudem Funktionen zum Generieren von Seeds und Doppler-Schlüsselpaaren, die „solana-keygen“ nicht bereitstellt.
Soll ich einen Seed oder ein Schlüsselpaar generieren?
Führen Sie ein Keypair-Grinding (grind-keypair) durch, wenn die Adresse selbst signieren muss, wie beispielsweise bei einer Wallet oder einer Programm-ID. Führen Sie ein Seed-Grinding (grind) durch, wenn die Adresse von einer Wallet oder einem Programm verwaltet wird, wie beispielsweise bei einer Token-Prägung, einem Staking-Konto oder einem programmgeführten Konto. Das Seed-Grinding ist etwa 20-mal schneller, da es sich um reines SHA-256-Hashing ohne elliptische Kurven handelt.
Ist es sicher, eine Vanity-Adresse auf einer gemieteten GPU zu generieren?
Ein Seed aus „grind“ ist öffentlich und gewährt keine Kontrolle, daher ist es sicher, ihn auszulagern, indem Sie lediglich Ihren öffentlichen Schlüssel weitergeben. Ein Schlüsselpaar aus „grind-keypair“ enthält einen privaten Schlüssel; wenn Sie es also auf einer Hardware generieren, über die Sie keine Kontrolle haben, bedeutet dies, dass der private Schlüssel möglicherweise offengelegt wurde.
Warum dauert das Schleifen eines längeren Präfixes so viel länger?
Base58 verwendet 58 mögliche Zeichen pro Position, sodass sich die Anzahl der zu durchsuchenden Adressen mit jedem zusätzlichen Zeichen, das Sie einschränken, um etwa das 58-Fache erhöht. Ein Präfix aus zwei Zeichen wird fast sofort gefunden, während die Suche nach einem Präfix aus neun Zeichen auf einer CPU unzumutbar viel Zeit in Anspruch nehmen kann. Aus diesem Grund benötigen längere Muster eine GPU-Beschleunigung.
Wofür wird Grind-Doppler verwendet?
grind-doppler erzeugt ein signierbares Schlüsselpaar, dessen Rohdaten des öffentlichen Schlüssels 32-Bit-Segmente enthalten, die sign-erweiterbar sind. Es handelt sich um eine Nischenoptimierung für Autoren von manuell optimierten sBPF-Programmen, die einen erwarteten Schlüssel fest einprogrammieren und mit diesem vergleichen, wobei jedes sign-erweiterbare Segment pro Vergleich eine Recheneinheit einspart.
Ressourcen
- GitHub-Repo nur zum Spaß
- So erstellen Sie mit JavaScript eine Adresse in Solana
- Eine Einführung in Krypto-Wallets und wie man sie sicher aufbewahrt
Wir ❤️ Feedback!
Teilen Sie uns gerne mit, wenn Sie Feedback oder Vorschläge für neue Themen haben. Wir freuen uns auf Ihre Rückmeldung.
