Lesezeit 5 Mins

Wieso ist die Asymmetrische Verschlüsselung in der Blockchain interessant???

ledger token bildhaft
Bitcoin Is Time | dergigi.com

Ethereum® verwendet die asymmetrische Verschlüsselung “Public Key”-Methode, mit denen Transaktionen signiert und in den Wallets geschützt werden. Schon Julius Caesar (100 v. Chr.) benutzte ein einfaches symmetrisches Verschlüsselungsverfahren (Caesar Algorithmus), während seiner Kriegsführung verschlüsselte er seine Botschaften indem er jeden Buchstaben seiner Nachricht um drei Stellen im Alphabet nach rechts verschob. Der Algorithmus funktioniert also nach der Formel „X = Y+3“, dass ist der Geheimschlüssel. Setzt man einen Buchstaben der Originalnachricht, also Y, in die Formel ein, erhält man X. Aus einem „M“ wird dadurch ein „P“.

  • Klartext: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
  • Geheimtext: D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
A Verschluesselung HiM8

Worin unterscheidet sich die symmetrische zur asymmetrische Verschlüsselung und was sind überhaupt Pub/-Private Keys???

Die asymmetrische Verschlüsselung unterscheidet zwischen Kanal- und Blockverschlüsselung. Bei der Kanalverschlüsselung wird jedes Bit eines Datenstroms einzeln verschlüsselt, jeder Knoten eines intelligenten Netzwerks (z. B. ein Switch) muss den ankommenden Datenstrom entschlüsseln, um ihn ordnungsgemäß zu verarbeiten, erneut zu verschlüsseln und an einen anderen Netzwerkknoten weiterzuleiten.

Bei der Blockverschlüsselung wird eine Nachricht gleicher Länge in einzelne Blöcke verschlüsselt. Der sogenannte AES (Advanced Encryption Standard) ist eine Blockverschlüsselung mit einer Schlüssellänge von 128 Bit bis 256 Bit. AES wurde vom der Nationalen Institution für Standards und Technologie spezifiziert und ist in den USA als erster öffentlicher Verschlüsselungsalgorithmus mit 192 Bit und 256 Bit Keylänge für staatliche Dokumente mit höchstem Geheimhaltungsgrad zugelassen.

Ethereum verwendet die asymmetrische „Public Key” Verschlüsselung. Da der aus dem Verschlüsselungsvefahren generierte “Privat Key” für die Signatur von Transaktionen und als Zugriff auf ETH verwendet wird, muss er in der Wallet geschützt werden. Der “Private Key” in Ethereum wird als zufällige 256 Bit generiert, was 64 (Hex) Zeichen oder 32 Bytes entspricht. Danach werden “Public Keys” von Ethereum (128 Zeichen / 64 Bytes) unter Verwendung eines Algorithmus namens Elliptic Curve Digital Signature Algorithm (ECDSA) erstellt.

  • Symmetrische Verschlüsselung (vglb. zentralisiert): Bei der symmetrischen Verschlüsselung wird der Key vor der Datenübertragung definiert und übergeben (z.B. Telefon, USB-Stick oder Persöhnlich). Eine verschlüsselte Nachricht muss dann nur noch mit einem Key decodiert werden.
  • Asymmetrische Verschlüsselung (vglb: dezentralisiert): Bei der asymmetrischen Verschlüsselung muss kein anderer Kanal (z.B. nur Internet) für die Keyübertragung gefunden werden. Die Verschlüsselung findet mit dem “Public Key” statt, die Entschlüsselung mit dem zugehörigen “Private Key”.

Entschlüsselung

Algorithmus
Entschlüsselung
  • Public Key (Geheimtext): Öffentliche Adresse, jedermann darf diese pseudonymisierte Verschlüsselung einsehen . Der “Public Key” mit 128 Hex-Zeichen, entspricht “Privat Key”, der mit den kryptografischen Funktionen erstellt wurde. “Public Keys” können mit “Privat Keys” erstellt werden. Es kann jedoch kein “Privat Key” aus einem “Public Key” erstellt werden. Die Generierung von “Public Keys” ist eine Einwegfunktion.

Verschlüsselung

Verschluesselung symmetrisches Kryptosystem Schema.svg
Verschlüsselung
  • Private Key (Klartext): Private Adresse, ist nur dem Benutzer bekannt, der es entweder über eine Bibliothek oder über kryptografische Hash-Funktionen erstellt hat. Zufällige 256 Bit, 64 Hex-Zeichen. Dieser wird verwendet, um Ether-Transaktionen in der Blockchain zu signieren. Dieser sollte nicht öffentlich geteilt werden, da jeder, der die “Private Keys” von dem zugehörigen “Public Key” besitzt, die Nachricht entschlüsseln kann.

Das Byzantinische Generäle-Problem

get in loser werer overtaking constantinople

Das Byzantinische Generäle-Problem ist ein hervorragendes grundlegendes Beispiel dafür, wie ein Proof-of-Work-Konsensalgorithmus funktioniert, und hilft Dir im Allgemeinen Dein Verständnis anderer Konsensalgorithmen zu verstehen.

Um eine Einigung über Blockchain-Daten zu erzielen, wird ein Konsensalgorithmus verwendet, der in Gegenwart böswilliger Akteure fehlertolerant ist. Ein solcher Konsens oder Übereinstimmung wird byzantinische FehlertoleranzAls byzantinische Fehler bezeichnet man in der Informationstechnik Fehler, bei denen sich ein System beliebig falsch verhält. Beispielsweise schickt ein Server gelegentlich falsche Antworten und erreicht gelegentlich falsche Systemzustände. genannt, benannt nach dem Problem der byzantinischen Generäle.

Wir haben zwei Armeeneine auf jeder Seite der feindlichen Stadt, und wir müssen genau zur gleichen Zeit angreifen. Die Stadt ist stark genug, um sich gegen eine unserer Armeen zu verteidigen, aber nicht stark genug, um sich gleichzeitig gegen zwei zu verteidigen. Wenn wir nicht gleichzeitig angreifen, verlieren wir. Die Generäle jeder Armee müssen sich also auf den genauen Zeitpunkt einigen, wann sie angreifen sollen. Sie kommunizieren, indem sie zum Beispiel einen Boten (Läufer) durch die feindliche Stadt hin und her schicken. Es gibt keine andere Möglichkeit zu kommunizieren – der Mobilfunkdienst war um 600 n. Chr. gewiss nicht der beste.

Um es beispielhaft darzustellen; sendet General X die Nachricht “ Hey General YZ wir werden am Donnerstag angreifen. Können wir uns darauf verlassen, dass Sie mit uns angreifen???” Der Bote rennt dann durch die Stadt und überbringt die Nachricht an General YZ, der wiederum antwortet: “Wir können donnerstags keine Gruppen-Pilates machen. Wie wäre es mit Freitag??? Wenn wir am Freitag angreifen, werden Sie dann mit uns angreifen??? Und dann läuft der Bote durch die Stadt, um die Botschaft an General X zu überbringen und so weiter.

Hier ist jedoch der Kicker: Der Bote könnte möglicherweise in der Stadt gefangen und durch einen #FakeNews Boten ersetzt werden, der absichtlich versuchen wird, den anderen General zu täuschen, um die Stadt zur falschen Zeit anzugreifen, was unsere Armee zu einem Verlust verdammt. Wie das Beispiel versucht verständlich zu machen, gibt es keine Möglichkeit zu überprüfen, ob die Botschaft authentisch ist, also wie schaffen wir als die besten Militärstrategen des Landes ein “vertrauensloses” System, dass den Sieg beim Angriff auf die Stadt sicherstellt???

Und das ist das Problem der byzantinischen Generäle.

byzantine army charge by simulyaton d8ha6pb fullview
Ein byzantinischer General der seine Truppen nach vorne versammelt. Der Zweck dabei ist nicht nur, die Soldaten mutig und aufgeregt zu machen, sondern ihnen auch zu versichern, dass sich alle anderen mutig und aufgeregt fühlen und auch vorwärts laufen werden, sodass ein einzelner Soldat nicht nur Selbstmord begeht, indem er allein nach vorne läuft. Das ging ja alles nur über Sympathie, die konnten sich dann auch mal hinstellen und sagen: Leute, ihr geht alle drauf und die Leute haben dann geschrien: Hurra! So ist das!
1Referenzen2Referenzen3Referenzen4Referenzen