Adressen und Transaktionen in Kryptowährungen

Teil 3: Altcoins

Kryptowährungen sind in aller Munde. Tutorials und Erklärungen gibt es zuhauf. In dieser Artikelserie soll ein bestimmer Aspekt, nämlich der der Adressen und Transaktionen, detailliert für populäre Blockchains geklärt werden. Denn unter der Oberfläche verbirgt sich einiges an Komplexität.

Dieser Artikel setzt die Lektüre der beiden vorherigen aus der Serie voraus. Darin wurden Bitcoin und Ethereum diskutiert.

Unter den zwanzig größten Kryptowährungen nach Marktkapitalisierung gibt es verschiedene Systeme, die mittelbar oder unmittelbar von Bitcoin oder Ethereum abgeleitet sind und daher ähnliche Mechanismen für Adressen und Transaktionen haben. Aber es gibt auch komplette Eigenentwicklungen. Hier liste ich kurz diese Währungen auf, insofern sie durch Mining erzeugt werden (laut Angabe von CoinMarketCap).

Litecoin

Litecoin ist eines der ersten Bitcoin-Derivate. Technisch unterscheidet es sich hauptsächlich durch die Nutzung eines anderen Hash-Algorithmus, kürzere Mining-Abstände und eine andere Berechnung der Block-Schwierigkeit. Abgesehen davon implementiert Litecoin auch zahlreiche BIPs, so dass Funktionen wie P2SH auch dort verfügbar sind.

Bitcoin Cash und SV

Bitcoin Cash ist eine Abspaltung von Bitcoin aus dem Jahre 2017. Sie entstand aus der Problematik, dass Bitcoin-Blöcke nur eine begrenzte Größe von 1 MB haben und nur durchschnittlich alle zehn Minuten erzeugt werden, so dass die verfügbare Kapazität an Transaktionen mit dem Bedarf nicht mehr mithalten konnte. Ein Großteil der Bitcoin-Miner hat sich für eine Erweiterung des Block-Formats (Segregated Witness) entschieden, wohingegen Bitcoin Cash durch die (dazu inkompatible) Erhöhung der Blockgröße entstanden ist. Die technischen Details zu Adressen und Transaktionen blieben unverändert.

Bitcoin SV ist wiederum eine Abspaltung von Bitcoin Cash, die die Blockgröße weiter auf 128 MB erhöht hat. Außerdem wurden einige Opcodes aus dem ursprünglichen Bitcoin-Client von Satoshi Nakamoto wieder eingeführt, die später deaktiviert worden sind.

Ethereum Classic

Ethereum Classic ist eine Abspaltung von Ethereum, die aus überwiegend politischen Gründen entstanden ist. 2016 wurde bekannt, dass ein produktiv genutzer und finanziell großzügig ausgestatteter Smart Contract einen Fehler enthielt, der Personen erlaubte, beliebige Mengen an Ether abzuführen. Diese Lücke wurde im großen Stil ausgenutzt, um den Gegenwert von ungefähr 50 Millionen US-Dollar abzuschöpfen. Die Ethereum Foundation beschloss, den Vertrag rückwirkend zu ändern und damit die illegitimen Transaktionen ungeschehen zu machen; ein Vorgang, der durch Blockchain-Technologie eigentlich unmöglich gemacht werden sollte. Doch der Großteil Ethereum-Miner trug diese Geschichtsrevision mit. Der Rest bildete Ethereum Classic. Daher ist die Funktionsweise von Ethereum Classic identisch zu Ethereum.

TRON

TRON wurde ursprünglich als ERC-20-Token auf der Ethereum-Blockchain gehandelt. Mittlerweile wurde eine eigene Blockchain speziell für diese Währung geschaffen. Konten und Transaktionen funktionieren ähnlich zu Ethereum. Es besteht Kompatibilität zur EVM und zu Ethereum-Hochsprachen wie Solidity. Ein Unterschied zu Ethereum besteht darin, dass in Tron eine bestimmte Menge an Transaktionen innerhalb eines 24-Stunden-Fensters keinen Sprit benötigen.

Dash

Dash ist ein Bitcoin-Derivat mit deutlich abweichenden Mining-Konzepten und zwei Arten von Netzknoten. Clients, die den Besitz einer bestimmten Menge an Währung nachweisen können, erhalten als Masternodes zusätzliche Rechte und einen Anteil der geschöpften Beträge, ohne selbst aktiv minen zu müssen; eine Art Verzinsung von Guthaben. Technisch gesehen besteht eine starke Ähnlichkeit zu Bitcoin. Zwei weitere Arten von Transaktionen ermöglichen stärkere Anonymisierung und schnellere Verarbeitung von Zahlungen.

PrivateSend ist ein Mechanismus zur automatischen Vermischung von Dash. Die Grundidee ist, dass mehrere Subjekte in einem begrenzten Zeitraum einem Masternode annoncieren, dass sie Dash mischen wollen. Der Knoten sammelt diese Dash und instruiert die Subjekte, diese sich gegenseitig zu senden. Im Kontext von Bitcoin ist dies als Mixing beziehungsweise der Knoten als Tumbler bekannt. Mischen erschwert die Nachverfolgbarkeit, indem es Transaktionsketten künstlich aufbläht. Es erfordert Vertrauen gegenüber dem Tumbler, aber nicht gegenüber den anderen Subjekten. Der Unterschied zwischen Bitcoin und Dash ist, dass Dash das Mischen als eingebaute Funktion für die Masternodes vorsieht. Der Dash-Core-Client veranlasst Mischtransaktionen automatisch im Hintergrund.

InstantSend ermöglicht es, Zahlungen zu leisten, auf deren Erfolg man sich frühzeitig verlassen kann. Das Prinzip einer Blockchain sieht vor, dass Miner eine Transaktion bestätigen, indem sie in einem neu gefundenen Block inkludiert werden. Doch weil Blockchain-Systeme ihrer Natur nach verteilte Systeme sind, können Blöcke und Transaktionen im Netzwerk unterschiedlich schnell propagiert werden. Möglicherweise können zwei neue Blöcke ungefähr gleichzeitig gefunden werden, wobei der eine Block eine Transaktion beinhaltet, der andere aber nicht.

Konkurrierende Blöcke
Konkurrierende Blöcke

Üblicherweise setzt sich die längere Kette von Blöcken im Netzwerk durch. Die gängige Empfehlung lautet daher, fünf Blöcke nach dem Block, der die gewünschte Transaktion enthält, abzuwarten, bevor man davon ausgehen kann, dass sie tatsächlich stattgefunden hat. Insgesamt dauert dieser Vorgang etwa eine Stunde.

InstantSend ist eine Technik, mit der man Bestätigungen direkt von den Masternodes erhält, die somit garantieren, dass eine Transaktion gültig ist und demnächst in die Blockchain aufgenommen werden wird. Ein vergleichbarer Mechanismus existiert mit dem Lightning-Netzwerk in Bitcoin.

Abgesehen davon funktioniert Dash ebenso wie Bitcoin nach dem UTXO-Prinzip und kennt Senkenskripte und Wertschöpfung durch Coinbase-Transaktionen.

Monero

Monero ist eine Kryptowährung, die von Cryptonote abgeleitet ist. Dieses bietet als definierendes Merkmal anonyme Transaktionen. Cryptonote selbst wird seit einigen Jahren nicht mehr aktiv entwickelt und verfügt über keine nennenswerte Marktpräsenz. Das Cryptonote-Whitepaper führt als gewünschte Eigenschaften einer anonymen Währung aus:

  • Nichtnachverfolgbarkeit fordert, dass alle möglichen Quelladressen einer Transaktion gleich wahrscheinlich sind
  • Nichtverknüpfbarkeit verhindert jeglichen Beweis, dass zwei verschiedene Transaktionen die gleiche Senke haben (bzw. die Senken zur gleichen Person gehören)

Offensichtlich erfüllt Bitcoin das erste Kriterium nicht. Das zweite Kriterium wird teilweise durch die Nutzung von frischen Adressen gesichert, allerdings können Analysen über mehrere Transaktionen hinweg Zusammenhänge von Adressen aufdecken. Cryptonote beziehungsweise Monero will dieses Problem beheben und echte Anonymität – im Gegensatz zu Pseudonymität wie bei Ethereum und Bitcoin – schaffen. Die Basis dafür bilden sogenannte Zero-Knowledge-Protokolle: Ein Beweiser möchte einer einer Prüferin beweisen, dass er über bestimmtes Wissen verfügt, aber keine Informationen verraten, die darüber hinaus Rückschluss auf das geheime Wissen zulassen. Im Falle von Kryptowährungen besteht das darin, dass ein Subjekt allen anderen Subjekten nachweisen können muss, eine bestimmte Transaktionen durchführen zu dürfen, ohne Informationen über diese Transaktion offenzulegen.

Cryptonote setzt dieses Konzept um, indem ein Subjekt zwei Schlüsselpaare generiert. Das eine Schlüsselpaar ist ein Sichtschlüssel, das andere ein Ausgabenschlüssel. Die Adresse setzt sich zusammen aus den öffentlichen Teilen beider Schlüsselpaare. Der Sichtschlüssel wird dazu benutzt, um Transaktionen in der Blockchain zu erkennen, die an einen selbst gerichtet sind. Im Gegensatz dazu wird der Ausgabeschlüssel benutzt, um ausgehende Transaktionen zu signieren. Transaktionen funktionieren konzeptuell ähnlich wie Bitcoin nach dem UTXO-Modell. Allerdings wird als Senke nicht direkt eine Adresse benutzt, sondern pro Transaktion eine Einmaladresse nach dem Prinzip des Diffie-Hellman-Schlüsselaustausches gebildet. Dieser erlaubt es zwei Parteien (hier: Quelle und Senke), sich auf ein gemeinsames Geheimnis zu einigen, ohne dieses für eine dritte Partei offenzulegen. Das gemeinsame Geheimnis wird genutzt, um Transaktionen zwischen zwei Parteien intern zu identifizieren.

Möchte nun in Monero ein Subjekt A einem Subjekt B eine bestimmte Menge an Währung überweisen, so laufen folgende Schritte ab:

  1. Subjekt B veröffentlicht seine öffentlichen Schlüssel.
  2. Subjekt A berechnet den ersten Teil des Diffie-Hellman-Austausches DH1 auf Basis einer Zufallszahl und dem Sichtschlüssel von B.
  3. Subjekt A bildet die Einmaladresse P aus der Summe von DH1 und dem Ausgabenschlüssel von B.
  4. Subjekt A veröffentlicht eine Transaktion T mit P als Adresse und den öffentlichen Diffie-Hellman-Parametern.
  5. Subjekt B kann eine eingehende Transaktion T unter Nutzung des privaten Sichtschlüssels, des öffentlichen Ausgabenschlüssels und der Diffie-Hellman-Parameter erkennen.
  6. Subjekt B kann T als Quelle für eine weitere Transaktion U verwenden, indem es die Quelle mit dem kombinierten privaten Ausgaben- und Diffie-Hellman-Schlüssel von T signiert.
  7. Subjekt A kann falls nötig gegenüber Subjekt B beweisen, dass es die Transaktion durchgeführt hat, in dem es den privaten Teil des Diffie-Hellman-Austausches übermittelt.

Die kryptografischen Primitive, die diese Art von Transaktionen ermöglichen, sind komplex und sollen hier nicht weiter erläutert werden. Durch die Nutzung von kryptografischen Einmaladressen entfällt die Notwendigkeit für Wallet-Software, neue Adressen für Wechselgeld zu generieren; diese sind in Cryptonote automatisch anonym.

Ein Vorteil von Cryptonote ist, dass Subjekt B die Aufgabe, die Blockchain nach einigehenden Transaktionen zu überwachen, an ein drittes Subjekt C delegieren kann, ohne den privaten Ausgabenschlüssel zu übermitteln. B muss also C vertrauen, aufmerksam zu sein. C kann allerdings nicht über die Einnahmen von B verfügen.

Auch die Beträge der Monero-Transaktionen sind geheim. Die besondere Herausforderung hierbei ist es, dass man bei einer Transaktion nachweisen können muss, dass die Summe der Senken kleiner oder gleich der Summe der Quellen ist. Übrig bleibt wie bei Bitcoin eine Gebühr für Miner. Für den Beweis der Summengleichheit sind weitere kryptografische Mechanismen notwendig. Monero schreibt wegen der Komplexität der kryptografischen Operationen eine Mindestgebühr per Größeneinheit von Transaktionen vor.

Die Wertschöpfung bei Monero funktioniert identisch zu Bitcoin. Miner fügen in jedem Block eine Coinbase-Transaktion ohne Quelle ein, die die Block-Belohnung an sie selbst überweist.

Ferner unterstützt Monero auch Unteradressen, die sich über die Schlüssel der Hauptadressen verwalten lassen (ähnlich zu BIP 32). Eine Skripting-Möglichkeit wie in Bitcoin ist in Cryptonote vorgesehen, ist aber wesentlich minimalistischer und wird von Monero nicht implementiert.

Auf Grund der Anonymität von Monero wird es gerne für dubiose Geschäfte benutzt. Ob und wie diese Anonymität aufgehoben werden kann und ob dies in der Zukunft rückwirkend geschehen kann, ist aktueller Forschungsgegenstand.

Zcash

Auch Zcash bietet Anonymisierungsfunktionen. Im Unterschied zu Monero gibt es zwei Arten von Adressen, nämlich private und transparente Adressen. Transaktionen können zwischen beliebigen Adresstypen durchgeführt werden.

Obwohl die technischen und kryptografischen Details zwischen Zcash und Monero stark differieren, sind die Effekte für Nutzer*innen ähnlich. Transaktionen basieren auf dem UTXO-Konzept und im Fall von privaten Senken muss kein Schlüssel veröffentlicht werden.

Zusätzlich zu Monero bietet Zcash (ausschließlich transparente) Multi-Signatur-Transaktionen an. Solche Transaktionen können nur dann als Senke genutzt werden, wenn mehrere Parteien überein kommen. In Bitcoin können solche Transaktionen über Skripte realisiert werden.

Conclusion

Neben den beiden Platzhirschen Bitcoin und Ethereum haben sich zahlreiche Forks und Eigenentwicklungen etabliert. Doch oftmals ist die Quellenlage dürftig, was ihre Funktionsweisen angeht. Bevor man also eine Applikation auf Basis einer öffentlichen Kryptowährung entwickelt, sollte man sich die technischen Details ganz genau ansehen.

TAGS

Comments

Please accept our cookie agreement to see full comments functionality. Read more