Ich war zufällig an der Entwicklung eines Mining-Mechanismus für Kryptowährung beteiligt, mit dem Sie verschiedene Hashing-Algorithmen zum Erstellen einer Blockchain verwenden können. Ziel ist es, Bergleuten mit allen Geräten (ASIC, GPU, CPU) die Unterstützung des Netzwerks zu ermöglichen und die gesamte mögliche Zielgruppe der Netzwerkteilnehmer abzudecken. In dem Artikel werde ich Ihnen sagen, zu welchen Ergebnissen wir über das Mining in Bitcoin und einigen anderen Kryptowährungen mithilfe von Hybrid Mining gekommen sind.

Abgesehen von der Tatsache, dass Bergbau belohnt wird und die Belohnung die Hauptquelle für die Ausgabe von Münzen in den meisten Kryptowährungen ist, besteht die wichtigste Funktion dieses Mechanismus darin, einen Konsens unter den Netzwerkteilnehmern zu erzielen. Der Konsens wird durch ein einfaches Gesetz sichergestellt - beim Verzweigen einer Blockchain (Gabel) wird die Kette als wahr angesehen, während deren Konstruktion die größte Anzahl von Hashes (Arbeiten) ausgeführt wurde.
Um Multi-Hybrid-Mining aufzubauen, müssen Sie zwei Probleme lösen - das Ziel für jeden der Algorithmen berechnen und einen Vergleichsmechanismus finden, der es Ihnen ermöglicht, das Schwierigste zu tun - Ketten zu vergleichen, die aus Blöcken mit unterschiedlichen Algorithmen bestehen und daher sehr unterschiedlich groß sind.
Multihybrid-Mining ist ein undefinierter Begriff. In dem Artikel wird er verwendet, um den Nachweis des Mining (POW) für mehrere Algorithmen zu bezeichnen. In den englisch- und russischsprachigen Kryptogemeinschaften lautet der allgemein akzeptierte Name Multi-PoW. Es wird am Beispiel der Verge-Kryptowährung
mit fünf Algorithmen betrachtet . Hybrid Mining ist ein allgemein anerkannter Begriff, der für Kryptowährungen unter Verwendung von POW und POS-Speicher (Proof of Deposit / Equity) verwendet wird. Wir werden es am Beispiel eines der Pioniere einer solchen Lösung betrachten - Novacoin.
Um den Mining-Mechanismus zu verstehen, müssen Sie die folgenden grundlegenden Konzepte in Kryptowährungen verstehen - Arbeit und Zweck (Ziel). Das Ziel ist ein numerischer Wert, der die Obergrenze von Hashes definiert, die zum Erstellen eines Blocks in einer Kette geeignet sind. Arbeit - statistisch die durchschnittliche Anzahl von Suchvorgängen, die erforderlich sind, um einen Hash eines kleineren oder gleichen Ziels zu finden.
Arbeite und ziele auf die FingerBetrachten Sie das Beispiel einer Rolle eines 20-seitigen D & D-Würfels. Wir werden die Würfel an jeden D & D-Spieler auf dem Planeten verteilen und ihn bitten, zu würfeln. Die Hälfte der Würfel hat Werte von 1 bis 10, die zweite von 11 bis 20. Angenommen, für das gewünschte Ereignis im Spiel sollte der Wert zwischen 1 und 10 liegen. Lassen Sie die Spieler weiter würfeln, bis alle den gewünschten Wert werfen. Mit jedem Wurf halbiert sich die Anzahl der verbleibenden Spieler und es stellt sich heraus, dass die durchschnittliche Anzahl der Würfelwürfe pro Spieler nach der folgenden Formel berechnet wird:
o p e r a t o r n a m e c o u n tw i r f t = f r a c o p e r a t o r n a m e C o u n t möglicheWerte operatornamecountgeeigneteWerte
Angenommen, 500 Millionen spielen auf dem Planeten, müssen die „glücklichsten“ Spieler etwa 29 Mal würfeln, aber die durchschnittliche Anzahl der Schüsse pro Spieler beträgt 2. Die Anzahl der Würfe in der Formel ist identisch mit der Anzahl der Hash-Generierungsakte und entspricht der Arbeit. Dementsprechend ist die Anzahl geeigneter Hashwerte gleich dem Zielwert + 1. Die vollständige Formel für das Arbeiten mit 256-Bit-Hashes lautet:
w o r k = f r a c 2 256 t a r g e t + 1
Bitcoin verwendet es genau und der Code, der diese Formel verwendet, ist
hier . Und
hier wird Arbeit verwendet, um einen Konsens zu erzielen - Blockchain-Gabeln zu vergleichen und die beste Kette auszuwählen.
Das Hauptziel des Ziels besteht darin, einen solchen Wert einzustellen, dass die Blockfreigabezeit in einem bestimmten Zeitintervall auftritt. Bei Bitcoin beträgt das Intervall 10 Minuten. Die Zielnachzählung in Bitcoin erfolgt alle 2016 Blöcke. Um ein neues Ziel festzulegen, ermittelt Bitcoin die durchschnittliche Hash-Rate - den Umfang der Netzwerkarbeit pro Zeiteinheit für die vorherigen 2016-Blöcke. Berechnet die erwartete Arbeit in 10 Minuten und legt ein Ziel dafür fest und legt den Wert für die nächsten Blöcke 2016 fest. Für Bitcoin wird die
Berechnung des Ziels im Hinblick auf die Gleichheit des Ziels (und damit der Arbeit) der vorherigen 2016-Blöcke nach Reduzierungen und Annäherungen in einer ziemlich einfachen Formel angegeben.
targetnew= frac2256worknext−1= frac225610min cdothashrateaver−1= frac2256 frac10min cdotwork2016time2016−1=
= frac2256 cdottime201610min cdot2016 cdot frac2256targetprev+1−1= fractime2016 cdot left(targetprev+1 right)10min cdot2016−1 approx fractime2016 cdottargetprev10min cdot2016
Zusätzlich zu Kryptowährungen wird die Aufgabe von Ziel, Arbeit und Hash-Rate (Geschwindigkeit der Hash-Generierung) durch
Pools gelöst. Der Pool kennt den direkten Hashwert eines einzelnen Bergmanns nicht. Das Abrufen aller Hashes ist aufgrund von Bandbreitenbeschränkungen unmöglich und sinnlos. Die Überprüfung auf Hashes entspricht dem Mining. Der Pool empfängt Antworten von Bergleuten mit einem Ziel, das nicht ausreicht, um einen Block zu bilden, bestimmt den Anteil des Bergmanns am Pool, hashrate und legt ein solches Ziel für jeden Bergmann fest, sodass die Antworten von ihnen nicht den gesamten Datenverkehr beanspruchen.
Wirf eine Grafik mit
12 facettierten Würfeln eines Spielers mit einer Hashrate von 1 Wurf / Sek. In 100 Sekunden. Jeder Punkt ist der Wert der gezeichneten Fläche, die rechte Y-Achse ist die Anzahl der Werte, die in das Ziel gefallen sind. Es ist zu sehen, dass 20 Schüsse in Ziel 2 fallen - Würfe mit einem Wert von 1 und 2 sind geeignet. Die Bewertung der Arbeit beträgt 20 * 12/2 = 120 Schüsse, bei Ziel 6 beträgt die Arbeit 53 * 12/2 = 106. Die verwendete Haupteigenschaft ist für jede Ziel unter der Bedingung ausreichender Statistiken erhalten nahe am genauen Wert der Arbeit und Hashrate des Teilnehmers.
Eine Kryptowährung mit mehreren Algorithmen, wie z. B. ein Pool, sollte den Hash des Teilnehmeralgorithmus auswerten und ein Ziel auswählen, das das gewünschte Zeitintervall zwischen den Blöcken bereitstellt. Der korrekte Zielberechnungsmechanismus sollte zusätzlich zum Intervall die richtigen Anteile verschiedener Blöcke in der Blockchain bereitstellen.
Es lohnt sich, einen Exkurs in die Geschichte zu machen, um die Merkmale der Berechnung des Ziels in Kryptowährungen zu verstehen, die nach Bitcoin gestartet wurden. In den alten Tagen des Schneidens nahmen die tapferen Pioniere des Altcoinstruction den Bitcoin-Code, nahmen nur minimale Änderungen vor und starteten den „Bitcoin-Killer“. Es gab sogar Online-Generatoren für neue Altcoin-Code-Repositories. Dieser Ansatz führte zu einer Reihe von Problemen, von denen eines die Berechnung des Ziels betraf und im folgenden Szenario auftrat. Ein Miner, dessen Hash-Rate signifikant höher war als die der anderen Teilnehmer, war mit Cryptocurrency Mining verbunden. Da das Ziel selten nachgezählt wurde, erstellte ein solcher Bergmann Blöcke mit einem sehr kurzen Intervall und schaffte es, in wenigen Stunden eine wöchentliche Anzahl von Blöcken zu erstellen und dementsprechend eine wöchentliche Belohnung zu sammeln. Bei Erreichen des Blocks, auf dem das Ziel neu berechnet wurde, ging der Bergmann zu einer anderen Altmünze mit einer geeigneten Hash-Rate. Mit dem erhöhten Ziel konnten die verbleibenden Bergleute nicht zu einem angemessenen Zeitpunkt einen Block generieren, ganz zu schweigen von der Generierung aller Blöcke vor der neuen Neuberechnung des Ziels und dem Verlassen der Altmünze. Die Blockchain-Münzen hörten schließlich auf. Die Hauptlösung für dieses Problem bestand darin, das Ziel jedes Blocks neu zu berechnen.
Auf den ersten Blick unterscheidet sich die
Berechnung des Ziels in Novacoin nicht wesentlich von der Berechnung in Bitcoin. Novacoin hat die Berechnung von POS und POW korrekt getrennt. Die endgültige Formel zur Berechnung des Ziels von POS-Blöcken in Novacoin lautet wie folgt
targetnew=targetlast cdot frac7Tage−10Minuten+2 cdotZeitpos intrerval7Tage+10Minuten
Dies ist völlig sinnlos im Vergleich zur Berechnung des durchschnittlichen Bitcoin-Hash und der Prognose darauf. Alle Statistiken in dieser Formel sind indirekt beteiligt. Trotzdem wird der vorherige Zielwert als Ergebnis der vorherigen Ergebnisse in der Blockchain berechnet. Der Mechanismus als Ganzes ähnelt dem Einhalten eines Abstands mit einem Auto, das Intervall beträgt weniger als 10 Minuten - wir lassen das Gaspedal los, mehr - wir drücken.
Die Berechnung der Kriegsgefangenschaft ist nahezu identisch, mit der Ausnahme, dass Novacoin eine unterschiedliche Häufigkeit für die Kriegsgefangenen- und POS-Blöcke angibt und diese in Intervallen von 10 Minuten bis 30 Minuten abhängig von der Position in der Blockchain berechnet wird. Sie können sehen, dass das Ziel gültig bleibt, wenn das Netzwerk seinen POW- oder POS-Hash stark verliert, bis ein neuer Block auf dem Mining-Mechanismus angezeigt wird, der die Stromversorgung verloren hat.
Die Zielberechnung in Verge verwendet den Dark Gravity Wave-Mechanismus, der eine Weiterentwicklung der Ideen von Kimoto Gravity Well darstellt. Ohne auf die Mathematik all dieser Methoden einzugehen, besteht das Ziel dieser zweifellos poetisch benannten Mechanismen darin, die Konvertierung des Ziels schnell genug sicherzustellen, um auf Änderungen der Netzwerk-Hash-Rate zu reagieren. Trotz
einiger Einfallsreichtum des Codes besteht seine Mathematik aus ziemlich einfachen Formeln. Verge berechnet das durchschnittliche Ziel von 12 Blöcken des ausgewählten Algorithmus, bei dem der letzte Block zweimal gezählt wird:
targetaver= frac2 cdottargetlast+targetlast−1+...+targetlast−1113
Die Frage, die sich unmittelbar nach der Legitimität der Hinzufügung des Ziels stellt, hat jedoch eine mathematische Rechtfertigung. Das resultierende Ziel ist ein Ziel für harmonische mittlere Arbeit.
frac13 cdot(targetaver+1)2256= frac2 cdot(targetlast+1)2256+ fractargetlast−1+12256+...+ fractargetlast−11+12256
Der Rest der Berechnungen stimmt genau mit der Berechnung durch die durchschnittliche Hash-Rate für Bitcoin überein.
targetnew approx fractime12 cdottargetaver0.5min cdot5 cdot12
Es ist anzumerken, dass die Hashrate in Verge aus der durchschnittlichen harmonischen Arbeit und der arithmetischen mittleren Zeit berechnet wird. Infolgedessen hätte die
Ungleichung der Mittel einen niedrigeren Wert, wenn Zeit und Arbeit mit denselben Mitteln genommen würden.
Die Mathematik zur Berechnung des Ziels in Projekten mit gemischten Beweisen / Algorithmen unterscheidet sich deutlich vom Original in Bitcoin. Die zweite Seite der Medaille des Zielmechanismus und der Arbeit ist die Lösung des Konsensproblems - die Definition des Blockchain-Zweigs, der im Streitfall als der wahre angesehen wird. Das grundlegende Problem für gemischte Blockketten ist die Unmöglichkeit der Wahl, wenn der Vergleich der Arbeitssummen von Blöcken für alle Algorithmen / Beweise verwendet wird. Offensichtlich dominieren Algorithmen / Beweise, die von Natur aus eine höhere Hashrate mit einer solchen primitiven Logik aufweisen, die Blockchain.
In Novacoin erweist sich eine detaillierte Analyse der Logik trotz der Verwendung einer bestimmten Vertrauensbewertung in Kommentaren und der Benennung von Variablen als nichts anderes als ein Job.
Die Berechnung für POS stimmt genau mit der Arbeitsformel überein, und die
Berechnung für POW kann als Arbeit mit einem abnehmenden konstanten
Koeffizienten betrachtet werden . Der Rest der zusätzlichen Berechnungen sieht aus wie eine zusätzliche Ausgleichsreihenfolge von Blöcken zum Zielmechanismus. Es ist zu beachten, dass dies nicht die beste Lösung ist. Wie später gezeigt wird, reicht nur ein Ziel aus, um Blöcke auszugleichen. Darüber hinaus können POS- und POW-Blöcke mit einem gemeinsamen Elternteil ungleich sein, obwohl die Tatsache, dass gültige Blöcke mit einem gemeinsamen Elternteil angezeigt werden, als ihre Gleichheit definiert werden sollte.
Bevor Verge den aktuellen Stand des Konsensmechanismus betrachtet, wird er informativ sein, um seine Vergangenheit zu untersuchen. Im Frühjahr 2018 überlebte Verge mehrere Angriffe. Ohne auf Details der Angriffsmechanik einzugehen, enthält der damalige
Code , der für die Auswahl einer Gabel verantwortlich war, zweifelhafte Logik. Unter der Annahme, dass die Funktion IsProofOfStake () in der POW-Kryptowährung den wahren Wert zurückgeben kann, führt das Hinzufügen verschiedener Algorithmen, wie oben gezeigt, zur Dominanz eines Algorithmus mit einer höheren Hashrate. Andernfalls wird die Auswahl einfach anhand der Länge der Kette getroffen, was bei einem korrekt berechneten Ziel (dessen Zweck das einheitliche Erscheinungsbild von Blöcken ist) zur Gleichheit von Zweigen mit sehr unterschiedlichen tatsächlich ausgeführten Arbeiten führen kann.
Im
aktuellen Code verwendet
Verge zum Vergleich konstante
Koeffizienten . Unter der Annahme, dass diese Koeffizienten eine gewisse Relevanz der Kapazitäten der Bergbaumaschinen berücksichtigen, ist die offensichtliche Schwäche dieser Wahl der Verlust der Relevanz, wenn neue Anlagen auftreten.
Die nativen Eigenschaften der Zielmathematik und -arbeit ermöglichen es uns, einfachere und verständlichere Berechnungsmodelle für die Blockchain zu erstellen. Stellen Sie sich ein Modell und einen
Code vor, die eine Zielberechnung für eine Blockchain mit vier Algorithmen emulieren. Lassen Sie zwei von ihnen ein Drittel der Blöcke besetzen. Zur Vereinfachung der Modellierung können wir davon ausgehen, dass der Block mit dem kleinsten Intervall vom vorherigen der beste zum Aufbau einer Schaltung ist. In realen Kryptowährungen entspricht eine solche Auswahl dem häufigsten Szenario. Das Modell testet auch die Zunahme und Abnahme der Hash-Rate eines der Algorithmen.
Die Berechnung des Ziels wird aus dem arithmetischen Durchschnitt von Arbeit und Zeit in der Statistik der letzten 300 Blöcke berechnet. Die endgültige Berechnungsformel:
target= frac2256k cdot60 cdothashrateaver−1
Dabei ist k die Anzahl der Intervalle, für die ein Block des Algorithmus sein soll, für den das Ziel berechnet wird.
Fassen wir in der Tabelle die anfänglichen und berechneten Werte für 10.000 Blöcke zusammen.
Ich möchte darauf hinweisen, dass der berechnete Wert der Schaltung nach folgender Formel berechnet wird:
workalgo=hashratealgo cdottimeallblock
Die Berechnung von Hashes im Netzwerk erfolgt über die Zeit von Blöcken aller Algorithmen und nicht nur in Intervallen einzelner Algorithmen. Wie im Beispiel mit einem zwanzigseitigen Würfel ist die Bewertung der Arbeit unabhängig vom ausgewählten Ziel gleich. Für Berechnungen ist es notwendig, dies durch einen Koeffizienten k zu berücksichtigen, um das Ziel eines neuen Blocks durch eine Hash-Rate zu berechnen, und es die ganze Zeit zu nehmen, um die Arbeit zu berechnen.
Wie Sie sehen können, stimmen die
Emulationsergebnisse recht gut mit der Berechnung anhand der Quelldaten überein.
Blockdiagramm 3850-4650
Blockdiagramm 5599-6399In den Diagrammen der zeitlichen Änderung der Arbeit ist zu sehen, wie die Dichte der Blöcke zunimmt und abnimmt, wenn sich die Hash-Rate ändert. Im Prinzip ist dies ein logisches und logisches Verhalten, aber es ist auch durchaus angebracht, es mit Techniken wie der Dunklen Gravitationswelle zu regulieren, um den Einfluss der letzten Blöcke und anderer zu erhöhen.
In Bezug auf die Frage der Bestimmung des Konsenses von Gabeln aus Blöcken mit unterschiedlichen Algorithmen ist die folgende grundlegende Eigenschaft zu beachten: Blöcke mit einem gemeinsamen vorherigen Block sind einander äquivalent. Ihre Ziele und Leistungsbeurteilungen geben gleiche Rechte, um einen Platz in der Kette einzunehmen. Diese Beobachtung führt sofort zu der Idee, Äquivalenz zu verwenden - unter Verwendung des Arbeitsaufwands, der vom Verhältnis der Ziele abweichenden Koeffizienten usw. Ohne Berücksichtigung der Mängel all dieser Ideen werden wir zu der Methode übergehen, die die Anforderungen der Blockchain am vollständigsten erfüllt.
Wenn wir die geometrischen mittleren Vorhersagen der Arbeit aller Blockalgorithmen berücksichtigen, ist die Summe solcher äquivalenten Jobs das beste Merkmal für den Vergleich von Gabeln.
workgleich= sqrt[k1]workalgo1 cdot sqrt[k2]workalgo2 cdot... cdot sqrt[kn]workalgon
Dabei ist k die Anzahl der Intervalle, über die ein Block des Algorithmus fallen muss, für die das Ziel berechnet wird.
Eine solche äquivalente Arbeit hat die folgenden Eigenschaften:
- Wenn die Hash-Rate aller Algorithmen n-mal geändert wird, ändert sich auch die Kettenkonsensschätzung n-mal
- Durch Erhöhen der Hashrate eines der Algorithmen und Verringern der anderen n-fachen bei gleichen Anteilen am Bergbau wird die Konsensschätzung der Kette gleich sein
- Bei gleichen Anteilen von Algorithmen und gleichen Hash-Raten dieser Algorithmen sind die äquivalente Operation und die Operation eines beliebigen Algorithmus gleich
Der äquivalente Operationsmechanismus erschwert den Angriff 51 auf die Blockchain erheblich. Mit der Formel für gleichwertige Arbeit, ausgedrückt durch eine Hash-Rate, können Sie die für einen Angriff erforderliche Leistung abschätzen.
workgleich= sqrt[k1]k1 cdott cdothashratealgo1 cdot sqrt[k2]k2 cdott cdothashratealgo2 cdot... cdot sqrt[kn]kn cdott cdothashratealgon
Wenn der Angreifer beschließt, den Angriff gemäß einem der Algorithmen auszuführen, und den Rest nicht berechnen kann, muss die erforderliche Hashrate die Netzwerk-Hashrate erheblich überschreiten.
Bei einer Angriffstabelle beträgt die Zeit zwischen den Blöcken beispielsweise 60. Angenommen, ein Angreifer kann in drei Algorithmen nur 50% der Hashrate bereitstellen.
Um die Gleichheit mit dem Netzwerk zu erreichen, muss er nach dem ersten Algorithmus eine viermal höhere Hash-Rate als die Netzwerk-Hash-Rate haben.
Das folgende Diagramm zeigt das Ergebnis der
Emulation eines Angriffs auf eine Blockchain.

Der Angriff beginnt auf Block 1000.
Die Summe der äquivalenten Jobs in der Emulation für beide Zweige unterscheidet sich geringfügig und zeigt die Gleichheit der Zweige.
Zusammenfassend kann festgestellt werden, dass Konsensmechanismen in Kryptowährungen mit gemischten Algorithmen / Beweisen mathematisch gerechtfertigt sein können und solche Kryptowährungen schwieriger anzugreifen sind 51.
Wir wünschen allen eine schöne Blockchain und bedanken uns für Ihre Aufmerksamkeit für das Thema.