Münzen auf SHA256. Was ist der Bitcoin-Verschlüsselungsalgorithmus? Schwächen und Stärken des Bitcoin-Hashing-Algorithmus

Die Hashing-Funktion SHA 256 bildete die Grundlage der allerersten Kryptowährung der Welt – Bitcoin und vielen Altcoins. Wussten Sie, dass es lange vor dem Aufkommen der Kryptowährungen geschaffen wurde und für ganz andere Zwecke gedacht war? Heute werfen wir einen Blick auf die Geschichte des Algorithmus, das Funktionsprinzip, aktuelle Probleme und welche Kryptowährungen SHA256 verwenden.

Geschichte

Der Name des Algorithmus SHA 256 ist ein Akronym für Secure Hashing Algorithm. So nannte es der Entwickler – die US National Security Agency. Der Algorithmus ist eine Hashing-Funktion. Dies bedeutet, dass es sich bei der Eingabe um eine Datenmenge beliebiger Länge und bei der Ausgabe um einen Satz von Zeichen fester Länge handelt, der als Hash bezeichnet wird.

Eines der Hauptmerkmale von Hash-Hashing-Funktionen ist die Irreversibilität. Wir können den Hash erhalten, indem wir die Originaldaten durch die Funktion übergeben, aber wenn wir den Hash kennen, können wir die Originaldaten nicht erhalten. Dank dieser Eigenschaft hat sich die Funktion in verschiedenen Diensten und Anwendungen verbreitet, bei denen Datenschutz erforderlich ist. Jeden Tag verwenden wir beim Besuch von Seiten im Internet den SHA 256-Algorithmus. Es enthält ein SSL-Sicherheitszertifikat, das zum Aufbau einer sicheren Verbindung zur Site erforderlich ist.


Der Algorithmus ist Teil der SHA-2-Familie, die auf Basis des 1995 erschienenen SHA-1 entwickelt wurde. Seit seiner Einführung wurde sha256 mithilfe von Kryptoanalyse ausgiebig auf seine Stärke getestet. Die Kryptoanalyse testet die Widerstandsfähigkeit von Hash-Funktionen gegenüber zwei Hauptangriffsarten:
  • Kollisionen finden – identische Hashes mit unterschiedlichen Eingabeparametern erkennen. Die Erfolgsquote dieses Angriffs beeinträchtigt die Sicherheit der digitalen Signatur unter Verwendung des aktuellen Algorithmus.
  • Das Finden eines Vorbildes ist die Möglichkeit, die ursprüngliche Nachricht mithilfe ihres Hashs zu entschlüsseln. Dieser Angriff gefährdet die Sicherheit der Speicherung von Authentifizierungskennwort-Hashes.

Die Analyse wurde erstmals im Jahr 2003 getestet, allerdings wurden damals keine Schwachstellen gefunden. Mit der Zeit entwickelte sich die Rechenleistung. Im Jahr 2008 wurden Kollisionen für die Iterationen SHA-512 und SHA-256 festgestellt. Im September desselben Jahres wurde eine Methode zur Kollisionserzeugung für 31 Iterationen von SHA256 und 27 Iterationen von SHA-512 entwickelt.

Offensichtlich ist es an der Zeit, eine neue kryptoresistente Funktion zu entwickeln. Im Jahr 2012 erfand die NSA SHA-3. Nach und nach wird der aktualisierte Algorithmus seine weniger kryptoresistenten Vorgänger verdrängen.

Bergbau auf SHA 256

Das US-amerikanische Recht erlaubt die Verwendung von SHA und ähnlichen Hash-Funktionen als Teil anderer Protokolle und Algorithmen in bestimmten nicht geheimen Indes Bundes. SHA-2 kann von privaten und kommerziellen Organisationen verwendet werden.

Es ist keine Überraschung, dass es in Kryptowährungen verwendet wurde. Miner sammeln alle Transaktionen in einem Block und beginnen dann mit dem Hashing. Wenn ein Hash-Wert gefunden wird, der den Systemregeln entspricht, gilt der Block als bereit, an das Ende der Blockchain angehängt zu werden. Der neue Block wird von jemandem gefunden, der sehr schnell Hashwerte berechnen kann. Die Geschwindigkeit der Berechnungen hängt von der Leistung der Ausrüstung ab. Zum Bitcoin-Mining können drei Arten von Geräten verwendet werden:

  • CPU (Zentraleinheit);
  • GPU (Grafikkarten);
  • ASIC (anwendungsspezifisches Gerät).

Das Bitcoin-Netzwerk ist so konzipiert, dass jeder neue Block alle 10 Minuten einmal gefunden werden muss. Die Anzahl der Netzwerkteilnehmer ändert sich ständig, die Zeit muss jedoch konstant bleiben. Um gleiche Verweilzeiten zu gewährleisten, passt das System die Rechenschwierigkeit abhängig von der Anzahl der Miner an. Kryptowährungen haben in letzter Zeit an Popularität gewonnen und die Zahl der Miner ist stark gestiegen. Um zu verhindern, dass Blöcke zu schnell gefunden werden, nahm auch die Komplexität der Berechnungen zu.


Bitcoin wurde auf Prozessoren abgebaut. Als ihre Leistung dann nicht mehr ausreichte, wechselten sie zu Grafikkarten. Bald kamen die Grafikkarten nicht mehr zurecht. Dann wurden ASICs erfunden – spezielle Geräte für Berechnungen mit dem SHA 256-Algorithmus. Ein ASIC ist viel leistungsfähiger und energieeffizienter als mehrere Grafikkarten.

Unternehmungslustige Bergleute erschaffen riesige Farmen aus ASICs. Zusätzlich zu den hohen Kosten für die Ausrüstung selbst fallen für einen solchen Bauernhof jeden Monat Stromrechnungen in Höhe von mehreren Zehntausend Dollar an. Jetzt macht Bitcoin-Mining nur auf solchen Industriebetrieben Sinn; ein Heimcomputer oder sogar ein Bauernhof mit mehreren Grafikkarten wird nicht in der Lage sein, mit ihnen zu konkurrieren und nicht einmal den Strom zurückzugewinnen.

Dies lässt sich jedoch leicht berechnen. Es gibt Rechner zur Berechnung der Rentabilität des Minings auf sha256. Zum Beispiel https://www.coinwarz.com/miningprofitability/sha-256. Geben Sie die Hashrate Ihrer Ausrüstung (Rechenleistung), den Energieverbrauch und deren Kosten in das Formular ein, der Dienst berechnet Ihren Gewinn.

Altcoins SHA-256

Schauen wir uns die Liste und Liste der Kryptowährungen an, die auf SHA 256 funktionieren.

Bitcoin Cash (BCH)

Am 1. August 2017 von dieser getrennt. Die Blockgröße im klassischen Bitcoin beträgt 1 MB. Das Netzwerk ist so stark gewachsen, dass nicht mehr alle Transaktionen in einen Block passen. Dies führte zur Bildung von Transaktionsschlangen und zu einer Erhöhung der Gebühren für Zahlungen. Die Community beschloss, ein neues Protokoll einzuführen, wonach der Block auf 2 MB erhöht wurde, einige Informationen außerhalb der Blockchain gespeichert wurden und der Zeitrahmen für die Neuberechnung der Komplexität von zwei Wochen auf einen Tag verkürzt wurde.

Namecoin (NMC)

Dabei handelt es sich um ein auf der Bitcoin-Technologie basierendes System zur Speicherung und Übertragung von Name-Wert-Kombinationen. Seine bekannteste Anwendung ist das Domain-Namen-Verteilungssystem, das unabhängig von ICANN ist und daher eine Domain-Rücknahme unmöglich macht. Namecoin wurde 2011 eingeführt und läuft auf einer Bitcoin-Mining-Software, die an den Server weitergeleitet wird, auf dem Namecoin ausgeführt wird.

DigiByte (DGB)

Eine Kryptowährung, die 2013 mit dem Ziel eingeführt wurde, die Leistung von Bitcoin und Litecoin zu verbessern. DigiByte-Unterschiede:

  • Aufgrund der großen Anzahl ausgegebener Münzen (bis zu 21 Milliarden) wird eine geringe Volatilität erreicht, was deren niedrige Kosten und einfache Verwendung bei Berechnungen gewährleistet;
  • Schnellere Transaktionen durch Verdoppelung der Blockgröße alle zwei Jahre;
  • Niedrige oder keine Provisionen;
  • Der Mining-Prozess ist in fünf Algorithmen unterteilt, die es Ihnen ermöglichen, unabhängig voneinander Münzen zu schürfen. Sie können ASICs für SHA-256 und Scrypt, Grafikkarten für Groestl und Skein und einen Prozessor für Qubit verwenden.

Der SHA 256-Algorithmus ist der am weitesten verbreitete Algorithmus unter den Kryptowährungen. Dies war auf die Beliebtheit und den Erfolg von Bitcoin sowie auf den Wunsch der Altcoin-Entwickler zurückzuführen, ähnliche Münzen zu schaffen. Die zunehmende Rechenkomplexität veranlasste Bergleute dazu, nach Möglichkeiten für einen effizienteren Abbau zu suchen, was zur Entstehung von ASICs führte.


Die Bitcoin-Verschlüsselung basiert auf SHA-256, einem speziellen Algorithmus, der Teil des Programmcodes ist. Seine Aufgabe besteht darin, die Eingabedaten in einen bestimmten Zeichensatz (in alphabetischer und numerischer Darstellung) umzuwandeln und die Informationen zu schützen. Solche Aktionen werden Hashing genannt. Was sind die Feinheiten dieses Algorithmus? Warum wird es benötigt und wie funktioniert es? Was sind die Vor- und Nachteile? Wir werden diese und eine Reihe weiterer Punkte im Detail betrachten.

Über welchen Verschlüsselungsalgorithmus verfügt Bitcoin und wo wird er verwendet?

Bei der Erörterung von Kryptowährungen, den Merkmalen ihrer Funktionsweise und ihres Minings stoßen Teilnehmer des Krypto-Netzwerks unweigerlich auf eine so weit verbreitete Definition wie den Bitcoin-Verschlüsselungsalgorithmus. Seit der Entwicklung von BTC bis heute (13. August 2018) wird SHA-256 verwendet, das zur Lösung folgender Probleme im Bitcoin-Netzwerk erforderlich ist:

  1. Bildung von BTC-Adressen (für Transaktionen verwendet).
  2. Bergbau (Arbeitsnachweis).
  3. Erreichen des erforderlichen Maßes an Sicherheit und Anonymität.
  4. Für die digitale Signatur und deren Erkennung.
Der SHA-256-Algorithmus ist nicht nur für Bitcoin relevant, sondern auch für andere Münzen, nämlich Bitcoin Cash, Mazacoin, Peercoin, Namecoin und andere Kryptowährungen. Darüber hinaus wird SHA-2 (die Basis von SHA-256) zur Erstellung vieler Protokolle zum Schutz von Daten im Internet verwendet, nämlich SSL, TSL und andere.

Der Bitcoin-Hashing-Algorithmus ist notwendig, um Informationen durch seine Analyse und rechtzeitige Identifizierung von Ungenauigkeiten zu kontrollieren. Sobald die Daten verarbeitet und in einen Hash umgewandelt wurden, ist es unmöglich, die Informationen wiederherzustellen. Wenn Sie eine bereits verschlüsselte BTC-Datei nehmen, die Berechnungen erneut durchführen und sicherstellen, dass die Hash-Parameter identisch sind, können Sie sicher sein, dass keine Änderungen an den ursprünglichen Informationen vorgenommen werden. Weichen die Daten voneinander ab, deutet dies auf einen Systemhack hin.

Bitcoin-Verschlüsselungsalgorithmus – wie er in einfachen Worten funktioniert


SHA-2 basiert auf dem von Merkle und Damgaard erstellten Framework. Die Besonderheit der in der Kryptographie verwendeten Hash-Funktion ist der nicht standardmäßige Ansatz zu ihrer Bildung. Die eingehenden Daten werden in Blöcke gleicher Größe unterteilt, wonach die erstellten Elemente in Hexadezimalzahlen umgewandelt werden. Mit ihnen werden anschließend Berechnungen durchgeführt. Auf den resultierenden Wert wird eine Hash-Funktion angewendet, und das Ergebnis der Verarbeitung ist die Hash-Summe, die in der Ausgabe erscheint. Es handelt sich um eine Reihe von Zeichen, die in alphabetischer und numerischer Darstellung dargestellt werden. Im Wesentlichen handelt es sich hierbei um einen Hash.

Der nächste Block wird nach dem oben beschriebenen Prinzip aufgebaut. In diesem Fall wird nach der Erstellung des vorherigen Elements ein neuer Prozess gestartet. Wenn Änderungen an den Originaldaten vorgenommen werden, ändert sich der Hash. Für den Fall, dass plötzlich identische Hash-Funktionsparameter in verschiedenen Blöcken auftauchen, kommt es zu einer Konfliktsituation bei der Funktionsweise des Algorithmus. Wenn eine solche Diskrepanz auftritt, wird die gesamte Blockchain-Kette in Frage gestellt.

Daher wird eine Hash-Funktion verwendet, um eine digitale Signatur zu erstellen. Tritt die oben beschriebene Situation ein, besteht eine hohe Wahrscheinlichkeit einer Signaturfälschung. Um solche Fehler (Kollisionen) zu berechnen, wird eine spezielle Technik verwendet, bei der die Daten aufgezählt werden, was die Stärke der Hash-Funktion erhöht.

Die Korrektheit der Bitcoin-Verschlüsselung wird durch vier Anforderungen kontrolliert:

  1. Wenn Sie Änderungen an den eingehenden Daten vornehmen, bleibt die Hash-Menge gleich.
  2. Beim Hashing wird eine individuelle Hash-Summe ermittelt (der Zeichensatz muss eindeutig sein).
  3. Die Schlüsselerstellung mittels Hashing ist äußerst kompliziert.
  4. Hashes sind irreversibel. Dies bedeutet, dass die Arbeit mit Eingabedaten ohne die Möglichkeit einer umgekehrten Aktion zulässig ist.

Wie trifft das auf Bitcoin zu?

Die Aufgabe der Knoten des Kryptowährungsnetzwerks besteht darin, aus zahlreichen Transaktionen eine zu finden, die in jeder Hinsicht zu ihnen passt. Bei der Bewertung von Optionen wird zunächst auf die Höhe der Provision geachtet (aus diesem Grund werden Transaktionen mit einer höheren Provision übrigens schneller abgeschlossen). Anschließend wird der Vorgang überprüft, die Ein- und Ausgabedaten untersucht und die Originalität der digitalen Signatur geklärt.

Sobald die betrachtete Arbeit abgeschlossen ist, wird das nächste Element der Bitcoin-Kette (Block) mit einer bestimmten Größe (für die jeweilige Kryptowährung - 1 Megabyte) erstellt. Die resultierenden Knoten bestehen aus der Version, der Entstehungszeit, zwei Hashes (vergangener Block und eingehende Transaktionen) sowie zusätzlichen Parametern, die die Eindeutigkeit gewährleisten (Bits und Nonce). Im Komplex wird der erstellte Block viele Male gehasht, was zur Bildung eines Head-Hash führt, der als Ausgabe für das „alte“ Element der Kette und als Eingabe für das neue Element fungiert.

Nehmen wir an, dass der Hash-Satz eine bestimmte Zahl „0“ enthält (die Nonce ist beispielsweise 17). Es ist äußerst schwierig, einen solchen Wert nur durch Aufzählung von Werten auszuwählen. Dieser Aspekt gewährleistet die Zuverlässigkeit der Informationen im Blockchain-Netzwerk und ihren Schutz vor Hackerangriffen. Um einen Hash zu erstellen, ist eine enorme Leistung erforderlich, ohne die es unmöglich ist, den erforderlichen Zeichensatz zu finden. Sobald diese Arbeit abgeschlossen und der Parameter gefunden ist, wird er mit dem neu erstellten Block und dem gefundenen Hash mit 17 „0en“ an die Elemente des Kryptonetzwerks gesendet. Als nächstes überprüfen alle Teilnehmer des Bitcoin-Netzwerks den Hash und kombinieren den Zeichensatz mit Informationen aus dem Block. Kommt es zu keiner Kollision, erscheint ein neues Element in der Blockchain-Kette.

Wann erschien der Bitcoin-Verschlüsselungsalgorithmus – eine kurze Geschichte


Der Begriff „SHA“ ist eine Abkürzung aus drei Wörtern: „Secure Hashing Algorithm“. Bitcoin verwendet SHA-256 und die „Basis“ der genannten Hash-Funktion ist SHA-2, das viele Kryptoalgorithmen (einschließlich 256) umfasst.

Der Erfinder von SHA-2 ist die US-amerikanische NSA, eine Sonderbehörde, die sich mit Fragen der nationalen Sicherheit des Landes befasst. Nachdem der Algorithmus entwickelt und getestet worden war, wurde er 2002 der Öffentlichkeit zugänglich gemacht. Der neue SHA-2 enthielt auch die erste Hash-Funktion SHA-1 (7 Jahre zuvor erstellt – 1995). Seit der Einführung von SHA-2 wurden viele Varianten des Algorithmus veröffentlicht, von denen eine von Satoshi Nakamoto bei der Entwicklung von Bitcoin im Jahr 2009 verwendet wurde.

Ziel der Entwickler war es, einen Algorithmus zu veröffentlichen, der die Bildung eines bestimmten Werts einer bestimmten Länge aus einem zufälligen Satz von Zeichen gewährleistet. Sie haben es geschafft. Der resultierende Parameter wird in Zukunft zur Identifizierung (Überprüfung) von Informationen verwendet. Der ursprüngliche Zweck von SHA-2 bestand darin, Daten verschiedener Dienste zu schützen. Heute (im Jahr 2018) ist SHA-256 vor allem als Algorithmus bekannt, der beim Coin-Mining verwendet wird.

Im Jahr 2012 wurde das System verbessert und eine aktualisierte Version der Hash-Funktion erschien – SHA-3. Man geht davon aus, dass die Neuentwicklung im Laufe der Zeit die bisherigen Algorithmen verdrängen wird, was das ohnehin schon hohe Maß an Sicherheit verbessern wird.

Eigenschaften des Bitcoin-Verschlüsselungsalgorithmus


Die Essenz von SHA-256 ist einfach. Die erste Nachricht nach der Hinzufügung ist in Blöcke unterteilt, von denen jeder 16 Wörter umfasst. Die resultierenden Elemente durchlaufen spezielle Zyklen mit 64 oder 80 Stufen. Bei jedem von ihnen werden zwei Wörter umgewandelt, und die Transformationsoption wird aus den verbleibenden Wörtern gebildet. Die resultierenden Parameter werden zu einem Hash zusammengefasst.

Während des Betriebs des Algorithmus werden 6 Befehle verwendet:

  • „xor“ – entfernt „OR“.
  • „shr“ – verschiebt den Indikator mit einer bestimmten Frequenz um die erforderliche Anzahl von Bits nach rechts.
  • „rots“ – verschiebt den Indikator um die erforderliche Anzahl von Bits nach rechts (ohne einen bestimmten Zyklus zu verwenden).
  • „II“ – eine Verbindung von Elementen, die linearer Natur sind.
  • "und und".
  • „+“ – Verfolgung.
Protokolleigenschaften:
  1. Die Obergrenze für die Nachrichtendauer beträgt 33 B.
  2. Der maximale Geschwindigkeitsparameter beträgt 139 MiB/s.
  3. Wortgröße - 4 B.
  4. Die Anzahl der Wiederholungen in einem Zyklus beträgt 64.
  5. Die Größe des Blockelements beträgt 64 B.
  6. Der gesamte Hash-Code beträgt 32 B.

Bitcoin-Verschlüsselungsalgorithmus im Mining


Bei Berechnungen im Rahmen des Minings wird die Richtigkeit des resultierenden Hash-Codes durch die Anzahl der Nullen am Zeilenanfang bestimmt. Wenn dieser Parameter beispielsweise 17 beträgt, ist die Wahrscheinlichkeit, eine solche Zahl zu finden, äußerst gering und liegt bei etwa 1:1,4*10 hoch 20. Es ist nicht verwunderlich, dass das Bitcoin-Mining den Einsatz leistungsstarker Geräte und hohe Energiekosten erfordert. Gleichzeitig ist eine Optimierung der Suche nach dem benötigten Hash nicht möglich, da nach Erhalt eines Informationsblocks am Ausgang eine Zufallszahl erscheint.

Die Schwierigkeit beim Mining einer virtuellen Münze besteht darin, den notwendigen Hash zu finden und den nächsten Block zu bilden. Um dieses Ziel zu erreichen, wird eine Standardaufzählung von Werten verwendet, die eine leistungsstarke Ausrüstung erfordert. Wie bereits erwähnt, wird nicht nach einem einfachen Hash gesucht, sondern nach einem Wert mit vielen „0en“ davor.

Beim Kryptowährungs-Mining mit SHA-256 handelt es sich um eine Reihe von Maßnahmen, die darauf abzielen, ein bestimmtes Krypto-Problem zu lösen. Im Fall von Bitcoin werden für das Mining folgende Geräte verwendet:

  1. Seit dem Aufkommen von BTC im Jahr 2009 sowie bis Mitte 2010 war der Einsatz einer Zentraleinheit (CPU) relevant.
  2. Bis Mitte 2011 nutzten Miner Computer mit Grafikkarten (GPUs).
  3. Bis Anfang 2013 waren FGPAs ebenso beliebt wie GPU-Farmen.
  4. Im Jahr 2014 erschienen ASICs. Sie übertrafen die Leistung vorhandener Geräte. Trotzdem nutzten Miner bis Anfang 2017 GPU-Farmen und arbeiteten in Pools, doch Ende 2017 und bis heute sind nur noch -Miner relevant. Der Einsatz anderer Geräte ist unrentabel.
Die genannten Geräte werden verwendet, um die gewünschte Hash-Funktion auszuwählen und eine neue zu generieren. Je höher die Hashrate (Rechenleistung) des Geräts ist, desto schneller werden die Daten sortiert und desto kürzer ist die Zeit, um eine Lösung zu finden.

Mit zunehmendem Wettbewerb und der Freisetzung produktiverer Bergleute kommt es zu Steigerungen, deren Parameter sich alle 2 Wochen ändert.

Schwächen und Stärken des Bitcoin-Hashing-Algorithmus


Oben haben wir uns angesehen, was der Bitcoin-Hashing-Algorithmus ist und welche Funktionen er hat. Dabei handelt es sich um SHA-256, der als der gebräuchlichste Algorithmus mit hoher Zuverlässigkeit und relativ einfachem Funktionsprinzip gilt. Es ist sehr widerstandsfähig gegen Hackerangriffe und ermöglicht das Mining von Münzen auf jeder Ausrüstung (abhängig von den Schwierigkeitsgradparametern).

Trotz einer Reihe positiver Eigenschaften weist der Bitcoin-Hashing-Algorithmus eine Reihe von Schwächen auf:

  1. Kontrolle durch BTC-Mining-Teilnehmer. Hier gilt das gleiche Prinzip wie bei Aktiengesellschaften (JSC), bei denen die Gesellschafter über eine bestimmte Anzahl von Aktien verfügen. Je mehr Macht in den Händen der Krypto-Netzwerk-Miner konzentriert ist, desto stärker ist ihr Einfluss auf das Gesamtsystem. Darüber hinaus ist aufgrund der zunehmenden Komplexität des Bergbaus im Jahr 2018 eine deutliche Tendenz zu erkennen, dass der Bergbau aus den Händen privater Bergleute in die Kontrolle großer Organisationen übergeht, die an der Herstellung von Geräten für den Abbau virtueller Münzen beteiligt sind. Um Bitcoins zu erhalten, muss ein privater Miner große Summen für den Kauf von ASICs ausgeben, sich mit einem der Pools verbinden und für Strom bezahlen. Wenn Sie an der Ausrüstung sparen, verliert die Produktion an Rentabilität.
  2. Eine Folge der oben diskutierten Situation ist die Tatsache, dass der „Löwenanteil“ der Bitcoins in den Händen der Eigentümer großer Bergbauunternehmen konzentriert ist. Wenn wir berücksichtigen, dass nicht alle erhaltenen Bitcoins verkauft werden, werden solche Organisationen zu Investoren und Verwahrern von Münzen. Dadurch sinkt die Anzahl der im Umlauf befindlichen Münzen. Darüber hinaus können Sie durch die Anhäufung von Kryptowährungen die Dezentralisierung sowie den Wechselkurs von BTC während des Handelsprozesses beeinflussen.
  3. Aufgrund bestehender Mängel gehört der SHA-256-Algorithmus nach und nach der Vergangenheit an und an seine Stelle treten fortschrittlichere Projekte. Beispielsweise erfreuen sich Scrypt, Ethash, Blake-256, Equihash und andere zunehmender Beliebtheit. Neue Algorithmen bieten ein besseres Schutz- und Sicherheitsniveau, was die Ersteller vieler Kryptowährungen dazu zwang, den veralteten SHA-256 zugunsten fortschrittlicherer Technologien aufzugeben.
  4. Trotz der Korrektur der von den Entwicklern identifizierten Hauptfehler konnten einige Schwachstellen nicht behoben werden (im Jahr 2008 wurden bei 22 Iterationen Kollisionen festgestellt). Aus diesem Grund wurde die Entwicklung von SHA fortgesetzt und die zweite Version durch SHA-3 ersetzt.
Im Jahr 2009 war ich gezwungen, SHA-256 zu verwenden, da zum Zeitpunkt der Schaffung der Kryptowährung die Landesregierungen dieses Protokoll übernommen hatten. Damals wurde es in einigen Regierungsprogrammen aktiv zum Datenschutz eingesetzt und kam auch im kommerziellen Bereich zum Einsatz. Es stellte sich heraus, dass das Protokoll zur Lösung bestimmter Probleme erstellt wurde, in Wirklichkeit jedoch auf ganz andere Weise gefragt ist.

Zur Verdeutlichung wollen wir die positiven und negativen Eigenschaften des Bitcoin-Verschlüsselungsalgorithmus tabellarisch auflisten.

VorteileMängel
Weit verbreitet (auch im Kryptowährungsbereich). Das SHA-Protokoll wird im Alltag aktiv zum Schutz von Informationen eingesetzt.Verlust der Dezentralisierung. Die Macht liegt in den Händen der Bergbauunternehmen.
Zuverlässiger Einbruchschutz.Die SHA-Iteration hat eine einfache Struktur, was im Laufe der Zeit zu einer Zunahme der Mining-Komplexität geführt hat. Seit August 2018 können für das Mining von Bitcoins nur noch ASICs mit hoher Leistung verwendet werden.
Komfort beim Münzabbau, Vielseitigkeit bei der Auswahl der Bergbauausrüstung.Es erscheinen neue Algorithmen mit einer fortschrittlicheren Struktur.
In der zweiten Version (SHA-2) gelang es den Entwicklern, eine Reihe von Mängeln zu beseitigen, die sich negativ auf die Zuverlässigkeit des Systems auswirkten.Trotz aktiver Fehlerbeseitigung konnten viele Mängel nicht behoben werden. Es überrascht nicht, dass die Entwickler eine neue Version von SHA-3 erstellt haben.
Das Protokoll wurde in den Vereinigten Staaten auf gesetzgeberischer Ebene verabschiedet.

Heutzutage wird es bei der Entwicklung neuer Kryptowährungen fast nicht mehr verwendet. Das auffälligste Beispiel für eine Münze, die immer noch SHA-256 verwendet, ist Bitcoin Cash, eine Abspaltung von Bitcoin, die im August 2017 erschien. Aber in der Situation dieser Münze ist die Verwendung von SHA eher eine Notwendigkeit als eine Entscheidung der Schöpfer. Was Bitcoin selbst betrifft, ist die Verwendung dieses Serienprotokolls auf den Mangel an Alternativen von Satoshi Nakamoto zurückzuführen.

Heute, im Jahr 2018, wird viel darüber gesprochen, diesen Algorithmus zu verbessern und Änderungen am Kryptowährungsnetzwerk vorzunehmen, aber bisher haben solche Absichten keine physische Umsetzung gefunden und verbleiben nur in Form von Vorschlägen.

Video über kryptografische Funktionen und Algorithmen:

Das vergangene Jahr 2017 war ein Jahr der explosionsartigen Beliebtheit von Kryptowährungen und des ebenso schnellen Wachstums der „Haupt“-Kryptowährung Bitcoin. Diese Umstände weckten nicht nur das Interesse an Spekulation und Bergbau, sondern auch am eigentlichen Wesen des Phänomens. Immer mehr Menschen wollen dem Ganzen auf den Grund gehen?

Wir eröffnen eine Reihe von Materialien, in denen wir versuchen werden, in möglichst zugänglicher Form zu erklären, was sich hinter diesen mysteriösen Akronymen wie Scrypt, SHA-256, X11 und anderen verbirgt. Beginnen wir mit dem wichtigsten (aber nicht dem besten) Algorithmus für die Welt der Kryptowährungen – SHA-256. Dies ist die Grundlage für die Entwicklung von Bitcoin. Aber vorher definieren wir die Schlüsselterminologie – definieren wir die Bedeutung der Begriffe „Mining“ und „Hash“.

Was ist Bergbau?

Entgegen der landläufigen Meinung handelt es sich beim Mining nicht nur und nicht so sehr um die Gewinnung kryptografischer Banknoten selbst, sondern vielmehr um Maßnahmen zum Schutz dieser Kryptowährung vor betrügerischen Aktivitäten. Dabei geht es nicht nur um Fälschungen – noch wichtiger ist der Schutz beispielsweise vor der wiederholten Verwendung derselben Münzen durch dieselbe Person. Die Einnahmen aus neuen Kryptomünzen stehen in engem Zusammenhang mit deren Emission und ergeben sich aus der Belohnung für das Finden eines neuen Blocks, der die Bedingungen des Mining-Algorithmus erfüllt.

Das heißt, damit die nächste Kryptomünze „erscheint“, müssen Sie eine ganze Reihe komplexer Berechnungen durchführen und den sehr begehrten „richtigen“ Block finden. Das machen Enthusiasten mit ihrer Ausrüstung. Das Schema trägt sich selbst – um die Sicherheit der Kryptowährung zu erhöhen und neue Einheiten auszugeben, ist Mining notwendig, und damit dies sinnvoll ist, erhalten Miner eine Belohnung.

Kurz gesagt, Mining-Softwaregruppen führten zuvor Rechenoperationen in einem einzigen Block durch, der dann unglaublich oft transformiert wurde, um eine spezielle Art von Hash-Code zu entdecken. Einen Hash-Code zu finden, der die Anforderungen des Algorithmus erfüllt, wird umso schwieriger, je mehr Teilnehmer am Prozess beteiligt sind. Der „richtige“ Hash ist äußerst selten, und ihn zu finden kommt einem Lottogewinn gleich.

Was ist ein Hash?

Oben wurde der Begriff „Hash“ erwähnt, der nicht jedem klar ist. Dies ist eines der Grundkonzepte der Verschlüsselung im Allgemeinen und des SHA-256-Algorithmus im Besonderen. Lassen Sie uns erklären, was das bedeutet, und gehen wir die wichtigsten damit zusammenhängenden Punkte durch.

Beim Hashing handelt es sich also um den Prozess, einen eingehenden Datensatz beliebiger Größe in eine ausgehende digitale Zeichenfolge umzuwandeln. Diese Transformation wird nach einem vorab entwickelten Algorithmus durchgeführt, wobei der ausgehende String völlig einzigartig ist und als eine Art „Fingerabdruck“ des eingehenden Arrays dient. Es ist diese Zeichenfolge, die Hash-Summe, Hash-Code oder einfach Hash genannt wird. Und der Transformationsalgorithmus ist eine Hash-Funktion.

Geben wir ein Beispiel. Wir können Hash-Funktionen „füttern“, beispielsweise den Text des Versromans „Eugen Onegin“ von A. S. Puschkin, und die Ausgabe wird ein Hexadezimalcode sein, der ungefähr so ​​aussieht: Natürlich ist es unmöglich, diesen Code wieder „zu entfalten“ und ihn in „Eugen Onegin“ zu verwandeln. Aber sobald Sie ein einzelnes Zeichen im Gedicht ändern, auch nur ein Leerzeichen hinzufügen, wird der resultierende Hash bis zur Unkenntlichkeit verändert. Das Volumen hat auch keinen Einfluss auf die Länge des Hash-Codes. Sie können also ein Symbol „a“ in die Funktion eingeben und die Ausgabe wird genau derselbe Satz pseudozufälliger Symbole mit genau derselben Länge sein.

Schauen wir uns nun genauer an, warum dies notwendig ist und welche Schwierigkeiten dabei auftreten. Jeder, der sich für das Thema interessiert, weiß, dass das Mining von Kryptowährungen mithilfe des SHA-256-Protokolls mit der Leistung eines Zentralprozessors, einer Grafikkarte oder eines speziellen ASIC-Geräts durchgeführt werden kann. Tatsächlich ist die erste Methode im Zusammenhang mit Bitcoin überhaupt nicht mehr relevant und das Mining mit Grafikkarten befindet sich in seinen letzten Tagen. Die Komplexität der Berechnungen ist zu stark gestiegen und halbe Sachen sind nicht mehr geeignet.

In der Benutzeroberfläche der Mining-Software werden die Prozesse der Umwandlung von Blöcken in Hash-Beträge als lakonische Zeile wie „Accepted 0aef59a3b“ angezeigt. Ein Block kann aus Tausenden oder sogar Hunderttausenden ähnlicher Zeilen bestehen, aber nur eine kann als „Signatur“ des Blocks dienen, deren Suche den Kern des Minings ausmacht.

Die Suche nach dem richtigen Hash erfolgt durch einfaches Durchsuchen der Ergebnisse der Lösung einer Vielzahl von Problemen. Im SHA-256-Algorithmus wird die „Korrektheit“ eines Hashs durch die Anzahl der Nullen am Anfang der Hash-Summe bestimmt. Die Wahrscheinlichkeit, einen solchen Hash-Code durch vom Algorithmus ermittelte Berechnungen herauszufinden, ist vernachlässigbar gering – eine Chance von Millionen Lösungen. Die genaue Wahrscheinlichkeit wird durch den aktuellen Schwierigkeitsgrad im dezentralen System einer bestimmten Kryptowährung bestimmt.

Eine bemerkenswerte Tatsache. Jeder von uns hat sich wiederholt mit dem SHA-256-Algorithmus auseinandergesetzt, ohne es überhaupt zu wissen, auch ohne Rücksicht auf das Kryptowährungs-Mining. Die Rede ist vom SSL-Sicherheitszertifikat, das viele Websites schützt. Wenn Sie eine solche Website besuchen, interagieren Sie automatisch mit SHA-256, auf dem SSL basiert.

Merkmale des SHA-256-Protokolls

Zunächst ein wenig Geschichte. Ursprünglich wurde der SHA-256-Verschlüsselungsalgorithmus bzw. sein Prototyp im mittlerweile fernen Jahr 2002 innerhalb der Mauern der „finsteren“ NSA (US National Security Agency) erfunden. Innerhalb weniger Monate wurde es von der Nationalen Metrologischen Universität auf Bundesebene modifiziert und offiziell vorgestellt. Zwei Jahre später erschien die zweite, verbesserte Version.

In den nächsten drei Jahren arbeitete die Agentur an der Verbesserung des Algorithmus und erteilte schließlich ein Patent für die zweite Ausgabe. Dies geschah unter einer lizenzfreien Lizenz, die es ermöglichte, die neueste Technologie für „friedliche“ Zwecke zu nutzen.

Letztendlich bildete SHA-256 die Grundlage für die Schaffung der weltweit ersten Kryptowährung – Bitcoin. In diesem Fall wird das Protokoll zur Erhöhung der Sicherheit doppelt verwendet.

Bei der Durchführung von Berechnungen im Rahmen des Minings im Bitcoin-System ist die Anzahl der Nullen am Zeilenanfang ein Zeichen für die Eignung des resultierenden Hash-Codes. Ab Ende des 17. und Anfang des 18. beträgt die Anzahl der erforderlichen führenden Nullen 17 (+/-). Die Wahrscheinlichkeit, einen solchen Code zu erkennen, beträgt etwa 1 zu 1,4*10 20 . Das ist eine ungeheuer kleine Zahl, die sich jeder Vorstellung entzieht und mit der Wahrscheinlichkeit vergleichbar ist, an allen Sandstränden unseres Planeten ein Sandkorn einer bestimmten Form zu finden. Aus diesem Grund erfordert der Abbau von Bitcoin so viel Rechenleistung und so viel Strom.

Es gibt keine Möglichkeit, die Suche nach dem „richtigen“ Hash zu optimieren. Im SHA-256-Protokoll erzeugt die Hash-Funktion anhand eines Datenblocks einen völlig unvorhersehbaren Ausgabewert. Daher ist eine Iteration (Wiederholung) nach der anderen erforderlich, bis ein geeigneter Code gefunden ist. Wir betonen dies noch einmal: völlig zufällig.

Jetzt sind wir gezwungen, den Leser ein wenig mit komplexen technischen Informationen zu „laden“, sonst wird unsere Geschichte über SHA-256 unvollständig sein. Wenn überhaupt nichts klar ist, fahren Sie einfach mit dem nächsten Abschnitt des Artikels fort.

Das Protokoll beinhaltet die Aufteilung von Informationen in Fragmente von jeweils 512 Bit (oder 64 Byte, was dasselbe ist, da 1 Byte = 8 Bit). Dann erfolgt die kryptografische „Mischung“ nach dem dem Algorithmus innewohnenden Schema, und die Ausgabe ist ein Hash-Code mit einer Größe von 256 Bit. Der Hashing-Vorgang wird in 64 Iterationen durchgeführt, was relativ wenig ist, insbesondere im Vergleich zu den neu entstandenen kryptografischen Algorithmen.

Die wichtigsten technischen Parameter von SHA-256 sind wie folgt:

  • Blockgröße: 64 Byte;
  • Maximale Nachrichtenlänge: 33 Byte;
  • Größe des resultierenden Hash-Codes: 32 Byte;
  • Anzahl Wiederholungen in einer Runde: 64;
  • Maximale Geschwindigkeit: ca. 140 MiB/s (Mebibyte pro Sekunde).

Bei seiner Arbeit verwendet der Algorithmus die bekannte Merkle-Damgard-Technik, bei der der anfängliche Indikator unmittelbar nach der Änderung in Blöcke unterteilt wird. Die Blöcke wiederum sind in jeweils 16 Wörter unterteilt.

Der Datensatz durchläuft eine Runde von 64 Iterationen. Jeder von ihnen beginnt mit dem Hashing der Wörter, aus denen der Block besteht. Wortpaare werden von der Funktion verarbeitet, anschließend werden die Ergebnisse addiert und der richtige Hash-Code erhalten. Jeder nächste Block wird basierend auf dem Wert des vorherigen berechnet. Dies ist ein nahtloser Prozess – es ist unmöglich, Blöcke getrennt voneinander zu berechnen.

Entwicklung von SHA-256

Um den kryptografischen Wert dieses Algorithmus zu verstehen, werfen wir einen Blick zurück auf die Geschichte. Sie begannen fast unmittelbar nach seiner Gründung im Jahr 2003, seine Stärke ernsthaft zu testen. Die Angelegenheit wurde von Fachleuten bearbeitet, es wurden jedoch keine Schwachstellen oder Fehler gefunden.

Ganze fünf Jahre vergingen, als indische Experten im Jahr 2008 immer noch Kollisionen für bis zu 22 Iterationen identifizieren konnten. Nach mehreren Monaten harter Arbeit wurde eine erfolgreiche Lösung für das Problem vorgeschlagen.

Im Zuge der Analyse der Funktionsweise des Funktionsteils des Algorithmus wurde seine Widerstandsfähigkeit gegenüber zwei Arten möglicher Methoden von Sicherheitsversagen getestet:

  • durch Vorabbild: Dies bedeutet eine umgekehrte Entschlüsselung der Originalnachricht nur basierend auf der Hash-Zeichenfolge;
  • durch Kollisionserkennung: Dies impliziert die Übereinstimmung ausgehender Daten, sofern die eingehenden Nachrichten unterschiedlich sind. Das heißt, die eingehenden Blöcke sind unterschiedlich, aber der ausgehende Hash ist derselbe – das sollte nicht passieren.

Nachdem die erste Version von SHA-256 die Tests beim zweiten Kriterium nicht bestanden hatte, beschlossen die Entwickler, einen neuen Verschlüsselungsmechanismus zu entwickeln, der auf völlig anderen Prinzipien basiert. Genau das wurde getan: Im Jahr 2012 wurde ein Protokoll der neuen Generation eingeführt, das die oben beschriebenen Mängel überhaupt nicht aufweist.

Nachteile des Algorithmus

Die Tatsache, dass es den Entwicklern gelungen ist, ihre eigenen Fehler zu korrigieren, bedeutet nicht, dass sie es geschafft haben, SHA-256 zur Perfektion zu bringen. Das Protokoll beseitigte offensichtliche Schwachstellen, seine „nativen“ Mängel blieben jedoch bestehen.

Die Verwendung von SHA-256 als Basis von Bitcoin wurde nicht zuletzt dadurch möglich, dass die US-Gesetzgebung selbst diesem Protokoll treu blieb. Es durfte für den Datenschutz in einigen Regierungsprogrammen verwendet werden und durfte auch im kommerziellen Bereich eingesetzt werden.

Darin liegt die Ironie des Schicksals: Das Protokoll wurde für einen Zweck erstellt, fand aber seine breiteste Anwendung in ganz anderen Zwecken. Und für diese ersten Zwecke war es mehr als effektiv und angemessen. Doch für Kryptowährungen stellte sich heraus, dass es zu einfach war. Es ist kein Scherz, wenn es beispielsweise in China nicht einmal Farmen, sondern ganze „Fabriken“ voller ASIC-Miner gibt.

Jede Iteration des Algorithmus sieht recht primitiv aus – eine einfache binäre Operation plus eine 32-Bit-Addition. Aus diesem Grund tauchten auf SHA-256 basierende ASICs so schnell auf und multiplizierten alle Hoffnungen von „Heim“-Minern mit nur einem Prozessor und ein paar Grafikkarten.

Zeiten und Bedingungen ändern sich stark, und das SHA-256-Protokoll folgt anderen, fortschrittlicheren Lösungen souverän auf den Fersen. Derselbe Scrypt zeichnet im Berechnungsprozess zunächst 1024 verschiedene Hash-Strings auf, führt dann erst die Addition durch und erhält das Endergebnis. Dies ist ein unvergleichlich komplexeres Schema mit dem höchsten Maß an Schutz und Sicherheit für Kryptowährungen.

Zusammenfassung

Der Verschlüsselungsalgorithmus SHA-256 galt bis zum Beginn des Kryptowährungsbooms als recht effektiv und zuverlässig. Heute wird deutlich, dass es vor dem Hintergrund neuer Lösungen bereits eher schwach aussieht. So sehr, dass es dadurch möglich wurde, spezielle Geräte zu entwickeln, die ausschließlich zur Umgehung des Problems „geschärft“ wurden. Dies sind dieselben ASIC-Miner, die das Mining auf Zentralprozessoren praktisch zerstört haben und das Mining auf Grafikkarten bereits beenden.

Es scheint, dass daran nichts auszusetzen ist – ein gesunder Wettbewerb schließlich. Tatsächlich zentralisiert der Einsatz von ASICs die Kryptowährung jedoch ganz erheblich und neutralisiert damit ihre eigentliche Idee. Diese Tatsache drängte talentierte Enthusiasten dazu, neue, fortschrittlichere Hashing-Algorithmen zu entwickeln. Und sie ließen nicht lange auf sich warten.

Das SHA-256-Protokoll nimmt derzeit den Löwenanteil des Kryptowährungsmarktes ein, doch neue Alternativen verdrängen es bereits souverän. Beispielsweise verwendet die zweitbeliebteste und „teuerste“ Krypta, Ethereum, das Ethash-Protokoll, das früher Dagger hieß. Das Protokoll ist so gut, dass Ethereum bis heute eine maximale Dezentralisierung aufrechterhält und ASIC-Miner für sein Mining in der Natur immer noch nicht existieren. Vielleicht ersetzt Ethash den offensichtlich veralteten SHA-256.

Einer der ersten alternativen Algorithmen war Scrypt, auf dem einer der beliebtesten Altcoins, Litecoin, basiert. Dies ist eine viel fortschrittlichere Lösung, die ASIC nicht mehr solche unbestreitbaren Vorteile bietet. Allerdings zwangen die Supergewinne aus dem Mining chinesische Spezialisten dazu, große Anstrengungen in die Entwicklung technologischer Lösungen für Scrypt zu investieren, und es erschienen tatsächlich ASICs, die auf diesem Protokoll basierten.

Wenn wir das Mining aus der Perspektive eines normalen Menschen betrachten, der sich nicht mit technischen Nuancen auskennt, wird er keinen Unterschied zwischen den Algorithmen Scrypt und SHA-256 spüren. ASICs auf beiden Protokollen sehen fast gleich aus, verbrauchen ungefähr gleich viel Strom und haben genau das gleiche Lüftergeräusch. Eine andere Sache sind die Kryptowährungsraten, die dieselben ASICs schürfen, aber das ist eine ganz andere Geschichte.

Das folgende Material widmen wir im Rahmen dieses Themas dem erwähnten alternativen Verschlüsselungsprotokoll Scrypt.

SHA 256 ist ein kryptografischer Befehlssatz für das Mining von Kryptowährungen. Mit anderen Worten: Es schützt zuverlässig alle Transaktionen im Netzwerk und erschwert die Extraktion elektronischer Münzen. Diese Abkürzung steht für Secure Hashing Algorithm und bezeichnet eine äußerst beliebte und effektive Hashing-Methode.

Die Essenz von SHA 256 besteht darin, Informationen in Werte und Zahlen umzuwandeln. Diese Kette hat eine feste Länge. Das bedeutet, dass alle Informationen, die Sie innerhalb des Netzwerks übertragen, mit speziellen Werten – Identifikatoren (IDs) – verschlüsselt werden.

Bei Transaktionen vergleicht der SHA 256-Algorithmus die ID mit den Originaldaten, die nicht abgerufen werden können, und gewährt dann Zugriff auf die Transaktion. Dieses Protokoll wird mittlerweile beim Mining von Kryptowährungen wie BTC und BCH verwendet.

Geschichte des Aussehens

Wie kam es dazu, dass Bitcoin anfing, SHA 256 zu verwenden? Alles begann damit, dass der Algorithmus Mitglied der SHA-2-Familie wurde, die eine Hash-Kettengröße von 224-512 Bit hat.

Sie wiederum wurden auf der Grundlage ihres Urgroßvaters – SHA-1 – erstellt, dessen Hash 160 Bit lang war. Die Technologie erschien 1995 und war für zivile Zwecke gedacht – also für die Verschlüsselung gewöhnlicher, nicht staatlich wichtiger Informationen.

Die SHA-2-Familie, zu der SHA 256 gehört, wurde vor 16 Jahren – im Frühjahr 2002 – von der National Security Agency entwickelt. Auf dieser Grundlage können wir sagen, dass der Algorithmus moralisch veraltet ist. Allerdings handelt es sich immer noch um einen der stärksten Algorithmen zur Verschlüsselung von Transaktionen im Netzwerk.

Technische Parameter von SHA 256

Der Algorithmus ist für Daten ausgelegt, die in gleiche Teile von 64 Bytes aufgeteilt sind. SHA 256 stellt sicher, dass sie gesammelt und zu einer einzigen 256-Bit-Kette zusammengefasst werden. Die Hauptmethode dieser Methode ist der Verschlüsselungsvorgang, der 64 Mal in einer Schleife ausgeführt wird.

Kurze Merkmale der SHA 256-Algorithmusanweisungen:

  • 64-Bit-Blöcke – funktioniert am schnellsten mit 32-Bit-Blöcken;
  • die Spitzenlänge der verschlüsselten Informationskette beträgt 33 Byte;
  • Nachrichten-Digest-Größe – 32 Byte;
  • die standardisierte Größe eines Wortes beträgt 4 Bytes;
  • Der Verschlüsselungszyklus in einer Operationsrunde beträgt 64 Bytes.
  • Die Geschwindigkeit, mit der der Algorithmus arbeitet, beträgt 140 Mbit/s.

Es ist erwähnenswert, dass dieses Mitglied der SHA-2-Familie auf dem von Merkle-Damgaard beschriebenen Framework basiert. Dies bedeutet, dass die Daten vor der Aufteilung der Informationen in Wörter in Blöcke unterteilt werden. Der Prozess verstärkt die Verschlüsselung durch Mischen der Daten.

Die eigentliche Informationserhebung erfolgt im Bereich von 64 bis 80 Wiederholungen. Jede nachfolgende Schleife wandelt die erstellten Blöcke in Wörter um. Das Endergebnis, nämlich der Hash, entsteht durch Summierung aller Anfangswerte.

Kryptowährungen mit SHA 256-Algorithmus

Wie bereits erwähnt, verfügt nicht nur Bitcoin über eine solche Anleitung, sondern auch:

  • Peercoin, dessen Besonderheit darin besteht, dass der Code auf der Grundlage der Spielkugel erstellt wird, PoS jedoch zum Schutz des gesamten Netzwerks verwendet wird und PoW für die Verteilung der Münzen verantwortlich ist;
  • Namecoin ist eine digitale Währung, die als Mittel zum Schutz, zur Vertraulichkeit und zur Dezentralisierung dient; Unobtanium – hat eine extrem niedrige Inflation; es wird mindestens 300 Jahre dauern, alle Münzen abzubauen;
  • Deutsche eMark ist ein deutsches Mikronetzwerk, das dem Austausch von Vermögenswerten und Geld dient. Der Prozess selbst erfolgt ohne Zwischenhändler; BetaCoin – funktioniert nach dem gleichen Prinzip wie der weltberühmte BitCoin;
  • jouleCoin – basiert ebenfalls auf dem Großvater Bitcoin, bietet aber eine schnellere Bestätigung von Transaktionen;
  • Steemit ist nicht einmal eine separate Krypta, sondern eine ganze Plattform auf der Blockchain. Seine Hauptaufgabe besteht darin, interessante Veröffentlichungen zu belohnen.

Auch Litecoin nutzt den SHA 256-Algorithmus, allerdings nicht im gesamten System, sondern in einer Unterroutine. Für das Litecoin-Mining wird das Scrypt-Sicherheitsprotokoll verwendet, was die Komplexität des Minings erhöht und die Amortisation von ASICs verringert.

Kryptowährungs-Mining basierend auf dem SHA 256-Algorithmus

Um elektronische Münzen zu schürfen, die auf der SHA-2-Familie basieren, ist es nicht erforderlich, spezielle Tools – ASIC – zu verwenden. Sowohl CPU- als auch GPU-basierte Farmen schneiden beim Mining gut ab. Letzteres ist dem ersteren in der Geschwindigkeit deutlich überlegen.

Und doch ist ASIC die beste Lösung für das Mining von Kryptowährungen. Seine Vorteile werden teilweise durch den erheblichen Preis ausgeglichen – etwa 100.000 Rubel, leistungsstärkere Modelle sogar über 500.000. Mit zunehmender Komplexität sinkt die Amortisation. Daher rechtfertigt sich die Ausrüstung nicht immer, obwohl sie eine viel höhere Mining-Geschwindigkeit bietet als Farmen auf Grafikkarten und insbesondere einer CPU.

GPU-Mining gilt als mehr oder weniger profitabel. Im Allgemeinen kostet die gesamte Farm etwa 1.000 bis 2.000 US-Dollar, zuzüglich zusätzlicher Ausrüstung – insbesondere Kühlsysteme für Grafikkarten. Es lohnt sich auch, die Raummiete, die Stromzahlungen und die Gehälter des Servicepersonals zu berücksichtigen.

Bei den Grafikkarten schneidet die GTX 1080 Ti von Nvidia gut ab. Es erzeugt eine Geschwindigkeit von 1400 erfolgreichen Operationen pro Sekunde. AMD liegt mit seinen Vega-Linecards leicht zurück – 1200 MH/s. Es gibt auch günstigere Optionen wie die Radeon 7970, deren Geschwindigkeit jedoch 800 MH/s nicht überschreitet.

Der SHA 256-Algorithmus ist zwar alt, wird aber immer noch in Bitcoin, der Kryptowährung Nr. 1 weltweit, verwendet. Das Protokoll wird auch in einer Reihe anderer vielversprechender Altcoins verwendet. SHA256 wird nach und nach durch Scrypt ersetzt, Bitcoin hat jedoch keine Pläne, darauf umzusteigen. Beim Mining ist alles einfach: Wenn Sie Geld haben, nehmen Sie ASICs mit einer hohen Hash-Rate. Möchten Sie eine wirtschaftlichere Lösung? Dann bauen Sie eine Farm aus AMD- oder Nvidia-Grafikkarten auf.

  • Übersetzung

Irgendwann wollte ich herausfinden, wie schnell es möglich ist, Bitcoins manuell zu schürfen. Es stellte sich heraus, dass für das Mining SHA-256-Hashing verwendet wird, das recht einfach ist und auch ohne Computer berechnet werden kann. Natürlich ist der Prozess sehr langsam und völlig unpraktisch. Aber nachdem Sie alle Schritte auf dem Papier durchgearbeitet haben, können Sie die Details der Funktionsweise des Algorithmus gut verstehen.

Eine Krypto-Runde

Bergbau

Ein wichtiger Teil des gesamten Bitcoin-Sicherheitssystems ist das Mining. Die Grundidee besteht darin, dass Miner Bitcoin-Transaktionen in einem Block zusammenfassen, den sie dann in einer unkalkulierbaren Anzahl hashen, um einen sehr seltenen Hash-Wert zu finden, der unter besondere Bedingungen fällt. Wenn ein solcher Wert gefunden wird, gilt der Block als abgebaut und gelangt in die Blockchain. Das Hashing selbst dient keinem anderen Zweck als der Erhöhung der Schwierigkeit, den richtigen Block zu finden. Somit ist dies eine der Garantien dafür, dass niemand allein mit den vorhandenen Ressourcen in der Lage sein wird, die Kontrolle über das gesamte System zu übernehmen. Mehr zum Thema Bergbau können Sie in meinem letzten Artikel lesen.

Die kryptografische Hashing-Funktion empfängt einen Datenblock als Eingabe und erzeugt eine kleine, aber unvorhersehbare Ausgabe. Es ist so konzipiert, dass es keinen schnellen Weg gibt, die gewünschte Ausgabe zu erhalten, und dass Sie so lange suchen müssen, bis Sie den richtigen Wert gefunden haben. Als solche Funktion nutzt Bitcoin SHA-256. Darüber hinaus wird SHA-256 zur Erhöhung der Widerstandsfähigkeit zweimal auf den Block aufgetragen und wird als Doppel-SHA-256 bezeichnet.

Bei Bitcoin besteht das Kriterium für die Gültigkeit eines Hash darin, dass er über eine ausreichende Anzahl führender Nullen verfügt. Einen solchen Hash zu finden ist genauso schwierig wie beispielsweise das Auffinden einer Auto- oder Telefonnummer, die mit mehreren Nullen endet. Aber für einen Hash ist es natürlich exponentiell schwieriger. Derzeit muss ein gültiger Hash etwa 17 führende Nullen enthalten, was nur durch 1 in 1,4x10 20 erfüllt wird. Wenn wir eine Analogie ziehen, ist es schwieriger, einen solchen Wert zu finden, als ein bestimmtes Teilchen im gesamten Sand der Erde zu finden.

Blaue Blöcke mischen Bits nichtlinear, um die kryptografische Analyse zu erschweren. Darüber hinaus werden für noch mehr Zuverlässigkeit verschiedene Mischfunktionen verwendet (wenn Sie eine mathematische Lücke finden, um schnell gültige Hashes zu generieren, übernehmen Sie die Kontrolle über den gesamten Bitcoin-Mining-Prozess).

Die Mehrheitsfunktion (Ma-Block) arbeitet bitweise mit den Wörtern A, B und C. Für jede Bitposition gibt sie 0 zurück, wenn die Mehrheit der Eingabebits an dieser Position Nullen sind, andernfalls gibt sie 1 zurück.

Block Σ0 dreht A um 2 Bits, dann wird das ursprüngliche Wort A um 13 Bits und in ähnlicher Weise um 22 Bits gedreht. Die resultierenden drei verschobenen Versionen von A werden bitweise Modulo 2 addiert ( normal xor, (A ror 2) xor (A ror 13) xor (A ror 22)).

Ch implementiert die Auswahlfunktion. An jeder Bitposition wird ein Bit von E geprüft, ist es gleich eins, dann wird das Bit von F von dieser Position ausgegeben, andernfalls ein Bit von G. Somit werden die Bits von F und G wertmäßig gemischt von E.

Σ1 hat eine ähnliche Struktur wie Σ0, funktioniert aber mit dem Wort E und die entsprechenden Verschiebungskonstanten sind 6, 11 und 25.

Die roten Blöcke führen eine 32-Bit-Addition durch und generieren neue Werte für die Ausgabewörter A und E. Der Wert W t wird basierend auf den Eingabedaten generiert (dies geschieht in dem Teil des Algorithmus, der die gehashten Daten empfängt und verarbeitet). . Es liegt außerhalb unseres Rahmens). K t ist für jede Runde eine eigene Konstante.

Im obigen Diagramm fällt auf, dass sich in einer kryptografischen Runde nur A und E ändern. Die restlichen Wörter ändern sich nicht, sondern werden am Ausgang verschoben – aus dem alten A wird der Ausgang B, aus dem alten B das neue C und so weiter. Obwohl eine einzelne Runde des Algorithmus die Daten nicht wesentlich verändert, sind die Eingabeinformationen nach 64 Runden vollständig verschlüsselt.

Wir bauen manuell ab

Im Video zeige ich, wie du alle beschriebenen Schritte mit Stift und Papier durchgehen kannst. Ich habe die erste Hashing-Runde durchgeführt, um den Block zu minen. Ich brauchte 16 Minuten und 45 Sekunden.


Lassen Sie mich ein wenig erklären, was passiert: Ich habe die Wörter von A bis H in hexadezimaler Form aufgeschrieben und unter jedem eine Übersetzung in binäre Form vorgenommen. Das Ergebnis des Blocks Ma liegt unter dem Wort C, und die Werte von A nach den Verschiebungen und die Ausgabe Σ0 selbst befinden sich über der Linie mit A. Die Auswahlfunktion erscheint unter G und schließlich die entsprechenden verschobenen Versionen von E und Der Wert nach dem Block Σ1 geht über die Linie mit E. In der unteren rechten Ecke wird eine Addition durchgeführt, deren Ergebnis in die Berechnung sowohl des neuen A als auch des neuen E (der ersten drei roten Summationsblöcke) einfließt. Oben rechts habe ich den neuen Wert von A berechnet, und in der Mitte ist die Berechnung des neuen Werts von E. Alle diese Schritte wurden oben besprochen und können im Diagramm leicht nachvollzogen werden.

Zusätzlich zu der im Video gezeigten Runde habe ich noch eine weitere durchgeführt – die letzte 64. Hashing-Runde für einen bestimmten Bitcoin-Block. Auf dem Foto ist der Hashwert gelb hervorgehoben. Die Anzahl der Nullen bestätigt, dass es sich um einen gültigen Bitcoin-Hash handelt. Beachten Sie, dass sich die Nullen am Ende des Hashs befinden und nicht am Anfang, wie ich zuvor geschrieben habe. Der Grund dafür ist, dass Bitcoin die von SHA-256 empfangenen Bytes einfach umdreht.


Die letzte Runde von SHA-256, wodurch ein erfolgreich geschürfter Bitcoin-Block sichtbar ist

Was bedeutet das alles für das Design von Hardware-Minern?

Jeder Schritt in SHA-256 sieht in der digitalen Logik sehr einfach aus – einfache Bitoperationen und 32-Bit-Summen (wenn Sie jemals Schaltungsdesign studiert haben, haben Sie sich wahrscheinlich schon vorgestellt, wie das in Hardware aussehen könnte). Daher implementieren ASICs SHA-256 sehr effizient und platzieren Hunderte von SHA-256-Rundenausführungseinheiten parallel. Das Foto unten zeigt einen Mining-Chip, der 2-3 Milliarden Hashes pro Sekunde berechnen kann. Weitere Fotos finden Sie auf Zeptobars.


Eine Siliziumaufnahme des Bitfury ASIC-Chips, der Bitcoin mit 2-3 Gigahashes pro Sekunde schürfen kann. Bild von Zeptobars. (CC BY 3.0)

Im Gegensatz zu Bitcoin verwenden Litecoin, Dogecoin und andere ähnliche alternative Münzsysteme den Scrypt-Hashing-Algorithmus, der von Natur aus schwierig in Hardware zu implementieren ist. Dieser Algorithmus speichert während der Ausführung 1024 verschiedene Hashwerte im Speicher und kombiniert sie am Ausgang, um das Endergebnis zu erhalten. Daher sind für die Berechnung von Scrypt-Hashes im Vergleich zu SHA-256-Hashes viel mehr Speicher und Schaltkreise erforderlich. Die Auswirkungen der Änderung des Hashing-Algorithmus werden beim Vergleich der entsprechenden Mining-Hardware deutlich sichtbar – Versionen für Scrypt (Litecoin und andere) sind tausende Male langsamer als Versionen für SHA-256 (Bitcoin).

Abschluss

SHA-256 war plötzlich so einfach, dass es sogar von Hand berechnet werden konnte (der Elliptische-Kurven-Algorithmus, der zum Signieren einer Bitcoin-Transaktion verwendet wird, wäre viel aufwändiger, da er eine Reihe von Multiplikationen von 32-Byte-Zahlen erfordert). Die Berechnung einer Runde SHA-256 dauerte 16 Minuten und 45 Sekunden. Bei dieser Leistung dauert das Hashing eines gesamten Bitcoin-Blocks (128 Runden) 1,49 Tage, d. h. wir erhalten eine Hashing-Rate von 0,67 Hashes pro Tag (tatsächlich würde sich der Prozess natürlich mit der Übung beschleunigen). Im Vergleich dazu produziert die aktuelle Generation von Bitcoin-Minern mehrere Terahashes pro Sekunde, was etwa eine Trillion Mal schneller ist als ich. Ich denke, es ist klar, dass manuelles Bitcoin-Mining nicht sehr praktisch ist.

Ein Reddit-Leser fragte nach meinem Energieverbrauch. Da ich keine ernsthafte körperliche Anstrengung betreibe, können wir davon ausgehen, dass die Stoffwechselrate 1500 Kilokalorien pro Tag beträgt, dann stellen wir fest, dass das manuelle Hashing fast 10 Megajoule pro Hash erfordert. Typischer Energieverbrauch für einen Eisenbergmann beträgt 1000 Magehash pro Joule. Somit bin ich um das 10^16-fache (10 Billiarden) weniger energieeffizient als ein spezialisiertes Stück Eisen. Ein weiteres Problem sind die Energiekosten. Eine günstige Energiequelle sind Donuts mit 23 Cent pro 200 Kilokalorien. Ich habe Stromkosten von 15 Cent pro Kilowattstunde, was 6,7 Mal billiger ist als Donuts. Infolgedessen sind die Energiekosten in Bezug auf Haschisch für mich als menschlicher Bergmann 67 Billiarden Mal höher. Ja, es ist klar, dass ich es nicht schaffen werde. Viel Glück beim manuellen Bitcoin-Mining, und dabei sind die Kosten für Papier und Stifte noch nicht einmal berücksichtigt!