RandomX ist der Name des neuen Mining-Algorithmus für Monero, die Datenschutzwährung, dessen Ziel es ist, das Netzwerk vor ASIC-Mining zu schützen, nur CPU-Mining zuzulassen und gleichzeitig enorme Sicherheit für sein Protokoll und seine Blockchain zu bieten.
EDer RandomX-Mining-Algorithmus ist ein Arbeitsnachweis (PoW) das das Bekannte ersetzen soll CryptoNacht Datenschutz-Kryptowährung Monero (XMR).
RandomX wurde wie sein Vorgänger auf Sicherheit ausgelegt und ist der neue Standardalgorithmus für Monero. Es bietet ein hohes Maß an Kryptographieund konzentriert sich auf Systeme mit Blick auf Privatsphäre und Anonymität. Vor allem aber darauf ausgelegt, abbaufest zu sein ASIC. Letzteres, eine Fähigkeit, die CryptoNight vor einiger Zeit verloren hatte und die es mit mehreren Updates halb über Wasser hielt. Das Monero-Team entschied sich jedoch, einen neuen Algorithmus von Grund auf zu entwickeln. Ein Algorithmus, der das Beste aus CryptoNight nutzt und so eine neue Mining-Basis für Monero schafft.
Das Ergebnis? Ein Mining-Algorithmus wie nie zuvor und mit vielversprechender ASIC-Resistenz. Dies zusätzlich zu einer Verbesserung der Bergbaukapazität für CPU, was die Währung erneut zu einer besseren Dezentralisierung des Bergbaus geführt hat.
Aber RandomX ist viel mehr als das, es ist ein getesteter, geprüfter Algorithmus, der ein enormes Wachstumspotenzial hat. Aus diesen Gründen werden wir einen Raum der Analyse von RandomX und all den neuen Dingen widmen, die es in die Kryptowelt bringt, und wie Monero davon profitiert hat.
DeFi-Einführungskurs
Durchschnittliches NiveauEs ist Zeit für ein Upgrade. Das traditionelle Finanzwesen hat sich verändert. Entdecken Sie das revolutionäre Ökosystem des dezentralen Finanzwesens (DeFi).
Ursprung von RandomX
Wie bereits erwähnt, entstand RandomX aus der Notwendigkeit des Monero-Projekts (XMR), über einen neuen Mining-Algorithmus zu verfügen, der dem Fortschritt von ASICs standhalten kann.
Erinnern wir uns daran, dass im Jahr 2018 Unternehmen Baikal y Bitmain hatte die ersten ASICs für CryptoNight angekündigt und damit den Widerstand gebrochen, den dieser Algorithmus mehrere Jahre lang repräsentiert hatte. Eine ziemliche Leistung für beide Unternehmen, insbesondere wenn man bedenkt, dass CryptoNight ein ziemlich komplexer Algorithmus war. Tatsächlich wurde dies entwickelt, um das ASIC-Mining von Anfang an zu verhindern.
Allerdings wurde die Leistung der Unternehmen von der Monero-Community und anderen Blockchain-Communitys, die den CryptoNight-Algorithmus verwendeten, nicht gut aufgenommen. Und vor allem, weil Monero eine Kryptowährung ist, bei der ASIC-Miner keinen Anklang finden.
Das ASIC-Herstellungsmonopol und der Zugriff darauf durch Unternehmen mit großen Geldsummen lassen den normalen Menschen nicht die Möglichkeit, vom Mining-Prozess zu profitieren, sodass alles zentral in wenigen Händen liegt. Etwas, das wiederum einen Single Point of Failure für die gesamte Währung darstellt.
Bei Monero wurde das Mining im Allgemeinen von CPUs und GPUs durchgeführt, daher stellten ASICs aufgrund der Möglichkeit eines ernsthaften Zentralisierungs- und Sicherheitsrisikos dar 51 % Angriff.
Um die Situation zu entschärfen, begann Monero mit der Entwicklung neuer Varianten von CryptoNight, die sich negativ auf die Leistung der ASICs auswirken würden. Einige Updates hatten eine gute Reichweite, die ASICs blieben aber trotzdem erhalten. Zu diesem Zeitpunkt war bereits klar, was passierte, CryptoNight reichte nicht aus und es musste ein neuer Algorithmus her.
Daraus entstand Monero Classic, angetrieben von Minern, die den ASIC-Mining-Algorithmus wollten. Dieser Versuch fand jedoch kaum Beachtung.
Trotzdem verbesserten sie die ASICs für Monero weiter und am 31. Oktober 2018 begann die Entwicklung von RandomX. Dieser neue Algorithmus würde laut den Monero-Entwicklern eine radikale Änderung der Mining-Algorithmen bedeuten. Die Arbeit zahlte sich am 5. Mai 2019 aus, als die erste Version von RandomX ans Licht gekommen.
Der RandomX-Algorithmus wurde von Entwicklern für Monero entwickelt Tevador, hyc, vielmetti, antanst y SCHernykh und wurde am 30. November 2019 erfolgreich im Monero-Netzwerk aktiviert.
Wie funktioniert RandomX?
Die allgemeine Funktionsweise von RandomX ist in seinem Namen geschrieben: Zufälligkeit ist seine Hauptprämisse. Aber was bedeutet das? Nun, das bedeutet, dass RandomX darauf ausgelegt ist, eine völlig zufällige „Arbeitszone“ oder Notizblock mit hohem Speicherverbrauch zu erstellen, und dass es für seinen Betrieb fortschrittliche Virtualisierungstechniken verwendet. Diese drei Säulen ermöglichen es RandomX, gegen ASICs resistent zu sein.
Tatsächlich ist RandomX nicht nur resistent gegen ASICs, sondern auch gegen GPUs, da diesen Chips die notwendigen Anweisungen fehlen, um die komplizierten Operationen von RandomX überhaupt auszuführen. Daher strebt RandomX danach, ein reiner CPU-Mining-Algorithmus zu sein, der den größtmöglichen Widerstand gegenüber anderen Mining-Arten bietet. Andererseits zielt dies auch darauf ab, die in Monero sehr bekannten sogenannten Botnetze zu vermeiden, da RandomX ihre Implementierung nahezu unmöglich machen wird. Insbesondere in Geräten mit geringem Stromverbrauch, wie Smart-TV oder IoT-Geräten (Internet der Dinge).
Aber wie macht RandomX das alles möglich? Schauen wir uns diesen neuen Algorithmus etwas genauer an.
Zwei Bergbaumodalitäten für zwei verschiedene Verwendungszwecke
Erstens verfügt RandomX über zwei Mining-Modi. Jeder von ihnen mit ganz unterschiedlichen Anforderungen und Leistungen. Der leistungsstärkste und ressourcenintensivste Modus ist der Schnellmodus, der mindestens 2 GB Speicher erfordert. Aber zusätzlich, wenn das Betriebssystem Unterstützung dafür bietet NUMA (Non-Uniform Memory Access), Riesige Seiten (Speicher-Paging in großen Blöcken), Prozessoren mit hoher Kernanzahl und mindestens 2 GB RAM pro Prozessorkern verbessern die Endleistung von RandomX erheblich. Dies liegt daran, dass der gesamte Speicher zum Erstellen des zufälligen Notizblocks von RandomX verwendet wird.
Zweitens haben wir den Light-Modus, einen Modus, der nur 256 MB RAM benötigt und für die Verwendung auf Monero-Validierungsknoten konzipiert wurde. Die Mining-Leistung dieses Modus ist begrenzt und bis zu sechsmal niedriger als im Schnellmodus, sodass die Mining-Gewinne in diesem Modus eher dürftig ausfallen würden.
Schon jetzt haben wir eine erste Hürde gegen ASICs. Es stimmt zwar, dass ASICs mittlerweile über große Mengen an RAM verfügen können (z. B. die von Ethereum, die normalerweise zwischen 4 und 8 GB RAM haben), aber das macht diese Geräte ziemlich teuer.
Zweitens, angesichts des hohen Verbrauchs an Rechenleistung, wenn ein Computer mit a infiziert ist Kryptojacken Um Monero zu schürfen, wird es vom Benutzer leicht identifiziert. Etwas, das die Erfolgsaussichten eines Botnetzes erheblich verringert.
Verwendete Kryptographie
Wenn uns das Monero (XMR)-Projekt an etwas gewöhnt hat, dann ist es der Einsatz fortschrittlicher Kryptographie in seinen Entwicklungen. In diesem Fall ist RandomX nicht die Ausnahme von der Regel, sondern deren vollständige Erfüllung. Bei RandomX nutzen sie in großem Umfang die Blake2b-Hash-Funktionen, den Argon2d-Passwortgenerator und die symmetrische AES-Kryptographie. Daher ist die kryptografische Qualität von RandomX außergewöhnlich.
Bei Monero waren sie jedoch nicht nur mit ihrer Arbeit zufrieden und haben beschlossen, formelle kryptografische Sicherheits- und Implementierungsprüfungen für den RandomX-Algorithmus durchzuführen. Insgesamt wurden von den Unternehmen vier Audits durchgeführt Spur der Bits, X41 D-SEC, Kudelski Security y QuarksLab, alle verwaltet von OSTIF, eine Organisation mit einer langen Geschichte in den Bereichen Cybersicherheit und Kryptographie.
Alle Audits wurden bereits durchgeführt und die Ergebnisse sind vielversprechend. Wenn Sie etwas mehr über diesen Punkt erfahren möchten, laden wir Sie ein, sich die Ergebnisse hier anzusehen Link.
Ihr Proof-of-Work-Programm
Das Proof of Work (PoW)-Schema von RandomX sieht wie folgt aus:
Zunächst wird ein Schlüssel generiert (Schlüssel K genannt), der als Hash eines Blocks in der Blockchain ausgewählt wird. Dieser Block heißt „Schlüsselblock“. Für eine optimale Mining- und Verifizierungsleistung sollte sich der Schlüssel alle 2048 Blöcke (ca. 2,8 Tage) ändern und zwischen dem Schlüsselblock und der Schlüsseländerung eine Verzögerung von 64 Blöcken (ca. 2 Stunden) liegen. K Dies kann durch Ändern erreicht werden den Schlüssel, wenn Folgendes zutrifft: blockHeight % 2048 == 64 (wobei % der Modul der Division ist) und Auswahl des Schlüsselblocks, sodass keyBlockHeight % 2048 == 0 ist.
Zu diesem Zeitpunkt ist Eintrag H der Standard-Hash-Blob mit einem Wert Nuntius ausgewählt
Obwohl dies alles etwas kryptisch erscheint, möchte uns der RandomX-Algorithmus mitteilen, dass sein Proof of Work unter zwei wichtigen Prämissen funktioniert:
- Es benötigt einen Schlüssel (genannt K), der sich alle 2048 Blöcke ändern muss. Dieser Schlüssel ist wichtig, damit RandomX gültige Hashes und Blöcke für das Netzwerk generieren kann.
- Der Schlüssel wird mit Daten aus der Blockchain und letztendlich mit einem sicheren Schlüsselgenerierungssystem generiert.
Andererseits macht der Algorithmus die Sache auch etwas komplexer, indem er bestimmte Ausführungsbedingungen erfordert. Zu diesen Bedingungen können wir zählen:
- 64-Bit-CPU-Architektur, die die Verarbeitung großer Daten- und Speichermengen ermöglicht.
- Eine mit dem IEEE 754-Standard kompatible FPU-Einheit (Floating Point Unit). Wenn die Einheit nicht kompatibel ist, können die vom Algorithmus generierten Daten nicht validiert werden.
- Unterstützung für AES. Wenn Hardware mit Erweiterungen wie AES-NI unterstützt wird, ist die Leistung des Algorithmus deutlich besser.
- Viel Cache-Speicher für jeden Ausführungsthread des Algorithmus. Mindestens 16 KB L1, 256 KB L2-Cache und 2 MiB L3.
- Ein Betriebssystem mit Unterstützung für die Verarbeitung großer Speicherseiten. Denken Sie daran, dass RandomX mindestens 2 GB RAM benötigt und der Bedarf je nach Konfiguration steigen kann.
Die virtuelle RandomX-Maschine
Die Funktionalität, die den ASICs möglicherweise den größten Widerstand entgegensetzt und tatsächlich ein einzigartiges Merkmal dieses Algorithmus ist, ist seine virtuelle Maschine oder VM (Virtual Machine).
RandomX erledigt seine gesamte Kryptografie- und Mining-Arbeit in einer einfachen virtuellen Maschine, deren Zweck darin besteht: Isolieren Sie den gesamten Mining-Prozess in eine Reihe von Prozessen, die nach ihren eigenen Anweisungen und einer virtualisierten Architektur agieren.
Dadurch soll die Komplexität der Implementierung einer ASIC-Lösung auf ein noch nie dagewesenes Niveau gesteigert werden. Gleichzeitig wird die CPU-Implementierung vereinfacht und ermöglicht eine Anpassung an zukünftige Anforderungen. Diese virtuelle Maschine kann dank einer Reihe benutzerdefinierter Anweisungen vom Typ CISC ihre verschiedenen Aufgaben ausführen. Diese Funktion ermöglicht eine sehr einfache Kommunikation mit CPUs, die einen Befehlssatz desselben Typs verwenden. Im Gegensatz zu ASIC-Chips, die einen Befehlssatz vom Typ RISC verwenden, ist die CISC-Emulation über RISC rechenintensiv, was eine ASIC-Lösung für RandomX komplexer macht.
Das Ziel dieser virtuellen Maschine besteht darin, die für die Durchführung des RandomX-Arbeitsnachweises erforderliche Umgebung zu schaffen.. Um dies zu erreichen, erstellt diese VM einen zufälligen Arbeitsbereich (Arbeitsplatz im Speicher), hochverschlüsselt und voller Entropie (zufällige Daten, die später für den Arbeitsnachweis verwendet werden).
Sobald diese Bedingungen geschaffen sind, erhält die VM Anweisungen zum Starten der Mining-Programme. Jedes dieser Programme wird anhand der Zufallsdaten im Arbeitsbereich erstellt und ergibt ein einzigartiges Programm.
Dieses Programm wendet alle von der VM zugelassenen Prozesse an, um Mining durchzuführen. Das heißt, das Programm kann nur die von der VM zugelassenen Anweisungen ausführen (256 Anweisungen und 20 Register), mehr nicht. Zu diesem Zeitpunkt ist das, was in der RandomX-VM passiert, für den Rest des Computers praktisch unsichtbar, da in diesem gesamten Prozess Kryptografie zum Einsatz kommt.
Dieser Prozess der Erstellung zufälliger Programme für das Mining wird aufgerufen Dynamischer Arbeitsnachweis, und es ist das Schema, das RandomX genau an dieser Stelle verwendet. Dieses System kann folgendermaßen definiert werden:
- Zunächst wird das Zufallsprogramm generiert. Dies macht die VM beim Starten des Scratchpads und aller Programmelemente in einem ersten Arbeitszyklus.
- Dann ist die VM dafür verantwortlich, als Übersetzer zwischen der CPU und den Zufallsprogrammen zu fungieren. Zufällige Programme können nur die Anweisungen der VM verwenden, aber die VM übersetzt diese Aktionen in Maschinencode, der für die CPU verständlich ist. Auf diese Weise reagiert die CPU auf die Aktionen und die VM erhält die Antworten. Da die Anweisungen Kryptographie verwenden, ist die Optimierung sehr aufwendig.
- Schließlich erfolgt die Ausführung des Programms. An diesem Punkt ermöglicht die VM den Zugriff auf die CPU und ihre Fähigkeiten, ohne die Verbindung zum Zufallsprogramm zu verlieren. Dieser Punkt tritt unter sehr spezifischen und besonderen Bedingungen ein, die bereits im RandomX-Algorithmus programmiert sind. Tatsächlich führt jede Variation letztendlich zu ungültigen Daten, da dieser Prozess vollständig reproduzierbar ist.
Ohne Zweifel ist die RandomX-VM das komplexeste und am schwierigsten zu replizierende Element und daher ihre beste Karte im Vergleich zu ASICs.
Vor- und Nachteile des Algorithmus
Vorteile
- Es handelt sich um einen Algorithmus mit einem klaren Sicherheitsziel. Die Verwendung von AES, Blake2 und Argon2 macht diesen Algorithmus sehr sicher.
- Da er für CPUs konzipiert ist und über ASIC- und GPU-resistente Strukturen verfügt, kann dieser Algorithmus diese Hardware besser ausnutzen. Infolgedessen bietet RandomX eine bessere Leistung für CPU-Miner, sodass diese weiterhin mehr mit dem Monero-Mining verdienen können.
- Durch die ASIC-Resistenz können Blockchains, die RandomX verwenden, auf Mining-Ebene stärker dezentralisiert werden.
- RandomX ist ein Algorithmus, der über vier vollständige formale Prüfungen verfügt.
Contras
- Es ist komplex. Durch die Verwendung einer VM und Prozesszufälligkeit ist die Entwicklung und das Debuggen dieses Algorithmus wesentlich komplexer.
- Der Einsatz von VMs öffnet die Tür für seitliche Angriffe, die dazu genutzt werden können, das System zu zerstören und unter bestimmten Bedingungen zur Leistungsverbesserung genutzt werden können. Der Einsatz von Kryptographie im Scratchpad macht dies jedoch äußerst schwierig, weshalb viele glauben, dass dies unmöglich sei.
- Geräte mit 32-Bit-CPUs können den Algorithmus nicht korrekt nutzen.