Eine der bedeutsamsten Innovationen im Bitcoin-Netzwerk ist das Pay-to-Script-Hash-Verfahren (P2SH). Das Verfahren revolutionierte die Art und Weise, wie Transaktionen durchgeführt und dann gesichert werden.
Mittlerweile ist dies ein veraltetes Skriptmuster. Es wird gelegentlich noch verwendet, aber Pay-To-Witness-Script-Hash (P2WSH) ist mittlerweile die bevorzugte Wahl. Es funktioniert auf die gleiche Weise wie ein älteres P2SH, wird jedoch über das Witness-Feld statt über ScriptSig freigeschaltet.
Das Wichtigste zusammengefasst:
💡 P2SH wurde durch das BIP 16 eingeführt, das es ermöglichte, ein komplexes Skript in einer Bitcoin-Transaktion zu verwenden, ohne dabei das Skript selbst im Klartext offenzulegen.
💡 P2SH ermöglichte die Implementierung einer Vielzahl fortschrittlicher Transaktionsszenarien, die mehr können als nur einfache Zahlungen. P2SH hat damit die Funktionalität des Bitcoin-Netzwerks stark erhöht.
💡 P2SH hat die Sicherheit der Transaktionen erhöht. Durch das SegWit Upgrade wurde P2WSH eingeführt, welches sich in der Funktionsweise jedoch nicht unterscheidet.
In diesem Artikel erfährst du, was das Pay-to-Script-Hash-Verfahren ist, wie es eingeführt wurde, wie es funktioniert, welche Vorteile es bietet und weshalb P2WSH heutzutage verwendet wird.
Was ist Pay-to-Script-Hash (P2SH)?
Pay-to-Script-Hash ist eine spezielle Methode zur Durchführung von Bitcoin-Transaktionen, die es ermöglicht, komplexere und flexiblere Transaktionsbedingungen als die bisherigen Adressen zu definieren. P2SH wurde im Jahr 2012 mit dem BIP 16 (Bitcoin Improvement Proposal) eingeführt, um die Funktionalität und Vielseitigkeit von Bitcoin-Skripten zu erweitern.
Vorgänger vom Transaktionstyp P2SH war Pay-to-PubKey-Hash. Diese kurz P2PKH genannten Adressen waren eine der am häufigsten verwendeten Adresstypen im Bitcoin-Netzwerk. Vor der Einführung von P2SH war P2PKH der Standard-Transaktionstyp. Hier wurden Transaktionen mit Hilfe des öffentlichen Schlüssels eines Empfängers durchgeführt. Damit ermöglichten sie es dem Empfänger, die Transaktion mit seinem privaten Schlüssel zu entsperren.
P2SH-Adressen hingegen hashen ein Skript, das eine komplexere Bedingung enthalten kann. Der Hash des Skripts wird als Adresse verwendet. Das Skript selbst wird erst beim Ausgeben der Mittel offengelegt.
Obwohl Pay-to-PubKey-Hash (P2PKH) eine der grundlegenden Methoden zur Durchführung von Bitcoin-Transaktionen ist, weist es im Vergleich zu Pay-to-Script-Hash (P2SH) mehrere Nachteile auf. P2PKH erlaubt nur einfache Transaktionen. Hier reicht nur eine einzige Signatur aus, um die Mittel auszugeben. Komplexere Bedingungen wie Multisig-Transaktionen oder benutzerdefinierte Skripte sind nicht möglich. Das schränkt die Nutzer des Netzwerks natürlich stark ein. Mit dem Bitcoin Improvement Proposal 16 wurde dafür eine Lösung geschaffen.
P2WSH ist eine Erweiterung, die mit dem Segregated Witness (SegWit) Upgrade eingeführt wurde. Es bietet die Möglichkeit, komplexe Skripte im SegWit-Format zu erstellen, was eine Trennung der Signaturdaten von den Transaktionsdaten ermöglicht.
Das Bitcoin Improvement Proposal 16
Die Einführung von Pay-to-Script-Hash (P2SH) erfolgte nämlich durch das Bitcoin Improvement Proposal 16 (BIP 16). Das wurde bereits 2012 von Gavin Andresen, einem prominenten Entwickler in der Bitcoin-Community, eingereicht. BIPs sind Vorschläge für Änderungen oder Verbesserungen am Bitcoin-Protokoll, die von Mitgliedern der Community eingereicht und diskutiert werden können.
Zu dieser Zeit wurden Bitcoin-Transaktionen wie oben beschrieben in erster Linie über Pay-to-Public-Key-Hash (P2PKH) durchgeführt, was die damals am häufigsten verwendete Methode war. P2PKH-Transaktionen waren einfach und erforderten nur den Hash des öffentlichen Schlüssels des Empfängers, um Bitcoin zu senden.
Das Hauptziel von BIP 16 war es, die Funktionalität und Flexibilität von Bitcoin-Transaktionen zu erweitern, indem komplexere Bedingungen und Skripte ermöglicht wurden. Unter anderem durch die Einführung von Mehrsignatur-Transaktionen wollte BIP 16 die Sicherheit von Bitcoin-Transaktionen erhöhen.
Anstelle des Skripts wird hier der Hash des Skripts als Teil der Empfängeradresse verwendet. Das eigentliche Skript, welches die Bedingungen für den Ausgabenachweis definiert, ist nicht mehr in der Transaktion selbst enthalten. Stattdessen wird das Skript erst dann offengelegt, wenn die Bitcoin ausgegeben wurden.
P2SH & P2WSH: Adressen und Transaktionen
Eine P2SH Adresse beginnt mit der Nummer 3 und ist eine Base58Check-Codierung des Hashes eines Redeem Skrips. Dieses Redeem Skript kann verschiedene Bedingungen enthalten, die erfüllt sein müssen, um die an diese Adresse gesendeten Bitcoin auszugeben. Häufige Verwendungszwecke von P2SH sind Multi-Signature (Multisig) Adressen, bei denen mehrere Signaturen erforderlich sind, um eine Transaktion zu autorisieren, sowie andere erweiterte Skript-Funktionalitäten.
Ein P2WSH-Adresse beginnt mit „bc1“ und verwendet das Bech32-Format, das speziell für SegWit-Adressen entwickelt wurde. Diese Adressen sind länger und komplexer als herkömmliche Adressen, bieten jedoch erhebliche Vorteile in Bezug auf Effizienz und Sicherheit.
Beim Erstellen einer P2SH-Transaktion sendet der Absender Gelder an eine P2SH-Adresse. Der Empfänger muss dann das Redeem Skript und alle notwendigen Daten bereitstellen, um die Gelder freizugeben. Das Redeem Skript wird gehasht und dieser Hash wird im Locking Skript der Transaktion verwendet. Das eigentliche Skript mit den Bedingungen (Redeem Skript) wird erst sichtbar, wenn der Empfänger die Gelder ausgibt.
Die Funktionsweise von P2SH und P2WSH
- Erstellen einer P2SH-Adresse: Ein Bitcoin-Skript wird unter vorher festgelegten Bedingungen erstellt und dann gehasht. Der resultierende Hash wird als P2SH-Adresse verwendet.
- Senden von Bitcoin an die P2SH-Adresse: Die Transaktion erfolgt ähnlich wie bei herkömmlichen Adressen. Die Senderadresse sendet Bitcoin an die P2SH-Adresse, hier den Hash des Skripts.
- Einlösen der Transaktion: Um die Bitcoin aus der P2SH-Adresse auszugeben, muss der Empfänger das ursprüngliche Skript und die entsprechenden Daten bereitstellen, welche die definierten Bedingungen erfüllen. Das Bitcoin-Netzwerk überprüft das Skript und die Daten. Die Transaktion wird genehmigt, wenn alle Bedingungen erfüllt sind.
Mehr Flexibilität durch P2SH im Bitcoin-Netzwerk
P2SH ermöglicht Bitcoin-Skripte, die komplexer sein können als die unter Pay-to-PubKey-Hash. Damit wurde die Ausgangslage für die Implementierung von Smart Contracts im Bitcoin-Netzwerk gelegt. Obwohl Bitcoin im Vergleich zu Ethereum nur eingeschränkte Smart-Contract-Fähigkeiten hat, ermöglicht P2SH eine größere Vielfalt an Skripten und Bedingungen.
So auch die Erstellung von MultiSig-Transaktionen, bei denen mehrere Parteien ihre Unterschriften leisten müssen, um eine Transaktion freizugeben. Dies erhöht die Sicherheit, insbesondere für gemeinschaftlich genutzte Konten oder Unternehmensgelder. Dies ist ein grundlegendes Element vieler Smart Contracts, die auf gemeinschaftlicher Entscheidungsfindung basieren. Nur wenn eine bestimmte Anzahl an Personen der Transaktion zustimmt, kann sie genehmigt werden.
Atomic Swaps
Atomic Swaps sind Transaktionen, bei denen zwei Parteien Kryptowährungen direkt miteinander tauschen, ohne dafür eine zentrale Börse zu nutzen. Diese Transaktionen sind „vertrauenslos“, da sie ohne die Notwendigkeit einer Zwischenpartei abgewickelt werden.
P2SH ermöglicht Atomic Swaps, indem kompatible Bedingungen in den Skripten der beteiligten Parteien festgelegt werden. Zum Beispiel könnten beide Parteien ein Skript erstellen, welches die Freigabe der Mittel ermöglicht, wenn beide Parteien ihre Zustimmung geben.
Die P2SH-Adressen, die diese Skripte enthalten, werden dann ausgetauscht. Im direkten Anschluss findet die Transaktion statt. Wenn beide Parteien zustimmen, wird die Transaktion erfolgreich abgeschlossen und der vereinbarte Betrag freigegeben.
Escrow-Services
Durch P2SH werden auch Treuhanddienste, sogenannte Escrow-Services möglich gemacht. Diese Treuhanddienste können implementiert werden, indem ein Skript definiert wird, welches die BTC nur dann freigibt, wenn bestimmte Bedingungen erfüllt sind. Hier fungiert eine neutrale dritte Partei als Vermittler, um Transaktionen zwischen mindestens zwei Parteien abzuwickeln.
Die dritte Partei hält die BTC in Verwahrung, bis die Bedingungen der Transaktion erfüllt sind. Durch die Verwendung von P2SH können Escrow-Services einfach implementiert werden. Die Bedingungen, die für die Freigabe der Mittel erfüllt sein müssen, werden im Skript definiert.
Die P2SH-Adresse wird dann an die Escrow-Partei gesendet, die das Skript kontrolliert. Sobald die Transaktion stattfindet, behält die Escrow-Partei die Gelder ein, bis die vereinbarten Bedingungen erfüllt sind. Die Berufung dieser neutralen dritten Partei sorgt dafür, dass sich alle an die vereinbarten Regeln halten und einander nicht hintergehen. Bei Streitigkeiten zwischen den Parteien kann die Escrow-Partei als Schlichter auftreten und helfen, die Meinungsverschiedenheiten zu klären.
Timelock
P2SH kann außerdem dafür verwendet werden, Transaktionen mit zeitbasierten Bedingungen zu versehen, die sicherstellen, dass die Mittel erst nach einem bestimmten Datum oder Ereignis ausgegeben werden können.
P2SH definiert die Bedingungen für diese zeitbasierten Transaktionen, auch Timelocks genannt, im Skript. Zum Beispiel könnte das Skript angeben, dass die BTC erst nach Ablauf einer bestimmten Sperrfrist freigegeben werden. Die P2SH-Adresse, die dieses Skript enthält, wird dann verwendet, um die Transaktion durchzuführen. Sobald diese beispielhafte Sperrfrist abgelaufen ist, werden die Gelder freigegeben und an den Empfänger gesendet.
Zeitbasierte Transaktionen ermöglichen es den Bitcoin-Nutzern, Transaktionen zu planen und zu automatisieren. Dies ist nützlich für Smart Contracts, welche zeitabhängige Ausführungen erfordern. Ein solcher Vertrag könnte Mittel erst nach einer bestimmten Zeit freigeben oder eine Rückerstattung nach einer festgelegten Frist ermöglichen.
Sicherheitsvorteile durch P2SH
Im direkten Vergleich zu P2PKH punktet Pay-to-Script-Hash auch mit höherer Sicherheit. P2PKH speichert ja sowohl den öffentlichen Schlüssel als auch die Signatur in der Blockchain. Das führt zu einer größeren Datenmenge. P2SH speichert hingegen nur den Hash des Skripts und enthüllt das vollständige Skript erst bei der Ausgabe, was effizienter ist. Dies trägt zur Reduzierung der Datenmenge in der Blockchain bei und schützt gleichzeitig sensible Details des Skripts.
P2SH geht also sehr viel diskreter mit den Transaktionsbedingungen um. Das eigentliche Skript wird hier erst offengelegt wird, wenn die Transaktion ausgegeben wird. Bei P2PKH hingegen ist die Adresse direkt aus dem öffentlichen Schlüssel abgeleitet, was weniger Schutz bietet.
P2WSH (Pay-to-Witness-Script-Hash): Unterstützung von SegWit
Mit dem SegWit Upgrade wurde P2WSH als Ersatz für P2SH eingeführt. P2WSH (Pay-to-Witness-Script-Hash) spielt eine entscheidende Rolle bei der Implementierung von Segregated Witness (SegWit), einer der bedeutendsten Verbesserungen des Bitcoin-Protokolls. SegWit löst unter anderem das Problem der „Malleability“ von Transaktionen.
Wenn eine Verschlüsselung „malleable“ ist, ist es möglich, den Geheimtext auch ohne Zugang zu Klartext und Schlüssel derart zu verändern, dass es bei der Entschlüsselung zu einer Änderung des Klartextes kommt. Diese Malleability der Transaktionen ist unerwünscht, weil sie verschiedene Angriffe ermöglicht.
SegWit-Transaktionen nutzen oft P2WSH-Adressen, die eine neue Adressstruktur verwenden und die Signaturdaten von den Transaktionsdaten trennen. Dies führt zu mehreren Vorteilen:
- Erhöhte Blockkapazität: Durch die Trennung der Signaturdaten können mehr Transaktionen in einen Block passen, was die effektive Blockgröße auf bis zu 4 MB erhöht. Dies verbessert die Effizienz des Netzwerks.
- Reduzierte Transaktionsgebühren: Die verbesserte Nutzung der Blockgröße führt zu geringeren Transaktionsgebühren.
- Verbesserte Sicherheit: SegWit und P2WSH bieten erweiterte Sicherheitsfunktionen und reduzieren das Risiko von Transaction Malleability.
Unternehmen, Projekte und Dienstleister, die P2WSH nutzen
Es gibt eine Vielzahl von Finanzdienstleistern und anderen Unternehmen, die Pay-to-Script-Hash (P2SH) nutzen, um fortschrittliche Transaktionsszenarien auf der Bitcoin-Blockchain zu implementieren. Darunter auch mehrere bekannte Namen.
Viele Hardware Wallets, wie zum Beispiel Ledger, Trezor oder BitGo unterstützen Mehrsignatur-Transaktionen über P2SH. Diese ermöglichen es Benutzern, ihre Bitcoin mit mehreren privaten Schlüsseln zu sichern, wodurch die Sicherheit gegenüber einzelnen Schlüsseln erhöht wird.
Die Peer-to-Peer-Krypto-Börse „LocalBitcoins“ bietet Escrow-Services für den sicheren Austausch von Bitcoin zwischen Käufern und Verkäufern an. P2SH wird hier verwendet, um die Mittel während des Handels zu halten, bis die Bedingungen erfüllt sind.
Eine der ältesten und renommiertesten Krypto-Börsen, Bitstamp, verwendet P2SH für ihre Wallet-Infrastruktur, um die Sicherheit und Integrität der Benutzerfonds zu gewährleisten. Coinbase wiederum nutzt P2SH für ihre Cold Storage Wallets, um die Sicherheit von Kundengeldern zu erhöhen.
Chainanalysis ist tätig im Bereich der Blockchain-Analyse und Compliance. Das Unternehmen bietet Dienstleistungen für Regierungen, Banken und Krypto-Unternehmen an. Chainalysis verwendet P2SH für die Analyse von Bitcoin-Transaktionen und unter anderem die Identifizierung von Geldwäsche und Betrug.
Diese Beispiele verdeutlichen die vielfältigen Anwendungsmöglichkeiten von P2SH in verschiedenen Bereichen der Kryptoindustrie. P2SH ermöglicht es, fortschrittliche komplexere Transaktionen umzusetzen und die Sicherheit von Bitcoin-Transaktionen und Benutzerfonds zu verbessern.
Fazit zu Pay-to-Script-Hash (P2SH) und Pay-to-Witness-Script-Hash (P2WSH)
Pay-to-Script-Hash (P2SH) hat das Bitcoin-Netzwerk erheblich bereichert, indem es die Flexibilität und Sicherheit von Transaktionen erhöht und die Grundlage für komplexere und sicherere Anwendungsszenarien geschaffen hat. Durch die Unterstützung von Multi-Sig-Transaktionen oder Escrow-Services beispielsweise ermöglicht P2SH eine Vielzahl neuer Anwendungsfälle und stärkt gleichzeitig die Sicherheits- und Datenschutzmerkmale von Bitcoin.
Atomic Swaps als weitere wichtige Option ermöglichen den direkten Tausch von Kryptowährungen zwischen Parteien, ohne dass eine zentrale Börse erforderlich ist, was die Dezentralisierung und Privatsphäre fördert. Da Atomic Swaps ohne eine vertrauenswürdige Zwischenpartei durchgeführt werden, eliminieren sie das Risiko von Betrug oder Ausfallzeiten. Auch zeitbasierte Transaktionen sind möglich. Diese Timelocks sind Transaktionen, bei denen die Freigabe der Mittel an eine bestimmte Zeitbedingung gebunden ist.
P2SH bietet eine modernere und vielseitigere Lösung, die komplexe und sichere Transaktionen unterstützt und somit besser für fortgeschrittene Anwendungen im Bitcoin-Netzwerk geeignet ist. Damit werden Nachteile von P2PKH wie eingeschränkte Flexibilität, geringere Sicherheit und hohe Datenlast ausgebügelt.
Einer der größten Vorteile von P2SH gegenüber P2PKH, die erhöhte Diskretion der Daten, ergibt sich hauptsächlich aus der Tatsache, dass das vollständige Skript bis zur Einlösung verborgen bleibt. Dadurch wird die Menge an öffentlich zugänglichen Informationen minimiert, was die Sicherheit der Transaktionen verbessert. Also ermöglicht P2SH seinen Nutzern, komplexere und individuellere Bedingungen für die Ausgabe von Bitcoins festzusetzen, ohne diese Bedingungen im Vorfeld offenlegen zu müssen.
Nicht nur die Vertraulichkeit der Bedingungen, sondern auch deren Komplexität ist entscheidend. Durch die Unterstützung komplexer Skripting-Funktionen bietet P2SH eine solide Grundlage für die Entwicklung und Implementierung von Smart Contracts im Bitcoin-Netzwerk. Das hat die Nutzungsmöglichkeiten von Bitcoin weit über einfache Wertspeicherung hianus erweitert und die Türen für neue dezentrale Anwendungen geöffnet.
Heutzutage wird P2WSH statt P2SH verwendet, welches jedoch sehr ähnlich funktioniert. Der Vorteil der Verwendung von P2WSH gegenüber P2SH besteht darin, dass das Witness Feld weniger Weight hat und du daher beim Entsperren eines P2WSH weniger Transaktionsgebühren zahlst (im Vergleich zu P2SH).
Häufige Fragen (FAQ) zur P2SH und P2WSH
In diesem Abschnitt beantworten wir die häufigsten und wichtigsten Fragen rund um das Thema P2SH und P2WSH.
P2SH (Pay-to-Script-Hash) ist eine Art von Bitcoin-Transaktion. Während P2PKH (Pay-to-PubKey-Hash) Transaktionen direkt an eine öffentliche Schlüsseladresse senden, sendet P2SH Transaktionen an einen Skript-Hash, der komplexere Bedingungen enthalten kann. Dies ermöglicht komplexere und sicherere Transaktionsbedingungen, die erst erfüllt werden müssen, um die Bitcoins auszugeben. P2WSH steht für „Pay-to-Witness-Script-Hash“ und ist ein wichtiger Bestandteil des Bitcoin Segregated Witness (SegWit) Upgrades, das im August 2017 aktiviert wurde.
P2SH bietet mehr Flexibilität, da Benutzer beliebige Skripte erstellen können. Benutzer können komplexe Multi-Signatur-Transaktionen und andere fortschrittliche Sicherheitsfunktionen nutzen. P2SH verbessert die Privatsphäre, weil der Sender die genauen Sicherheitsvorkehrungen des Empfängers nicht kennen muss. Auch die genauen Bedingungen der Transaktion müssen nicht öffentlich gemacht werden, was die Privatsphäre erhöht. Außerdem unterstützt Pay-to-Script-Hash die Kompatibilität mit neuen Transaktionstypen wie Segregated Witness.
P2SH wird häufig für Multi-Signatur-Transaktionen, Zeitverriegelungen und Escrow-Dienste verwendet, bei denen mehrere Signaturen oder bestimmte Bedingungen erfüllt sein müssen, bevor die Bitcoins ausgegeben werden können.