Autor: SJORS PROVOOST

Quelle: https://sprovoost.nl/2022/11/10/what-is-a-bitcoin-address/

Eine Bitcoin-Adresse ist nicht Teil der Bitcoin-Blockchain, sondern ein Token, den die Bitcoin-(Wallet-)Software verwendet, um zu kommunizieren, wohin die Bitcoins gesendet werden sollen: entweder an einen bestimmten öffentlichen Schlüssel (P2PK) oder an einen Hash eines öffentlichen Schlüssels (P2PKH). , ein Hash eines Skripts (P2SH), ein Hash eines öffentlichen SegWit-Schlüssels (P2WPKH) oder ein Hash eines SegWit-Skripts (P2WSH). Die Adresse enthält auch einige Metadaten zu ihrem Typ.

(Anmerkung des Übersetzers: Die Adresstypen von Bitcoin werden mit der Modernisierung des Bitcoin-Netzwerks und der Standardisierung der Skriptmethoden weiter zunehmen. Tatsächlich erschienen die oben genannten Adresstypen mit Ausnahme von P2PK und P2PKH mit der ersten Veröffentlichung von Bitcoin. , der Rest kam später. Aufgrund des im Jahr 2021 aktivierten Taproot-Upgrades verfügt Bitcoin nun über einen anderen Adresstyp „P2TR“.

Bitcoin-Adressen verwenden ein eindeutiges Nummerierungssystem, um die oben genannten Zahlungsmethoden auszudrücken. In diesem Artikel wird jedes dieser verschiedenen Nummerierungssysteme vorgestellt und eine detaillierte Analyse der Vorteile von Bitcoin-Adressen im Allgemeinen und bech32-Adressen bereitgestellt. Darüber hinaus erklären wir, woher die in der ersten Version der bech32-Adressen enthaltene (geringere) Sicherheitslücke stammt und wie sie behoben wurde. Abschließend haben wir die Auswirkungen des Quantencomputings angesprochen.

– Dieser Artikel ist ein Auszug aus meinem neuen Buch „Bitcoin: Unfinished Research“ –

Geschichtlicher Hintergrund

Wenn Sie Bitcoin an jemanden senden, erstellen Sie im Wesentlichen eine Transaktion mit mehreren Eingaben und mindestens einer Ausgabe. Ausgaben legen fest, wer sie ausgeben kann, und zwar durch eingebaute Beschränkungen (im Gesetz als Belastungen bezeichnet, die die Übertragung des Eigentums an einem Vermögenswert einschränken).

Die einfachste Belastung besteht darin, jedem die Möglichkeit zu geben, die Bitcoins auszugeben. Dies ist keine gute Idee, da die Bitcoin schnell gestohlen werden. Daher konnte in den frühen Tagen der Bitcoin-Entwicklung die überwiegende Mehrheit der Bitcoins auf der Blockchain nur zwei Einschränkungen nutzen: Pay-to-Public-Key (P2PK) oder Pay-to-Public-Key-Hash (P2PKH). Ersteres kann so verstanden werden: „Nur wer den privaten Schlüssel besitzt, der dem öffentlichen Schlüssel entspricht, darf die Bitcoin ausgeben.“

Damals konnten wir Bitcoin auch an die IP-Adresse des Empfängers senden, diese Funktion wurde jedoch 2012 eingestellt. Um es zu verwenden, müssen Sie sich mit der IP-Adresse des Zahlungsempfängers verbinden, den öffentlichen Schlüssel vom Zahlungsempfänger anfordern und der Zahlungsempfänger wird Ihnen den öffentlichen Schlüssel1 geben. Ihr Wallet erstellt dann Bitcoins mit dem P2PK-Skript.

Dieser Arbeitsablauf mag heute seltsam erscheinen2, aber er passte zum damaligen Muster von Peer-to-Peer-Anwendungen wie Napster und Kazaa, das darin bestand, sich direkt mit anderen Menschen zu verbinden und Dinge von ihnen herunterzuladen. Heutzutage kennen Sie die IP-Adresse Ihres Freundes höchstwahrscheinlich nicht mehr, und wenn er ein mobiles Gerät verwendet, kann es sogar sein, dass sich seine IP-Adresse ständig ändert. Obwohl Sie Ihren Bitcoin-Knoten anweisen können, sich gezielt mit dem Knoten Ihres Freundes zu verbinden, stellt er im Allgemeinen nur eine Verbindung zu zufälligen Knoten her, siehe Kapitel 2.

Die gängigere Transaktionsmethode ähnelt einer Banküberweisung. Der Empfänger gibt Ihnen eine Adresse und Sie senden Bitcoins an diese Adresse, genau wie Sie Geld auf ein Bankkonto senden würden. Ursprünglich verwendeten wir alle P2PKH als Adresse (die Bedeutung von P2PKH wird unten erläutert).

Auf diese Weise wird die Transaktion nicht direkt an den Zahlungsempfänger gesendet, sondern über alle Knoten im Netzwerk gesendet und schließlich vom Mining-Knoten entdeckt und in einen Block verpackt. Es ist möglich, dass der Knoten Ihrer Gegenpartei die Transaktion von einem Peer-Knoten gesehen oder den Block erhalten hat, in dem die Transaktion stattfindet.

Die dritte Transaktionsmethode ist das Mining, bei dem die durch das Mining erhaltenen Blockbelohnungen an Sie selbst gesendet werden. Ursprünglich war in die Bitcoin-Software eine Mining-Software integriert. Sobald Sie also die Bitcoin-Software herunterladen, beginnt Ihre Bitcoin-Software mit dem Mining und sendet dann die Bitcoins an Ihr Wallet. In diesem Fall ist kein Adressenaustausch erforderlich. Diese Bitcoins nutzen alle P2PK als Einschränkung 3.

Wie lautet die Adresse?

Adressen sind eine praktische Möglichkeit, anzugeben, welches Skript in die Blockchain aufgenommen werden muss. Wie oben erwähnt, besteht der Zweck des Skripts darin, Bitcoins Beschränkungen aufzuerlegen und dem Empfänger nur zu erlauben, sie auszugeben4. Die Adresse selbst existiert nicht auf der Blockchain und die Adresse enthält nicht einmal ein vollständiges Skript.

Von den beiden in der Vergangenheit am häufigsten verwendeten Skripttypen werden Adressen nur für Pay-to-Public-Key-Hash (P2PKH) verwendet. Wenn eine Wallet eine solche Adresse erkennt, generiert sie ein Skript, das von der Person, die die Bitcoins darin ausgibt, verlangt, den entsprechenden öffentlichen Schlüssel für diesen Hash zu besitzen (das eigentliche Skript wird in Kapitel 10 bereitgestellt). Nur der Hash wird veröffentlicht und der öffentliche Schlüssel bleibt geheim, bis der Empfänger die Bitcoins ausgibt.

P2PKH-Adressen beginnen mit der Zahl 1, gefolgt vom Hash des öffentlichen Schlüssels. Die Adresse ist Base58-codiert, wie im folgenden Beispiel gezeigt:

1HLoFgMiDL3hvACAfbkDUjcP9r9veUcqAF

Was ist das Basissystem?

Um base58 zu verstehen, müssen wir zunächst die Grundprinzipien des Basissystems verstehen.

Nehmen Sie zum Beispiel Base10, stellen Sie sich das als Ihre 10 Finger vor. Wenn Sie also die Zahl 115 (1, 1, 5) ausdrücken möchten, würden Sie mit beiden Händen drei Gesten machen, die 1, 1, 5 entsprechen. Da der Mensch Tontafeln und Papier erfunden hat, können Sie diese Zahlen auch mit einem Stift schreiben, was viel bequemer ist als mit den Fingern. Daher ist Basis10 ein Dezimalsystem, das 10 verschiedene Symbole verwendet und verschiedene Kombinationen dieser 10 Symbole verwendet, um eine beliebige Zahl (Ganzzahl) auszudrücken.

Darüber hinaus gibt es viele verschiedene Basissysteme. Beispielsweise verwendeten die alten Babylonier die Basis 60. Zum Lesen von Maschinencode verwenden wir normalerweise Hexadezimalzahlen, auch bekannt als Basis16 – mit den 16 Zeichen Ziffern 0 bis 9 und den Buchstaben A bis F. Mittlerweile wird in Computern die Basis2 (ein binäres Zahlensystem) bevorzugt, da Transistoren nur zwei Zustände haben: ein und aus. Das bedeutet, dass alles mit nur zwei Zahlen, 0 und 1, erledigt wird und Sie diese zur Darstellung jeder beliebigen Zahl verwenden können.

Satoshi Nakamoto führte das base58-System ein, das 58 verschiedene Symbole verwendet: die Zahlen 0 bis 9 und die meisten Klein- und Großbuchstaben des Alphabets. Einige Buchstaben und Zahlen, die von Benutzern leicht verwechselt und falsch identifiziert werden können, sind jedoch nicht enthalten – zum Beispiel die Zahl 0 und das Großbuchstabe O sowie das Großbuchstabe I und das Kleinbuchstabe L.

Haben Sie schon einmal den Quellcode eines E-Mail-Anhangs gesehen? Eine Menge seltsamer Zahlen. Dies ist Base64, und Base58 wird auf Basis von Bas64 geboren. Base64 enthält jedoch Zeichen wie Unterstrich, Pluszeichen, Gleichheitszeichen und Schrägstrich. base58 entfernt diese Zeichen, was die visuelle Prüfung erleichtert und effektiv auf URLs angewendet werden kann.

Base58 und Pay-to-Public-Key-Hash

Was hat das mit P2PKH zu tun? P2PKH-Adressen beginnen mit 1, gefolgt vom Base58-codierten Public-Key-Hash.

Dies sind die Informationen, die Sie an eine andere Person senden müssen, wenn Sie von dieser Person Bitcoin erhalten möchten. Sie können ihnen auch einfach 0x005 und den öffentlichen Schlüssel senden. Vielleicht können sie 0x00 erfolgreich übersetzen, aber höchstwahrscheinlich nicht.

Theoretisch könnten Sie jemand anderem ein Bitcoin-Skript in Hexadezimalform (dem in der Blockchain verwendeten Format) senden, da Bitcoin-Skripte binäre Nachrichten sind. Auf der Blockchain würde ein Bitcoin-Skript wie dieses bedeuten: „Wenn diese Person den richtigen Public-Key-Hash und den dazugehörigen Public-Key hat, können Sie diesen Bitcoin ausgeben.“ Wenn Sie tiefer gehen möchten, wird beschrieben, wie Bitcoin-Skript funktioniert in Kapitel 10.

Obwohl es so viele Darstellungsmöglichkeiten gibt, wählt man meist standardisierte Adressformate. Dies erklärt, warum alle herkömmlichen Bitcoin-Adressen mit 1 beginnen und alle ungefähr gleich lang sind.

Base58 kann nicht nur zum Versenden von Bitcoin-Adressen verwendet werden, sondern auch zur Weitergabe privater Schlüssel. In diesem Fall ist das führende Symbol 5 (was 128 als Versionsbyte darstellt), gefolgt vom privaten Schlüssel.

Früher nutzten Nutzer Papiergeldbörsen, die man ausdrucken konnte. Wenn sie sicher und ohne Hintertüren generiert werden, dann hat das Papier auf der einen Seite eine Zeichenfolge, die mit „1“ beginnt, und auf der anderen Seite eine Zeichenfolge, die mit „5“ beginnt, mit dem Hinweis, dass nur Bitcoin-Adressen dargestellt werden dürfen, der private Schlüssel sollte nicht geteilt werden.

Es gibt auch Adressen, die mit „3“ beginnen, was bedeutet, dass die Bitcoins im Skript-Hash und nicht im Public-Key-Hash gesperrt sind. Wir werden Pay to Script Hash (P2SH) in Kapitel 10 vorstellen. Bei solchen Adressen handelt es sich in der Regel um Multisig-Adressen, es kann sich aber auch um SegWit-Adressen6 handeln.

Obwohl Base58-Adressen eine gute Leistung erbringen, gibt es Raum für Verbesserungen. Wir haben also bech32.

bech32 erscheint

Im März 2017 sprach Pieter Wuille über ein neues Adressformat, bech32. Bech32 wird seit der erfolgreichen Aktivierung von SegWit verwendet. Wie der Name schon sagt, ist bech32 ein Base32-System. Das heißt, Sie können fast alle Buchstaben und alle Zahlen verwenden, mit Ausnahme einiger weniger, die zu Verwirrung führen können.

Erklärvideo: https://youtu.be/NqiN9VFE4CU

Der größte Unterschied zwischen bech32 und base58 besteht darin, dass Groß- und Kleinbuchstaben nicht gemischt werden. Jeder Buchstabe kommt nur einmal vor (entweder nur in Groß- oder Kleinbuchstaben), sodass er viel einfacher zu lesen ist. Die genaue Zuordnung zwischen jedem Buchstaben oder jeder Zahl und ihrem entsprechenden Wert ist fest, aber eher willkürlich: Q bedeutet nur 0, P bedeutet nur 1, ohne dass eine tiefere Bedeutung dahinter steckt.

- bech32-Zuordnungstabelle. Beispielsweise bedeutet q 0 und 3 bedeutet 17 (1+16) -

Eine bech327-Adresse besteht aus zwei durch „1“ getrennten Teilen, zum Beispiel bc1q9kdcd08adkhg35r4g6nwu8ae4nkmsgp9vy00gf.

Die erste Hälfte ist bewusst lesbar, zum Beispiel „bc“ (für Bitcoin) oder „Inbc“ (Lightning Network on Bitcoin). Die durch Buchstaben wie „b“ und „c“ dargestellten Werte haben keine Bedeutung. Sie existieren nur, damit die Leute sie erkennen können: „Verstanden, wenn die Adresse mit ‚bc‘ beginnt, bezieht sie sich auf Bitcoin als Kryptowährung.“ Das Wallet prüft jedoch, ob diese Werte vorhanden sind, um die Glaubwürdigkeit zu überprüfen, und diese Werte ​​fließen ebenfalls in die Prüfsumme ein.

„1“ ist lediglich ein Trennzeichen und stellt keinen Wert dar. Wenn Sie sich die Zuordnungstabelle für bech32 ansehen, werden Sie feststellen, dass „1“ nicht enthalten ist, was „überspringen“ bedeutet.

Die zweite Hälfte beginnt mit der SegWit-Versionsnummer. Version 0 wird durch Q(bc1q…) dargestellt (siehe Kapitel 3). Version 1 nennen wir Taproot (siehe Teil 4 dieses Buches), dargestellt durch „P“ (bc1p...). Im Fall von SegWit der Version 0 folgen auf die Versionsnummer 20 bzw. 32 Bytes, die den Public-Key-Hash bzw. Skript-Hash darstellen. Der Längenunterschied liegt daran, dass SegWit den SHA256-Hash des Skripts (32 Bytes) anstelle des RIPEMD160-Hashs des Skripts (20 Bytes) verwendet.

In Base58 hat der Skript-Hash die gleiche Länge wie der Public-Key-Hash. Aber in SegWit sind die Längen der beiden unterschiedlich. Anhand der Länge der Adresse können Sie also sofort erkennen, ob Sie ein Skript oder einen Public-Key-Hash bezahlen. Übrigens eliminiert Taproot diesen Längenunterschied und verbessert so die Privatsphäre weiter.

Daher zeichnet sich bench32 dadurch aus, dass es nur 32 Zeichen für die zweite Hälfte der Adresse verwendet, und unterscheidet sich ansonsten nicht wesentlich von base58. Sehen Sie sich diese Funktion an und Sie werden wissen: „Aha, das ist eine P2PKH-Adresse.“ In diesem Fall Pay-to-Witness-Public-Key-Hash (P2WPKH), wobei sich „Witness“ auf SegWit bezieht, aber auf die Kernidee bleibt gleich: Menschen und Computer können den Adresstyp anhand eines kurzen Präfixes gefolgt von einem Hash eines öffentlichen Schlüssels oder Skripts identifizieren.

32-dimensionales Dartspiel

Allerdings ist die Einfachheit nicht der einzige Vorteil. Ein weiterer Vorteil ist die Fehlerkorrektur, zumindest die Fehlererkennung.

Wenn Sie die falsche Adresse eingeben, kann es im schlimmsten Fall passieren, dass Sie Bitcoin an den falschen Public-Key-Hash senden. Wenn der Empfänger versucht, Bitcoin auszugeben, stellt er fest, dass der Hash seines öffentlichen Schlüssels nicht den Blockchain-Anforderungen entspricht, weil der Absender zuvor die falsche Adresse eingegeben hat. Dieser Bitcoin wird niemals wiederhergestellt.

Glücklicherweise hat die Base58-Adresse am Ende eine Prüfsumme. Wenn Sie auf diese Weise eine falsche Adresse eingeben, schlägt die Überprüfung der Prüfsumme am Ende der Adresse fehl. Ihr Wallet wird Sie alarmieren und das Senden der Transaktion verweigern (die Blockchain schützt Sie nicht, Ihr Wallet jedoch schon). Wenn Sie jedoch wirklich Pech haben, ist es möglich, dass Sie auch dann die richtige Prüfsumme erhalten, wenn Sie einen Fehler machen.

Bech32 wurde entwickelt, um solche extremen Zufälle zu vermeiden. Außerdem sagt Ihnen Bech32 nicht nur, ob Sie einen Fehler gemacht haben, sondern auch, wo Sie den Fehler gemacht haben. Die spezifische Methode besteht darin, alle Bytes der Adresse zu nehmen und sie mithilfe einer komplexen mathematischen Formel zu hashen. Selbst wenn Sie vier Fehler machen, weiß Bech32 immer noch, wo Sie den Fehler gemacht haben und wie hoch der tatsächliche Wert ist. Wenn Sie mehr als 4 Fehler machen, kann Bech32 nichts tun.

Lassen Sie uns dies mit einer Analogie veranschaulichen: Sie zeichnen eine Reihe nicht überlappender Kreise an eine Wand. Das Bullseye jedes Kreises stellt einen korrekten Wert dar, während die anderen Punkte innerhalb des Kreises einen Eingabefehler darstellen. Wenn Sie ein erfahrener Dartspieler sind, treffen Sie meistens ins Schwarze, was bedeutet, dass Sie den richtigen Wert verlieren. Wenn Sie das Bullseye leicht verfehlen, aber dennoch innerhalb des Kreises liegen, bedeutet das, dass der von Ihnen eingegebene Wert leicht abweicht. Bei der Fehlerprüfung weiß man, dass man nicht ins Schwarze getroffen hat. Bei der Korrektur wird der Pfeil zum nächstgelegenen Bullseye bewegt.

Die Idee dabei ist, dass Sie den Kreis so weit wie möglich machen möchten, um auch den unvorsichtigsten Dartspielern gerecht zu werden, aber Sie möchten nicht zu viel Platz verschwenden. Ebenso möchten wir nicht, dass eine Bitcoin-Adresse Hunderte von Zeichen lang ist. Dies ist das beliebteste Optimierungsproblem der Mathematiker.

Im Gegensatz zu einer 2D-Wand ist bech32 wie eine 32D-Wand mit einer 32D-Hypersphäre. Wenn Sie Ihre Adresse eingeben, gibt es irgendwo in diesem 32-dimensionalen Raum eine leichte Abweichung, aber egal wie es aussieht, Sie befinden sich immer noch in dieser Hypersphäre. In diesem Fall weiß Ihr Wallet, was falsch ist und kann den Verlust von Bitcoins durch den Versand an die falsche Adresse wirksam verhindern8.

bech32-Sicherheitslücke

Im Jahr 2019 wurde festgestellt, dass die Prüfsummenüberprüfung trotzdem erfolgreich verläuft und Sie keine Eingabeaufforderung erhalten, wenn das letzte Zeichen einer bech32-Adresse ein P ist und Sie später versehentlich ein oder mehrere Qs eingeben. Ihre Wallet-Software geht davon aus, dass die Adresse korrekt eingegeben wurde, sodass Sie die Bitcoins an die falsche Adresse senden können, was zur Folge hat, dass die Bitcoins nicht mehr ausgegeben werden können, wie wir oben erklärt haben.

Die gute Nachricht ist, dass bech32 nur mit SegWit funktioniert und SegWit-Adressen eine Längenbeschränkung haben – sie können nur 20 Byte oder 32 Byte groß sein. Wenn Sie nach einer 20 oder 32 Byte langen Adresse ein zusätzliches Q eingeben, ist die eingegebene Adresse glücklicherweise ungültig, da sie die Längenbeschränkung überschreitet. Ihr Wallet wird dieses Problem bemerken und sich weigern, die Bitcoins zu versenden. Ursprünglich wurde darüber nachgedacht, eine ähnliche Adresslängenbeschränkung für Taproot einzuführen, aber die unten genannte Lösung macht diese Notwendigkeit überflüssig. Die flexible Adresslänge wird uns helfen, Taproot in Zukunft zu verbessern.

bech32m ist geboren

Um die Schwachstellen von bech32 zu beheben, wurde ein neuer Standard namens bech32m vorgeschlagen9. Bei bech32m handelt es sich eigentlich um eine sehr einfache Änderung: Der bech32-Prüfsummenformel wird eine zusätzliche Zahl hinzugefügt, um sicherzustellen, dass alle zusätzlichen Zeichen eine ungültige Prüfsumme erzeugen.

Dieser neue Standard gilt nur für Taproot-Adressen und zukünftige Adressen. Für SegWit-Adressen ändert sich nichts, da diese bereits durch eine Längenbeschränkung von 20 oder 32 Byte geschützt sind. Zum Zeitpunkt des Verfassens dieses Artikels unterstützt die meiste Wallet-Software den neuen bech32m-Standard.

Was hat mich dazu gebracht, meine Ängste abzuschütteln und mich in Quantencomputing zu verlieben?

Pay-to-Public-Key-Hash (P2PKH) gilt übrigens als resistenter gegen Quantenangriffe, da Sie Ihren öffentlichen Schlüssel nicht preisgeben müssen. Der Nachteil war, dass Hashes mehr Platz beanspruchten – was damals jedoch kein Problem darstellte, da die Blöcke bei weitem nicht voll waren.

Viele Menschen befürchten, dass Quantencomputer irgendwann die Sicherheit der Bitcoin-Kryptographie untergraben und Quantenhackern die Möglichkeit geben, Bitcoins zu stehlen. Sollte es ihnen gelingen, Millionen von Bitcoins zu stehlen, könnte es sogar zu einem Marktcrash kommen.

Das Problem besteht darin, dass trotz der breiten Akzeptanz von P2PKH die öffentlichen Schlüssel für 5 bis 10 Millionen dieser Bitcoins veröffentlicht wurden. Ironischerweise macht es wenig Sinn, die verbleibenden Bitcoins auf diese Weise zu schützen, da so viele Bitcoins anfällig für Quantenhacker sind. Selbst wenn Ihre Bitcoins durch die Verwendung von P2PKH vor Diebstahl geschützt sind, werden sie durch den Preisverfall unweigerlich wertlos.

Der Physiker Stepan Snigirev und der Mathematiker Andrew Poelstra erläutern in zwei Episoden des Podcasts mit dem Titel „What Bitcoin Did“ das Potenzial von Quantenangriffen, kurzfristig verheerende Folgen zu haben, und mögliche Gegenmaßnahmen.

Da der Blockspeicher jetzt sehr knapp wird, können Benutzer Geld sparen, wenn sie die Hashes öffentlicher Schlüssel nicht im wertvollen Blockspeicher speichern müssen. Aus diesem Grund wird die Bitcoin-Adresse im neuen Taproot-Soft-Fork (siehe Teil 4 dieses Buches) wieder zu P2PK10. Bitte beachten Sie, dass die Verwendung von Taproot-Adressen nicht obligatorisch ist. Wenn Sie also mit der obigen Begründung nicht einverstanden sind, können Sie sich gegen die Verwendung von Taproot entscheiden.

Fußnote

1. Um die Neugier von Code-„Archäologie“-Enthusiasten zu befriedigen: Der Senderknoten verfügt über ein UI-Dialogfeld, in dem der Übertragungsbetrag und die IP-Adresse abgefragt werden. Die Funktion StartTransfer() erstellt eine Blankoscheck-Transaktion, bei der der Checkorder auf dem Empfängerknoten ein P2PK-Skript (als scriptPubKey) einfügt. OnReply2() fügt dann den Betrag ein, signiert die Transaktion, sendet die Transaktion an den Empfänger zurück und sendet sie. Quellcode. ↩

2. Und es ist unsicher, das hat auch Satoshi Nakamoto zugegeben. ↩

3. Warum unterstützte die ursprünglich von Satoshi Nakamoto veröffentlichte Version sowohl P2PK als auch P2PKH? Wir wissen nicht genau, warum. Die P2PK-Zahlungsmethode wird eigentlich nur zur Zahlung von IP-Adressen und zur Zahlung von Blockprämien an Miner verwendet. Beides erfordert keine menschliche Interaktion. In Szenarien mit menschlicher Interaktion verwenden Benutzer P2PKH. Die verwendete Adresse bezieht sich auf P2PKH, nicht auf P2PK. Automatisierte Systeme benötigen das Konzept von Adressen nicht, da sie auch mit Skripten umgehen können, sodass Konzepte wie P2PK-Adressen nicht erforderlich sind. ↩

4. Bisher ähnelte das Skript einem Bankkonto. Wie wir in Kapitel 10 erfahren werden, leisten Skripte viel mehr, als nur Geld für den Besitzer zu behalten. ↩

5. Zur Darstellung eines Bytes wird üblicherweise ein Hexadezimalzahlenpaar mit dem Präfix 0x verwendet, das 16 × 16 = 256 verschiedene Werte darstellen kann. Daher stellt 0x00 ein Byte dar und sein Wert ist 0. ↩

6. Wie in Kapitel 3 erläutert, verwendet SegWit normalerweise bech32-Adressen. Allerdings dauerte es lange, bis alle Wallets und Börsen Zahlungen an bech32-Adressen unterstützten. Um einige der Vorteile von SegWit weiterhin zu nutzen, führen wir einen Adresstyp ein, der aus der Sicht des Absenders wie normales P2SH aussieht, hinter dem sich aber die Magie von SegWit verbirgt. Diese Art von Adresse wird als P2SH-P2WPKH-Adresse bezeichnet. ↩

7.bech32 vorgeschlagen von BIP173. ↩

8. Frühe Ethereum-Wallets nutzten keine Fehlererkennung, da ihre Adressstandards keine Prüfsummen enthielten. Obwohl EIP55 im Jahr 2016 Prüfsummen eingeführt hat, führen nicht alle Wallets eine Fehlererkennung durch. Selbst im Jahr 2017 verloren Menschen immer noch Ether, weil sie eine falsche Adresse eingegeben hatten. ↩

9.bech32m vorgeschlagen von BIP 350. ↩

10. Zu spezifischen Gründen siehe die Anmerkungen zu BIP 341. ↩