Reguły konsensusu określają, które transakcje i bloki Bitcoin może zaakceptować. Każdy Full Node, czyli program samodzielnie weryfikujący sieć, stosuje je niezależnie. Sprawdza między innymi, czy te same środki nie są wydawane ponownie, czy spełniono warunki wydania zapisane w języku Bitcoin Script i czy blok ma poprawny Proof of Work, czyli dowód znalezienia rozwiązania zadania wydobywczego. Kontroluje też ilość nowo utworzonych bitcoinów. Większa moc obliczeniowa nie daje górnikowi prawa do omijania tych reguł.
Wyobraź sobie, że ktoś wydaje te same środki z wcześniejszej płatności najpierw na zapłatę tobie, a potem w sklepie. Oba wydania nie mogą należeć do poprawnej historii. Aby to sprawdzić, węzeł śledzi wyjścia transakcji: zapisy kwot wraz z warunkami, na jakich można je wydać. Po otrzymaniu bloku węzeł sprawdza zgodność z regułami, które stosuje, a nie to, kto polecił ten blok. Kontroluje między innymi dostępność wydawanych wyjść, warunki Bitcoin Script wraz z wymaganymi podpisami, Proof of Work i dopuszczalną nagrodę górnika. Naruszenie reguły oznacza odrzucenie bloku. Poparcie firmy czy większość głosów w internecie nie zmieniają wyniku. [1]
Górnik wybiera transakcje i szuka bloku, a Full Node niezależnie sprawdza wynik. Programiści mogą zaproponować zmianę i opublikować oprogramowanie, ale samo to nie zmienia reguł innych węzłów. Operator wybiera program, który uruchomi. Jego wybór określa, co zaakceptuje jego własny węzeł, a nie co muszą zaakceptować wszyscy pozostali. [2] [1]
Węzeł ma także reguły dotyczące niepotwierdzonych transakcji: które przechowuje w Mempool, swoim lokalnym zbiorze transakcji oczekujących na potwierdzenie, i które przekazuje innym węzłom. Te lokalne reguły, nazywane policy, mogą być surowsze od konsensusu. Odrzucenie transakcji z mempoola nie oznacza więc samo w sobie, że byłaby ona niepoprawna w bloku. Polityki przekazywania transakcji nie stosuje się podczas weryfikacji bloków. [3]
Soft Fork zaostrza reguły: bloki poprawne według nowych zasad spełniają również stare. Starsze węzły nie sprawdzają jednak nowych warunków. Z kolei Hard Fork może dopuścić blok, który starsze węzły odrzucą. Mechanizm aktywacji pomaga koordynować zmianę; nie gwarantuje powszechnej zgody i nie zastępuje decyzji operatorów o wyborze programu. [4]
Własny Full Node pozwala sprawdzać otrzymane bloki zamiast polegać na stronie internetowego eksploratora bloków. Węzeł może znać kilka gałęzi, czyli różnych kontynuacji wspólnej historii. Spośród poprawnych gałęzi wybiera na podstawie chainwork: sumy pracy przypisanej poszczególnym blokom zgodnie z ich trudnością wydobycia. Nie jest to pomiar rzeczywiście zużytej energii elektrycznej ani samo liczenie bloków. Większa praca nie usprawiedliwia naruszenia reguł. Aby węzły uzyskały ten sam wynik, muszą stosować reguły jednakowo także w nietypowych przypadkach. Błąd programu może sprawić, że będą akceptować różne bloki. [4] [5]
Węzeł może odmówić przekazania transakcji ze zbyt niską opłatą. Jeśli jednak górnik umieści ją w bloku, a transakcja i blok spełniają reguły konsensusu, węzeł przyjmie blok. Gdy górnik przyzna sobie więcej niż dozwolona ilość nowych bitcoinów, nazywana Block Subsidy, wraz z opłatami transakcji w bloku, węzeł odrzuci blok nawet z poprawnym Proof of Work. Liczy się powód odrzucenia, a nie reputacja górnika. [3] [1]
Pełniejszy obraz uzyskasz, czytając to hasło razem z Full Node, Soft Fork, Proof of Work, Bitcoin Core, Bitcoin Script, Mempool. Do tego hasła prowadzą również odsyłacze z 21 Million, Soft Fork, Hard Fork, BIP (Bitcoin Improvement Proposal).