Pay-to-Public-Key (P2PK) ist die ursprüngliche Methode zum Empfangen von Bitcoin und erfordert keine Adresse. Stattdessen wird Bitcoin, wie der Name schon sagt, direkt an einen offengelegten öffentlichen Schlüssel gezahlt. Die erste Bitcoin-Transaktion von einer Person zur anderen nutzte P2PK, als Satoshi Nakamoto Münzen an Hal Finney in Block 170 schickte.
P2PK wird nicht mehr verwendet, da es eine teurere, weniger private und weniger sichere Möglichkeit zum Empfangen von Bitcoin ist als nachfolgende Methoden.
Pay-to-Public-Key-Hash (P2PKH) war zu Beginn von Bitcoin verfügbar und tauchte weniger als zwei Wochen nach dem Genesis-Block zum ersten Mal in der Blockchain auf. P2PKH bietet mehrere Verbesserungen gegenüber P2PK, beispielsweise die Verwendung einer Adresse. Wie in unserem früheren Artikel besprochen, enthalten Adressen eine Prüfsumme, die Tippfehler und verlorene Bitcoins verhindert.
P2PKH-Adressen sind in der Regel 34 oder 33 Zeichen lang (könnten aber theoretisch auch nur 26 Zeichen lang sein) und sind im Base58-Format codiert. Sie beginnen mit dem Präfix 1 und sind derzeit für den Empfang und die Sicherung von 43 % des geschürften Bitcoin-Angebots verantwortlich, mehr als jeder andere Adresstyp.
Beim Erstellen einer P2PKH-Adresse muss ein einzelner öffentlicher Schlüssel über die Hash-Funktionen SHA-256 und RIPEMD-160 eingegeben werden. Dadurch wird die Datenmenge verkürzt, was wiederum dazu beiträgt, Blockplatz und Transaktionsgebühren für den Benutzer zu sparen. Es führt auch zu einem weiteren Widerstand gegen das Reverse Engineering des privaten Schlüssels über die bereits als unzerbrechlich geltende elliptische Kurve secp256k1 hinaus.
Pay-to-Multisig (P2MS) ist ein trivialer Transaktionstyp, der nur kurzzeitig relevant war und nie dafür verantwortlich war, dass bei allen Netzwerkteilnehmern mehr als 100 Bitcoins gleichzeitig gehalten wurden. Dennoch ist P2MS ein Teil der Bitcoin-Geschichte.
P2MS wurde Anfang 2012 als Standardskript gemäß BIP 11 eingeführt. Dieser Transaktionstyp litt jedoch unter den gleichen Problemen wie P2PK, da er offengelegte öffentliche Schlüssel enthielt und kein Adressformat verwendete. Außerdem wurde die Anzahl der öffentlichen Schlüssel in einem Multisig-Quorum auf drei begrenzt. Innerhalb weniger Monate würde P2MS durch eine alternative Methode zum Empfang von Bitcoin in einer Multisig-Anordnung namens P2SH ersetzt werden, die wir als Nächstes behandeln werden.
Pay-to-Script-Hash (P2SH) wurde am 1. April 2012 als Soft Fork gemäß BIP 16 in Bitcoin eingeführt. Wie bei den meisten Forks ist die Geschichte dahinter faszinierend. P2SH hat viele Gemeinsamkeiten mit P2PKH. Der Hauptunterschied besteht darin, dass die Adresse durch Hashing eines Einlöseskripts erstellt wird, anstatt durch Hashing eines einzelnen öffentlichen Schlüssels.
Ein Einlöseskript kann man sich als codierte Anweisungen vorstellen, die angeben, wie an der P2SH-Adresse empfangene Bitcoins in Zukunft ausgegeben werden können. Es könnte eine Vielzahl von Möglichkeiten geben, einschließlich mehrerer verschiedener öffentlicher Schlüssel. Der Empfänger und nicht der Absender bestimmt die Skriptdetails, und die Ausgabeanweisungen werden erst dann öffentlich zugänglich gemacht, wenn Bitcoin an der Adresse ausgegeben wird.
Während fortgeschrittene Benutzer komplexe Skripte erstellen können, wird P2SH am häufigsten zum Erstellen verschachtelter SegWit-Adressen (siehe unten) und Multisig-Wallets verwendet. Ein Skript kann beispielsweise drei öffentliche Schlüssel enthalten und angeben, dass Signaturen von zwei beliebigen der entsprechenden privaten Schlüssel die Bitcoin ausgeben können. Dadurch würde eine 2-von-3-Multisig-Adresse erstellt.
P2SH-Adressen sind genau 34 Zeichen lang und beginnen mit dem Präfix 3, wie in BIP 13 festgelegt. Vor dem Soft Fork am 1. April experimentierten eine Handvoll Transaktionen mit diesem alternativen Präfix, von denen sich das erste in Block 170.052 befindet.
Pay-to-Witness-Public-Key-Hash (P2WPKH) ist der erste von zwei Adresstypen, die mit dem SegWit-Soft-Fork im August 2017 in Bitcoin eingeführt wurden. Die Geschichte hinter diesem äußerst wichtigen und besonders umstrittenen Soft Fork ist in einem Buch mit dem Titel „The Blocksize War“ von Jonathan Bier dokumentiert.
P2WPKH ist die SegWit-Variante von P2PKH, was im Grunde bedeutet, dass Sie durch die Wahl dieses Adresstyps anstelle älterer P2PKH-Adressen Geld bei den Transaktionsgebühren sparen können, wenn Sie Ihre Bitcoins verschieben.
SegWit-Adressen unterscheiden sich deutlich von den älteren Adresstypen, da sie gemäß BIP 173 die Bech32-Kodierung anstelle von Base58 verwenden. Vor allem gibt es in Bech32 keine Großbuchstaben. P2WPKH-Adressen können durch ein Präfix von bc1q und eine Zeichenlänge von genau 42 identifiziert werden.
Pay-to-Witness-Script-Hash (P2WSH) ist die SegWit-Variante von P2SH. Der Hauptvorteil der Verwendung von P2WSH gegenüber P2SH besteht darin, dass dadurch die Transaktionsgebühren gesenkt werden können, und der Hauptgrund für die Verwendung eines Skript-Hashs anstelle eines Public-Key-Hashs besteht darin, Multisig-Anordnungen zu berücksichtigen.
Wie P2WPKH beginnt eine P2WSH-Adresse mit dem Präfix bc1q. Allerdings hat es eine längere Zeichenlänge von genau 62. Im Gegensatz zu den bisher behandelten Adresstypen werden P2WSH-Adressen allein mit der SHA-256-Hashing-Funktion erstellt, ohne RIPEMD-160 einzubeziehen, was zu einer erhöhten Zeichenlänge führt. Dies wurde mit Vorsicht umgesetzt und bietet zusätzlichen Schutz vor einem recht differenzierten und äußerst unwahrscheinlichen Multisig- Angriffsvektor.
Nested SegWit (auch bekannt als Wrapped SegWit) ist technisch gesehen kein anderer Adresstyp als der oben beschriebene. Dennoch ist es eine einzigartige Möglichkeit, zuvor besprochene Adresstypen auf eine Weise zu verwenden, die vorübergehend für die Bitcoin-Community nützlich war.
Als der SegWit-Softfork stattfand, wurden nicht alle Bitcoin-Knoten, Software und Dienste sofort aktualisiert, um die neuen nativen SegWit-Adresstypen P2WPKH und P2WSH zu unterstützen. Nur die Entitäten, die ein Upgrade durchgeführt haben, konnten an diese neuen Adressen senden. Das bedeutete, dass Leute, die die Möglichkeit haben wollten, Bitcoins von jedem zu erhalten (einschließlich derjenigen, die kein Upgrade durchgeführt hatten), noch kein Native SegWit-Wallet verwenden konnten. Da SegWit jedoch günstigere Transaktionsgebühren anbot, wollten die meisten Leute es unbedingt nutzen.
Die clevere Lösung für dieses Dilemma bestand darin, den P2SH-Transaktionstyp zu verwenden. Die Entitäten, die SegWit noch nicht implementiert hatten, könnten weiterhin Bitcoin an P2SH-Adressen senden – die, wie oben erläutert, mit einem Einlöseskript erstellt werden, das die Anweisungen angibt, wie die Bitcoin später ausgegeben werden können. Wie sich herausstellt, könnten diese Anweisungen das neue SegWit-Ausgabenmodell integrieren und Benutzern eine Brücke zu reduzierten Gebühren bieten. Daher wurden die P2SH-Adressen, die diesen Trick verwendeten, als Nested SegWit bekannt und spielten eine wichtige Rolle bei der Einführung von SegWit.
Oberflächlich betrachtet sind Nested SegWit-Adressen nicht von anderen P2SH-Adressen zu unterscheiden, sodass der in dieser Anordnung gehaltene Bitcoin-Vorrat nicht bekannt ist. Da außerdem alle modernen Bitcoin-Tools jetzt direkt an native SegWit-Adressen senden können, gibt es keinen guten Grund mehr, Nested SegWit zu verwenden.
Pay-to-Taproot (P2TR) ist der neueste Adresstyp, der im November 2021 vom Taproot-Soft-Fork verfügbar gemacht wurde. Die Akzeptanz von P2TR ist zum Zeitpunkt des Verfassens dieses Artikels noch recht gering, und viele Bitcoin-Softwareprogramme und -Dienste arbeiten noch an der Integration.
Während P2WPKH und P2WSH als SegWit V0 bekannt sind, gilt P2TR als SegWit V1. Insbesondere verwendet P2TR einen digitalen Signaturalgorithmus namens Schnorr, der sich vom ECDSA-Format unterscheidet, das in früheren Bitcoin-Transaktionstypen verwendet wurde. Schnorr-Signaturen bieten mehrere Vorteile, darunter zusätzliche Reduzierungen der Transaktionsgebühren und mehr Privatsphäre.
Was den Datenschutz betrifft, ermöglichen die von Schnorr ermöglichten Schlüssel- und Signaturaggregationen, dass Multisig-Adressen nicht von Singlesig-Adressen zu unterscheiden sind, und die Ausgabebedingungen für eine P2TR-Adresse werden niemals öffentlich bekannt gegeben. Der Ersteller der Adresse kann sogar mehrere benutzerdefinierte Einlöseskripte zur Auswahl hinzufügen, um die Bitcoins später auszugeben.
P2TR-Adressen sind 62 Zeichen lang und verwenden die Bech32m-Kodierung, eine leicht modifizierte Version von Bech32, wie in BIP 350 beschrieben. P2TR-Adressen können anhand ihres eindeutigen bc1p-Präfixes identifiziert werden.
Nachdem wir nun alle standardisierten Methoden zum Empfang von Bitcoin in der Kette abgedeckt haben, können einige der Kurzinformationen und Adressfunktionen zu Referenzzwecken in einer praktischen Tabelle zusammengefasst werden.
Compartir
Pay-to-Public-Key (P2PK) ist die ursprüngliche Methode zum Empfangen von Bitcoin und erfordert keine Adresse. Stattdessen wird Bitcoin, wie der Name schon sagt, direkt an einen offengelegten öffentlichen Schlüssel gezahlt. Die erste Bitcoin-Transaktion von einer Person zur anderen nutzte P2PK, als Satoshi Nakamoto Münzen an Hal Finney in Block 170 schickte.
P2PK wird nicht mehr verwendet, da es eine teurere, weniger private und weniger sichere Möglichkeit zum Empfangen von Bitcoin ist als nachfolgende Methoden.
Pay-to-Public-Key-Hash (P2PKH) war zu Beginn von Bitcoin verfügbar und tauchte weniger als zwei Wochen nach dem Genesis-Block zum ersten Mal in der Blockchain auf. P2PKH bietet mehrere Verbesserungen gegenüber P2PK, beispielsweise die Verwendung einer Adresse. Wie in unserem früheren Artikel besprochen, enthalten Adressen eine Prüfsumme, die Tippfehler und verlorene Bitcoins verhindert.
P2PKH-Adressen sind in der Regel 34 oder 33 Zeichen lang (könnten aber theoretisch auch nur 26 Zeichen lang sein) und sind im Base58-Format codiert. Sie beginnen mit dem Präfix 1 und sind derzeit für den Empfang und die Sicherung von 43 % des geschürften Bitcoin-Angebots verantwortlich, mehr als jeder andere Adresstyp.
Beim Erstellen einer P2PKH-Adresse muss ein einzelner öffentlicher Schlüssel über die Hash-Funktionen SHA-256 und RIPEMD-160 eingegeben werden. Dadurch wird die Datenmenge verkürzt, was wiederum dazu beiträgt, Blockplatz und Transaktionsgebühren für den Benutzer zu sparen. Es führt auch zu einem weiteren Widerstand gegen das Reverse Engineering des privaten Schlüssels über die bereits als unzerbrechlich geltende elliptische Kurve secp256k1 hinaus.
Pay-to-Multisig (P2MS) ist ein trivialer Transaktionstyp, der nur kurzzeitig relevant war und nie dafür verantwortlich war, dass bei allen Netzwerkteilnehmern mehr als 100 Bitcoins gleichzeitig gehalten wurden. Dennoch ist P2MS ein Teil der Bitcoin-Geschichte.
P2MS wurde Anfang 2012 als Standardskript gemäß BIP 11 eingeführt. Dieser Transaktionstyp litt jedoch unter den gleichen Problemen wie P2PK, da er offengelegte öffentliche Schlüssel enthielt und kein Adressformat verwendete. Außerdem wurde die Anzahl der öffentlichen Schlüssel in einem Multisig-Quorum auf drei begrenzt. Innerhalb weniger Monate würde P2MS durch eine alternative Methode zum Empfang von Bitcoin in einer Multisig-Anordnung namens P2SH ersetzt werden, die wir als Nächstes behandeln werden.
Pay-to-Script-Hash (P2SH) wurde am 1. April 2012 als Soft Fork gemäß BIP 16 in Bitcoin eingeführt. Wie bei den meisten Forks ist die Geschichte dahinter faszinierend. P2SH hat viele Gemeinsamkeiten mit P2PKH. Der Hauptunterschied besteht darin, dass die Adresse durch Hashing eines Einlöseskripts erstellt wird, anstatt durch Hashing eines einzelnen öffentlichen Schlüssels.
Ein Einlöseskript kann man sich als codierte Anweisungen vorstellen, die angeben, wie an der P2SH-Adresse empfangene Bitcoins in Zukunft ausgegeben werden können. Es könnte eine Vielzahl von Möglichkeiten geben, einschließlich mehrerer verschiedener öffentlicher Schlüssel. Der Empfänger und nicht der Absender bestimmt die Skriptdetails, und die Ausgabeanweisungen werden erst dann öffentlich zugänglich gemacht, wenn Bitcoin an der Adresse ausgegeben wird.
Während fortgeschrittene Benutzer komplexe Skripte erstellen können, wird P2SH am häufigsten zum Erstellen verschachtelter SegWit-Adressen (siehe unten) und Multisig-Wallets verwendet. Ein Skript kann beispielsweise drei öffentliche Schlüssel enthalten und angeben, dass Signaturen von zwei beliebigen der entsprechenden privaten Schlüssel die Bitcoin ausgeben können. Dadurch würde eine 2-von-3-Multisig-Adresse erstellt.
P2SH-Adressen sind genau 34 Zeichen lang und beginnen mit dem Präfix 3, wie in BIP 13 festgelegt. Vor dem Soft Fork am 1. April experimentierten eine Handvoll Transaktionen mit diesem alternativen Präfix, von denen sich das erste in Block 170.052 befindet.
Pay-to-Witness-Public-Key-Hash (P2WPKH) ist der erste von zwei Adresstypen, die mit dem SegWit-Soft-Fork im August 2017 in Bitcoin eingeführt wurden. Die Geschichte hinter diesem äußerst wichtigen und besonders umstrittenen Soft Fork ist in einem Buch mit dem Titel „The Blocksize War“ von Jonathan Bier dokumentiert.
P2WPKH ist die SegWit-Variante von P2PKH, was im Grunde bedeutet, dass Sie durch die Wahl dieses Adresstyps anstelle älterer P2PKH-Adressen Geld bei den Transaktionsgebühren sparen können, wenn Sie Ihre Bitcoins verschieben.
SegWit-Adressen unterscheiden sich deutlich von den älteren Adresstypen, da sie gemäß BIP 173 die Bech32-Kodierung anstelle von Base58 verwenden. Vor allem gibt es in Bech32 keine Großbuchstaben. P2WPKH-Adressen können durch ein Präfix von bc1q und eine Zeichenlänge von genau 42 identifiziert werden.
Pay-to-Witness-Script-Hash (P2WSH) ist die SegWit-Variante von P2SH. Der Hauptvorteil der Verwendung von P2WSH gegenüber P2SH besteht darin, dass dadurch die Transaktionsgebühren gesenkt werden können, und der Hauptgrund für die Verwendung eines Skript-Hashs anstelle eines Public-Key-Hashs besteht darin, Multisig-Anordnungen zu berücksichtigen.
Wie P2WPKH beginnt eine P2WSH-Adresse mit dem Präfix bc1q. Allerdings hat es eine längere Zeichenlänge von genau 62. Im Gegensatz zu den bisher behandelten Adresstypen werden P2WSH-Adressen allein mit der SHA-256-Hashing-Funktion erstellt, ohne RIPEMD-160 einzubeziehen, was zu einer erhöhten Zeichenlänge führt. Dies wurde mit Vorsicht umgesetzt und bietet zusätzlichen Schutz vor einem recht differenzierten und äußerst unwahrscheinlichen Multisig- Angriffsvektor.
Nested SegWit (auch bekannt als Wrapped SegWit) ist technisch gesehen kein anderer Adresstyp als der oben beschriebene. Dennoch ist es eine einzigartige Möglichkeit, zuvor besprochene Adresstypen auf eine Weise zu verwenden, die vorübergehend für die Bitcoin-Community nützlich war.
Als der SegWit-Softfork stattfand, wurden nicht alle Bitcoin-Knoten, Software und Dienste sofort aktualisiert, um die neuen nativen SegWit-Adresstypen P2WPKH und P2WSH zu unterstützen. Nur die Entitäten, die ein Upgrade durchgeführt haben, konnten an diese neuen Adressen senden. Das bedeutete, dass Leute, die die Möglichkeit haben wollten, Bitcoins von jedem zu erhalten (einschließlich derjenigen, die kein Upgrade durchgeführt hatten), noch kein Native SegWit-Wallet verwenden konnten. Da SegWit jedoch günstigere Transaktionsgebühren anbot, wollten die meisten Leute es unbedingt nutzen.
Die clevere Lösung für dieses Dilemma bestand darin, den P2SH-Transaktionstyp zu verwenden. Die Entitäten, die SegWit noch nicht implementiert hatten, könnten weiterhin Bitcoin an P2SH-Adressen senden – die, wie oben erläutert, mit einem Einlöseskript erstellt werden, das die Anweisungen angibt, wie die Bitcoin später ausgegeben werden können. Wie sich herausstellt, könnten diese Anweisungen das neue SegWit-Ausgabenmodell integrieren und Benutzern eine Brücke zu reduzierten Gebühren bieten. Daher wurden die P2SH-Adressen, die diesen Trick verwendeten, als Nested SegWit bekannt und spielten eine wichtige Rolle bei der Einführung von SegWit.
Oberflächlich betrachtet sind Nested SegWit-Adressen nicht von anderen P2SH-Adressen zu unterscheiden, sodass der in dieser Anordnung gehaltene Bitcoin-Vorrat nicht bekannt ist. Da außerdem alle modernen Bitcoin-Tools jetzt direkt an native SegWit-Adressen senden können, gibt es keinen guten Grund mehr, Nested SegWit zu verwenden.
Pay-to-Taproot (P2TR) ist der neueste Adresstyp, der im November 2021 vom Taproot-Soft-Fork verfügbar gemacht wurde. Die Akzeptanz von P2TR ist zum Zeitpunkt des Verfassens dieses Artikels noch recht gering, und viele Bitcoin-Softwareprogramme und -Dienste arbeiten noch an der Integration.
Während P2WPKH und P2WSH als SegWit V0 bekannt sind, gilt P2TR als SegWit V1. Insbesondere verwendet P2TR einen digitalen Signaturalgorithmus namens Schnorr, der sich vom ECDSA-Format unterscheidet, das in früheren Bitcoin-Transaktionstypen verwendet wurde. Schnorr-Signaturen bieten mehrere Vorteile, darunter zusätzliche Reduzierungen der Transaktionsgebühren und mehr Privatsphäre.
Was den Datenschutz betrifft, ermöglichen die von Schnorr ermöglichten Schlüssel- und Signaturaggregationen, dass Multisig-Adressen nicht von Singlesig-Adressen zu unterscheiden sind, und die Ausgabebedingungen für eine P2TR-Adresse werden niemals öffentlich bekannt gegeben. Der Ersteller der Adresse kann sogar mehrere benutzerdefinierte Einlöseskripte zur Auswahl hinzufügen, um die Bitcoins später auszugeben.
P2TR-Adressen sind 62 Zeichen lang und verwenden die Bech32m-Kodierung, eine leicht modifizierte Version von Bech32, wie in BIP 350 beschrieben. P2TR-Adressen können anhand ihres eindeutigen bc1p-Präfixes identifiziert werden.
Nachdem wir nun alle standardisierten Methoden zum Empfang von Bitcoin in der Kette abgedeckt haben, können einige der Kurzinformationen und Adressfunktionen zu Referenzzwecken in einer praktischen Tabelle zusammengefasst werden.