nLockTime ist die erste Zeitsperrfunktion von Bitcoin seit seiner Einführung und wurde von Satoshi Nakamoto entwickelt, um geplante Transaktionen zu ermöglichen, die durch Zeitparameter innerhalb des Bitcoin-Protokolls ausgelöst werden.
Ueine der interessantesten Eigenschaften, die es hat Bitcoin sind Zeitblöcke oder Zeitsperre als nLockTime. Mit dieser Art von Funktionalität können Benutzer den genauen Zeitpunkt definieren, zu dem eine Transaktion im Netzwerk validiert und bestätigt werden kann. Eine Eigenschaft, die Bitcoin in programmierbares digitales Geld verwandelt. Zum Beispiel durch die Umsetzung Intelligente Verträge. All dies ist dank der Tatsache möglich, dass Bitcoin über eine leistungsstarke Programmiersprache namens verfügt Bitcoin-Skript.
Also müssen wir nLockTime ist eine absolute Zeitsperre auf Transaktionsebene. Dies ermöglicht die Definition des Zeitpunkts, ab dem eine Transaktion validiert und in einen gültigen Block der Transaktion aufgenommen werden kann Blockchain. Ich meine nLockTime gibt den frühesten Zeitpunkt an, ab dem eine Transaktion validiert und bestätigt werden kann.
Diese Art der Zeitblockierung ist für die Umsetzung programmierbarer Transaktionen im Bitcoin-System unerlässlich. Dadurch können Transaktionen automatisch und ohne Zwischenhändler ausgeführt werden, sobald die in einem Vertrag festgelegten Bedingungen definiert und erfüllt sind.
Ebenso nLockTime ist die einzige Zeitsperre, die seit der Implementierung des ursprünglichen Bitcoin-Clients vorhanden ist Bitcoin Core. Daher ist dieses Feld in jeder Transaktion enthalten. In Bitcoin-Clients und -Wallets ist das nLockTime-Feld jedoch standardmäßig auf 0 eingestellt. Wenn dieses Feld also nicht geändert wird, können Transaktionen in jeden gültigen Block auf der Blockchain aufgenommen werden.
Wie funktioniert nLockTime?
Die nLockTime-Zeitsperre legt ein minimales Zeitintervall fest, in dem eine Transaktion validiert und in einen Block aufgenommen werden kann. Daher wird diese Funktion implementiert und verwendet, um das Extrahieren einer Transaktion zu verhindern, bevor die in der eingerichteten Sperre festgelegte Zeit erreicht ist. Andernfalls macht das Netzwerk die Transaktion einfach ungültig und verhindert so ihre Verarbeitung.
Im ursprünglichen Bitcoin-Client ermöglichte diese Sperre nur das Festlegen von Blockierungsbedingungen basierend auf der Blockhöhe. Daher konnten Netzwerkknoten keine Transaktionen mit nLockTime einschließen, bis die in der Sperre festgelegte Mindestblockhöhe erreicht war.
nLockTime wurde später angepasst, sodass zeitbasierte Sperrbedingungen auf Bitcoin-Transaktionen angewendet werden konnten. Die derzeit auf der Grundlage der arbeiten mittlere Vergangenheitsform und nicht im eigenen Zeitstempel des Blocks. Daher erfordert nLockTime dann das Verstreichen eines definierten Zeitintervalls oder das Erreichen einer bestimmten Blockhöhe, bevor die Transaktion validiert werden kann.
In nLockTime wird die Sperre ihrerseits als 32-Bit-Ganzzahl angezeigt, wobei:
- Wenn nLockTime weniger als 500.000.000 beträgt, wird dies als a verstanden Zeitblockierung basierend auf einer Blockhöhe. Erst wenn diese Blockhöhe erreicht oder überschritten wird, kann die Transaktion innerhalb eines gültigen Blocks bestätigt werden.
- Wenn nLockTime größer als 500.000.000 ist, wird dies als a verstanden zeitbasierte Zeitblockierung, die gemessen wird UNIX-Zeit. Erst wenn dieser Zeitstempel erreicht oder überschritten wird, kann die Transaktion innerhalb eines gültigen Blocks bestätigt werden.
Ebenso ermöglicht nLockTime die Sperrung einer Transaktion für bis zu 9.500 Jahre, wenn es sich um eine Zeitsperre basierend auf der Blockhöhe handelt. Bei Sperren basierend auf einem Zeitintervall kann nLockTime eine Sperre für ein Zeitintervall von bis zu 2.106 Jahren festlegen.
nLockTime-Implementierung
Da nLockTime das Mining einer Transaktion und das Hinzufügen zu einem gültigen Block erst dann zulässt, wenn eine festgelegte Blockhöhe oder Zeit erreicht oder überschritten ist, wird diese Sperre zum Einrichten und Planen von Transaktionen verwendet, die erst in der Zukunft bestätigt werden. Daher ist es für die Erstellung intelligenter Verträge von großem Nutzen.
Die Besonderheit von nLockTime ermöglicht es, dass bei Nichteinhaltung einer der Vertragsparteien die geplanten Transaktionen geändert oder modifiziert werden können, bevor die begrenzte Zeit abläuft oder die Blockhöhe erreicht ist und die Transaktionen ausgeführt werden. Wenn ein Eventualfall eintritt, ein Zahlungsverzug eintritt oder eine der Parteien einfach beschließt, ihre Meinung zu ändern, kann eine neue Transaktion ohne Zeitsperre eingerichtet werden, um die Transaktion mit der Zeitsperre ungültig zu machen. Solange dieselben Ausgaben als Eingaben in der Transaktion mit gesetzter nLockTime-Sperre verwendet werden, werden sie als Eingaben verwendet.
Somit wird die neu erstellte Transaktion, da sie keine festgelegte Sperrzeit hat, innerhalb eines der folgenden Blöcke unmittelbar nach ihrer Erstellung validiert und bestätigt.
Intelligente Verträge oder vertrauenswürdige Zahlungskanäle
Andererseits können Sie über nLockTime erstellen Zahlungskanäle die kein Vertrauen oder Vertrauen Dritter erfordern. Wenn Sie beispielsweise a Multi-Signatur-Adresse 2/2, bei dem Bitcoins hinterlegt werden, um nach und nach Zahlungen an eine der beteiligten Parteien zu leisten, verfügen beide Parteien über einen der Adressschlüssel.
Bevor Benutzer A Bitcoins an die Multi-Signatur-Adresse einzahlt, mit der Benutzer B bezahlt wird, kann er eine nLockTime-Transaktion auf eine bestimmte Blockhöhe oder einen Zeitstempel festlegen.
Dann ist Benutzer A im Besitz eines der Schlüssel und Benutzer B im Besitz des anderen Adressschlüssels. Somit kann Benutzer A eine Transaktion signieren, wenn er eine Zahlung an Benutzer B leisten möchte; Platzieren der Bitcoins in einer Ausgabe, die die Signatur beider Parteien (Benutzer A und Benutzer B) erfordert, diese jedoch nicht an das Netzwerk übermittelt. Mit dem Hash dieser ersten Transaktion erstellt Benutzer B eine zweite Transaktion, die die erste ausgibt und die Bitcoins über die Multi-Signatur-Adresse an Benutzer A zurückgibt. Da beide Parteien zu diesem Zeitpunkt unterzeichnen müssen, kann die Transaktion nicht abgeschlossen werden. Daher kann keine Partei die Bitcoins ausgeben.
Da das nLockTime-Feld mit einer Blockhöhe oder einem Zeitstempel definiert ist, kann die Transaktion an Benutzer A zurückgegeben werden. Dies ist der Fall, wenn die Vertragsbedingungen nicht erfüllt sind und die Transaktion nicht wie erforderlich von beiden Parteien unterzeichnet wird. Daher kann die geleistete Anzahlung nach Ablauf der festgelegten Sperre zurückgefordert werden, wenn die andere beteiligte Partei den Arbeiten nicht nachkommt oder sich falsch verhält.
Wie viel weißt du, Kryptonaut?
Ist nLockTime die einfachste Form der Bitcoin-Zeitsperre?WAHR!
nLockTime ist die erste und grundlegendste Form der Zeitsperre innerhalb von Bitcoin und eine von Satoshi Nakamoto selbst entwickelte Funktion.
nLockTime und CLTV Wie unterscheiden sie sich?
Bei Bitcoin gibt es verschiedene Formen der Zeitblockierung bzw. Timelocks. Diese Vorgänge ermöglichen es Bitcoin, Transaktionen oder Vorgänge durchzuführen, die geplant werden können. Und dies kann relativ zu einer Zeiteinheit (beschrieben als Zeitstempel) oder zu einer bestimmten Blockhöhe (Aktivierung mit Blockhöhe) sein. Dank ihnen kann eine TX gesendet und erst validiert werden, nachdem die angegebene Zeit- oder Höhenbedingung erreicht ist.
Ein Beispiel für diesen Nutzen könnte sein, dass María eine Zahlung an Daniel senden möchte. Diese Zahlung kann jedoch erst 15 Stunden nach Ausstellung der Transaktion wirksam werden. Dazu gibt María die Transaktion mithilfe der nLockTime-Funktion aus. Dadurch wird sichergestellt, dass die Transaktion erst 15 Stunden nach ihrer Ausstellung bearbeitet werden kann. Ziemlich nützlich, um die Wahrheit zu sagen.
Aber was passiert, wenn wir komplexere Operationen durchführen müssen? Also in diesem Fall, nLockTime erlaubt uns nicht, komplexere Dinge zu tun. Um diese Situation zu retten, haben die Bitcoin-Entwickler etwas geschaffen CLTV oder CheckLockTimeVerify. Dies OP_CODE oder Operationscode ermöglicht es Ihnen, den nLockTime-Wert (den Zeitblock oder Blockwert) zu verwenden und zusätzliche Planung hinzuzufügen. Das heißt, Mit CLTV können wir eine Reihe zusätzlicher Bedingungen hinzufügen, die erfüllt sein müssen, damit die Transaktion validiert werden kann. CLTV kann diese Bedingungen sogar ändern, wenn die ursprünglichen Bedingungen nicht erfüllt sind, sodass die Zahlung unter anderen bereits programmierten Bedingungen freigeschaltet werden kann.
Ein klares Beispiel für die Verwendung von CLTV ist ein Bitcoin-Fonds, der durch eine Adresse mit mehreren Signaturen geschützt ist. Wenn diese Mittel nicht innerhalb eines bestimmten Zeitraums mobilisiert werden, kann CLTV die Bedingungen für die Freigabe dieser Mittel ändern. Somit können wir eine Multi-Signatur-Adresse des 2-von-3-Modells in eine Multi-Signatur-Adresse mit einem 1-von-3-Modell umwandeln. Daher würde nur eine gültige Unterschrift ausreichen, um auf diese Gelder zuzugreifen.