Transakcja

17.02.2021
Category: Jaki Sposób

Transakcjajest przekazywanie wartości Bitcoin, który jest transmitowany do sieci i zebrane w blokach. Transakcja zazwyczaj odnosi się do poprzednich wyników transakcji jako nowych danych wejściowych transakcji i dedykuje wszystkie wejściowe wartości Bitcoin na nowe dane wyjściowe. Transakcje nie są szyfrowane, więc można przeglądać i przeglądać każdą transakcję kiedykolwiek zebraną w bloku. Gdy transakcje zostaną zakopane pod wystarczającą liczbą potwierdzeń, można je uznać za nieodwracalne.

Ten artykuł dotyczytransakcji łańcuchowych. Zobacz też: Transakcje poza łańcuchem

Standardowe wyjścia transakcji wyznaczają adresy, a wykupienie wszelkich przyszłych danych wejściowych wymaga odpowiedniego podpisu.

Wszystkie transakcje są widoczne w łańcuchu bloków i można je przeglądać za pomocą edytora szesnastkowego. Przeglądarka łańcucha bloków to witryna, w której każdą transakcję zawartą w łańcuchu bloków można przeglądać w sposób czytelny dla człowieka. Jest to przydatne do przeglądania szczegółów technicznych transakcji w akcji i do weryfikacji płatności.

Zawartość
  • 1 Ogólny format transakcji Bitcoin (wewnątrz bloku)
  • 2 Podstawowy przykład transakcji Bitcoin tylko z 1 wejściem i 1 wyjściem
    • 2.1 Dane
    • 2.2 Wyjaśnienie
      • 2.2.1 Wejście
      • 2.2.2 Wyjście2.2.3 Weryfikacja 3 Rodzaje transakcji

        • 3.1 Pay-to-PubkeyHash
        • 3.2 Pay-to-Script-Hash 4 generacji5 Ogólny format (wewnątrz bloku) każdego wejścia transakcji – Txin6 Ogólny format (wewnątrz bloku) każdego wyjścia transakcji – Txout7 Zobacz teżOgólny format transakcji Bitcoin (wewnątrz bloku) Pole Opis Rozmiar Wersja nrobecnie 14 bajty FlagaJeśli jest obecny, zawsze 0001 i wskazuje na obecność danych świadkaopcjonalna 2-bajtowa tablica W licznikudodatnia liczba całkowita VI = VarInt1 – 9 bajtów lista wejśćpierwsze wejście pierwszej transakcji jest również nazywane „coinbase (jego treść była ignorowana we wcześniejszych wersjach)-wiele wejść Out-counterdodatnia liczba całkowita VI = VarInt1 – 9 bajtów lista wyjśćwyjścia pierwszej transakcji wydają wydobyte bitcoiny na blok-wiele wyjść ŚwiadkowieLista świadków, po 1 dla każdego wejścia, jest pomijana, jeśli brakuje powyższej flagizmienna, zobacz Segregated_Witness lock_timejeśli niezerowe i numery sekwencyjne są podstawowym przykładem transakcji Bitcoin tylko z 1 wejściem i 1 wyjściem WyjaśnienieDane wejściowe w tej transakcji importują 50 BTC z wyjścia nr 0 w transakcji f5d8. Następnie wyjście wysyła 50 BTC na adres Bitcoin (wyrażony tutaj szesnastkowo 4043. zamiast normalnej base58). Kiedy odbiorca chce wydać te pieniądze, odniesie się do wyjścia nr 0 tej transakcji w danych wejściowych własnej transakcji.

          WejścieDanewejścioweto odniesienie do danych wyjściowych z poprzedniej transakcji. W transakcji często podaje się wiele danych wejściowych. Wszystkie wartości wejściowe nowej transakcji (to znaczy łączna wartość monet z poprzednich wyników, do których odnoszą się dane wejściowe nowej transakcji) są sumowane, a całość (pomniejszona o wszelkie opłaty transakcyjne) jest całkowicie wykorzystywana przez dane wyjściowe nowej transakcji.Poprzedni txto skrót poprzedniej transakcji.Indeksto konkretny wynik w transakcji, której dotyczy odwołanie.ScriptSigto pierwsza połowa skryptu (omówiona bardziej szczegółowo później).

          Skrypt zawiera dwa komponenty, podpis i klucz publiczny. Klucz publiczny musi być zgodny z hashem podanym w skrypcie wykorzystanych danych wyjściowych. Klucz publiczny służy do weryfikacji podpisu odbiorcy, który jest drugim składnikiem. Dokładniej, drugim składnikiem jest podpis ECDSA na skrócie uproszczonej wersji transakcji. To w połączeniu z kluczem publicznym dowodzi, że transakcja została utworzona przez prawdziwego właściciela danych bitcoinów. Różne flagi określają, w jaki sposób transakcja jest uproszczona i mogą być używane do tworzenia różnych rodzajów płatności.

          WynikDanewyjściowezawierają instrukcje dotyczące wysyłania bitcoinów.Wartośćto liczba Satoshi (1 BTC = 100 000 000 Satoshi), które będzie warte dane wyjście, gdy zostanie zgłoszone.ScriptPubKeyto druga połowa skryptu (omówiona później). Może istnieć więcej niż jedno wyjście i mają one wspólną wartość wejść. Ponieważ do każdego wyniku z jednej transakcji można się odwołać tylko raz przez dane wejściowe kolejnej transakcji, cała połączona wartość wejściowa musi zostać wysłana w wyniku, jeśli nie chcesz jej stracić. Jeśli wejście jest warte 50 BTC, ale chcesz wysłać tylko 25 BTC, Bitcoin utworzy dwa wyjścia o wartości 25 BTC: jedno do miejsca docelowego i jedno z powrotem do Ciebie (znane jako „zmiana, chociaż wysyłasz je do siebie). Wszelkie wejściowe bitcoiny, które nie zostały wykupione w wyniku, są traktowane jako opłata transakcyjna; ktokolwiek generuje blok, może go odebrać, wstawiając go do transakcji bazowej tego bloku.

          WeryfikacjaAby sprawdzić, czy dane wejściowe są upoważnione do zbierania wartości danych wyjściowych, do których istnieją odniesienia, Bitcoin używa niestandardowego systemu skryptów podobnego do Forth. Wartość scriptSig wejścia i klucz scriptPubKey, do którego sięodwołuje, są oceniane (w tej kolejności), przy czym wartość scriptPubKey wykorzystuje wartości pozostawione na stosie przez skrypt scriptSig. Dane wejściowe są autoryzowane, jeśli scriptPubKey zwraca wartość true. Za pomocą systemu skryptów nadawca może stworzyć bardzo złożone warunki, które ludzie muszą spełnić, aby uzyskać wartość wyniku. Na przykład można utworzyć wynik, do którego każdy może zgłosić roszczenie bez żadnej autoryzacji. Możliwe jest również wymaganie, aby dane wejściowe były podpisane za pomocą dziesięciu różnych kluczy lub były możliwe do zrealizowania za pomocą hasła zamiast klucza.

          Rodzaje transakcjiBitcoin obecnie tworzy dwie różne pary scriptSig / scriptPubKey. Zostały one opisane poniżej.

          Możliwe jest projektowanie bardziej złożonych typów transakcji i łączenie ich razem w umowy egzekwowane kryptograficznie. Są one znane jako kontrakty.

          Pay-to-PubkeyHashAdres Bitcoin to tylko hash, więc nadawca nie może podać pełnego klucza publicznego w scriptPubKey. Podczas wymiany monet, które zostały wysłane na adres Bitcoin, odbiorca dostarcza zarówno podpis, jak i klucz publiczny. Skrypt sprawdza, czy podany klucz publiczny ma skrót do skrótu w scriptPubKey, a następnie sprawdza również podpis w odniesieniu do klucza publicznego.

We use cookies to provide you with the best possible experience. By continuing, we will assume that you agree to our cookie policy