Uzyskaj dostęp do danych blockchain z inteligentnych kontraktów Bitcoin: część 5

Opierając się na fundamentach przedstawionych w poprzednich częściach serii, pokazaliśmy, jak zaimplementować względny czas blokady w Bitcoin bez nowego kodu OP_CheckSequenceVerify.

Blokada czasowa

Blokada czasowa ogranicza wydawanie niektórych bitcoinów do określonego czasu w przyszłości lub wysokości bloku. Istnieją dwa rodzaje blokad czasowych:

Absolutnie: na przykład można udowodnić, że można zablokować 1 100 000 bitcoinów do wysokości bloku 800 000 lub do 1 stycznia 2025 r.
Względny: na przykład można zablokować 21 bitcoinów, które można wydać dopiero po 100 blokach lub 3 dniach.
Aby włączyć bezwzględne i względne blokady czasowe, w BIP65 i BIP68/112/113 wprowadzono nowe kody operacji OP_CheckLockTimeVerify/OP_CLTV i OP_CheckSequenceVerify/OP_CSV.

Względny czas blokady bez OP_CSV

Przywracając oryginalny protokół Bitcoin, Bitcoin SV cofnął wyżej wymienione zmiany. Okazuje się, że OP_CSV można zaimplementować za pomocą oryginalnego protokołu.

a screenshot of a flow diagram of Timelocked TX

W części 1 pokazaliśmy, jak uzyskać dostęp do bloku zawierającego dany kontrakt UTXO. Łącząc ten nagłówek bloku z określoną względną blokadą czasową, możemy poznać najwcześniejszy blok, w którym można wykorzystać UTXO. Żądamy, aby każdy blok po terminie był dostępny do odblokowania UTXO, zasadniczo umieszczając na nim względną blokadę czasową, tak jak robi to OP_CSV. Pełny kod znajduje się poniżej.

a screenshot of csv code

Linia 11 pokazuje odblokowanie na podstawie czasu uniksowego (np. w sekundach). Funkcja validateHelper() w wierszu 33. sprawdza poprawność zarówno bloku zawierającego UTXO, jak i ostatniego bloku (wiersz 41–42). Sprawdza również, czy poprzedni blok faktycznie zawiera UTXO (linia 34–38) przy użyciu tej samej techniki, co w części 1. Linia 15 zapewnia, że ​​upłynął wymagany czas od wydobycia UTXO.

Linia 19 pokazuje odblokowanie na podstawie wysokości bloku (np. liczba bloków). Wiersze 24–25 otrzymują wysokości dwóch bloków jak w części 3. Wiersz 27 sprawdza, czy określona liczba bloków została wydobyta po UTXO.

Streszczenie

Oprócz OP_CSV wdrożyliśmy wcześniej OP_CLTV bez żadnych zmian w oryginalnym protokole Bitcoin. Są dwie implikacje:

Oba kody operacyjne nie są konieczne do włączenia blokad czasowych na poziomie UTXO, jak wcześniej sądzono.
Wszystkie przypadki użycia włączone przez OP_CSV/CLTV, takie jak sieci błyskawic, łańcuchy boczne i kanały płatności w stylu CLTV, można w razie potrzeby zbudować bezpośrednio na oryginalnym Bitcoinie.
Obejrzyj: Panel CoinGeek w Nowym Jorku, Bitcoin i Blockchain – czy prawdziwa wartość może pochodzić z rzeczywistej użyteczności?

Autor : BitcoinSV.pl

Źródło : Access blockchain data from Bitcoin smart contracts: Part 5 – CoinGeek



Author: BitcoinSV.pl
CEO