Zeitsperren sind eine der praktischsten Funktionen von Bitcoin. Sie ermöglichen es Ihnen, Aktionen entsprechend einer Reihe von Parametern zu programmieren und so Bitcoin in etwas Besseres als Geld zu verwandeln, ein vollständig programmierbares digitales Geld.
UEine der innovativen Funktionen, die es hat Bitcoin es ist bekannt als Zeitsperre. Dies ist ein Werkzeug, das dient dazu, bestimmte Bedingungen festzulegen und zu spezifizieren, unter denen Transaktionen validiert werden können.
Un Timelock o Zeitschlossist eine Art von kluger Vertrag primitive, was sich auf die Blockhöhe oder bestimmte Zeit bezieht, zu der eine bestimmte Transaktion von Minern in die Blockchain aufgenommen werden kann. Somit fungiert als eine Art absolute Sperre oder Beschränkung für die Ausgabe bestimmter Bitcoins bis diese Bedingungen erfüllt sind.
Eine Zeitsperre kann basierend auf Echtzeit oder einer bestimmten Blockhöhe eingestellt werden. Also, wann diese oder jene Zeit Blockhöhe In der Zeitsperre definiert, können Bergleute die Transaktion in die Zeitsperre einbeziehen Hash- des Restaurants Merkle-Baumund fügen Sie es dem letzten Block der Blockchain hinzu. Und in diesem Moment kann die Transaktion bestätigt werden.
Klassifizierung von TimeLocks
Timelocks wurden der ursprünglichen Bitcoin-Software von ihrem Ersteller hinzugefügt, Satoshi Nakamoto. Sie sind in allen Transaktionen vorhanden, obwohl die meisten diese Funktion nicht verwenden, daher ist die Standardblockierungszeit 0x00000000 (0) oder 0xFFFFFFFF (4294967295). Bei Transaktionen, bei denen Timelock verwendet wird, ist es jedoch wichtig zu wissen, dass es über drei wichtige Attribute verfügt. Was sind Sie: Lage, Ausrichtung y Metriken.
Standort
Wie bereits erwähnt, Auch wenn diese Funktion nicht genutzt wird, können Zeitsperren in Transaktionen auftreten. Und sie können auch in Skripte eingebunden werden. Beide sind sich sehr ähnlich, erfüllen jedoch völlig unterschiedliche Funktionen.
Bei Transaktionen bedeuten Zeitsperren, dass sie erst nach Ablauf einer bestimmten Zeit oder Erreichen einer definierten Blockhöhe validiert werden können, obwohl ihre digitalen Signaturen und Skripte Ja, sie sind gültig. Während Sperrzeiten in Skripten bestimmen, ob ein Skript gültig ist. So können Bedingungen für alle Transaktionen festgelegt werden, die einen Output ausgeben.
Im Gegensatz zum Sperren von Transaktionen, die nur diese bestimmte Transaktion einschränken. Daher ist der Standort des Zeitschlosses wichtig, damit der entsprechende Vorgang ausgeführt werden kann.
Orientierungspunkt
Es gibt Zeitsperren absoluto oder Zeit relativ. Der erste ermöglicht es uns, den Block in Bezug auf eine bestimmte Zeit zu definieren. So können wir den genauen Zeitpunkt wählen, wann die Blockade endet.
Während die relative Zeitblockierung es uns ermöglicht, eine bestimmte Zeitspanne zu definieren, die ab der Bestätigung früherer Ausgaben vergehen muss. Beide Optionen sind äußerst nützlich, um Zeitintervalle zu definieren, die für die Verarbeitung einer Transaktion durch das Bitcoin-Netzwerk erforderlich sind.
Metrisch
Bei Bitcoin gibt es zwei Möglichkeiten, die Zeit zu messen: Blocknummer und Zeitstempel. Wir können also beide verwenden, um eine Zeitsperre festzulegen. Wenn eine Zeitsperre basierend auf einer Blocknummer festgelegt wird, müssen Miner damit rechnen, diese Blocknummer zu erreichen. Dies dient dazu, den Vorgang zu validieren und zu bestätigen und ihn in einen neuen Block einzufügen.
Im Gegensatz dazu warten Miner, bis die festgelegte Zeit in Sekunden verstrichen ist, wenn die Zeitsperre auf der Grundlage eines Zeitstempels festgelegt wird. Das heißt, es wird eine bestimmte Zeit erreicht, um die Transaktion zu validieren. Dies wird mit der Note gemessen Unix-Zeit.
Arten von Schlössern
Heute Bitcoin verfügt derzeit über vier Möglichkeiten, Blöcke oder Zeitsperren einzurichten. Zwei dieser Tools befinden sich auf Transaktionsebene und die anderen beiden auf Skriptebene. Schauen wir uns jeden einzelnen von ihnen an.
1. nLockTime
Dies ist ein absolute Zeitsperre auf Transaktionsebene. Es ist das einzige Zeitschloss, das es gibt war in der Originalversion verfügbar der Bitcoin-Software. Wenn das Knoten Sie haben keine Transaktionen erneut übertragen oder abgebaut nLockTime gleich oder größer als die Höhe des aktuellen Blocks.
Daher wurden Transaktionen erst validiert, wenn der festgelegte Block erreicht wurde. In diesen Sperren wird die Zeit als vorzeichenlose 32-Bit-Ganzzahlen ausgedrückt. Liegt die Zahl unter 500 Millionen, wird sie als Blockhöhe interpretiert. Im Gegenteil, wenn er größer als 500 Millionen ist, wird er als Unix-Zeitstempel verwendet.
In der Bitcoin-Version 0.1.6 ist die Interpretation von nLockTime wurde angepasst, um auch zeitbasiertes Sperren zu ermöglichen. Ab Block 31001 wurden dann nLockTime-Constraints als Regel aktiviert, die auch für die Blockannahme galten. Später im Juli 2016 wurden zeitbasierte Blöcke so geändert, dass sie mit der vergangenen Durchschnittszeit statt mit dem Blockzeitstempel arbeiten.
Ein nLockTime kann eine Transaktion mithilfe von Blocknummern für bis zu 9.500 Jahre und mithilfe von Zeitstempeln für 2.106 Jahre sperren. Und obwohl derzeit jede Transaktion die nLockTime-Funktion enthält, ist sie bei den meisten Wallets auf 0 voreingestellt. Dies bedeutet, dass Transaktionen in jedem Block in der Kette validiert werden können.
2. nSequenz
Dies ist ein Relative Zeitsperre auf Transaktionsebene. Diese Blockaden wurden in der eingeführt weiche Gabel BIP 68 Mitte 2016 werden Sequenznummern verwendet, um relative Zeitsperren auf Transaktionsebene festzulegen. Dadurch kann ein Eintrag den frühesten Zeitpunkt angeben, der einem Block hinzugefügt werden kann. Abhängig davon, wie lange es her ist, dass der von diesem Input ausgegebene Output in einem Block auf der Blockchain enthalten war.
Beim Auftragen eines nSequenz Innerhalb derselben Transaktion können mehrere unterschiedliche Zeitbedingungen festgelegt werden. Damit die Transaktion gültig ist, müssen daher alle Bedingungen erfüllt sein. Geschieht dies nicht, wird die gesamte Transaktion abgelehnt.
Im Gegensatz zu nLockTime verwendet nSequence nur 18 der insgesamt 32 Bits, sodass 14 Bits für zukünftige Implementierungen reserviert sind. Und von diesen 18 verwendeten Bits sind 16 Bits für die Codierung der Blockierungszeit vorgesehen. Daher sind nSequence-Sperren auf 65.535 Einheiten in Blöcken und nur 18 Stunden in Sekunden begrenzt.
3.CheckLockTimeVerify
Auch unter dem Akronym bekannt als CLTVIst ein absolute Zeitblockierung auf Skriptebene. Es ist im Soft Fork detailliert beschrieben BIP 65 und wurde Ende 2015 vom Entwickler Peter Todd im Netzwerk eingeführt. Dieser Vorschlag eröffnet die Möglichkeit, eine Transaktion durchzuführen, bei der das konkrete Datum angegeben werden kann, an dem sie wirksam wird (d. h. das Datum, an dem der Empfänger die gesendeten Gelder verwenden kann).
Eine der erweiterten Funktionen, die CTLV ermöglicht, besteht darin, den Authentifizierungsparameter einer Multisignaturadresse zu ändern. Wenn beispielsweise eine Multi-Signatur-Adresse mit einem 2-von-3-Schema erstellt wurde, kann CLTV diesen Parameter unter bestimmten Kriterien in ein 1-von-3-Schema ändern. Auf diese Weise kann die Person die Gelder unter bestimmten, zuvor vereinbarten Bedingungen zurückerhalten werden aufgrund der Fähigkeit von Bitcoin, programmierbares Geld zu sein, in der Transaktion definiert.
Wie viel weißt du, Kryptonaut?
Können Zeitsperren die Programmierbarkeit und Funktionen von Bitcoin erweitern?WAHR!
Timelocks sind sehr nützlich, um Bitcoin mit neuen Programmierfunktionen auszustatten, die die Konstruktion neuer und aufregender Funktionen ermöglichen. Ein Beispiel hierfür ist das Lightning Network, das auf Zeitsperren und seine Fähigkeit zur Planung von Aktionen in Bitcoin setzt.
4.- CheckSquenceVerify
Ist relative Zeitsperre auf Skriptebene. Auch Teil der Soft Fork BIP 68, aber es wurde in der beschrieben BIP 112 und wurde Mitte 2016 hinzugefügt. CSV stellt eine relative Blockierungszeit bereit, genau wie der CLTV eine für die absolute Blockierungszeit bereitstellt, daher sind sie sich sehr ähnlich. Anstatt jedoch die Zeit zu überprüfen, wie es CLTV tut, vergleicht CSV den obersten Stapel mit dem Eingabefeld.
Wenn der CSV-Opcode aufgerufen wird, schlägt das Skript fehl, es sei denn, nSequence in der Transaktion gibt an, dass eine relative Sperrzeit abgelaufen ist, die gleich oder größer als der für den CSV-Opcode angegebene Parameter ist. Dadurch wird sichergestellt, dass die Transaktion nach Ablauf der CSV-basierten Zeitsperre in einen gültigen Block aufgenommen werden kann.
Mit diesem Operationscode können Transaktionen für maximal 65.535 Blöcke blockiert werden, was ungefähr 455 Tagen entspricht. Oder maximal 65.535 x 512 Sekunden, was ungefähr 388 Tagen entspricht.