Bitcoin/Skrypty wydawania

746

Bitcoiny niekoniecznie muszą być wysyłane na adres. Możesz także dać zagadkę do rozwiązania, upoważniające do wyjścia z transakcji. Przykładem może być hasło „każdy może wziąć”.

Wynik transakcji zawiera dwa podstawowe elementy: skrypt i wartość.

Skrypt jest specjalnym kodem, który łączy wynik transakcji wejściowej z nową transakcją emitującą bitcoiny uzyskane z transakcji wejściowej. Dodając odpowiedni kod do wysyłanej transakcji, umożliwiamy komuś wydanie tych monet. Aby móc je wydać, należy dodać resztę skryptu podczas określania pozycji transakcji, aby po dołączeniu skryptu wyjścia transakcji wejściowej i skryptu określonego we wskazaniu wejściowym wynik był prawdziwy.

Używają tak zwanego stosu.

Domyślnie umożliwia korzystanie z adresów – korzystanie z szyfrowania klucza.

Tworzenie niestandardowych skryptów wymaga tworzenia transakcji w niestandardowy sposób.

Najważniejsze przykłady

scriptPubKey to co należy wpisać do skryptu wysyłanego wyjścia, a scriptSig to skrypt innej transakcji wydającej takie wyjście.

Płać do adresu (pay-to-pubkey-hash)

scriptPubKey: OP_DUP OP_HASH160 <pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG
scriptSig: <sig> <pubKey>

Płać do klucza publicznego

scriptPubKey: <pubKey> OP_CHECKSIG
scriptSig: <sig>

Przechowywanie danych lub niewydawalne wyjście (uwaga: wpisanie jakiejkolwiek wartości BTC innej niż 0 spowoduje brak możliwości wydania tych bitcoinów przez kogokolwiek, także Ciebie!)

scriptPubKey: OP_RETURN {zero or more ops}

Każdy może wziąć. Nie wysyła do konkretnej osoby, ale każdy kto zauważy taką transakcję w sieci może wziąć przesyłane w takim jej wyjściu bitcoiny.

scriptPubKey: (pusto)
scriptSig: OP_TRUE

Na hasło o hashu w hash256.

scriptPubKey: OP_HASH256 hash_hasła OP_EQUAL
scriptSig: hasło