Proof of Stake, deutsch etwa „Anspruchsnachweis“ oder „Anteilsnachweis“; kurz PoS
bezeichnet ein Verfahren, mit dem ein Blockchain-Netzwerk einen Konsens darüber erzielt, welcher Teilnehmer den nächsten Block erzeugen darf.
Dabei wird eine gewichtete Zufallsauswahl eingesetzt, wobei die Gewichte der einzelnen Teilnehmer aus Teilnahmedauer und/oder Vermögen (dem „Stake“) ermittelt werden.
Unter Gewichtung (auch Wichtung, Wägungsschema) versteht man die Bewertung einzelner Einflussgrößen eines mathematischen Modells beispielsweise hinsichtlich ihrer Wichtigkeit oder Zuverlässigkeit. Sie führt dazu, dass wichtigere oder zuverlässigere Elemente größeren Einfluss auf das Ergebnis haben.
Für den Eintritt in ein technisches Gymnasium hat die Punktzahl in Mathematik eine größere Bedeutung als die Punktzahl in Geschichte. Wenn nun der Durchschnitt bestimmt wird, werden die zwei Punktzahlen nicht einfach zusammengezählt und durch 2 geteilt, sondern zuerst werden beide Punktzahlen mit einem Gewichtungsfaktor (kurz: Gewicht) multipliziert, und erst dann zusammengezählt und durch die Summe der Gewichte geteilt.
Beispielsweise wird für das technische Gymnasium die Punktzahl in Mathematik mit dem Gewicht 2 multipliziert, die Punktzahl in Geschichte mit dem Gewicht 1.
Der gewichtete Mittelwert wird folgendermaßen errechnet:
Wenn die Daten x 1 , x 2 , x 3 , … , x n x_{1},x_{2},x_{3},\ldots ,x_{n}
mit den Gewichten g 1 , g 2 , g 3 , … , g n g_{1},g_{2},g_{3},\ldots ,g_{n} versehen werden,
so errechnet sich der gewichtete Mittelwert zu
m = ∑ i x i g i ∑ i g i = x 1 ⋅ g 1 + x 2 ⋅ g 2 + ⋯ + x n ⋅ g n g 1 + g 2 + ⋯ + g n m={\frac {\sum _{i}x_{i}g_{i}}{\sum _{i}g_{i}}}={\frac {x_{1}\cdot g_{1}+x_{2}\cdot g_{2}+\dotsb +x_{n}\cdot g_{n}}{g_{1}+g_{2}+\cdots +g_{n}}}.
Als Stakeholder [ˈsteɪkhoʊldə] (deutsch „Teilhaber“[1], Interessensgruppe, Interessensvertreter oder Anspruchsberechtigter) wird eine Person oder Gruppe bezeichnet, die ein berechtigtes Interesse am Verlauf oder Ergebnis eines Prozesses oder Projektes hat.[2] In der Betriebswirtschaftslehre wird Stakeholder als Anspruchsgruppe übersetzt.
Der Ausdruck Stakeholder stammt aus dem Englischen und ist damit ein Anglizismus. „Stake“ kann mit Einsatz, Anteil oder Anspruch, Erwartung übersetzt werden, „holder“ mit Eigentümer oder Besitzer. Der Stakeholder ist daher jemand, dessen Einsatz auf dem Spiel steht und der daher ein Interesse an Wohl und Wehe dieses Einsatzes hat. I
Im Gegensatz zum bei Bitcoin eingesetzten Proof of Work kommt Proof of Stake ohne zeit- und energieintensives Mining aus und es ist nicht möglich, das Netzwerk allein durch Besitz von Rechenleistung zu übernehmen („51-%-Angriff“).
Unter einem Proof of Work (auch computational puzzle oder cryptographic puzzle; auf deutsch etwa ‚Arbeitsnachweis‘ oder auch ‚-beweis‘, kurz PoW) versteht man in der Informatik eine Methode, die den übermäßigen Gebrauch eines Dienstes, wie beispielsweise Denial-of-Service-Attacken oder das massenweise Versenden von E-Mails (Spam), verhindern soll.
Denial of Service (DoS; englisch für „Verweigerung des Dienstes“) bezeichnet in der Informationstechnik die Nichtverfügbarkeit eines Internetdienstes, der eigentlich verfügbar sein sollte. Häufigster Grund ist die Überlastung des Datennetzes. Das kann unbeabsichtigt verursacht werden, aber auch durch einen konzertierten Angriff auf die Server oder sonstige Komponenten des Datennetzes.
Im Fall einer durch eine Vielzahl von gezielten Anfragen verursachten, mutwilligen Dienstblockade spricht man von einer Denial-of-Service-Attacke und, wenn die Anfragen von einer großen Zahl an Rechnern aus durchgeführt werden, von einer Distributed-Denial-of-Service attack (DDoS-Angriff, deutsch wörtlich verteilter Dienstverweigerungsangriff). Da beim DDoS-Angriff die Anfragen von einer Vielzahl von Quellen ausgehen, ist es nicht möglich, den Angreifer zu blockieren, ohne die Kommunikation mit dem Netzwerk komplett einzustellen.
Als Smurf-Angriff bezeichnet man eine besondere Art eines Denial-of-Service-Angriffs auf ein Computersystem oder -netzwerk.
Dabei sendet ein Angreifer Ping-Pakete (ICMP-Pakete des Typs Echo Request) an die gerichtete (directed) Broadcast-Adresse eines Netzwerks. Als Absender wird in diese ICMP-Pakete die Adresse des anzugreifenden Computers eingetragen. Im Zielnetz leitet der Router die Broadcast-Anfrage an alle Geräte im lokalen Netz weiter. Das hat zur Folge, dass alle angeschlossenen Computer dem Opfer auf die vermeintliche Anfrage antworten. Je nach Anzahl der Clients kann der Angreifer auf diese Art mit nur einem ICMP-Paket eine hohe Anzahl von Antworten an das Opfer erzeugen. Durch die Verstärkung kann ein Angreifer seine zur Verfügung stehende Bandbreite vervielfacht auf das Opfer richten. Dadurch wird letztlich die Internetverbindung oder das Betriebssystem des Opfers überlastet.
Wenn ein Client eine TCP-Verbindung zu einem Server aufbauen möchte, führen der Client und der Server einen so genannten Threeway-Handshake durch, um die Verbindung einzurichten. Der normale Ablauf, wie in der Abbildung zu sehen, ist dabei folgender:
SYN-Flood
Client an Server: Paket mit Flag SYN, Abgleichen (synchronize).
Server an Client: Paket mit Flags SYN, ACK, Abgleichen bestätigt (synchronize acknowledge).
Client an Server: Paket mit Flag ACK, Bestätigt (acknowledge); Die Verbindung ist nun hergestellt.
Ein böswilliger Client kann die letzte ACK-Nachricht unterschlagen. Der Server wartet einige Zeit auf ein entsprechendes Paket, da es auch aufgrund von Verzögerungen verspätet eintreffen könnte.
Während dieser Zeit werden sowohl die Adresse des Clients als auch der Status der noch halb offenen Verbindung im Speicher des Netzwerkstacks vorrätig gehalten, um die Verbindung später vollständig etablieren zu können. Bei allen Betriebssystemen belegt diese so genannte halb offene Verbindung Ressourcen auf dem Server. Da Ressourcen immer begrenzt sind, ist es durch „Flutung“ des Servers mit SYN-Nachrichten möglich, alle diese Ressourcen aufzubrauchen. Sobald dies der Fall ist, können zum Server keine neuen Verbindungen mehr aufgebaut werden, was zur Zugriffsverweigerung (Denial of Service) führt
Der Begriff WinNuke bezeichnet eine über Netzwerk ferngesteuerte DoS-Attacke (denial-of-service attack), gegen die folgende Microsoft-Betriebssysteme anfällig sind/waren: Windows 95 (Version A), Windows NT und Windows 3.1x.
Das Senden eines TCP-Paketes mit gesetztem URG-Flag auf den TCP-Port #139 (NetBIOS; als aktiver Bestandteil des Betriebssystems) hat einen „Blauen Bildschirm“ (sogenannter Bluescreen, „blue screen of death“) zur Folge oder verursacht einen Neustart des Rechners. Dieser Exploit verursacht keinen primären Schaden am angegriffenen Computer, aber alle nicht gespeicherten Daten sind mit dem Absturz des Systems verloren.
Die Besonderheit von WinNuke war, dass es der erste massenhaft verbreitete Exploit war und dass einige Programme verfügbar waren, die diese Attacke einfach verfügbar machten. Daher konnte jeder, auch ohne Ahnung von der Technik zu haben (siehe Scriptkiddies), die DoS-Attacke anwenden.
Land ist ein Denial-of-Service-Tool, das im November 1997 veröffentlicht wurde. Es nutzt eine Schwachstelle in der TCP-Implementierung verschiedener Betriebssysteme aus, die bereits im März 1997 von Microsoft bekanntgegeben wurde.
Funktionsweise
Land erzeugt ein SYN-Paket, bei dem Absender- und Zieladresse sowie Absender- und Zielport identisch sind, wobei Absender- und Zieladresse mit der des Opfers übereinstimmen. Dieses Paket wird dann an einen offenen Port des Opfers gesendet. Dieses antwortet mit einem SYN/ACK-Paket an die Quelle (also sich selbst). Fehler im TCP/IP-Stack können dazu führen, dass dieses SYN/ACK-Paket als normales SYN-Paket betrachtet wird und das Opfer ein neues SYN/ACK-Paket an sich selbst generiert. Das Opfer wird durch die SYN/ACK-Pakete, die es sich selbst auf demselben Port zuschickt, ausgelastet. Es entsteht eine Race Condition, die das betroffene System lahmlegen kann.
Eine Teardrop-Attacke ist ein Angriff auf einen Computer, der eine bestimmte Eigenschaft des IP-Protokolls ausnutzt.
Der Teardrop-Angriff erzeugt eine Reihe von IP-Fragmenten mit überlappenden Offset-Feldern. Werden diese Fragmente beim Zielcomputer zusammengefügt, kann er abstürzen oder neu starten.
Eine besondere Form stellt der Distributed-Reflected-Denial-of-Service-Angriff (DRDoS-Angriff) dar. Hierbei adressiert der Angreifer seine Datenpakete nicht direkt an das Opfer, sondern an regulär arbeitende Internetdienste, trägt jedoch als Absenderadresse die des Opfers ein (IP-Spoofing). Die Antworten auf diese Anfragen stellen dann für das Opfer den eigentlichen DoS-Angriff dar. Durch diese Vorgehensweise ist der Ursprung des Angriffs für den Angegriffenen nicht mehr direkt ermittelbar. Ein Beispiel für einen solchen Angriff ist die DNS Amplification Attack, bei der das Domain Name System als Reflektor missbraucht wird.
Die DNS Amplification Attack (deutsch DNS-Verstärkungsangriff) ist ein Denial-of-Service-Angriff, bei dem unter Missbrauch des Domain Name Systems extrem große Datenströme auf den Internetanschluss des Opfers gelenkt werden. Ziel ist es, diesen Internetanschluss zu überlasten, sodass dieser nicht verwendet werden kann, eventuell mit der Absicht, damit einen wirtschaftlichen Schaden zu verursachen.
DDoS als Protestaktion
Als Form des Protestes sind DDoS-Attacken immer populärer geworden. Einfach zu bedienende Werkzeuge wie zum Beispiel die populäre Low Orbit Ion Cannon ermöglichen es nun auch nicht computerversierten Personen, den Betrieb fremder Computer, Websites und Dienste mit Denial-of-Service-Angriffen zu stören.
Proof of Work
Proof of Stake
nothing-at-stake-Problem
Proof of Stake (PoS) wurde erstmals 2012 in einem Paper von Sunny King und Scott Nadal vorgestellt
Sunny und Scott
Delegated Proof of Stake (DPoS)
Eine bekannte Weiterentwicklung ist der vom amerikanischen Blockchain-Entwickler Dan Larimer erfundene Konsensalgorithmus Delegated Proof of Stake (deutsch etwa „Delegierter Anteilsnachweis“; kurz DPoS).[3]
Energieverbrauch
Skalierung
Sicherheit
Der Proof-of-Work stellt in der Regel die Lösung einer mäßig schweren Aufgabe durch den Nutzer oder dessen Computer dar. Das Ergebnis kann vom Diensterbringer dagegen ohne großen Aufwand nachgeprüft werden.
Die Idee des Proof-of-Work ist, dass ein Dienstnutzer zuerst selbst etwas Arbeit verrichten muss, bevor er den Dienst in Anspruch nehmen darf – eine Art Benutzungsentgelt. Sie wurde erstmals im Jahr 1992 von Cynthia Dwork und Moni Naor vorgeschlagen, um den Versand von Junk-Mails einzudämmen.[1][2] Eine Implementierung dieses Verfahrens ist Hashcash.
Beispiele für solche Probleme sind u. a.
das Lösen von Differentialgleichungen,
Brute-Force-Angriffe auf abgeschwächte kryptographische Primitiven,
Operationen auf großen, dicht besetzten Matrizen, wie das Lösen linearer Gleichungssysteme oder Invertieren.
Im Jahr 1999 schlugen Ari Juels und John Brainard, zwei Mitarbeiter der RSA Laboratories, folgende Aufgabe vor: Der Benutzer erhält den Hashwert einer Zeichenkette, sowie einen unvollständigen Teil der Zeichenkette. Er muss anhand des Hashwerts die fehlenden Zeichen bestimmen.[3][4]
Eine weitverbreitete Abwandlung dieses Verfahrens findet beispielsweise auch bei der Kryptowährung Bitcoin Anwendung: Zu einer gegebenen Zeichenkette muss ein Nonce gefunden werden, sodass im Hash über die Zeichenkette und den Nonce die ersten m Bits Nullen sind. Durch die Wahl der Anzahl m dieser Null-Bits lässt sich die Schwierigkeit und damit auch die Dauer der Berechnung steuern.
Eine Nonce (englisch) bezeichnet ein Wort, eine Buchstaben- oder Zahlenfolge, die nur zur einmaligen Verwendung vorgesehen ist, oder die mit der Absicht gewählt wurde, sie bald durch etwas Besseres zu ersetzen.
Das englische Wort „nonce“ geht auf die mittelalterliche Wendung „for the nonce“ = „für dies eine Mal, einstweilen“ (durch Neusegmentierung im Mittelenglischen aus „for þan anes“ hervorgegangen[1]) zurück, also eine vorläufige Aussage oder Regelung, die bald zu ändern
https://de.wikipedia.org/wiki/RSA-Kryptosystem
https://de.wikipedia.org/wiki/Asymmetrisches_Kryptosystem
Die Idee des Proof-of-Work ist, dass ein Dienstnutzer zuerst selbst etwas Arbeit verrichten muss, bevor er den Dienst in Anspruch nehmen darf – eine Art Benutzungsentgelt. Sie wurde erstmals im Jahr 1992 von Cynthia Dwork und Moni Naor vorgeschlagen, um den Versand von Junk-Mails einzudämmen.[1][2] Eine Implementierung dieses Verfahrens ist Hashcash.
Zum Beispiel ist eine Verzögerung von wenigen Sekunden beim Versand einer E-Mail meist hinnehmbar, bremst aber deutlich die Anzahl der versendbaren E-Mails innerhalb eines Zeitintervalls aus. Das stört den durchschnittlichen E-Mail-Versender kaum, verhindert aber u. U. das Spamming.
Eine weitverbreitete Abwandlung dieses Verfahrens findet beispielsweise auch bei der Kryptowährung Bitcoin Anwendung: Zu einer gegebenen Zeichenkette muss ein Nonce gefunden werden, sodass im Hash über die Zeichenkette und den Nonce die ersten m Bits Nullen sind. Durch die Wahl der Anzahl m dieser Null-Bits lässt sich die Schwierigkeit und damit auch die Dauer der Berechnung steuern.
Es gibt zwei Klassen von Proof-of-Work-Protokollen:
Challenge-Response
Challenge-Response: Diese Variante benötigt eine direkte Verbindung zwischen dem Dienst und seinem Nutzer. Der Dienst sucht eine Herausforderung (Aufforderung), der Nutzer löst sie (mit Aufwand) und der Dienst kann sie leicht verifizieren. Da die Aufforderung spontan vom Dienst ausgewählt wird, kann er ihre Schwierigkeit an die aktuelle Auslastung anpassen. Der Aufwand kann auf Nutzerseite begrenzt sein, wenn das Aufforderung-Antwort-Protokoll eine (vom Dienst ausgewählte) bekannte Lösung hat oder wenn von ihr bekannt ist, sich in einem begrenzten Suchraum zu befinden.
Lösungsverifikation: Bei dieser Variante wird keine direkte Verbindung benötigt. Daher muss das Problem selbsterklärend und omnipräsent sein. Der Dienst muss dann die Problemwahl und die errechnete Lösung verifizieren. Die meisten dieser Verfahren sind unbeschränkte, probabilistische, iterative Verfahren wie Hashcash.
Rechenbasiert (compute bound): Es wird Energie und Zeit verbraucht. Je nach Rechenleistung kann eine Lösung einfacher berechnet werden.
Speicherbasiert (memory bound): Die Lösung des Problems benötigt viel Speicher. Dadurch wird die Anzahl gleichzeitiger Anfragen limitiert. Je nach Größe spielen Speicherbandbreite und Latenz eine Rolle (Cache-misses)
Netzwerkbasiert: Der Konsument muss für seine Berechnung viele oder schlecht erreichbare Netzknoten kontaktieren. Dadurch wird er zeitlich gebremst oder künstlich, indem die Anfragen künstlich limitiert werden.
Bitmessage ist ein 2012 vorgeschlagenes Verschlüsselungsprotokoll, das einen vertraulichen und anonymen Austausch von E-Mail-ähnlichen Nachrichten in einem Peer-to-Peer-Netzwerk ermöglichen soll.[1] Das Protokoll und die Referenzimplementierung basieren auf der Bitcoin-Technik.
Anonymität des Empfängers
Beim Bitmessage-Protokoll trägt eine verschlüsselte Botschaft keinerlei direkten Hinweis auf Absender oder Empfänger. Sie muss daher allen Teilnehmern des Bitmessage-Netzwerks zugestellt werden. Ein Teilnehmer kann mittels des HMAC-Verfahren feststellen, ob eine Nachricht mit einem seiner öffentlichen Schlüssel verschlüsselt wurde.[2] Ist dies der Fall, weiß er, dass die Nachricht für ihn bestimmt ist und er sie entschlüsseln kann.
Remailer ermöglichen die anonyme Übertragung von E-Mails. Das Funktionsprinzip von Remailern beruht darauf, dass die Herkunft der E-Mail verschleiert wird. Vor allem die IP-Adresse des Absenders soll verschleiert werden, da die IP-Adresse zur Identifizierung von Nutzern dienen kann.
Ein Remailer leitet E-Mails weiter, entfernt hierbei jedoch die Absenderadresse und andere Metadaten, mit denen die Identifizierung des Absenders möglich sein könnte. Der Empfänger sieht lediglich die IP-Adresse des Remailers. Um die Anonymität zu erhöhen, können mehrere Remailer kaskadiert werden, das heißt eine E-Mail wird durch mehrere Remailer von unterschiedlichen Betreibern geleitet.
. Die Sicherheit des Remailings kann durch den Einsatz von fortgeschrittenen Techniken wie Mixen und Onion-Routing noch weiter erhöht werden. Ein einzelner Remailer-Betreiber oder ein Angreifer, der einen Remailer abhören kann, soll dadurch nicht an die Identität des Absenders gelangen.
Vergleich der Funktionsprinzipien
Remailing hat das Ziel den Absender zu anonymisieren und verwendet hierzu einzelne Server bzw. serverbasierte Netzwerke. Remailer interagieren mit der bestehenden E-Mail-Infrastruktur, sodass der Empfänger zum Beispiel sein gewohntes E-Mail-Programm und Postfach auf dem Server seines E-Mail-Dienstleisters verwenden kann. Dadurch kann ein Absender anonym E-Mails verschicken, auch wenn der Empfänger kein Remailing verwendet.
Bitmessage hingegen verwendet ein eigenes Peer-to-Peer-Netzwerk, bei dem Absender und Empfänger anonymisiert werden. E-Mail-Adressen oder andere Teile der bestehenden E-Mail-Infrastruktur werden nicht verwendet. Ein Versand von Nachrichten an Empfänger, die Bitmessage nicht verwenden, ist daher nicht möglich.
Der Entwickler Jonathan Warren nimmt an, dass ein Angreifer einen einzelnen Internetanschluss abhören oder kontrollieren kann, jedoch nicht die Internetanschlüsse aller Bitmessage-Nutzer. Ein Angreifer wie die NSA könne außerdem einen zentralen Internet-Knoten abhören, jedoch ebenfalls nicht die Internetanschlüsse aller Teilnehmer.[1]
Abstreitbarkeit
RIPEMD-160 (RACE Integrity Primitives Evaluation Message Digest) ist eine kryptographische Hashfunktion mit einer Ausgabe von 160 Bit.
Die Multipurpose Internet Mail Extensions (MIME) sind Erweiterungen des Internetstandards RFC 822[1] (seit 2008 durch RFC 5322[2] ersetzt), der das Datenformat von E-Mails definiert. Dieser sieht nur den American Standard Code for Information Interchange (ASCII) vor. Die MIME schaffen Kompatibilität für zusätzliche Zeichen wie Umlaute sowie für Multimedia (etwa bei Mail-Anhängen). Sie wurden in RFC 2045,[3] RFC 2046,[4] RFC 2047[5] RFC 2048[6] und RFC 2049[7] definiert. RFC 2048 wurde von der Internet Engineering Task Force als Best Current Practice eingestuft.
Secure / Multipurpose Internet Mail Extensions (S/MIME) ist ein Standard für die Verschlüsselung und das Signieren von MIME-Objekten durch ein asymmetrisches Kryptosystem. S/MIME wird in sehr vielen Protokollen zur Absicherung in der Anwendungsschicht (Application Layer) eingesetzt. Typische Einsatzfälle von S/MIME sind E-Mail, AS2 und viele weitere. In der Praxis kann S/MIME (Inhaltsebene) mit TLS (Transportebene) kombiniert werden.
Pretty Good Privacy (PGP; englisch für „ziemlich gute Privatsphäre“) ist ein von Phil Zimmermann entwickeltes Programm zur Verschlüsselung und zum Unterschreiben von Daten.
Nachrichten werden verschlüsselt und signiert übertragen. Anders als zum Beispiel bei den E-Mail-Verschlüsselungsprotokollen S/MIME und PGP werden bei Bitmessage auch Absender, Empfänger und die Betreffzeile vertraulich übertragen, um dadurch einen anonymen Nachrichtenaustausch zu ermöglichen.
Bitmessage unterscheidet sich von Remailing bei E-Mail, dass die Anonymität von Absender und Empfänger durch eine Broadcast-Übertragung der Nachrichten an alle Bitmessage-Teilnehmer umgesetzt wird.
Xiao-Weng Fang: Encyclopedia of Cryptography and Security, Band 1: Computational Puzzles. 2. Auflage. Springer, 2011, ISBN 978-1-4419-5905-8, S. 244 f.
Die Distributed-Ledger-Techniken unterscheiden sich durch die Art, wie die vernetzten Computer zu einer Vereinbarung kommen (Konsensusprotokolle), etwa durch Proof of Work wie in Bitcoin, durch den Nachweis ökonomischer Interessen (Proof of Stake) wie in Ethereums Casper,[5] durch einen Koordinator wie in Raft[6] oder durch Wahlen wie in Swirld
Innerhalb der Distributed-Ledger-Technologie gibt es verschiedene Architekturen („DLT Concepts“), die sich vor allem darin unterscheiden, wie Transaktionen validiert und gespeichert werden. Einige bekannte Architekturen sind die Blockchain, die block directed acyclic graphs (blockDAG) und die transaction-based directed acyclic graphs (TDAG).[11]
Erste Grundlagen zur kryptografisch abgesicherten Verkettung einzelner Blöcke wurden 1991 von Stuart Haber und W. Scott Stornetta, 1996 von Ross J. Anderson und 1998 von Bruce Schneier und John Kelsey beschrieben
998 arbeitete auch Nick Szabo an einem Mechanismus für eine dezentralisierte digitale Währung, die er „Bit Gold“ nannte.[6] Im Jahr 2000 entwickelte Stefan Konst eine allgemeine Theorie zu kryptografisch abgesicherten Verkettungen und leitete daraus verschiedene Lösungen zur Umsetzung ab.[5][7]
Das Konzept der Blockchain als verteiltes Datenbankmanagementsystem wurde erstmals 2008 von einer Person oder Personengruppe unter dem Pseudonym Satoshi Nakamoto im White Paper zu Bitcoin beschrieben.[8] Im Jahr darauf veröffentlichte „Satoshi Nakamoto“ die erste Implementierung der Bitcoin-Software und startete dadurch die erste öffentlich verteilte Blockchain.
Verkettungsprinzip
Eine Blockchain ist eine verkettete Folge von Datenblöcken, die über die Zeit weiter fortgeschrieben wird.
Dezentrale Speicherung
Eine Blockchain wird nicht zentral gespeichert, sondern als verteiltes Register geführt. Alle Beteiligten speichern eine eigene Kopie und schreiben diese fort.
Konsensmechanismus
Es muss sichergestellt werden, dass eine bei allen Beteiligten identische Kette entsteht. Hierfür müssen zuerst Vorschläge für neue Blöcke erarbeitet werden. Dies geschieht durch Validatoren (die bei Bitcoin „Miner“ genannt werden). Dann müssen sich die Beteiligten einigen, welcher vorgeschlagene Block tatsächlich in die Kette eingefügt wird. Dies erfolgt durch ein sogenanntes Konsensprotokoll, ein algorithmisches Verfahren zur Abstimmung
Manipulationssicherheit
Durch kryptographische Verfahren wird sichergestellt, dass die Blockchain nicht nachträglich geändert werden kann. Die Kette der Blöcke ist somit unveränderbar, fälschungs- und manipulationssicher.
Transparenz/Vertraulichkeit
Die auf der Blockchain gespeicherten Daten sind von allen Beteiligten einsehbar. Sie sind deshalb aber nicht unbedingt auch für alle sinnvoll lesbar, denn Inhalte können verschlüsselt abgespeichert werden. Blockchains erlauben so eine flexible Ausgestaltung des Vertraulichkeitsgrads.
Nichtabstreitbarkeit
Durch die Nutzung digitaler Signaturen sind Informationen in der Blockchain speicherbar, die fälschungssicher nachweisen, dass Teilnehmer unabstreitbar bestimmte Daten hinterlegt haben, etwa Transaktionen angestoßen haben.[9]
Konsensverfahren
Neue Blöcke werden über ein Konsensverfahren geschaffen und anschließend an die Blockchain angehängt.[10] Das populärste Konsensverfahren ist hierbei die Proof-of-Work-Methode; es bestehen jedoch zahlreiche andere Formen, Konsens herzustellen (Proof of Stake, Proof of Space, Proof of Burn, Proof of Activity). D
Eine Blockchain (auch Block Chain, englisch für Blockkette) ist eine kontinuierlich erweiterbare Liste von Datensätzen in einzelnen Blöcken.[1][2] Neue Blöcke werden nach einem Konsensverfahren erstellt und mittels kryptographischer Verfahren an eine bestehende Kette angehängt.
. Jeder Block enthält dabei typischerweise einen kryptographisch sicheren Hash (Streuwert) des vorhergehenden Blocks,[2] einen Zeitstempel und Transaktionsdaten.[3]
Proof of Work
→ Hauptartikel: Proof of Work
Der Proof-of-Work stellt einen Arbeitsnachweis z. B. die Lösung einer mathematischen Aufgabe dar. Das Ergebnis kann hingegen ohne großen Aufwand nachgeprüft werden. Mit diesem Verfahren wird das übermäßige Erzeugen von neuen Blöcken eingeschränkt, indem Rechenarbeit erbracht werden muss.
Proof of Stake
→ Hauptartikel: Proof of Stake
Der Proof of Stake stellt einen Nachweis des Anteils am Netzwerk dar. Der Anteil bzw. der „Stake“ jedes Teilnehmers wird aus Teilnahmedauer und/oder Vermögen ermittelt und fließt in eine gewichtete Zufallsauswahl ein. Ein deterministischer Algorithmus wählt aus dieser Zahl den Knoten aus, der einen neuen Block hinzufügt.
Teilbare Blöcke
Kette aus Block-Headern. Von einem Hashbaum ist der Teilbaum einer Transaktion abgebildet.
Wenn in jedem Block der Hashwert über den vollständigen Vorgänger gespeichert wird, benötigt man jeweils auch den vollständigen Block, um die Lückenlosigkeit der Kette zu überprüfen. Man benötigt also die gesamte Buchhaltung, auch wenn man nicht an jeder einzelnen Buchung interessiert ist. Um das zu verhindern, werden Hash-Bäume eingesetzt. Anstatt einen Hashwert über den gesamten Block zu bestimmen, kann man auch Hashwerte einzelner Transaktionen errechnen und diese als Hash-Baum organisieren. An der Wurzel des Baumes erhält man damit wieder einen Hashwert, der alle Transaktionen zusammenfassend absichert. Damit kann ein Block-Header erstellt werden, der nur noch den Hashwert des Vorgängers, den Nonce und den Wurzel-Hashwert des eigenen Baums enthält.
Bitcoin
Siehe auch: „Blockchain“ im Artikel Bitcoin
Vereinfachte Bitcoin-Blockchain
Bei Bitcoin besteht eine Blockchain aus einer Reihe von Datenblöcken, in denen jeweils eine oder mehrere Transaktionen zusammengefasst und mit einer Prüfsumme versehen sind, d. h., sie werden jeweils paarweise zu einem Hash-Baum zusammengefasst. Die Wurzel des Baumes (auch Merkle-Root, bzw. Top-Hash genannt) wird dann im zugehörigen Header gespeichert. Der gesamte Header wird dann ebenfalls gehasht; dieser Wert wird im nachfolgenden Header abgespeichert. So wird sichergestellt, dass keine Transaktion verändert werden kann, ohne den zugehörigen Header und alle nachfolgenden Blöcke ebenfalls zu ändern.[13]
Die Blockchain in Bitcoin wird durch eine Gemeinschaft von anonymen Knoten im Netzwerk betrieben, die sicherstellen, dass jeder Block einen erheblichen Arbeitsaufwand erfordert, um zu beweisen, dass er korrekt erstellt wurde. Dies verhindert, dass unzuverlässige Knoten vergangene Blöcke ändern und erfordert, dass sie härter arbeiten als ehrliche Knoten, die nur neue Blöcke hinzufügen möchten
Da die Blöcke miteinander verkettet sind, wird es unmöglich, Transaktionen in einem Block zu ändern, ohne auch alle nachfolgenden Blöcke zu ändern. Dies erhöht die Kosten für die Änderung eines bestimmten Blocks mit jedem weiteren hinzugefügten Block.
abei wird die scheinbar zufällige Natur kryptographischer Hashes ausgenutzt. Ein Hash-Algorithmus wandelt beliebige Daten in eine einzigartige, scheinbar zufällige Zeichenfolge um. Wenn die Daten auch nur geringfügig geändert werden, ändert sich die gesamte Zeichenfolge.
Beim Auditing in der Informationstechnik geht es darum, sicherheitskritische Operationen von Softwareprozessen aufzuzeichnen. Dies betrifft insbesondere den Zugriff auf und die Veränderung von vertraulichen oder kritischen Informationen. Das Auditing eignet sich hierbei deshalb für eine Blockchain, weil es relativ geringe Datenmengen produziert und gleichzeitig hohe Sicherheitsanforderungen aufweist.
Eine Blockchain kann hierbei das Audit-Log (auch als Audit-Trail bezeichnet) vor Veränderung schützen. Zudem sollten die einzelnen Einträge mit einer digitalen Signatur versehen werden, um die Echtheit zu gewährleisten. Ein dezentraler Konsensmechanismus, wie bei Bitcoin, wird nicht zwingend benötigt.[18]
Eine Hashfunktion oder Streuwertfunktion ist eine Abbildung, die eine große Eingabemenge, die Schlüssel, auf eine kleinere Zielmenge, die Hashwerte, abbildet. Eine Hashfunktion ist daher im Allgemeinen nicht injektiv. Die Eingabemenge kann Elemente unterschiedlicher Längen enthalten, die Elemente der Zielmenge haben dagegen meist eine feste Länge.
Ein Hash-Baum (englisch hash tree oder Merkle tree, nach dem Wissenschaftler Ralph Merkle) ist eine Datenstruktur in der Kryptographie und Informatik. Ein Hash-Baum ist ein Baum aus Hashwerten von Datenblöcken, beispielsweise von einer Datei. Hash-Bäume sind eine Erweiterung von Hash-Listen und dienen gleichermaßen dazu, die Integrität von Daten sicherzustellen. Wenn sie die Tiger-Hashfunktion als Grundlage verwenden, so werden sie als Tiger Trees or Tiger Tree Hashes bezeichnet.
In der Informatik bezeichnet man eine spezielle Indexstruktur als Hashtabelle (englisch hash table oder hash map) bzw. Streuwerttabelle. Sie wird verwendet, um Datenelemente in einer großen Datenmenge zu suchen bzw. aufzufinden (Hash- oder Streuspeicherverfahren).
Gegenüber alternativen Index-Datenstrukturen wie Baumstrukturen (z. B. ein B+-Baum) oder Skip-Listen zeichnen sich Hashtabellen üblicherweise durch einen konstanten Zeitaufwand bei Einfüge- bzw. Entfernen-Operationen aus.
Hashing mit Verkettung
Kollision, die mit separate chaining aufgelöst wird.
Beim Hashing mit Verkettung (englisch separate chaining) ist die Hash-Tabelle so strukturiert, dass jeder Behälter eine dynamische Datenstruktur aufnehmen kann – beispielsweise eine Liste oder einen Baum. Jeder Schlüssel wird dann in dieser Datenstruktur eingetragen oder gesucht. So ist es problemlos möglich, mehrere Schlüssel in einem Behälter abzulegen, was allerdings zu mehr oder weniger verlängerten Zugriffszeiten führt. D
Tiger ist eine kryptologische Hashfunktion, die von Ross Anderson und Eli Biham im Jahr 1996 entwickelt wurde. Der von Tiger erzeugte Hashwert hat eine Länge von 128, 160 oder 192 Bit. Der Tiger-Algorithmus ist nicht patentiert. Tiger2 ist bis auf Füllmuster am Ende der Nutzdaten identisch mit Tiger.
Hash-Bäume wurden 1979 von Ralph Merkle erfunden.[1] Der ursprüngliche Zweck war die effiziente Handhabung vieler Lamport-Einmalsignaturen, die zu den quantensicheren Verfahren zählen. Jedoch kann ein einzelner Lamport-Schlüssel nur verwendet werden, um eine einzige Nachricht zu signieren. In Kombination mit Hash-Bäumen kann jedoch ein Lamport-Schlüssel für viele Nachrichten verwendet werden, was im Merkle-Signaturverfahren realisiert wird.
Ein Hash-Baum ist ein Baum von Hash-Werten, wobei die Blätter Hash-Werte von Datenblöcken sind, beispielsweise einer Datei. Knoten weiter oben im Baum sind Hash-Werte ihrer Kinder. Die meisten Implementierungen benutzen einen Binärbaum (jeder Knoten besitzt höchstens zwei Kindknoten), jedoch kann genauso gut ein höherer Ausgangsgrad verwendet werden.
Normalerweise wird eine kryptologische Hashfunktion wie SHA-1, Whirlpool oder Tiger verwendet. Soll der Hash-Baum lediglich gegen unbeabsichtigte Beschädigungen schützen, so kann eine (kryptografisch unsichere) Prüfsumme wie CRC verwendet werden.
Das National Institute of Standards and Technology (NIST) entwickelte zusammen mit der National Security Agency (NSA) eine Hash-Funktion als Bestandteil des Digital Signature Algorithms (DSA) für den Digital Signature Standard (DSS). Die Funktion wurde 1993 veröffentlicht. Diese als Secure Hash Standard (SHS) bezeichnete Norm spezifiziert den sicheren Hash-Algorithmus (SHA) mit einem Hash-Wert von 160 Bit Länge für beliebige digitale Daten von maximal 264 − 1 Bit (≈ 2 Exbibyte) Länge.
SHA ist wie die von Ronald L. Rivest entwickelten MD4 und MD5 eine Merkle-Damgård-Konstruktion mit Davies-Meyer-Kompressionsfunktion, und die Kompressionsfunktion ist auch ähnlich wie bei diesen konstruiert. Mit seinem längeren Hash-Wert von 160 Bit gegenüber 128 Bit bei MD4 und MD5 ist SHA aber widerstandsfähiger gegen Brute-Force-Angriffe zum Auffinden von Kollisionen.
https://de.wikipedia.org/wiki/Secure_Hash_Algorithm
Jeder Block enthält dabei typischerweise einen kryptographisch sicheren Hash (Streuwert) des vorhergehenden Blocks,[2] einen Zeitstempel und Transaktionsdaten.[3]