
Soft fork i hard fork:Kako se menjaju pravila Bitcoina
Šta su pravila konsenzusa, zašto stari čvorovi prihvataju soft fork a odbacuju hard fork, šta je chain split i šta su pokazali SegWit, Taproot i Bitcoin Cash.
Sadržaj
Najvažnije u nekoliko reči:
- Pravila konsenzusa određuju koji blok važi. Svaki čvor ih proverava sam, pa nova pravila ne može da uvede niko sam.
- Soft fork (pooštravanje pravila) čini pravila strožim. Stari čvorovi i dalje prihvataju nove blokove, pa niko ne mora odmah da menja program.
- Hard fork (ublažavanje ili promena pravila) dozvoljava blokove koje su stara pravila zabranjivala. Stari čvorovi ih odbacuju, pa svi moraju da pređu na novu verziju ili se lanac deli.
- Chain split (podela lanca) znači da postoje dva lanca. Može da nastane posle hard forka, posle soft forka koji ne prihvati većina rudara, pa i bez ikakve promene pravila.
- SegWit 2017. i Taproot 2021. uvedeni su kao soft fork i lanac je ostao jedan. Posle hard forka iz avgusta 2017. ostala su dva lanca, a drugi se zove Bitcoin Cash.
Bitcoin nema upravu koja jednog jutra objavi nova pravila, a pravila su se ipak menjala. Kako, kad niko nije glavni?
Pravila konsenzusa (engl. consensus rules) su pravila po kojima čvor odlučuje da li je blok ispravan. Ona kažu, na primer, koliko podataka sme da stane u blok i koliko rudar sme sebi da isplati. Promena tih pravila se u Bitcoinu zove fork, a postoje dve vrste. Razlikuju se samo po tome da li čvor sa starim programom i dalje prihvata nove blokove.
Reč fork znači račvanje. U Bitcoinu se koristi i za promenu pravila i za podelu lanca, pa ovaj tekst to razdvaja. Soft fork i hard fork su vrste promene, a chain split je podela.
Pravila ne čuva server, nego svaki čvor
Kad rudar napravi blok, svaki full node ga proveri po pravilima koja poznaje. Blok koji ih krši odbacuje, ma ko ga napravio. Kako to izgleda, objašnjava tekst Full node i light node: ko u Bitcoinu proverava, a ko veruje. Tako se čuva i granica od 21 milion bitcoina.
Zato nova pravila ne može da uvede niko sam. Programer može da napiše novu verziju programa, ali ona važi samo kod onih koji je instaliraju. Rudar može da napravi blok po novim pravilima, ali čvorovi sa starim programom možda neće hteti da ga prihvate. Program se ne menja svuda istog dana, pa je uvek bitno šta stari čvorovi misle o novim blokovima.
Zamisli firmu iz Novog Sada koja sa sto dobavljača ima isti ugovor. Roba mora da stigne za najviše 30 dana. Svaki magacioner ima svoj primerak ugovora i po njemu prima robu.

- Firma skrati rok na 15 dana. Isporuka za 10 dana je dobra po starom i po novom ugovoru, pa magacioner sa starim primerkom ništa ne odbija.
- Firma produži rok na 45 dana. Isporuka za 40 dana je dobra po novom ugovoru, ali je magacioner sa starim primerkom vraća.
Magacioneri su čvorovi. Prvi slučaj je soft fork, drugi hard fork.
Soft fork pooštrava pravila, a stari čvorovi ga i dalje prate
Soft fork (pooštravanje pravila) je promena posle koje neki blokovi koji su ranije važili više ne važe, a svaki blok po novim pravilima važi i po starim. Stari čvor zato prihvata sve što prave rudari sa novim programom i prati isti lanac kao i nov čvor. Niko ne mora da menja program istog dana.
Uslov je da nova pravila primenjuje većina računske snage rudara. Tada najduži lanac čine blokovi koji važe i za stare i za nove čvorove (developer.bitcoin.org). Ako nova pravila primenjuje samo manjina, rudar sa starim programom može da napravi blok koji stari čvorovi prihvate, a novi odbace. U tom slučaju se i posle soft forka lanac deli.
Stari čvor posle soft forka ipak ne proverava sve. Nova pravila ne poznaje, pa ih i ne proverava. Za SegWit transakciju, na primer, stari čvor pretpostavlja da je uvek ispravna (BIP 141). Zato programeri i posle soft forka preporučuju prelazak na novu verziju, da bi čvor pomogao da se nova pravila poštuju (Bitcoin Core 0.21.1).
Hard fork menja pravila, a stari čvorovi ga odbacuju
Hard fork (ublažavanje ili promena pravila) dozvoljava blokove koje stara pravila zabranjuju. Hard fork je i svaka promena koja pravilo menja iz korena, na primer druga heš funkcija za rudarenje. Prvi blok koji koristi novo pravilo stari čvor odbaci, a sa njim i svaki blok koji se na njega nadovezuje.
Ako su pre tog bloka svi čvorovi prešli na novu verziju, ništa se ne deli. Ako nisu, nastaju dva lanca, i to trajno. Jedan grade čvorovi sa novim programom, drugi čvorovi sa starim (developer.bitcoin.org).
Šta vide stari i novi čvorovi posle soft forka i posle hard forka
Stara pravila dozvoljavaju blok do 1 MB. Blokovi idu s leva nadesno.
Sliku možeš da pomeraš levo-desno.
Zamišljen primer sa granicom bloka od 1 MB, kakva je važila pre 2017. Taman blok je napravio rudar sa novim programom.
Ista granica bloka može da se promeni na oba načina
Najlakše se vidi na veličini bloka. U zamišljenom primeru stara granica je 1 MB, kakva je važila pre 2017. Soft fork je spušta na 0,5 MB, a hard fork podiže na 10 MB.
Tabelu možeš da pomeraš levo-desno.
Chain split je podela lanca, a ne vrsta promene
Chain split (podela lanca) je stanje u kome čvorovi ne grade dalje na istom poslednjem bloku. Najčešći je bezazlen i nema veze sa pravilima. Dva rudara nađu blok skoro u isto vreme, pa deo mreže prvo vidi jedan, a deo drugi. Kad neko nađe sledeći blok, svi prelaze na duži lanac, kako opisuje već whitepaper.
Lanac može da se podeli i greškom. U martu 2013. stara verzija programa nije mogla da obradi jedan veliki blok, pa je mreža neko vreme imala dva lanca. O tom slučaju piše tekst Šta je dvostruka potrošnja?
Bitcoin Cash je hard fork posle koga su ostala dva lanca
Grupa programera i rudara napravila je 2017. program sa većim blokovima. Po njegovim pravilima, od 1. avgusta 2017. u 12:20 po svetskom vremenu (UTC) program je granicu bloka podizao na najmanje 8 MB, a prvi blok posle tog trenutka morao je da bude veći od 1 MB (specifikacija UAHF).
Poslednji zajednički blok je 478.558, iskopan 1.8.2017. u 13:16 UTC. Na lancu Bitcoina sledeći blok je imao 272.502 bajta. Na novom lancu blok sa istim brojem imao je 1.915.175 bajtova, pa su ga stari čvorovi odbacili. Novi lanac se zove Bitcoin Cash i ima svoju valutu i svoju cenu. Ko je pre podele imao bitcoine, imao je posle isti iznos i na novom lancu, jer su lanci do bloka 478.558 isti.
Kad je lanac ostao jedan, a kad se podelio
Četiri stvarna slučaja, od najstarijeg. Datum je po svetskom vremenu (UTC).
blok 225.430veliki blok
Podela zbog stare verzije programachain split greškom
Stare verzije nisu mogle da obrade veliki blok. Rudari su vratili stariju verziju i lanac je opet bio jedan.
blok 478.558poslednji zajednički blok
Bitcoin Cashhard fork
Novi lanac je dozvolio blokove veće od 1 MB. Stari čvorovi su ih odbacili i ostala su dva lanca.
blok 481.824prvi blok po novim pravilima
SegWitsoft fork
Potpisi su izdvojeni iz dela bloka koji vide stari čvorovi. Lanac je ostao jedan.
blok 709.632prvi blok po novim pravilima
Taprootsoft fork
Schnorr potpisi i adrese bc1p. Lanac je ostao jedan.
Izvori: bitcoin.org, obaveštenje o podeli (otvara se u novom prozoru), 31.10.2026, uzrok i kraj podele iz 2013; specifikacija UAHF (otvara se u novom prozoru), 24.7.2017, pravila novog lanca i trenutak podele; BIP 9, spisak aktivacija (otvara se u novom prozoru), 31.10.2026, blok od koga SegWit važi; BIP 341 (otvara se u novom prozoru), 31.10.2026, blok od koga Taproot važi; mempool.space (otvara se u novom prozoru), 31.10.2026, vreme blokova 225.430, 478.558, 481.824 i 709.632.
SegWit je doneo više mesta u bloku, a ostao soft fork
Kako je moguće da u blok stane više podataka, a da to bude soft fork? Odgovor je u tome šta stari čvor vidi.
SegWit (engl. Segregated Witness, izdvojeni potpisi) je izmena pravila iz 2017. Potpise i ostale podatke koji dokazuju da je trošenje dozvoljeno (engl. witness) izdvojila je iz dela transakcije koji vide stari čvorovi (BIP 141). Ti podaci su i dalje u bloku. Stari čvor dobija blok bez njih (BIP 144), a takav blok je i dalje do 1 MB.
Nov čvor dobija ceo blok i meri ga novom merom, težinom. Blok sme da ima najviše 4.000.000 jedinica težine. Bajtovi potpisa se pri tome računaju jednom, a svi ostali četiri puta (BIP 141). Kako se po težini plaća naknada, objašnjava tekst Šta je UTXO?
Zašto je to pooštravanje? Starom čvoru SegWit izlaz izgleda kao izlaz koji sme da potroši bilo ko, bez potpisa. Nov čvor za isti izlaz traži ispravan potpis (BIP 141). Pravilo je postalo strože, pa je to soft fork.
Rudari su spremnost pokazivali signalom u polju verzije, u zaglavlju bloka. Po postupku BIP 9 signal je trebalo da nosi 1.916 od 2.016 uzastopnih blokova, odnosno 95% (BIP 9). Mesecima ga nije bilo. U leto 2017. rudari su počeli da odbacuju blokove bez signala (BIP 91), a deo korisnika je pokrenuo čvorove koji bi od 1. avgusta odbacivali takve blokove (BIP 148). SegWit važi od bloka 481.824, iskopanog 24.8.2017. (Bitcoin Core).
Taproot je prošao isti put, sa kraćim rokom
Taproot je izmena pravila koja je donela Schnorr potpise i nove adrese, one koje počinju sa bc1p (BIP 340, BIP 341, BIP 342). I ona je soft fork.
Signal se brojao od 24. aprila do 11. avgusta 2021, uz niži prag, 1.815 od 2.016 blokova, odnosno 90% (BIP 341). Taj postupak se zvao Speedy Trial, brza proba (Bitcoin Core 0.21.1). Prag je dostignut pre roka, ali su nova pravila važila tek od bloka 709.632, iskopanog 14.11.2021. Do tada su čvorovi imali vremena da pređu na novu verziju (Bitcoin Core 0.21.1).
Signal rudara nije glasanje o pravilima. On pokazuje da je dovoljno računske snage spremno da primenjuje nova pravila, da se lanac posle aktivacije ne bi podelio. Pravila i posle toga proverava svaki čvor.
Zašto se Bitcoin menja soft forkom
Soft fork ne traži da svi u isto vreme promene program. Ko ne pređe na novu verziju, njegov čvor i dalje radi i prati isti lanac. Hard fork traži da pređu svi, a u mreži bez uprave to se teško postiže. Bitcoin Cash pokazuje šta biva kad se ne postigne. Zato su i SegWit i Taproot urađeni kao soft fork.
To ima i drugu stranu. Pravilo koje bi povećalo nagradu za blok bilo bi hard fork, jer bi blok sa većom nagradom stari čvor odbacio. Mi mislimo da je to dobro. Ko bi hteo više bitcoina, morao bi da ubedi svaki čvor da pređe na njegov program.
Šta iz ovoga sledi za tebe
Ključne lekcije:
- Pravila Bitcoina ne menja niko sam. Važe ona koja proveravaju čvorovi.
- Soft fork pooštrava pravila i stari čvorovi ga prate. Hard fork ublažava ili menja pravila, a stari čvorovi ga odbacuju.
- Posle forka chain split može da dođe, ali ne mora. Dešava se i bez forka.
- Valuta nastala hard forkom, kao Bitcoin Cash, ima svoj lanac i svoja pravila.
- Sa svojim čvorom ti biraš koja pravila prihvataš.
Šta dalje?
Sad znaš da pravila čuvaju čvorovi. Šta ako neko pokrene hiljade lažnih čvorova? Odgovor je u sledećem tekstu, Šta je Sybil napad i kako se Bitcoin brani od lažnih čvorova?
Bitcoin nema upravu koja propisuje pravila. Važe ona koja proverava tvoj čvor.
- Soft fork i hard fork: kako se menjaju pravila Bitcoina
Tekst 2 od 23
