Czym jest transakcja Coinbase i jak działa w Bitcoinie?

Czym jest transakcja Coinbase i jak działa w Bitcoinie?

Czym jest transakcja Coinbase?

Transakcja coinbase to pierwsza transakcja w każdym bloku Bitcoin. To właśnie w ten sposób miner otrzymuje nagrodę za dany blok. Nagroda ta nazywa się block reward i składa się z dwóch części: nowo wyemitowanych bitcoinów, czyli block subsidy, oraz opłat transakcyjnych ze wszystkich zwykłych transakcji, które miner umieścił w tym bloku.

Miner, który tworzy blok-kandydat, zawsze umieszcza tę transakcję jako pierwszą w bloku. Za pomocą outputów, czyli miejsc docelowych środków, może skierować nagrodę na własny adres albo do miningpoolu.


Najważniejsze informacje

  • Transakcja coinbase jest zawsze pierwszą transakcją bloku Bitcoin.
  • Miners używają tej transakcji, aby odebrać block subsidy i opłaty transakcyjne.
  • Full nodes sprawdzają, czy transakcja coinbase spełnia zasady Bitcoin.
  • Transakcja coinbase ma jeden specjalny input, który nie odwołuje się do wcześniejszego outputu Bitcoin.
  • Nagroda staje się możliwa do wydania dopiero od wysokości bloku h+100.

Jak działa transakcja Coinbase?

Miner najpierw tworzy blok-kandydat z transakcją coinbase na początku, a następnie ewentualnie dodaje transakcje z mempoola. Mempool to po prostu kolejka transakcji, które zostały już wysłane do sieci, ale jeszcze nie znalazły się w bloku.

Następnie miner wybiera, dokąd trafi nagroda. Może to być własny adres Bitcoin, ale w miningpoolach często znajduje się skrypt wypłaty określany przez pool. Pool sam później rozlicza uczestników.

W specjalnym coinbase-input znajduje się między innymi block height, czyli numer porządkowy bloku. Miner może też dodać tam dodatkowe dane, na przykład dodatkowy nonce. Nonce to wartość, którą oprogramowanie miningowe stale zmienia podczas szukania poprawnego hasha.

Dlaczego to jest przydatne? W przypadku proof of work miner próbuje bardzo wielu różnych hashy, aż znajdzie taki, który spełnia zasady Bitcoin. Jeśli zwykły nonce w nagłówku bloku nie wystarcza już do wykonywania kolejnych prób, miner może zmienić dodatkowy nonce w transakcji coinbase.

W efekcie zmienia się identyfikator transakcji coinbase. Następnie zmienia się też merkle root, czyli rodzaj zbiorczego kryptograficznego odcisku palca wszystkich transakcji w bloku. Dzięki temu miner zyskuje znów wiele nowych możliwości próbowania hashy.

Transakcja coinbase liczy się dopiero wtedy, gdy miner znajdzie ważny blok i gdy nodes zaakceptują ten blok. Node to komputer, który sprawdza zasady Bitcoin. Jeśli node odrzuci blok, transakcja coinbase również nie należy do aktywnego blockchaina Bitcoin.

Jaka jest różnica między transakcją Coinbase a zwykłą transakcją?

Największa różnica polega na tym, że zwykła transakcja Bitcoin wydaje istniejące bitcoiny, a transakcja coinbase zapisuje nagrodę za blok.

Zwykła transakcja używa jednego lub kilku inputów. Taki input odwołuje się do wcześniejszego, jeszcze „Unspent Transaction Output”. Taki niewydany output nazywa się też UTXO. Mówiąc prościej: UTXO to fragment bitcoinów, który nadal czeka na wydanie.

W zwykłej transakcji wartość outputów musi być równa wartości inputów albo od niej niższa. Różnica stanowi opłatę transakcyjną, którą może otrzymać miner.

Transakcja coinbase działa inaczej. Ma dokładnie jeden specjalny coinbase-input. Nie odwołuje się on świadomie do istniejącego UTXO. Zamiast tego zawiera hash zerowy jako poprzedni identyfikator transakcji oraz indeks 0xffffffff.

Nie oznacza to jednak, że miner może po prostu stworzyć bitcoiny z niczego. Łączna wartość outputów może być maksymalnie równa subsydium dla tego bloku plus opłaty z innych transakcji w tym samym bloku.

Obowiązują też dwie proste zasady blokowe:

  • Blok musi zaczynać się dokładnie jedną transakcją coinbase.
  • W tym samym bloku nie może później pojawić się druga transakcja coinbase.

Jeszcze jedna różnica: outputów transakcji coinbase nie można wydać od razu. Obowiązuje dla nich osobny okres oczekiwania wynoszący 100 nowych bloków.

Jakie zasady obowiązują dla transakcji Coinbase?

Transakcja coinbase musi spełniać kilka stałych zasad Bitcoin. Jeśli tak się nie stanie, cała sieć odrzuca blok.

Najważniejsze zasady są następujące:

  • Transakcja coinbase zawsze znajduje się jako pierwsza transakcja w bloku.
  • Transakcja ma jeden specjalny input.
  • Ten input nie odwołuje się do wcześniej otrzymanych bitcoinów, jak w zwykłej transakcji.
  • W inputcie umieszcza się między innymi numer bloku, czyli block height.
  • Miner nie może po prostu przyznać sobie dowolnej ilości bitcoinów.
  • Łączna nagroda może składać się maksymalnie z block subsidy oraz opłat transakcyjnych z bloku.

Block subsidy to ilość nowych bitcoinów emitowanych podczas tworzenia bloku. Bitcoin zaczynał z nagrodą 50 BTC za blok. Po każdych 210 000 bloków nagroda ta jest dzielona na pół. Dzieje się to mniej więcej raz na cztery lata i nazywamy to Bitcoin halving. Miners nie mogą więc samodzielnie zmieniać tej nagrody.

Jeśli blok zawiera transakcje z danymi witness SegWit, transakcja coinbase pełni jeszcze jedną dodatkową funkcję techniczną. Do transakcji coinbase dodaje się wtedy tak zwany witness commitment. Dzięki temu dane witness transakcji są kryptograficznie powiązane z blokiem, a nodes mogą je sprawdzić.

Dlaczego transakcja Coinbase nie ma zwykłych inputów?

Transakcja coinbase ma input, ale nie ma zwykłego inputu, który wydaje bitcoiny z wcześniejszego outputu.

To logiczne: block subsidy staje się po raz pierwszy dostępne właśnie przez tę transakcję. Nie istnieje więc wcześniejsze UTXO, do którego miner mógłby się odwołać. Również opłaty transakcyjne z nowego bloku trafiają do minera właśnie przez tę transakcję.

Można to traktować jako rozliczenie jednego bloku. Miner stworzył ważny blok i dlatego może odebrać dokładnie taką nagrodę, jaka należy się za ten blok. Full nodes sprawdzają następnie, czy ta kwota się zgadza.

Przykład: Załóżmy, że block subsidy i wszystkie opłaty razem tworzą określoną maksymalną kwotę. Jeśli miner wpisze w outputach coinbase więcej niż tę kwotę, blok będzie nieważny. Miner nie otrzyma wtedy nic, nawet tej części, która była dozwolona.

Coinbase-input ma też praktyczną funkcję podczas miningu. Obowiązkowy block height i ewentualny dodatkowy nonce pomagają oprogramowaniu miningowemu wykonywać kolejne próby proof of work.

Jak długo trwa potwierdzenie transakcji Coinbase?

Transakcja coinbase otrzymuje pierwsze potwierdzenie, gdy blok, w którym się znajduje, staje się częścią aktywnego blockchaina Bitcoin.

Nie da się tego określić z góry. Miner musi najpierw znaleźć ważny blok proof of work, a sieć musi ten blok zaakceptować. Proof of work to system, w którym miners wykonują obliczenia, aby znaleźć hash spełniający zasady Bitcoin.

Output coinbase nie jest jednak od razu możliwy do wydania. Bitcoin wymaga, aby można go było użyć jako input dopiero od wysokości bloku h+100, gdzie h to wysokość bloku, w którym znajduje się transakcja coinbase.

Jeśli nagroda znajduje się na przykład w bloku 500, można ją po raz pierwszy wydać w bloku 600. Chodzi więc o 100 nowych bloków, a nie o stały czas liczony w godzinach lub minutach. Bloki nie są bowiem znajdowane zawsze dokładnie w tym samym momencie.

Niektóre aplikacje crypto wallet pokazują liczbę potwierdzeń nieco inaczej na ekranie. Dlatego najjaśniejsza jest ta zasada: output coinbase z bloku h staje się możliwy do wydania w bloku h+100.

Dlaczego transakcje Coinbase są ważne dla Bitcoin?

Transakcje coinbase są ważne, ponieważ określają, w jaki sposób nowe bitcoiny są emitowane zgodnie ze stałymi zasadami Bitcoin i jak miners otrzymują swoje opłaty transakcyjne.

Block reward daje minerom powód, by wkładać moc obliczeniową w proof of work i tworzyć ważne bloki. Bez transakcji coinbase nie ma standardowego sposobu przypisania tej nagrody do bloku.

Jednocześnie Bitcoin utrzymuje kontrolę nad podażą pieniądza. Każdy full node sam sprawdza, czy transakcja coinbase nie wypłaca zbyt dużo. Jeśli miner spróbuje odebrać dodatkowe bitcoiny, nodes nie zaakceptują bloku. Jeden miner nie może więc samodzielnie zmienić zasad ani stworzyć dodatkowych bitcoinów.

Ta transakcja jest też przydatna samemu miningowi. Zmiana danych, takich jak dodatkowy nonce, zmienia merkle root i daje minerowi więcej hashy do wypróbowania.

W przypadku SegWit transakcja coinbase odgrywa ponadto rolę w zapisywaniu danych witness. Dzięki temu te dodatkowe dane transakcyjne są kryptograficznie powiązane z blokiem.

Jakie ryzyka i ograniczenia mają transakcje Coinbase?

Najważniejszym ograniczeniem jest to, że otrzymane bitcoiny nie są dostępne od razu. Miner lub miningpool musi poczekać, aż zostanie dodanych 100 nowych bloków, zanim output coinbase będzie można wydać. Tymczasowo ogranicza to płynność.

Poza tym nagroda jest ważna tylko wtedy, gdy blok znajduje się w aktywnym blockchainie Bitcoin. Jeśli blok nie zostanie zaakceptowany albo później wypadnie z aktywnego łańcucha w wyniku reorganizacji łańcucha, powiązany output nie będzie możliwy do wydania.

Miner musi też bardzo dokładnie pilnować kwoty. Zbyt wysoka wartość sprawia, że cały blok staje się nieważny. Mniejsza kwota jest dozwolona, o ile nie zostanie przekroczony górny limit, ale wtedy miner sam traci część możliwych przychodów.

Coinbase-scriptSig ma ograniczoną przestrzeń. Może mieć maksymalnie 100 bajtów i musi zaczynać się od block height. Zostaje więc niewiele miejsca na dowolny tekst lub inne metadane.

Wszystko, co miner tam wpisze, staje się publicznie widoczne, gdy blok zostanie dodany. Miningpool może na przykład dodać rozpoznawalny tag. Może to ujawnić informacje o tym, kto wyprodukował blok.

Na koniec również ta nagroda zależy od poprawnego skryptu wydatkowania i właściwych kluczy. Jeśli skrypt jest źle skonfigurowany albo wymagane klucze nie są już dostępne, nagroda może pozostać niewydana mimo zasady 100 bloków.

Podsumowanie

Transakcja coinbase to specjalna pierwsza transakcja każdego bloku Bitcoin. Dzięki niej miner otrzymuje maksymalnie block subsidy oraz opłaty transakcyjne z tego bloku.

Transakcja przypomina zwykłą transakcję Bitcoin, ale ma jeden wyjątkowy input, który nie odwołuje się do wcześniejszych bitcoinów. Jest to konieczne, ponieważ block subsidy staje się po raz pierwszy dostępne właśnie tą drogą. Jednocześnie nodes ściśle kontrolują, jaką kwotę miner może odebrać.

Dla Ciebie, jako zwykłego użytkownika Bitcoin, transakcja coinbase zwykle nie jest widoczna bezpośrednio. Ale pod maską jest to ważny element Bitcoin: łączy mining, proof of work, emisję nowych bitcoinów i opłaty transakcyjne.

O Finst

Finst to wiodąca platforma kryptowalutowa w Holandii, oferująca bardzo niskie opłaty transakcyjne, bezpieczeństwo klasy instytucjonalnej oraz szeroki zakres usług crypto, takich jak trading, przechowywanie aktywów, staking oraz wpłaty i wypłaty fiat. Finst, założona przez byłych kluczowych członków zespołu DEGIRO, jest autoryzowana jako dostawca usług w zakresie kryptoaktywów na mocy MiCAR przez Holenderski Urząd ds. Rynków Finansowych (AFM) i obsługuje klientów detalicznych oraz instytucjonalnych w 30 krajach europejskich.

Platforma krypto dla wszystkich inwestorów

Niezależnie od tego, czy aktywnie handlujesz, czy inwestujesz długoterminowo, Finst pomaga Ci rozwijać portfel krypto z pewnością i spokojem.

Zarejestruj się