Archiwum artykułów

Biografia Jesse LIVERMORE

6 maja 2021

TimeLock Bitcoin i tokeny przez sCrypt

Ten post pierwotnie ukazał się w serwisie Bitpost, za zgodą jego autora Joshua Henslee. W końcu zanurzyłem się w sCrypt w kwietniu 2021 roku, głównie z powodu mojej obsesji na punkcie funkcji nLockTime w protokole Bitcoin.

Odkładałem używanie sCrypt ze względu na niskopoziomową i trudną do rozwiązania naturę skryptu Bitcoin, ale po dwóch dniach w króliczej norze (głównie z powodu zajmowania się dziwactwami, takimi jak odwracanie heksów, endianess i bajty) udało mi się stworzyć skrypt, w którym można zablokować tokeny Bitcoin lub RUN w łańcuchu do określonego czasu.

Na przykład mogę udowodnić, że mogę zablokować 100 BSV do wysokości bloku 700 000 lub zablokować tokeny SHUA o wartości 100 000 $ do 1 stycznia 2025 r. Umowa jest wdrażana w łańcuchu tutaj:

Przykład zablokowania 1 tokena FireCoin do piątku 23 kwietnia 2021 14:42:49 UTC:

Dopiero po tym czasie mogłem wydać ten żeton:

Nie musisz koniecznie potrzebować RUN, aby tego użyć, po prostu wyślij BSV lub tokeny z innego protokołu tokenów opartego na UTXO do skryptu w powyższym łączu, zastępując nLockTime wysokością bloku lub znacznikiem czasu UNIX w przyszłości i publicKey tym, który kontrolujesz.

Wybrałem klasyczne P2PK w stylu Satoshi zamiast często używanych P2PKH ze względu na prostotę. Aby móc używać takich skryptów, musiałem wykorzystać technikę OP_PUSH_TX opracowaną przez nChain i zaimplementowaną przez sCrypt. Shruggr z Kronoverse i ja złożyliśmy żądania ściągnięcia, aby funkcja preimage została scalona odpowiednio z bibliotekami BSV 2 i BSV Legacy, aby inni mogli łatwiej samodzielnie zaimplementować OP_PUSH_TX.

Ta technika jest niezbędna, ponieważ przekazuje szczegóły bieżącej transakcji jako część rozwiązania, dzięki czemu nLockTime bieżącej transakcji może zostać zweryfikowany względem wartości wprowadzonej do łańcucha w poprzedniej transakcji.

Jakie są przypadki użycia?

Wielkim zmartwieniem każdego, kto ma do czynienia z walutą cyfrową, jest sposób zabezpieczenia swoich monet. Wiele z nich z zasady sprzeciwia się korzystaniu z usług powierniczych w celu zabezpieczenia swoich Bitcoinów, nie bez powodu. Dla tych, którzy przechowują swoje monety w jakimś fizycznym miejscu, włamanie jest zawsze ryzykiem. Po próbie kradzieży wyobraź sobie, że możesz nacisnąć przycisk lub wydać polecenie głosowe, aby zablokować czas na kilka dni – tak, że nawet Ty nie możesz uzyskać dostępu do monet pomimo kontrolowania klucza prywatnego!

Innym przypadkiem użycia jest możliwe do udowodnienia zablokowanie funduszy do określonej daty przełomowej. Na przykład PlayWithHaste chciał wydać swoje tokeny $ HST zgodnie z harmonogramem dystrybucji. Sam ten skrypt nie byłby wystarczający dla ich wymagań, ale podejście polegające na publicznym zademonstrowaniu braku dostępu emitentów jest początkiem.

Źródło: HST Whitepaper 0edbeedd500f3f32654c916757e0d3ce6b22e2cabfb34717e9cdbbaf363e2cc7 (bitcoinfiles.org)

Ten rodzaj tak zwanego „inteligentnego kontraktowania” był możliwy na Bitcoin od jego uruchomienia w 2009 roku, ale dostępny tylko na BSV od lutego 2020 roku. Twórcy Bitcoin Core ograniczyli możliwości skryptowania, a następnie mocno rozwidlili protokół, dodając niestandardowy kod operacyjny, który implementuje hack o nazwie CheckLockTimeVerify.

Dlaczego „najbardziej utalentowany zespół programistów na świecie” nie mógł zrozumieć, że jest to zawsze możliwe na standardowym Bitcoinie? Gorąco zachęcam programistów do zajrzenia do sCrypt i nauczenia się, jak budować tego typu skrypty. Jak wspomniałem w poprzednich artykułach, największą przeszkodą w rozwoju jest przekonanie, że nie da się tego zrobić.

Trzeba przyznać, że to doświadczenie trwało ciężkie dwa dni, ale w końcu naprawdę było tego warte. Narzędzia są dostępne dla innych, aby dowiedzieć się, jak zablokować i odblokować te transakcje. Na wypadek, gdyby ktoś chciał od razu przejść do odpowiedzi, zapłaciłem swój kod, aby zablokować i odblokować te skrypty (zarówno za pomocą tokenów RUN, jak i BSV) w JavaScript na Bitpost.

UWAGA: to jest skrypt eksperymentalny z ograniczoną liczbą testów. Proszę najpierw użyć sieci testowej BSV i / lub małych ilości przed użyciem w produkcji.

Autor : BitcoinSV.pl

Źródło : TimeLock Bitcoin and tokens via sCrypt ⌛ – CoinGeek