
Blokady czasowe: monety, których nie da się przenieść przed określonym momentem
Większość zabezpieczeń w kryptowalutach dotyczy tego, kto może wydawać środki: jakie klucze i ile podpisów. Blokady czasowe dodają drugi wymiar: kiedy. Monety objętej blokadą czasową nie można wydać przed ustaloną datą lub wysokością bloku, niezależnie od tego, kto posiada klucze.
Brzmi to jak funkcja niszowa, ale blokady czasowe po cichu napędzają wiele elementów świata kryptowalut: kanały płatności, harmonogramy vestingu, plany dziedziczenia i opóźnienia w zarządzaniu (governance). Ich zrozumienie wyjaśnia też decyzję projektową, z którą zetkniesz się w większości portfeli.
Dwa rodzaje czasu
Blockchainy mierzą czas na dwa sposoby, a blokady czasowe korzystają z obu:
- Czas bezwzględny. „Nie wcześniej niż 1 stycznia 2030 r.” albo „nie wcześniej niż blok 1 000 000”. Moneta jest zablokowana do tego momentu, a potem zachowuje się normalnie.
- Czas względny. „Nie wcześniej niż 1000 bloków po otrzymaniu tej monety.” Zegar zaczyna odliczać w chwili utworzenia monety, więc każda wpłata ma własne odliczanie.
Blokady bezwzględne pasują do stałych dat, takich jak okres karencji (cliff) w vestingu. Blokady względne pasują do reguł typu „jeśli nikt inny nie zareaguje w ciągu 30 dni, ten drugi klucz może wydać środki” – wzorca, który pojawia się w rozwiązaniach do odzyskiwania i dziedziczenia.
Jak robi to Bitcoin
Bitcoin ma blokady czasowe na dwóch poziomach:
- Poziom transakcji. Każda transakcja ma pole
nLockTime. Jeśli ustawi się w nim przyszły czas lub blok, sieć nie przyjmie transakcji przed tym momentem. Blokuje to transakcję, a nie monetę – posiadacz kluczy wciąż może podpisać inną transakcję bez blokady. - Poziom skryptu. Dwa opkody,
OP_CHECKLOCKTIMEVERIFY(bezwzględny) iOP_CHECKSEQUENCEVERIFY(względny), pozwalają, by same reguły wydawania danego adresu wymagały upływu określonego czasu. Blokują one monetę: żadna transakcja nie może jej wydać przedwcześnie, bez względu na to, kto podpisuje.
To wersje na poziomie skryptu mają prawdziwą moc. Pozwalają budować adresy z kilkoma ścieżkami wydawania, na przykład „2 z tych 3 kluczy w dowolnym momencie albo ten jeden klucz zapasowy po roku”.
Jak robią to łańcuchy ze smart kontraktami
Na Ethereum i podobnych łańcuchach blokada czasowa to po prostu logika kontraktu: kontrakt porównuje bieżący czas bloku z zapisanym terminem i odmawia działania przed jego upływem. Dzięki temu blokady czasowe są elastyczne – kontrakty vestingowe uwalniające tokeny co miesiąc, systemy zarządzania wymuszające okres oczekiwania między przegłosowaniem a wykonaniem decyzji oraz aktualizowalne kontrakty, które zapowiadają zmiany z kilkudniowym wyprzedzeniem, aby użytkownicy mogli zareagować.
To ostatnie zastosowanie ma znaczenie dla bezpieczeństwa. Opóźnienie między „klucz administratora coś postanowił” a „to się stało” daje wszystkim czas na zauważenie złośliwej zmiany – to jedno z pytań, które warto zadać w kontekście uprawnień do aktualizacji każdego kontraktu.
Do czego przydają się blokady czasowe
- Dziedziczenie i dostęp awaryjny. Ścieżka zapasowa, która otwiera się dopiero po długim okresie bezczynności, pozwala spadkobiercom odzyskać środki, ale bez możliwości ich ruszenia, dopóki jesteś aktywny. Planowanie dziedziczenia często sprowadza się właśnie do takiej reguły.
- Klucze odzyskiwania. Klucz odzyskiwania, który może działać samodzielnie, ale dopiero po opóźnieniu, jest znacznie mniej groźny w razie kradzieży – właściciel ma czas, by najpierw przenieść środki.
- Kanały płatności. Lightning Network opiera się na względnych blokadach czasowych, aby dać każdej ze stron okno na zakwestionowanie próby oszustwa.
- Vesting i zobowiązania. Zablokowanie tokenów do określonej daty sprawia, że obietnicę egzekwuje łańcuch, a nie zaufanie.
Kompromisy
Blokady czasowe mają swoją cenę:
- Blokują także ciebie. Blokada nie odróżni napastnika od sytuacji awaryjnej. Jeśli potrzebujesz pieniędzy przed wyznaczoną datą, pozostają zablokowane.
- Złożoność kosztuje. Skrypty z kilkoma ścieżkami trudniej zbudować, poddać audytowi i odtworzyć. Błąd w skrypcie z blokadą czasową może sprawić, że środków nie da się wydać – i może wyjść na jaw dopiero po latach, gdy blokada wygaśnie.
- Blokady względne wymagają obsługi. Schematy typu „po roku bezczynności” zwykle wymagają, by właściciel okresowo odświeżał swoje monety i w ten sposób restartował zegar.
- Obsługa w portfelach jest nierówna. Adres z blokadą czasową jest przydatny tylko wtedy, gdy oprogramowanie, którym kiedyś będziesz odzyskiwać środki, go rozumie.
Blokady czasowe a SSP
Sejfy SSP są dziś czystym multisigiem: zestawem kluczy M z N bez żadnych warunków wydawania opartych na czasie. Twój sejf 2 z 2 można wydać w każdej chwili, gdy oba klucze się zgadzają, i nigdy w przeciwnym razie. To świadomy kompromis: prosty skrypt łatwo zweryfikować, łatwo odtworzyć standardowymi narzędziami i nie ma w nim zegara, który mógłby cię zaskoczyć za kilka lat.
Odzyskiwanie w SSP działa za pomocą twoich kluczy i ich kopii zapasowych, a nie ścieżek z opóźnieniem czasowym. Porównanie różnych konfiguracji multisig omawia wybory istotne dla większości osób, a w przypadku zespołów sejfy SSP Enterprise pozwalają wybrać, ilu sygnatariuszy musi zatwierdzić transakcję.
Uczciwe podsumowanie
Blokady czasowe pozwalają łańcuchowi egzekwować, kiedy monety mogą się przemieszczać, a nie tylko kto może je przenieść. Umożliwiają plany dziedziczenia, klucze odzyskiwania i kanały płatności bez konieczności ufania, że ktoś cierpliwie poczeka.
Dodają jednak złożoności i mogą odciąć właścicieli równie skutecznie jak napastników. Używane rozważnie należą do najbardziej przydatnych narzędzi w świecie kryptowalut – a najprostsze skrypty wciąż często okazują się najbezpieczniejsze.


