Der CheckSequenceVerify-Opcode ist eine interessante Bitcoin-Funktionalität, die die Türen zu erweiterten Skripten öffnet, die es uns ermöglichen, sichere Zahlungen gesteuert durch programmierbare Zeitwerte durchzuführen.
Ueine der nützlichsten Funktionen, die es hat Bitcoin-SkriptSind die Zeitschlösser oder TimeLockWie Operationscode (OP_CODE) CheckSequenceVerify (CSV). Was zusammen mit anderen Sperrcodes dies ermöglicht Bitcoin kann als programmierbares digitales Geld verwendet werden.
El CheckSequenceVerify ist eine relative Zeitsperre, die auf Skriptebene funktioniert. Dadurch können wir den genauen Zeitpunkt definieren, zu dem eine Blockierung einer bestimmten Transaktion endet. Und obwohl dies eine Eigenschaft ist, die Teil der war weiche Gabel des Restaurants BIP 68, es war nicht bis BIP 112 wo es tatsächlich zum Bitcoin-System hinzugefügt wurde.
Das Dienstprogramm CheckSequenceVerify ermöglicht erweiterte Funktionen für Gebäudesysteme wie z Zahlungskanäle de Blitznetzwerk (LN). Darüber hinaus öffnet es die Türen für die Schaffung erweiterter Funktionen für die dezentrale Verwaltung von Geldern, die nützlich sind für dezentrale Börsen (DEX) oder Austauschdienste P2P Versicherung.
Ebenso, obwohl die Art und Weise der Bedienung CheckSequenceVerify (CSV) dem von ziemlich ähnlich sein CheckLockTimeVerify (CLTV), in CSV wird der oberste Stapel mit dem Eingabefeld verglichen, anstatt die Zeit zu überprüfen, wie es bei CLTV der Fall ist. Auf diese Weise können wir die Zeit basierend auf der Anzahl der Blöcke berechnen, die nach Bestätigung der Transaktion generiert wurden. Das heißt, relative Zeitsperren wie CheckSequenceVerify können eine Transaktion als ungültig markieren. Dazu überwachen sie, dass das festgelegte Zeitintervall seit der Bestätigung der vorherigen Transaktionsausgaben verstrichen ist.
In einfacheren Worten, Mit relativen Zeitsperren können wir definieren genau die Zeit, die es dauert, bis eine Transaktion bestätigt wird. Im Gegensatz zu absoluten Zeitsperren, die den genauen Zeitpunkt (Blocknummer oder Datum und Uhrzeit) definieren, zu dem die Sperre für die Transaktion endet.
Wie funktioniert CheckSequenceVerify (CSV)?
Zeitsperren auf Skriptebene wie CheckSequenceVerify (CSV) arbeiten in Verbindung mit Sperren auf TransaktionsebeneLetztere sind also wichtig, wenn Sie eine CSV-Sperre anwenden. Dies liegt daran, dass bei CSV-Sperren die Skripte die Transaktionssperre überprüfen. Dazu überprüfen sie, ob die Transaktion blockiert ist, und verwenden diese Sperren für die Transaktionen als Altersgarantie, die anzeigt, dass die festgelegte Zeit abgelaufen ist.
Bei der BIP 112 von Bitcoin, CheckSequenceVerify wird als Opcode beschrieben, der dem vorhandenen OP_NOP3-Befehl eine neue Definition gibt. Mit diesem Update können Sie auf Skriptebene Blöcke für eine Transaktion platzieren, basierend auf dem Alter oder dem Alter der ausgegebenen Ausgabe. Diese Funktionalität wird in Verbindung mit BIP 68 ausgeführt. Auf diese Weise kann auch verhindert werden, dass eine Transaktion in einen Block aufgenommen wird. Dies so lange, bis die festgelegte Zeit oder das Dienstalter abgelaufen ist.
Beim Überprüfen der CSV-Sperre mit Wert nSequenz Bei der Feststellung wird überprüft, ob das Mindestalter der ausgegebenen Ausgabe bereits erreicht ist. Falls noch nicht erfüllt, können Skriptausführungspfade, die die CSV-Sperre enthalten, validiert werden. Daher kann die Transaktion erst dann in einen Block aufgenommen werden, wenn die Bedingung erfüllt ist.
Wenn also der CSV-Opcode aufgerufen wird, schlägt die Befehlssequenz fehl, es sei denn, die Sequenznummer in der Transaktion gibt an, dass in der relativen Zeitsperre bereits ein Zeitintervall verstrichen ist, das größer oder gleich dem CSV-Opcode-Flag ist. Dadurch wird sichergestellt, dass die Transaktion erst dann in einen gültigen Block aufgenommen werden kann, wenn die Sperrzeit erreicht oder abgelaufen ist.
Wenn dieser Opcode implementiert ist, können Sie mit CheckSequenceVerify Sperren für Transaktionen mit a festlegen maximal bis zu 65.535 Blöcke. Sie können diesen Block aber auch auf a setzen maximal bis zu 65.535*512 Sekunden. Andererseits sind diese Blöcke sehr nützlich, wenn relative Zeitblöcke für Transaktionen eingerichtet werden, die nicht bestätigt oder an das Netzwerk übertragen wurden. Denn CSV ermöglicht die Erstellung intelligenter Transaktionen, indem alle für deren Ausführung erforderlichen Anweisungen im Voraus definiert und festgelegt werden. Dadurch haben wir die Garantie und Sicherheit, dass der Vertrag oder die Transaktion nur im Rahmen der festgelegten Reihenfolge zustande kommt. Und das alles unabhängig von dem Moment, in dem es mit der Ausführung beginnt.
CheckSequenceVerify (CSV)-Implementierungen
Opcode-Implementierung OP_CSV ermöglicht Transaktionen in der Blockchain, ein relatives Ablaufdatum zu haben. Eine Eigenschaft, die wiederum die unbegrenzte Speicherung von Transaktionen ermöglicht. Solange die zunächst festgelegten Zeitsperrbedingungen bestehen bleiben. Das Gegenteil würde passieren, wenn der OP_CLTV-Operationscode verwendet würde, mit dem die gesamte Transaktionskette eine Frist für die Ausführung und den Ablauf hätte.
Wenn also OP_CSV zum Verketten von Transaktionen über relative Sperrzeiten hinweg verwendet wird, ist es möglich, einen Codepfad zu erstellen, auf den erst nach Ablauf des festgelegten Zeitintervalls zugegriffen werden kann. Das heißt, nachdem die ausgegebenen Ausgaben bestätigt wurden. Ermöglicht die Erstellung und Anwendung zusätzlicher Funktionen, die das Netzwerk deutlich attraktiver machen. Beispielsweise die Umsetzung von Verträge mit Ablaufdatum oder die Möglichkeit, praktisch das Merkmal einer Kettenreorganisation zu haben oder rückwirkende Ungültigerklärung. Obwohl es auf einer Blockchain fast unmöglich ist, dies zu tun, können andere ähnliche Anwendungen etabliert werden, wie z Verwahrungsprotokolle oder befristete Verträge, bidirektionale Zahlungskanäle y Lighting Network.
Wie viel weißt du, Kryptonaut?
Ist die Existenz von CheckSequenceVerify für das Lightning Network von entscheidender Bedeutung?WAHR!
Eine der notwendigen Voraussetzungen für den Betrieb des Lightning Network ist die CheckSequenceVerify-Funktion, eine Notwendigkeit, die im Whitepaper zum Lightning Network beschrieben wird, insbesondere um Situationen zu vermeiden, in denen eine der Parteien Gelder aus dem System stehlen kann.
CheckSequenceVerify (CSV)-Anwendungsfälle
Schauen wir uns nun einige Anwendungsfälle an, die uns CSV dank seiner Erstellung innerhalb von Bitcoin ermöglicht:
Erstellung von Verträgen mit Ablauffrist
Mit CSV ist es möglich, Verträge mit einer festen Laufzeit oder einem Ablaufdatum abzuschließen. In diesen Verträgen können mehrere Bedingungen definiert werden, die mit Beginn einer Transaktion in Kraft treten und wirksam werden. Beispiel: Um eine Kaution zwischen zwei oder mehr Personen zu hinterlegen, die 2 Tage nach ihrer Hinterlegung automatisch verfällt, können die beteiligten Parteien (María, Pedro und Juan) eine Kaution erstellen Multi-Signatur-Adresse mit folgenden Bedingungen:
- Eine Auszahlung des Geldes ist jederzeit möglich, wenn 2 der 3 autorisierten Unterschriften verwendet werden. Diese können beliebig kombiniert werden (Maria und Petrus, Peter und Johannes, Maria und Johannes).
- María kann erst 30 Tage nach der Transaktion alleine unterschreiben und das Geld verwenden.
Diese relative Zeitsperre beginnt, bis die Transaktion an der Einzahlungsadresse bestätigt wird.
Erstellen von rückwirkenden Überschreibungsschutzmaßnahmen
Aus Sicherheits- und Schutzgründen ist die Blockchain jedoch unveränderlich, sobald ihr Daten und Informationen hinzugefügt wurden. Es gibt jedoch viele Fälle, in denen es ideal ist, einen einmal abgeschlossenen Vertrag ändern oder kündigen zu können. Obwohl es nicht möglich ist, eine direkt auszuführen rückwirkende Ungültigerklärung Sobald die Daten innerhalb der Blockchain bestätigt wurden, kann eine Transaktion durchgeführt werden. Neuorganisation der Kette. Allerdings ist diese Funktion auch besonders schwierig umzusetzen und ziemlich teuer.
Dennoch können Sie über den CSV-Operationscode Skripte mit mehreren Zweigen für die Ausführung von Operationen erstellen. Wenn sich einer oder mehrere dieser Zweige verzögern oder nicht erfüllt werden, wird ein Raum geschaffen, in dem eine Bedingung für die Ungültigkeit des ursprünglichen Vertrags hinzugefügt werden kann, die die Ausgabe der Ergebnisse ermöglicht. Abbruch der Verzweigung, bei der die nicht erfüllte Bedingung festgestellt wird. Dadurch wird verhindert, dass die Transaktion an das Netzwerk übertragen wird. Andernfalls folgt der Vertrag dem ursprünglich vereinbarten Verlauf.
Erstellung von HTLC-Verträgen (Hash Time Locked Contracts)
Eine der wichtigsten Funktionen von CSVs ist die Erstellung von Hash-Time-Locked-Verträge oder Hash-Time-Locked-Verträge (HTLC). Dank dieser Verträge ist es möglich, ein System zu schaffen, das es zwei Benutzern ermöglicht, einen Zahlungskanal zu erstellen. Eine Möglichkeit, bei der die empfangende Partei einen gültigen kryptografischen Nachweis erstellen muss, um die im Vertrag enthaltene Zahlung freizugeben.
Diese Funktion ermöglicht beispielsweise die Schaffung sicherer Zahlungskanäle zwischen zwei Benutzern. Diese Kanäle sind in der Lage, On-Chain-Operationen (in derselben Kette) und Cross-Chain-Operationen (zwischen zwei verschiedenen Ketten) durchzuführen. Auf diese Weise ermöglichen HTLCs einen sicheren Mechanismus zur Durchführung von Sicherheitsoperationen. Atom-Swaps.
Aber nicht nur das: HTLCs ermöglichen auch den sicheren Betrieb des Lightning Network. Dies demonstriert die Wirkung und den Nutzen von CSVs im gesamten Bitcoin-Ökosystem.