In meiner verwandten Frage zu Mining-Algorithmen, die CPU und GPU ausgleichen, stellte sich heraus, dass ein solcher Algorithmus den Anreiz für Menschen, Mining-Botnets zu erstellen, enorm erhöhen würde. Die Aussicht auf einen 51-Prozent-Angriff durch ein Botnetz ist nicht gut.
Die von Bitcoin und verwandten Währungen typischerweise verwendeten Algorithmen haben jedoch immer noch das Problem, dass das ASIC-Mining so effizient sein kann, dass jemand, der einen ASIC entwickelt und ihn streng für sich behält, alle anderen übertreffen könnte. Dies könnte leicht einen 51%-Angriff eines gut finanzierten Gegners bedeuten.
Eine mögliche Lösung wäre ein Mining-Algorithmus, der auf CPUs ineffizient war, aber mit einem ASIC nicht signifikant (um Größenordnungen) effizienter gemacht werden konnte. Vielleicht ein Algorithmus, der eine moderate Menge an Speicher benötigt, der für eine GPU praktisch wäre, aber nicht sehr praktisch, um ihn auf einem ASIC zu lokalisieren. Vielleicht ein Algorithmus, der eine sehr große Anzahl von Gattern auf einem ASIC verbrauchen würde.
Kennt jemand Algorithmen, die die Anforderungen für das Mining erfüllen (leicht auf CPU-Hardware zu überprüfen), die Botnets nicht ermutigen, indem sie sehr effizient auf CPUs arbeiten, und gut finanzierte Gegner nicht dazu ermutigen, 51% -Angriffe zu starten, indem sie sehr effizient auf ASICs arbeiten? . Ein Algorithmus, der auf gängigen GPUs gut funktioniert, aber nicht einfach durch ASICs massiv beschleunigt werden kann, würde meiner Meinung nach ausreichen. Übersehe ich etwas?
Ihnen fehlen Botnets von GPUs .
Ehrlich gesagt glaube ich nicht, dass Botnets ein so großes Problem sind. Botnets sind erfolgreich, weil sie für die Opfer unsichtbar sind ( einige Trojaner enthalten sogar ein Antivirenprogramm, um das System zu säubern). Wenn ein infizierter Computer eine CPU-Auslastung von 100 % hat, bleibt er nicht lange infiziert. Der Diebstahl von Kreditkartendaten ist immer noch viel profitabler als der Betrieb eines lahmgelegten Mining-Botnetzes.
Ich würde also sagen, dass die Verschlüsselungsschlüssel- Ableitungsfunktion aus der Antwort von nealmcb auf Ihre andere Frage eine ziemlich gute Wahl ist.
Es gibt praktisch keinen festen Algorithmus, der in Rechenkomplexität und Speicherbedarf begrenzt ist, der nicht signifikant von einer optimierten, festen Gate- oder Transistorimplementierung in Form eines ASIC profitiert. Die einzige Frage ist: Wiegen die Vorteile hinsichtlich Leistung und Rechendichte gegenüber einer CPU/GPU die erheblichen NRE-Kosten auf, die mit der Herstellung eines solchen ASICs verbunden sind? Im Fall von Bitcoin sind wir der festen Überzeugung, dass die Antwort „Ja“ lautet und dass die Renditeperioden einer solchen Investition tatsächlich kürzer sind als die mit GPU-Mining verbundenen, insbesondere in großem Maßstab.
MBound würde gut funktionieren, da der schnellste Weg, es zu lösen, sehr viel Speicher benötigt - was es auf einer CPU am schnellsten macht, nicht auf einer GPU oder ASIC.
Zu speichergebundenen Funktionen zur Bekämpfung von Spam: http://research.microsoft.com/pubs/65154/crypto03.pdf
Colin Percival, der Autor von scrypt
, schätzt und vergleicht die Kosten für die Implementierung verschiedener Passwort-Hashing-Algorithmen in Hardware. Aus seinem Papier :
Wenn es für interaktive Anmeldungen verwendet wird, ist [scrypt] 35-mal teurer als bcrypt und 260-mal teurer als PBKDF2; und wenn es zur Dateiverschlüsselung verwendet wird – wo scrypt im Gegensatz zu bcrypt und PBKDF2 nicht nur mehr CPU-Zeit verbraucht, sondern auch die benötigte Die-Fläche erhöht – vergrößert scrypt seinen Vorsprung auf einen Faktor von 4000 gegenüber bcrypt und 20000 gegenüber PBKDF2.
Ich frage mich, ob der Algorithmus so modifiziert werden könnte, dass er auch für Hashes adaptiv mehr "Die-Fläche" benötigt. Zumindest könnte es den Preis für den Eintritt in benutzerdefinierte Schaltungen erhöhen, um nur die am besten finanzierten Angreifer zuzulassen.
Erklären Sie weiter, was @Andrew Jones gesagt hat:
Die Antwort lautet also nein.
Langfristige Lösung: Wie wäre es, einen kostengünstigen ASIC in Standardhardware zu integrieren, die jeder hat, wie z. B. seinen Netzwerkrouter oder sein Kabelmodem, wodurch die Gewinnung von 51 % der Hashing-Leistung durch eine einzelne Entität unerschwinglich wird?
Vielleicht ein Algorithmus, der eine moderate Menge an Speicher benötigt, der für eine GPU praktisch wäre, aber nicht sehr praktisch, um ihn auf einem ASIC zu lokalisieren.
Häufiges Missverständnis. Die meisten Fabs verfügen jetzt über Logic-in-DRAM-Prozesse ; Ein speicherbandbreitenintensiver Algorithmus wäre auf diesen Chips obszön schneller als auf einer GPU oder CPU, die große, langsame Kupferstifte und PCB-Leiterbahnen verwenden müssen, um zu den Speicherchips zu gelangen.
Ich bezweifle, dass Sie jemals die Art von Problem finden werden, nach der Sie suchen. CPUs und sogar GPUs zahlen einen hohen Preis, um Alleskönner zu sein; Wenn Ihre kryptografische Funktion nicht so etwas wie "Starten Sie eine virtuelle Maschine mit Windows 95 und führen Sie dieses MS-DOS-Programm darauf aus" ist, wird jemand einen Weg finden, sie effizienter zu machen, indem er den Teil der CPU/GPU wegwirft, den er nicht hat. nicht brauchen.
Abgesehen davon glaube ich nicht, dass ASICs jemals eine kostengünstige Methode zum Minen sein werden. Sie spielen nur eine Rolle, wenn Sie sich Sorgen um Unternehmen mit tiefen Taschen machen, die von etwas anderem motiviert sind, als sie tiefer zu machen ("nationale Sicherheit").
Wenn man eine Bibliothek von Proof-of-Work-Funktionen hätte, die grundlegend unterschiedliche Berechnungen durchführen, die unterschiedliche Algorithmen erfordern, die sowohl genetisch als auch zufällig ausgewählt sind, dann würden ASICs irrelevant werden. Dies würde jedoch einen vollständigen Neustart des Bitcoin erfordern. Es wird nicht gemacht. ASICs sind gekommen, um zu bleiben.
Der Fokus der Community sollte auf der Entwicklung von Open-Source-ASICs und der Sicherstellung ihrer gleichmäßigen Verteilung liegen. Am Ende bekommt alles seine eigene Hardware. Spieler haben zum Beispiel den GPU-Markt geschaffen.
Eyal