Blockchain/Niveau IV · Tiefer ins Protokoll/4.1 Script/Lektion 5
Hashlocks und HTLCs
Das Geheimnis, das alles freischaltet, und der Timer, der verhindert, dass es für immer verloren geht
MaterialienJeder Texteditor oder Befehlszeileninterpreter mit SHA-256-UnterstützungEin Block-Explorer (z. B. mempool.space)Das Whitepaper zum Lightning Network von Poon & Dryja
Neugier
- Wie kann eine Zahlung an ein Geheimnis gebunden werden, das nur eine Person kennt, ohne dass diese Person jemand anderem vertrauen muss?
- Wenn das Offenlegen des Geheimnisses, um das eigene Geld zu beanspruchen, es dem gesamten Netzwerk preisgibt – was hindert andere daran, es zuerst zu stehlen?
- Warum braucht jeder Hop auf einem Zahlungspfad über mehrere Nodes eine leicht unterschiedliche Frist?
Erkunden
- Ein Hashlock ist eine Bedingung in Bitcoin Script, die das Ausgeben einschränkt, bis bestimmte Daten – das Preimage – offengelegt werden. Die Coins werden hinter einem Hash gesperrt, der meist von der Person stammt, die das Geheimnis kennt. Entscheidend ist dabei: Legt ein Teilnehmer das Preimage offen, um seine Mittel einzulösen, legt er es jedem offen, der diese Einlösung sieht – on-chain allen, innerhalb eines Lightning-Kanals der Gegenpartei.
- Diese öffentliche Offenlegung erlaubt es anderen Parteien, die Outputs mit demselben Hash-Lock halten, diese ebenfalls auszugeben. Im Lightning Network bedeutet das: Wenn der endgültige Empfänger (Charlie) das Geheimnis offenlegt, um die Zahlung von Bob einzulösen, schaltet genau dieses Geheimnis auch Alices für Bob gesperrten Output frei. Dieser Mechanismus ermöglicht Atomarität: Entweder werden alle bezahlt oder niemand.
- Ein reiner Hashlock hat jedoch einen Makel: Verschwindet Charlie und legt das Preimage nie offen, bleiben die Mittel für immer blockiert. Durch Hinzufügen eines Timelocks entsteht ein Hash Time-Locked Contract (HTLC). Für den letzten Hop, den Bob anbietet, lautet das Script nun: „Charlie kann diese Coins beanspruchen, indem er das Preimage vor der Frist T offenlegt, ODER Bob kann sie nach T zurückfordern.“
- Diese Zwei-Pfad-Logik ermöglicht einen vertrauenslosen Ablauf. Ist die Zahlung erfolgreich, legt Charlie das Geheimnis innerhalb des Zeitfensters offen und löst eine Kaskade von Einlösungen aus, die von Bob zurück bis zu Alice reicht. Schlägt die Zahlung fehl oder geht Charlie offline, läuft jedes HTLC ab, und sein Anbieter (Bob gegenüber Charlie, Alice gegenüber Bob) holt sich die Mittel über den Timeout-Zweig des Scripts zurück.
- Dieses Fairness-Protokoll ermöglicht Multi-Hop-Routing. Jedes HTLC auf dem Pfad hat einen etwas längeren Timeout als das HTLC, das sein Inhaber dem nächsten Node in Richtung Empfänger anbietet. Der Abstand schützt jeden Zwischen-Node: Löst sein nachgelagerter Peer im letzten Moment mit dem Preimage ein, bleibt dem Zwischen-Node noch Zeit, dieses Preimage vorgelagert einzusetzen, bevor sein eigenes eingehendes HTLC zurückerstattet werden kann.
- Script-Rätsel können zwar komplex sein, doch reale Verträge wie HTLCs enthalten neben Hashlocks und Timelocks stets Signaturprüfungen. Das bindet die Lösung an bestimmte Parteien und verhindert Front-Running durch Miner, bei dem ein Miner ein gültiges Preimage im Mempool entdecken und die Auszahlung vor der Bestätigung auf sich selbst umleiten könnte.
Kernfakten
- Ein Hashlock schränkt das Ausgeben ein, bis bestimmte Daten (das Preimage) öffentlich offengelegt werden.
- Sobald ein Hashlock mit einem bestimmten Hash geöffnet wird, lassen sich mit dem offengelegten Preimage auch alle anderen Hashlocks mit demselben Hash ausgeben.
- Ein HTLC kombiniert Hashlocks und Timelocks, um vom Empfänger zu verlangen, vor einem Stichtag auszugeben, oder dem Sender eine Rückerstattung zu ermöglichen.
- HTLCs werden in den Commitment-Transaktionen des Lightning Network verwendet, um vertrauensloses Multi-Hop-Routing mit Atomarität zu ermöglichen.
- Script stellt OP_SHA256 und OP_HASH160 für Hashlocks bereit; Lightning verwendet SHA-256-Payment-Hashes.
- Tier Nolan schlug 2013 kettenübergreifende Atomic Swaps auf Basis dieses Hashlock-Mechanismus vor.
Übung neun, sechs, drei, eins
9SammelnListen Sie 9 reale oder kryptografische Szenarien auf, in denen eine Handlung ein Geheimnis offenbart, das wiederum mehrere weitere Handlungen ermöglicht (z. B. das Öffnen eines Tresors, die Veröffentlichung eines Proof-of-Work).
6GruppierenGruppieren Sie die 9 in 6 Kategorien danach, wie das Geheimnis geschützt wird: Einzelbesitzer, mehrere Besitzer, zeitgebunden, ortsgebunden, öffentlich, aber teuer, oder irreversibel.
3VerdichtenReduzieren Sie die 6 auf 3 Kernmechanismen, die eine vertrauenslose Koordination zwischen Parteien ermöglichen, die einander nicht kennen.
1KristallisierenSchreiben Sie 1 Satz darüber, warum ein Hash ein Commitment und ein Preimage ein Schlüssel ist und wie ein Timer beides sicher macht.
Faktcheck
Datumsangaben, Zahlen und Behauptungen wurden mit den unten aufgeführten veröffentlichten Quellen abgeglichen.