Adressen bei Kryptowährungen: eine Einführung

Labyrinth. Bild von Alan Levine via flickr.com. Lizenz: Creative Commons

Adressen sind wichtige Konzepte für jeden, der mit Kryptowährungen hantiert. In unserem kleinen Guide versuchen wir, das Phänomen genauer zu beleuchten: Was sind Adressen? Wir werden sie gemacht? Und wie unterscheiden sich Adressen bei verschiedenen Kryptowährungen wie Bitcoin, Monero und Ethereum? Und wie können Adressen einmal besser zu lesen und zu merken sein?

In den frühen Tagen von Bitcoin war es noch möglich, Bitcoins an eine IP-Adresse zu senden. Dies sollte eigentlich eine bequeme Methode sein, um Bitcoins zu benutzen, ohne lange Ketten von Zeichen einzugeben. Nachdem die Bitcoin Entwickler allerdings bemerkt haben, dass man diese Methode, Coins zu versenden, recht einfach angreifen kann, wurde sie entfernt. Es gab zwar Pläne, sie später zu reaktivieren, aber dies ist niemals geschehen.

Diese kurze Geschichte scheint nur anekdotischen Wert zu haben. Tatsächlich aber zeigt sie sehr deutlich, was eine Adresse im Kern ist: Sie ist nichts besonderes und nichts, was in Stein gehauen ist. Eine Adresse ist lediglich ein Platzhalter, der es ermöglicht, dass man Transaktionen in Kryptowährungen empfängt. So ähnlich wie eine IBAN oder SWIFT Nummer.

Die Adresse selbst ist ebenso unbedeutend wie ihr Format. Das einzige, was zählt, ist, dass sie ihren Zweck erfüllt: Zahlungen an eine Partei zu ermöglichen, die eine einzigartige Information besitzt, üblicherweise einen privaten Schlüssel, um das gesendete Guthaben auszugeben. Eine Adresse ist, so gesehen, nicht mehr als ein Mittel der Identifizierunug.

Während allerdings SWIFT und IBAN Nummern von zentralen Instituten wie Banken vergeben werden, existieren die Adressen auf Kryptowährungen bereits. Jede Adresse, ob von Bitcoin, Ethereum oder Litecoin, hat bereits lange existiert, bevor eine Wallet sie gefunden hat. Der Grund dafür ist, dass Blockchain Adressen das Ergebnis mathematischer Operationen sind.

Der öffentliche Schlüssel: Womit die Generierung von Adressen beginnt

Nachdem die Zahlungen an IP-Adressen eingestampft wurden, wurde P2PKH zum Standardformat für Bitcoin Adressen. Wenn ihr es nicht kennt, soltest ihr vielleicht erstmal mit Bitcoin üben, bevor ihr diesen Artikel weiterlest. Eine P2PKH Adresse sieht etwa so aus:

1BvayiASVCmGmg4WUJmyRHoNevWWo5snqC.

P2PKH Adressen haben etwa 34 Zeichen und beginnen mit einer 1. P2PKH steht für “Pay To Public Key Hash”, was bedeutet, dass man an die Hash eines Öffentlichen Schlüssels zahlt. Für diejenigen, die das zum ersten Mal hören, mag sich das äußerst kompliziert anhören. Aber wir gehen Stück für Stück durch die ganze Prozedur der Adress-Generierung und erklären es so einfach wie möglich.

Jede Wallet-Software kann ganz einfach eine P2PKH Adresse generieren. Oder, um es korrekter zu sagen: so viele davon finden, wie ihr wollt. Dahinter steckt keine Quantenphysik, sondern die Verbindung verschiedener Standard-Operationen der Kryptographie.

Zunächst sammelt die Wallet Entropie, also Zufälligkeit, um einen privaten ECDSA Schlüssel zu erzeugen. ECDSA ist der kryptographische Algorithmus, der im Kern von Bitcoin-Adressen und -Transaktionen steckt. Es ist ein aymmetrischer Signatur-Algorithmus, was bedeutet, dass man mithilfe des PRIVATEN Schlüssels Nachrichten signieren und diese Signaturen mithilfe des ÖFFENTLICHEN Schlüssels prüfen kann. Mit ECDSA kann man der Welt ganz einfach die Info geben, die diese braucht, um deine Unterschrift zu signieren. Es ist die sicherere digitale Form der händischen Unterschrift.

Nachdem man also mit ein wenig Entropie einen privaten Schlüssel erzeugt hat, leitet die Wallet von diesem den öffentlichen Schlüssel ab. Dazu nimmt sie zufällige Koordinaten auf einer bestimmten Elliptischen Kurve (für Besserwisser: secp256k1) und macht damit einige weitere Berechnungen. Die Details sind nicht weiter wichtig. Worauf es ankommt, ist, dass dieser öffentlichen Schlüssel im Prinzip alles ist, was man braucht, um Bitcoins zu versenden und zu empfangen. In den frühen Tagen von Bitcoin wurde er auch dafür verwendet.

Sehr rasch wurde das Konzept jedoch erweitert. Denn der öffentliche Schlüssel hat einige Nachteile. Er ist nicht nur sehr lang und unhandlich (etwa 65 Zeichen), sondern auch anfällig für Rechtschreibfehler. Zudem riskiert man die Guthaben, falls ECDSA einmal gebrochen wird, etwa durch Quantencomputer, wenn man den öffentlichen Schlüssel enthüllt, etwa in einer Zahlungsaufforderung. Daher haben die Bitcoin-Entwickler schon früh eine Methode entwickelt, um den öffentlichen Schlüssel in die bekannte Adresse zu transformieren.

Die Erschaffung der Bitcoin Adresse

Um also eine Bitcoin-Adresse zu generieren, nimmt die Wallet den öffentlichen Schlüssel und jagt ihn durch einige Krypto-Algorithmen. Dabei geht es vor allem um Hash-Operationen. Was das ist, habe ich in diesem Artikel genauer beschrieben. Die Kurzfassung: “‘Hashen’ ist eine kryptographische Operation. Mathematiker nennen sie auch Einmal-Funktion, weil sie einen Input (die Datei, eine Email) stets in denselben zufällig anmutenden Output verwandelt, es aber nicht möglich ist, vom Output auf den Input zu kommen.”

Grob gesagt passiert bei der Adress-Generierung das folgende: Die Software hasht den öffentlichen Schlüssel erst mit SHA 256 und dann mit RIPEMD-160. Dann fügt sie an das Ergebnis die bytes 00 als Präfix an den Anfang an – das ist der Grund weshalb P2PKH-Adressen mit einer “1” beginnen – und noch vier Prüfsummen-Bytes an das Ende. Die vier Prüfsummen-Bytes werden erzeugt, indem die Wallet die RIPEMD-160 Hash inklusive Präfix zweimal mit SHA 256 hasht und dann die ersten vier Bytes des Ergebnisses nimmt. Die so bearbeitete RIPEMD-160 Hash, die noch hexadezimal ist, wird in das alphanummerische base58 konvertiert, und Voilá: wir haben die Bitcoin-Adresse, wie wir siekennen und lieben.

Eine Präsentation, die ich bei Slideshare hochgeladen habe, zeigt das Schritt für Schritt.

Ihr müsst, wie gesagt, nicht die Details verstehen. Was wichtig ist, ist, dass diese Adresse einen öffentlichen Schlüssel repräsentiert, und zwar auf eine Weise, die besser zu lesen ist und dank der Prüfsumme verhindert, dass ihr einem teuren Tippfehler zum Opfer fallt. Immer wenn ihr in die Wallet eine Adresse eingibt, werden sowohl Präfix als auch Prüfsumme kontrolliert. Wenn sie nicht passen, gibt es einen Error, und eine Transaktion ist, zum Glück, nicht möglich.

Wenn man den privaten Schlüssel besitzt, der über diese Operation zu einer Adresse führt, ist man die einzige Person, die eine gültige Transaktion mit Bitcoin schreiben kann, die mit dieser Adresse verbunden sind – während jeder dank der Adresse die notwendigen Infos hat, um die Signatur zu verifizieren. Dieser einfache Prozess – Transaktionen signieren und Signaturen verifizieren – ist mehr oder weniger alles, was Transaktionen in Kryptowährungen machen.

Bitcoin hat jedoch noch ein weiteres Adress-Format: die sogenannten P2SH Adressen. Diese Abkürzung steht für “Pay to Script Hash”, was bedeutet, dass man nicht mehr an die Hash eines öffentlichen Schlüssels zahlt, sondern an die Hash eines Scriptes. Man muss also nicht mehr die Signatur vorlegen, die zu einem bestimmten öffentlichen Schlüssel passt, sondern ein Skript, dass eine bestimmte Hash hat. Diese Art von Adressen ermöglichen es, flexiblere Methoden einzuführen, sich als Eigentümer von Coins auszuweisen, etwa die oft benutzen Multi-Sig-Adressen, bei denen mehrere Parteien eine Transaktion signieren müssen, damit sie gültig ist. Diese Adressen benutzen das Präfix 05, weshalb sie mit einer “3” beginnen.

Allerdings könnte man einen ganzen Artikel über P2SH Adressen schreiben. Daher belasse ich es hier dabei und komme wieder auf die Adressen an sich. Wie verhält es sich mit ihnen in anderen Kryptowährungen?

Adressen bei anderen Kryptowährungen

Eine Menge anderer Kryptowährungen benutzen dasselbe Adressformat wie Bitcoin. Etwa Litecoin, Dash oder Dogecoin. Sie generieren die Adresse mit genau derselben kryptographischen Prozedur, mit ECDSA, SHA 256 und RIPEMD 160.

Der einzige Unterschied ist das Präfix vor der RIPEMD 160 Hash. Während Bitcoin das Präfix 00 verwendet, so dass alle Adressen mit einer 1 beginnen, benutzen die Altcoins andere Präfixe, so dass die Adressen mit anderen Zeichen beginnen: Mit L bei Litecoin, X bei Dash oder D bei Dogecoin.

Da diese Coins dieselben kryptographischen Algorithmen verwenden, könnt ihr mit demselben privaten und öffentlichen Schlüssel Coins der verschiedenen Währungen speichern. Zum Teil kann man auch Coins auf derselben Adressen lagern. So benutzen etwa Bitcoin und Litecoin dasselbe Präfix für P2SH Adressen – 05 – weshalb man auf Adressen, die mit 3 beginnen, sowohl Bitcoin als auch Litecoin verwahren kann.

Andere Kryptowährungen hingegen generieren die Adressen auf eine andere Art. Monero etwa basiert auf dem Cryptonote Algorithmus. Dieser benutzt einen anderen Signatur-Algorithmus, um die Schlüssel zu generieren, EdDSA. Cryptonote Währungen benutzen sogenannte Ring-Signaturen, die mehr Privatsphäre bieten, da man nicht genau sagen kann, mit welchem öffentlichen Schlüssel eine Transaktion signiert wurde. Aus diesem Grund beinhaltet eine Cryptonote Adresse zwei öffentliche Schlüssel, einen sogenannten “view” und einen “spend” Schlüssel.

Die Zeichenkette der Ethereum-Adresse wird zunächst nicht gehasht. Es wird ein Präfix angehängt, das die Version anzeigt, sowie eine Prüfsumme, die entsteht, indem man das ganze mit Keccak 256 hasht und dann die letzten vier Bytes nimmt. Die Kette mit den Schlüsseln, dem Präfix und der Prüfsumme wird dann in base58 konvertiert. Die dabei entstehendende Adresse ist länger als bei Bitcoin. Sie sieht etwa so aus: 43ZZViHQKd42X7cajEtc6NUoxG4AvyMu3ZqpGTBP85uhEfYoPVAuGHxJcomMHEPp3NWiKJRUMnuAJ7dfBrPTcfjYMPJzz2a.

Diese verschiedenen Möglichkeiten, Adressen zu erzeugen, zeigen, erneut, dass Adressen lediglich ein Mittel sind, um Zahlungen zu empfangen. Für diese Basis-Funktion ist es egal, wie man aus dem öffentlichen Schlüssel eine Adresse bildet, welche kryptographischen Algorithmen man verwendet und wie die Adresse am Ende aussieht. Die Prozedur der Adressbildung hat allerdings wichtige Implikationen für die Sicherheit und Privacy: Ohne die Prüfsumme könnte man sich bei Bitcoin-Adressen vertippen, und ohne die Integration des zweiten Schlüsselns könnte Monero nicht so anonym sein, wie es ist.

Ein Blick auf Adressen bei Ethereum verdeutlicht diese Erkenntnis weiter.

Adressen bei Ethereum

Wie so viele andere Dinge im Kryptouniversum werden auch Adressen erst so richtig interessant und verwirrend, wenn wir uns Ethereum zuwenden. Viele Leute, die mit Bitcoin begonnen haben und dann mal Ethereum versucht haben, sind verwirrt vom Adress-Format. Dieses ist eine lange Kette von hexadezimalen Zeichen, die mit 0x beginnen. Zum Beispiel 0x0eb81892540747ec60f1389ec734a2c0e5f9f735.

Technisch gesehen sind die Unterschiede zu Bitcoin nicht so groß. Ethereum scheint lediglich auf halbem Wege aufzuhören. Wie bei Bitcoin beginnt man mit einem privaten Schlüssel, und wie bei Bitcoin wird darauf mit ECDSA ein öffentlicher Schlüssel mit 64 Byte gebaut. Danach wird der öffentlichen Schlüssel gehasht, nicht mit SHA 256, sondern wie bei Cryptonote mit Keccak 256. Das Ergebnis ist eine hexadezimale Kette von 32 Byte. Die ersten 12 davon werden weggeworfen, und die letzten 20 ergeben eine Adresse mit 40 Zeichen. An die wird dann das Präfix 0x hinzugefügt, und schon haben wir die Adresse. Anders als bei Bitcoin oder Cryptonote wird die Adresse nicht in base58 übersetzt, sondern bleibt hexadezimal (0-F).

Der wichtigste Unterschied ist jedoch, dass Ethereum Adressen keine Prüfsumme haben. Jede Kette von 40 hexadezimalen Zeichen kann eine gültige Ethereum Adresse sein. Daher wird den Usern strikt abgeraten, Ethereum Adressen von Hand einzugeben, da die Wallets keine Tippfehler bemerken. Man kann hier sehr leicht Coins verlieren. Im Vergleich mit anderen Währungen scheinen Ethereum-Adressen daher unfertig und benutzerunfreundlich zu sein. Für eine Kryptowährung, die für sich beansprucht, der heißeste neue Scheiß zu sein – und damit bei den Märkten auch ganz gut durchkommt – ist das verwirrend schwach.

Aber natürlich gibt es hierfür Gründe, die gar nicht mal so schlecht sind. So wurden die Adressen in der ersten Version von Ethereum, Frontier, als eine Art Platzhalter eingeführt. Da Ethereum damals noch nichts wert und das Projekt der Nerds unter den Nerds war, hat sich niemand für Benutzerfreundlichkeit interessiert. Es war niemals geplant, dass diese Adressen langfristig genutzt werden. Stattdessen soll Ethereum einen Smart Contract benutzen, der Namen mit öffentlichen Schlüsseln verbindet, so dass man Ether einfach an Namen oder Domains senden kann. Langfristig soll Ethereum also den Kreis schließen und das ermöglichen, was Satoshi eigentlich vorhatte – dass man an IP Adressen oder Domains bezahlt.

Es gibt aber noch einen weiteren Grund, den der Ethereum Entwickler Jeff Coleman erklärt: Die Entwickler sind der Meinung, dass vollständige Adressen besser sein können als bei Bitcoin. Erinnern wir uns: Adressen repräsentieren lediglich die Informationen, die man braucht, um Guthaben mit einem privaten Schlüssel zu verbinden, ohne diesen zu kennen. Dies kann, wie Ethereum plant, mit Verträgen gemacht werden, die die öffentlichen Schlüssel mit Namen verbinden. Es kann aber auch mit sehr ausgefeilten Adress-Formaten gemacht werden.

Das Format, das die Ethereum-Entwickler derzeit bevorzugen, nennt sich ICAP und sieht so aus:

E7338O073KYGTWWZN0F2WZ0R8PX5ZPPZS

Wie Bitcoin besteht es aus base36 Zeichen und beinhaltet eine Prüfsumme. “Aber das ist nicht alles, Leute! Eine Sache ist, dass ICAP eine vollständig gültige International Bank Account Number (IBAN) ist,” erklärt Coleman, “Das bedeutet, die existierende Software der Banken kann die Nummer verstehen und mit ihr interagieren.” IBAN ist die internationale Identifizierungsnummer von Bankkonten. Sie besteht aus 32 alphanummerischen Zeichen, die einen Ländercode, eine Prüfsumme, die Banknummer sowie die Account-Nummer beinhalten. Das von Ethereum entwickelte ICAP-Format benutzt ein XE als Landescode und eine Kette von 16 bis 30 alphanummerischen Zeichen, die Informationen wie Account, Asset, Prüfsumme oder Institution beinhalten.

Coleman fährt fort: “Eine andere Sache ist, dass ICAP keine hexadezimalen Adressen braucht. Stattdessen können wir alle dazu überwechseln, Namereg Verträge zu benutzen, so dass man eine für Menschen aussprechbare Zeichenkette benutzt, so was wie XE81ETHXREGJEFFCOLEMAN, was immer noch dem Format der Banken entspricht, aber tatsächlich auch zu merken sein kann.” Langfristig sollen Ethereum Adressen also memorierbar und kompatibel mit dem Bankensystem sein.

Die Verbreitung der ICAP Adressen wächst. Die üblichen Clients sind bereits in der Lage, sie zu erzeugen und zu lesen, auch wenn die alten Adressen weiterhin Standard sind und vermutlich noch für eine lange Zeit bleiben werden. Um diese sicherer zu machen, hat Vitalik Buterin vor einiger Zein eine kleine Verbesserung eingeführt, so dass Großbuchstaben als Prüfsumme gelten. Mit EIP55 generierten Adressen reicht ein Großbuchstabe, um dafür zu sorgen, dass die Adresse mit einem Tippfehler ungültig wird.

Steem – wenn der Username zur Adressse wird

Die Kryptowährung Steem hat ein ähnliches System wie das implementiert, das Ethereum einmal erreichen will. Bei Steem ist der Username die Adresse.

Steem ist eine Kryptowährung auf Basis von BitShares. Es ist mit der Plattform Steemit verbunden, auf der die User Steem-Coins minen können, indem sie Upvotes für Posts und Kommentare sammeln. Dieser “subjektive Proof of Work” ist eine clevere Verbindung von Proof of Stake und Proof of Work. Das System ist insgesamt so komplex wie interessant. Es beinhaltet “Delegierte”, die gewählt werden, um den Proof zu organisieren, es gibt drei Arten von Token, Steem, Steem Power und Steem Dollar, und vermutlich ist Steem viel weniger dezentral als Bitcoin oder Ethereum, da es zu großen Teilen auf der privat gehosteten Plattform Steemit beruht und es auch keine offenen Wallets und Clients zu geben scheint.

Was jedoch faszinierend ist, ist die Art, wie Steem Adressen bildet. Die User bekommen bei der Anmeldung auf Steemit einen privaten Schlüssel, während der Username ihre Adresse ist. So wie ich es sehe, sind die Adressen daher keine kryptographischen Derivate vom privaten oder öffentlichen Schlüssel, sondern in einem Verzeichnis mit dem öffentlichen Schlüssel verbunden, so dass man in der Blockchain weiterhin prüfen kann, ob eine Transaktion gültig ist. Die Verbindung zwischen User und Schlüssel bzw. Guthaben jedoch hängt bei Steem offenbar an einer Datenbank, die privat gehostet ist. Es ist also nicht auf Mathematik, sondern auf Vertrauen gebaut.

Dennoch sind die Adressen auf Basis der Usernamen bei Steem interessant, da sie ein Optimum der Usability gewährleisten. Aufgrund des notwendigen Vertrauens und der zentralisierten Adressvergabe dürfte dieses System jedoch für die meisten Kryptowährungen wenig attraktiv sein, da diese ja gerade die Verifizierung dezentralisieren und Vertrauen durch Mathematik ersetzen wollen.

Ein Namens-Register auf Basis von Smart Contracts, wie es Ethereum plant, könnte jedoch das beste aus beiden Welten verbinden: Es ist dezentral und benötigt kein Vertrauen, wie Kryptwährungen wie Bitcoin und Monero – aber es ist so einfach zu benutzen wie die Adressen von Steem.

Edit: Mein begrenztes Wissen über Steem erzeugt eventuell ein unvollständiges Bild. Bitte die kundigen Kommentare von btswolf unter dem Artikel lesen. Danke!

About Christoph Bergmann (1027 Articles)
Das Bitcoinblog wird von bitcoin.de gesponsort, ist inhaltlich aber unabhängig und gibt die Meinung des Redakteurs Christoph Bergmann wieder. Wenn Ihnen das Blog gefällt, freuen wir uns über Spenden an 1BvayiASVCmGmg4WUJmyRHoNevWWo5snqC. Jeder Satoshi wird dazu verwendet, um das Blog besser zu machen. Weitere Infos, wie Sie uns unterstützen können, finden Sie HIER. Gastbeiträge sind ebenfalls willkommen. Meinen öffentlichen PGP-Schlüssel sowie den Bitmessage-Schlüssel finden Sie HIER

21 Comments on Adressen bei Kryptowährungen: eine Einführung

  1. Es gibt bei Steem keine zentrale Datenbank die Usernamen, Keys und Guthaben verknüpft.
    Alles ist auf der Blockchain und hängt zusammen, lediglich die Frontends sind zentral, wie bei jeder anderen Blockchain auch. Steem ist quasi ein modifizierter und auf Social Media getrimmter Klon von BitShares, dort gibt es ebenfalls Named Accounts und eine abgespeckte dezentrale Börse. Alles Kryptographisch gesichert und nachvollziehbar auf der Chain.

    Der Vergleich in Bezug auf De-/Zentralisierung hinkt in meinen Augen erheblich. Bei Steem und BitShares wird außer den verschiedenen Frontends wie gesagt gar nichts zentral vorgehalten.
    In Steem gibt es 20 Block producer und in BitShares aktuell 27. Die Anzahl und wer diese Producer sind wird von den Stakeholdern bestimmt. Ein Blockproducer in Steem oder BitShares ist mit einem Miningpool in Bitcoin (~10 nennenswerte) oder Ethereum (10 nennenswerte) gleichzusetzen. Um 51% zu erreichen und damit die Hoheit über diese Systeme reichen je nach dem 3-5 Pools aus. In BitShares/Steem/Peerplays und anderen Graphene basierten DPOS Systemen sind aber meist 11-14 Producer für 51% notwendig. Steem hat damit eine 2-3 mal höhere Dezentralisierung als Bitcoin und Ethereum.
    Es kommt nicht auf die Anzahl der einzelnen Computer an, sondern eher wie ein System Konsens erlangt und ob es überhaupt möglich ist ohne Blut auf den Straßen eine Einigung zu erzielen,

    Grüße
    T

    • Danke! Weil mein Wissen hier begrenzt ist, habe ich “offenbar” geschrieben. Ich hoffe, das kam deutlich genug zur Geltung. Für mich ist es einfach schwierig, Steem als dezentral anzusehen, solange ich keinen eigenen Node aufsetzen kann. Wie kann ich denn?

      Und kannst du erklären, wie die Name Accounts dezentral verwaltet werden? Irgendwo muss man ja die Namen an die PubKeys binden. Nach dem Hack von Steemit wurden zahlreiche Accounts zurückgesetzt … da habe ich mich auch gefragt, wie das dezentral möglich ist …

      • Wenn du nach Steem Full Node oder Witness howto’s suchst wirst du einiges finden.
        https://steemit.com/witness-category/@klye/the-complete-noob-guide-to-steem-witness-setup

        Der Hack damals war meines Wissens nach nur durch einen Browser-exploit möglich der anschließend geschlossen wurde. Es wurde nicht das Protokoll selbst gehackt und die Steemit corporation hat die User entschädigt. Somit kein HardFork. Das wäre quasi so als hätte die Ethereum Foundation die DAO Opfer entschädigt anstatt einen HardFork zu initiieren.

      • Ah, cool, danke! Das probiere ich bei Zeiten mal aus. In dem Artikel verweise ich auf die Kommentare!

      • Ein Account ist ein named Public Key. Der Name ist mit dem Public key hart verdrahtet. Senden und empfangen kann man nur über den Namen nicht den Public key. Accounts bestehen darüber hinaus aus Owner Key, Active key und Memo Key. Diese Keys können geändert werden, damit sind Accounts übertragbar.

  2. userdebug // 12. June 2017 at 23:59 // Reply

    Vielen Dank für den interessanten Artikel!
    Aber spätestens bei Adressen, welche man komplett offline generieren und auch nutzen kann (Paper Wallets) habe ich mir die Frage gestellt, wodurch sichergestellt ist, dass eine Adresse nicht doppelt vorkommt.
    Natürlich basieren die Schlüssel auf Entropie, aber ist dadurch das doppelte Sammeln der selben Entropie ausgeschlossen?
    Oder geht man von einer sehr geringen Wahrscheinlichkeit aus, welche die Gefahr einer doppelten Adresse vernachlässigbar klein werden lässt?

    • Ja, die Wahrscheinlichkeit ist verschwindend gering.

      Ein interessantes Interview, auch wenn man nicht alles wörtlich nehmen muss:
      https://bitcoinblog.de/2017/04/06/das-weiss-ja-keiner-einige-behaupten-das-weil-sie-die-alternative-aengstigt/

    • Name required // 13. June 2017 at 17:05 // Reply

      Weder die Online-Wallet, noch ein Paperwallet-Generator prüfen, ob eine Adresse bereits existiert. Genau das Problem wurde hier ja kürzlich bereits besprochen. Stichwort: Adressen-Kollisionen. Das Risiko ist zwar gering, aber eben nicht ausgeschlossen. Und es ist antürlich “unangenehm”, wenn ein anderer User plötzlich die eigenen Funds bewegen kann.

      • Dafür gibt es Multisig.

      • @btswolf

        heißt das “multisig” verhindert eine “Doppelbenutzung” von Adressen. Angenommen, ein Adress-Generator hat eine bereits bestehende Adresse generiert- nur eben, dass diese eine Multi-sig-Adresse ist. Wenn ich das aber nicht weiß und dorthin was sende, dann kann ich die coins nicht bewegen, da ja ein anderer Besitzer dieser Adresse eine “Multisignatur” verpasst und damit geschützt hat? oder?

        sorry bin Technik -Laie…

      • Ranma // 14. June 2017 at 1:57 //

        Die Einzigartigkeit von Fingerabdrücken ist auch nichts weiter als Statistik und kein Naturgesetz. Das Gleiche gilt für alle anderen biometrischen Merkmale, einschließlich dem genetischen ‚Fingerabdruck‘. Trotzdem scheint das allen zu reichen, sogar Gerichten.
        Ranma

  3. So, der Artikel war ein Erfolg, denn jetzt habe ich viel mehr Fragen als vorher. Für den Anfang: Wissen die Banken von der Sache mit den Ethereum-IBAN? Weiß die BaFin davon?
    Wie setzt man einen eigenen Token auf? Sollte man auf Ethereum nicht irgendwann Netzseiten und Datenbanken hosten können und wie steht es damit?
    Ranma

    • Interessante Fragen, und sehr umfassend. Könnte zu jeder einen Artikel schreiben.

      Wissen die Banken von der ETh-Iban? Keine AHnung. Vielleicht, vielleicht nicht. Ist ja auch egal. Sie funktionieren und sind, vielleicht, kompatibel. Weiß die BAFin davon? Keine Ahnung. Ich denke eher nicht. Aber was soll sie machen? Mathematische Ableitungen von Schlüsseln verbieten?

      Wie setzt man Token auf? Der EIP20 Token Standard definiert die technischen Aspekte. Der Rest bleibt der Fantasie, Ehrlichkeit und Geschäftstüchtigkeit überlassen https://github.com/ethereum/EIPs/issues/20

      Webseiten / Datenbankseiten: Nicht direkt. Das ist mit Swarm geplant. https://bitcoinblog.de/2016/12/22/ethereum-erweckt-den-schwarm/

      Hoffe, das hilft ein Stück.

  4. Vielen Dank für diesen Grundlagenartikel, diese sind meiner Meinung auch wichtig, um Neueinsteiger aufzufangen, die nicht nur nach Preis zocken, sondern die Technologie dahinter wenigstens etwas verstehen möchten.

    Bezüglich Monero möchte ich ein paar Ergänzungen hinzufügen, denn dieser Coin und die Kryptographischen Details dahinter haben mich fasziniert:

    Es gibt ohne die privaten (view Schlüssel) für einen Außenstehenden keine Möglichkeit, das Guthaben einer bestimmten Adresse einzusehen: https://moneroblocks.info/richlist
    Transaktionen können keiner Adresse zugeordnet werden, denn die Wallet des Absenders generiert aus der öffentlichen Adresse des Empfängers für jede Transaktion eine einmalige Stealth Adresse, die nur der Empfänger mit seinem privaten View Schlüssel sich zuordnen kann
    Seit RingCT Einführung im Januar 2017 ist der Betrag einer Transaktion auf der Blockchain nur mit entsprechendem privatem View Schlüssel einsehbar.
    In Deinem Wallet kannst Du unlimitierte Sub-Adressen generieren, z.B. um eine für Spenden auf Deinem Blog zu erhalten, eine andere, um das Gehalt Deines Arbeitgebers und noch eine z.B. für Auszahlungen von Börsen oder Mining Pools. Alle Outputs an diese verschiedenen Adressen können in eigenen Zahlungen kombiniert werden, aber kein Außenstehender kann sie durch Verwendung von Ringsignaturen verknüpfen.
    Für Auditzwecke kann man Key Images einzelner Transaktionen generieren und diese z.B. an den Steuerberater weitergeben.
    Das einzige, was man benötigt, um seine Wallet wiederherstellen ist ein Mnemonic Seed, der aus 25 zufälligen Wörtern besteht und daraus die privaten und öffentlichen Schlüssel generiert werden, dies gilt auch für Cold Wallets.

    Falls eine weite Verbreitung in der breiten Masse erfolgen soll, halte ich Privatsphäre für bedeutend, oder würde jemand gerne hier seinen Kontoauszug hochladen? Effektiv tut man das mit Bitcoin und fast allen anderen Coins oder muss sein Geld zumindest irgendwelchen zweifelhaften Bitcoin Tumblern anvertrauen (und läuft Gefahr, im Gegenzug Coins aus zweifelhafter Quelle zu erhalten). Auch Bitcoin Core Entwickler äußern sich zunehmend zur Fungibilität und ein Paper, welches für Confidential Transactions (in Monero RingCT) verwendet wurde, kommt von Greg Maxwell: https://people.xiph.org/~greg/confidential_values.txt

    @Ranma
    Die Banken und Behörden sind sich durchaus von der Existenz der Kryptowährungen bewusst, nicht aber von einzelnen Adressen, zumindest falls sie nicht irgendwo mit einem Bankkonto verknüpft wurden (z.B. über Börsen oder irgendwo veröffentlicht).
    Zum Thema Token: Es ist nicht sehr schwierig einen Token zu erstellen, wenn man einen einigermaßen fähigen Programmierer zur Seite hat. Aktuell kann man wohl auch einfach von der Blase profitieren, solange man den Token gut vermarkten kann, denn es fließt viel dummes Geld in ICOs, ohne dass irgendwelche konkreten Dinge bekannt wären. Das aktuellste Beispiel ist Bancor, welches gestern $150M in ETH (und damit knapp 0,5% der gesamten Ether) eingesammelt hat. Viele (wenn vielleicht nicht alle) dieser ICO-finanzierten Projekte werden scheitern oder massiv abgewertet werden und dann wird es zum Platzen der Blase kommen, also wenn man noch eine (halbwegs) gute Idee hat, würde ich eher jetzt als später einen Token raushauen, um noch etwas vom Kuchen abzubekommen ;).

  5. ” Worauf es ankommt, ist, dass dieser öffentlichen Schlüssel im Prinzip alles ist, was man braucht, um Bitcoins zu versenden und zu empfangen”

    Müsste hier nicht “privater Schlüssel” stehen?

    • Ah, nein, aber widersprüchlich formuliert:

      Mit “versenden” meine ich die Information, die man braucht, um Geld an jemand anderes zu adressieren – also der Public Key. Natürlich braucht man auch den Private Key, um zu unterschreiben, daher ist der Satz tatsächlich falsch.

  6. Ein paar Sachen muß ich erst noch durchlesen. Trotzdem habe ich weitere Fragen und zwar wundert mich vor allem wie die Anonymität von Monero funktioniert. Man kann mehrere öffentliche Schlüssel aus einem privatem generieren. Aber das kann man bei Bitcoin auch. Falls man das macht, dann hindert man trotzdem keinen daran sich alle Transaktionen anzusehen. Zum Beispiel
    https://mobile.twitter.com/actual_ransom/
    zeigt die durch eine bekannte Malware erpreßten Einnahmen, automatisch überwacht und aus unterschiedlichen Adressen eine Gesamtsumme zusammengezählt. Man weiß also sogar, welche Adressen zusammengehören ohne wissen zu müssen, wem sie gehören. Wie kommt man überhaupt darauf, daß die dort beobachteten Adressen zu WannaCry/WannaDecrypt gehören?
    Wenn Monero einen zusätzlichen öffentlichen Schlüssel generiert, was soll das ändern?
    Falls das Monero-Protokoll das Woher und das Wohin aus der Blockchain löscht, dann wäre zwar die Transaktion anonym, aber woher weiß die Blockchain dann, daß die Transaktion überhaupt erfolgt ist? Das Ergebnis müßten ungültige Moneros sein?
    Ist das Woher und das Wohin auf der Bitcoin-Blockchain nicht genau deshalb transparent und hundertprozentig rückverfolgbar, damit jeder Node weiß, welche Transaktionen anerkannt wurden? Kann ein einigermaßen fähiger Programmierer eine Monero-Wallet einfach behaupten lassen, hunderttausend Monero zu haben, und alle Monero-Nodes würden das akzeptieren, weil eine anonyme Transaktion nicht überprüfbar ist?
    Ranma

  7. Ethereum scheint mir nur nutzbar zu sein, falls man selbst ein Nerd ist. Mit all den vielen unterschiedlichen Smart Contracts auf der Blockchain kann die bald sowieso nur noch auf per Glasfasern miteinander verbundenen Supercomputern laufen.

    Zu Steemit fallen mir auch noch Fragen ein. Kann man dort Social Bots verwenden wie bei anderen ‚social media‘? Man könnte sicherlich einen Bot verwenden, der die eigenen Beiträge upvoted?
    Ranma

  8. Interessanter Artikel! 🙂
    Mir ist nur ein kleiner Fehler aufgefallen: ICAP nutzt base36, nicht base58. Schließlich enthalten IBAN ja keine Kleinbuchstaben.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: