nLockTime to pierwsza funkcja blokady czasowej wprowadzona w Bitcoinie od momentu jego powstania. Została ona zaprojektowana przez Satoshi Nakamoto, aby umożliwić zaplanowane transakcje wyzwalane przez parametry czasowe w ramach protokołu Bitcoin.
Ujedna z najciekawszych właściwości, jakie posiada Bitcoin są zamki czasowe lub zamek czasowy jak nLockTimeTego typu funkcjonalności pozwalają użytkownikom określić dokładny moment, w którym transakcja może zostać zatwierdzona i potwierdzona w sieci. Ta cecha sprawia, że Bitcoin jest programowalną walutą cyfrową. Na przykład, poprzez wdrożenie inteligentne kontraktyWszystko to jest możliwe, ponieważ Bitcoin ma potężny język programowania zwany Skrypt Bitcoin.
Więc musimy nLockTime to absolutna blokada czasowa na poziomie transakcji. Umożliwia to zdefiniowanie punktu, w którym transakcja może zostać zatwierdzona i uwzględniona w prawidłowym bloku blockchain,. To znaczy nLockTime określa najwcześniejszy moment, od którego można zweryfikować i potwierdzić transakcję.
Ten rodzaj blokady czasowej jest podstawą do wdrażania programowalnych transakcji w systemie Bitcoin. Umożliwia ona automatyczne wykonywanie transakcji bez pośredników po zdefiniowaniu i spełnieniu warunków określonych w kontrakcie.
Podobnie, nLockTime to jedyna blokada czasowa, która była obecna od czasu wdrożenia oryginalnego klienta Bitcoin, Bitcoin CoreDlatego to pole jest uwzględniane w każdej transakcji. Jednak w klientach i portfelach Bitcoin pole nLockTime jest domyślnie ustawione na 0. Zatem, jeśli to pole nie zostanie zmodyfikowane, transakcje mogą być uwzględniane w dowolnym prawidłowym bloku w blockchainie.
Jak działa nLockTime?
Blokada czasowa nLockTime określa minimalny przedział czasu, w którym transakcja musi zostać zatwierdzona i uwzględniona w bloku. Funkcja ta jest zaimplementowana i używana w celu uniemożliwienia wyodrębnienia transakcji przed upływem określonego czasu blokady. Po osiągnięciu limitu czasu sieć po prostu unieważnia transakcję, uniemożliwiając jej przetworzenie.
W oryginalnym kliencie Bitcoin ta blokada pozwalała jedynie na ustawienie warunków blokady na podstawie wysokości bloku. W związku z tym węzły sieciowe nie mogły zawierać transakcji z nLockTime, dopóki nie została osiągnięta minimalna wysokość bloku ustawiona w blokadzie.
Później nLockTime został dostosowany tak, aby do transakcji Bitcoin można było stosować warunki blokowania oparte na czasie. Obecnie działają one w oparciu o po środku czasu a nie w znaczniku czasu bloku. Dlatego nLockTime wymaga upłynięcia określonego przedziału czasu lub osiągnięcia określonej wysokości bloku, zanim transakcja będzie mogła zostać zatwierdzona.
W nLockTime blokada wyświetlana jest jako 32-bitowa liczba całkowita, gdzie:
- Jeżeli nLockTime jest mniejszy niż 500 000 000, wówczas uznaje się, że blokada czasowa oparta na wysokości blokuDopiero po osiągnięciu lub przekroczeniu tej wysokości bloku transakcję można potwierdzić w ramach prawidłowego bloku.
- Jeżeli nLockTime jest większy niż 500 000 000, wówczas uznaje się to za blokowanie czasu oparte na czasie, które będzie mierzone w Czas UNIXDopiero gdy ten znacznik czasu zostanie osiągnięty lub przekroczony, transakcję można potwierdzić w ramach prawidłowego bloku.
Podobnie, nLockTime pozwala na zablokowanie transakcji na okres do 9.500 lat, gdy jest to blokada czasowa oparta na wysokości bloku. W przypadku blokad interwałowych, nLockTime może zablokować transakcję na okres do 2.106 lat.
Implementacja nLockTime
Ponieważ nLockTime pozwala na wyodrębnienie transakcji i dodanie jej do prawidłowego bloku dopiero po osiągnięciu lub przekroczeniu ustalonej wysokości bloku lub czasu, blokada ta służy do ustanawiania i planowania transakcji, które zostaną potwierdzone dopiero w przyszłości. Dlatego jest szeroko stosowana do tworzenia inteligentnych kontraktów.
Unikalna funkcja nLockTime umożliwia zmianę lub modyfikację zaplanowanych transakcji, jeśli któraś ze stron kontraktu nie dotrzyma warunków, przed upływem limitu czasowego lub osiągnięciem wysokości bloku, a transakcje zostaną wykonane. W przypadku wystąpienia nieprzewidzianego zdarzenia, naruszenia zabezpieczeń lub po prostu zmiany zdania przez jedną ze stron, możliwe jest utworzenie nowej transakcji bez blokady, która zignoruje transakcję z blokadą czasową. Warunkiem jest, aby dane wejściowe dla nowej transakcji były takie same, jak dane wejściowe dla transakcji z blokadą nLockTime.
W związku z tym nowo utworzona transakcja, która nie ma ustawionego czasu blokady, zostanie sprawdzona i potwierdzona w jednym z następujących bloków bezpośrednio po jej utworzeniu.
Inteligentne kontrakty czy kanały płatności bez zaufania
Ponadto nLockTime można wykorzystać do tworzenia kanały płatności które nie wymagają zaufania ani osób trzecich. Na przykład, jeśli zarządzasz adres wielopodpisowy 2/2, w którym zdeponowane zostaną bitcoiny w celu dokonywania stopniowych płatności na rzecz jednej ze stron, obie strony będą w posiadaniu jednego z kluczy do adresu.
Przed wpłatą bitcoinów na adres multi-podpisu, który ma zostać wypłacony użytkownikowi B, użytkownik A może ustawić transakcję nLockTime na określonym poziomie bloku lub znaczniku czasu.
Zatem użytkownik A będzie miał jeden klucz, a użytkownik B drugi klucz do adresu. W ten sposób użytkownik A może podpisać transakcję, gdy chce dokonać płatności na rzecz użytkownika B, umieszczając bitcoiny w pliku wyjściowym, który wymaga podpisu obu stron (użytkownika A i użytkownika B), ale nie rozgłasza go do sieci. Korzystając z hasha tej pierwszej transakcji, użytkownik B tworzy drugą transakcję, która wydaje pierwszą i zwraca bitcoiny użytkownikowi A za pośrednictwem adresu z wieloma podpisami. W tym momencie, ponieważ obie strony muszą podpisać, transakcja nie może zostać ukończona. W związku z tym żadna ze stron nie może wydać bitcoinów.
Ponieważ pole nLockTime jest zdefiniowane z wysokością bloku lub znacznikiem czasu, transakcja może zostać zwrócona użytkownikowi A. Dzieje się tak, jeśli warunki kontraktu nie zostaną spełnione, a transakcja nie zostanie podpisana przez obie strony zgodnie z wymaganiami. W związku z tym depozyt może zostać odzyskany po upływie zdefiniowanego okresu blokady, jeśli druga strona nie ukończy zadania lub zachowa się niewłaściwie.
Ile wiesz, kryptonauto?
Czy nLockTime to najprostszy sposób na zablokowanie Bitcoina na określony czas?PRAWDA!
nLockTime to pierwsza i najbardziej podstawowa forma blokady czasowej w Bitcoinie, funkcja zaprojektowana przez samego Satoshi Nakamoto.
nLockTime i CLTV: Jaka jest między nimi różnica?
Bitcoin wykorzystuje kilka mechanizmów blokady czasowej. Mechanizmy te pozwalają Bitcoinowi planować transakcje lub operacje. Może to być oparte na jednostce czasu (opisywanej jako znacznik czasu) lub na określonej wysokości bloku (aktywacja wysokości bloku). Dzięki tym mechanizmom transakcja może zostać wysłana i zatwierdzona dopiero po osiągnięciu określonego warunku czasowego lub wysokości bloku.
Przykładem takiego narzędzia jest Maria, która chce wysłać płatność Danielowi. Płatność może jednak zostać przetworzona dopiero po 15 godzinach od jej wystawienia. Aby tego uniknąć, Maria wysyła transakcję za pomocą funkcji nLockTime. Gwarantuje to, że transakcja może zostać przetworzona dopiero po 15 godzinach od jej wystawienia. To naprawdę przydatne.
Ale co, jeśli będziemy musieli wykonać bardziej złożone operacje? Cóż, w takim przypadku… nLockTime nie pozwala nam na wykonywanie bardziej skomplikowanych czynności. Aby zaradzić tej sytuacji, twórcy Bitcoina stworzyli CLTV lub CheckLockTimeVerify, to OP_CODE lub kod operacji Pozwala na użycie wartości nLockTime (bloku czasowego lub wartości bloku) i dodanie dodatkowego harmonogramu. To znaczy, CLTV pozwala nam dodać szereg dodatkowych warunków, które muszą zostać spełnione, aby transakcja została zatwierdzona. Co więcej, CLTV może zmienić te warunki, jeśli warunki początkowe nie zostały spełnione, co pozwala na odblokowanie płatności przy spełnieniu innych, wcześniej zaprogramowanych warunków.
Klasycznym przykładem zastosowania CLTV jest fundusz Bitcoin chroniony adresem multi-signature. Jeśli te środki nie zostaną wykorzystane w określonym czasie, CLTV może zmodyfikować warunki odblokowania. Pozwala to na konwersję adresu multi-signature 2 z 3 na adres multi-signature 1 z 3, wymagając tylko jednego ważnego podpisu do uzyskania dostępu do środków.
Autor


