Bitcoiny nie muszą być koniecznie wysyłane do adresu. Można dać też inną niż podpisanie wskazanym kluczem "zagadkę" do rozwiązania, upoważniającą do wydania danego wyjścia transakcji. Przykładem może być hasło, "każdy może wziąć".

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

Skrypt to specjalny kod, który łączy wyjście transakcji wejściowej z nową transakcją wydającej bitcoiny zdobyte z transakcji wejściowej. Dodając do wysyłanej transakcji odpowiedni kod, umożliwiamy komuś wydanie tych monet. Aby można je było wydać, należy podczas określania wejść transakcji dopisać dalszą część skryptu tak, aby po połączeniu skryptu wyjścia transakcji wejściowej i skryptu podanego we wskazaniu wejścia wynikiem było true (1).

Korzystają one z tzw. stosu.

Domyślnie umożliwia on korzystanie z adresów - wykorzystanie kryptografii kluczy.

Tworzenie skryptów innych niż standardowy wymaga stworzenia transakcji w niestandardowy sposób.

Najważniejsze przykłady

edytuj

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

Linki zewnętrzne

edytuj