Dan nezavisnosti Bitcoina:Ko je 2017. odlučio koja pravila važe

Zašto se 1. avgust 2017. zove Dan nezavisnosti Bitcoina, šta su tog leta uradili rudari, firme i korisnici sa svojim čvorovima, kako je SegWit počeo da važi, zašto su blokovi od 2 MB otkazani i šta je to pokazalo o moći u Bitcoinu.

Sadržaj

Najvažnije u nekoliko reči:

  • Dan nezavisnosti Bitcoina je 1. avgust 2017. Od tog dana čvorovi korisnika sa pravilom BIP 148 odbacivali bi svaki blok bez signala za SegWit.
  • U maju 2017. firme i rudari, koji su tvrdili da imaju 83% računske snage, dogovorili su u Njujorku SegWit i, u roku od šest meseci, blok od 2 MB.
  • Rudari su u julu sami počeli da odbacuju blokove bez signala. Od 23. jula signal je nosio svaki blok, pa 1. avgusta čvorovi sa BIP 148 nisu imali šta da odbace.
  • Istog dana odvojio se Bitcoin Cash, lanac sa većim blokovima. SegWit na Bitcoinu važi od 24. avgusta 2017.
  • Blok od 2 MB otkazan je 8. novembra 2017, jer za njega nije bilo dovoljno podrške.
  • Po nama, leto 2017. je pokazalo da pravila ne menja onaj ko ima najviše računske snage ili najviše potpisa, nego ono što prihvataju čvorovi ljudi koji Bitcoin koriste.

Dan nezavisnosti Bitcoina (engl. Bitcoin Independence Day) je 1. avgust 2017. Tog dana je kod korisnika koji su ga instalirali počelo da važi pravilo BIP 148. Njihovi čvorovi bi od tada odbacivali svaki blok koji ne nosi signal za SegWit, ma koji rudar da ga je napravio.

Ime nije dao nijedan zvaničan dokument. Samson Mow, jedan od glasnih zagovornika BIP 148, napisao je 29. maja 2017:

„#Bitcoin Independence Day is August 1st.“ (Dan nezavisnosti Bitcoina je 1. avgust, objava na mreži X.)

Po nama, nezavisnost je ovde značila nezavisnost korisnika od rudara. Pravila koja čvor proverava ne čekaju pristanak onih koji prave blokove.

Tekst o soft forku i hard forku kaže da pravila proverava svaki čvor sam. U leto 2017. ta tvrdnja je prošla pravu probu. Na jednoj strani su bili rudari sa većinom računske snage i velike firme, a na drugoj ljudi sa svojim čvorovima.

Spor o veličini bloka postao je spor o tome ko menja pravila

Do 2017. blok je smeo da ima najviše 1 MB. Kako je spor tekao, ukratko piše tekst o SegWitu. Ovde gledamo razloge obe strane, iz njihovih dokumenata.

Zagovornici većih blokova gledali su na broj transakcija. Gavin Andresen je 2015. u predlogu BIP 101 napisao da broj transakcija raste i da će uskoro udariti u granicu od jednog megabajta na svakih deset minuta. Veća granica bi, po njemu, manje kočila rast Bitcoina (BIP 101). I sam Satoshi je 4. oktobra 2010. napisao da granica može da se podigne postepeno. Nova verzija programa bi unapred znala od kog bloka važi veća granica (bitcointalk).

Druga strana se bojala samog načina promene. Programeri Bitcoin Core-a objavili su u decembru 2015. plan čiji je prvi korak SegWit, uveden kao soft fork. Razlog su naveli jasno. Hard fork koji nije hitan niko nikad nije sproveo, a kod hard forka svaki full node mora da pređe na novu verziju, inače njegovi korisnici mogu da izgube novac (pitanja i odgovori uz plan).

SegWit je bio u programu od verzije 0.13.1 (napomene uz izdanje). Da bi počeo da važi, trebalo je da signal nosi 95% blokova jednog perioda od 2.016 blokova (BIP 9). Brojanje je počelo 15. novembra 2016. U 16 perioda do sredine juna 2017. signal je nosilo između 22,4% i 34,6% blokova. U periodu koji se završio 23. maja 2017, signal je nosilo 663 od 2.016 blokova, 32,9%. To je naše brojanje sa mempool.space.

Bilo je dovoljno da signal ne nosi nešto više od 5% blokova, pa da izmena ne prođe ni za koga.

Od prvog signala do otkazanih 2 MB

Stvarni događaji, od najstarijeg. Naziv vodi na izvor.

  1. Počinje brojanje signala za SegWit (otvara se u novom prozoru)

    SegWit počinje da važi tek kad signal nosi 95% blokova jednog perioda od 2.016 blokova.

  2. Predlog da korisnici sami zakažu dan (otvara se u novom prozoru)

    Shaolin Fry piše da pravila soft forka sprovode čvorovi, a ne rudari.

  3. BIP 148 dobija broj (otvara se u novom prozoru)

    Od 1. avgusta čvorovi sa ovim pravilom odbacuju svaki blok bez signala za SegWit.

  4. Sporazum iz Njujorka (otvara se u novom prozoru)

    Firme i rudari sa 83,28% računske snage traže SegWit na 80% i 2 MB u roku od šest meseci.

  5. Ime „Dan nezavisnosti“ (otvara se u novom prozoru)

    Samson Mow piše da je 1. avgust Dan nezavisnosti Bitcoina.

  6. BIP 91 zaključan (otvara se u novom prozoru)

    U periodu od 336 blokova signal na bitu 4 nosi 284 bloka, više od praga od 269.

  7. BIP 91 važi (otvara se u novom prozoru)

    Rudari odbacuju svaki blok bez signala za SegWit. Od tada ga nosi svaki blok.

  8. Dan nezavisnosti i Bitcoin Cash (otvara se u novom prozoru)

    Čvorovi sa BIP 148 nemaju šta da odbace. Posle bloka 478.558 odvaja se lanac sa većim blokovima.

  9. SegWit zaključan (otvara se u novom prozoru)

    U prethodnom periodu signal je nosio svaki od 2.016 blokova.

  10. SegWit važi (otvara se u novom prozoru)

    Prvi blok sa SegWit pravilima je 481.824.

  11. Blok od 2 MB otkazan (otvara se u novom prozoru)

    Organizatori pišu da nisu izgradili dovoljnu saglasnost za promenu veličine bloka.

Izvor: mempool.space, zaglavlja blokova 439.488 do 481.824 (otvara se u novom prozoru), 4.11.2026, polje verzije svakog bloka, naše brojanje. Datumi blokova su po svetskom vremenu (UTC).

Ko je u leto 2017. držao koju polugu

Strane u sporu nisu imale istu vrstu moći. Rudari su pravili blokove, firme su držale novac svojih korisnika, programeri su pisali program, a čvorovi su odlučivali šta od svega toga važi. Nijedna strana nije mogla sama da završi stvar.

Četiri strane, četiri poluge

Šta je koja strana mogla, i šta je s tim uradila u leto 2017.

Rudari
Prave blokove i nose signal. Bez 95% signala SegWit po BIP 9 nije mogao da počne.
2017: U maju je signal nosilo 32,9% blokova, a od 23. jula svaki.
Čvorovi korisnika
Odlučuju koji blok važi. Blok koji krši njihova pravila ne prihvataju, ma ko ga napravio.
2017: BIP 148 je zakazao 1. avgust kao dan posle koga ne primaju blokove bez signala.
Menjačnice i druge firme
Čuvaju novac korisnika i biraju koji lanac kod njih nosi ime Bitcoin.
2017: Potpisale su sporazum iz Njujorka, a bez čvorova nisu mogle da donesu 2 MB.
Programeri
Pišu program, ali niko ne mora da ga instalira.
2017: SegWit je u programu Bitcoin Core od verzije 0.13.1. Program sa 2 MB pisala je druga grupa.

Izvori: BIP 9, spisak aktivacija (otvara se u novom prozoru), 2015, SegWit na bitu 1 od 15.11.2016, prag 95%; BIP 148 (otvara se u novom prozoru), 12.3.2017, od 1.8. do 15.11.2017. blok bez signala ne važi; objava sporazuma iz Njujorka (otvara se u novom prozoru), 23.5.2017, SegWit na 80% i 2 MB u roku od šest meseci; Bitcoin Core, napomene uz izdanje 0.13.1 (otvara se u novom prozoru), 27.10.2016, parametri aktivacije SegWita; mempool.space, zaglavlja blokova 439.488 do 481.824 (otvara se u novom prozoru), 4.11.2026, polje verzije svakog bloka, naše brojanje.

Korisnici su zakazali dan posle koga ne primaju blokove bez signala

Programer koji se potpisuje kao Shaolin Fry napisao je 25. februara 2017. da signal rudara daje malom delu računske snage veto nad izmenom za sve. Predložio je da novo pravilo počne da važi na unapred zakazan dan i obrazložio to ovako:

„As such, soft forks rules are actually always enforced by the nodes, not the miners.“ (Pravila soft forka zapravo uvek sprovode čvorovi, a ne rudari, lista bitcoin-dev.)

Iz toga je nastao predlog BIP 148, koji je broj dobio 12. marta 2017. Od 1. avgusta do 15. novembra 2017. svaki blok mora da nosi signal za SegWit. Blok bez njega čvor odbacuje uz poruku „relayed block must signal for segwit, please upgrade“. Pravilo prestaje da važi čim SegWit bude zaključan (BIP 148). Takva izmena se zove UASF (engl. user activated soft fork), soft fork koji pokreću korisnici.

Kalendar na cepanje na belom zidu, na gornjem listu crveno „AVGUST“, krupno „1“ i ispod „UTORAK“, a na stolu ispod njega mali crni kućni računar sa zelenim svetlom

Zamisli pekaru u svom kraju. Pekar odlučuje šta će da peče, ali hleb koji niko ne kupi ostaje na rafu. Rudar je pekar, a čvorovi menjačnica, trgovaca i ljudi koji primaju bitcoine su kupci. Blok koji oni odbace donosi rudaru nagradu koju kod njih ne može da potroši.

Rizik je ipak bio stvaran. Ako bi većina rudara i dalje pravila blokove bez signala, čvorovi sa BIP 148 bi ostali na kraćem lancu, sa ređim blokovima. Ako bi njihov lanac postao duži, na njega bi prešli i obični čvorovi, jer on poštuje i stara pravila. Tada bi propali blokovi rudara koji nisu dali signal. Kako stari čvorovi prate soft fork, piše u tekstu o soft forku. Koliko je menjačnica i trgovaca stajalo iza BIP 148, ne znamo. Za to nismo našli pouzdan izvor.

Tamnoplavi kačket na drvenoj polici, na njemu krupno izvezena bela slova „UASF“, a pored njega mali crni kućni računar sa zelenim svetlom i kablovima

Firme i rudari su se u maju dogovorili u Njujorku

Dok su korisnici pripremali BIP 148, druga strana je tražila svoj put. Dana 23. maja 2017. objavljen je dogovor sa skupa Consensus 2017 u Njujorku, koji se zove sporazum iz Njujorka (engl. New York Agreement). Potpisnici su se obavezali na dve stvari (objava sporazuma):

  • da SegWit počne da važi kad ga podrži 80% računske snage, sa signalom na bitu 4;
  • da u roku od šest meseci dođe hard fork koji granicu bloka podiže na 2 MB.

Prazna sala za sastanke posle dogovora, na dugom stolu list papira sa naslovom „SPORAZUM“ i redom „Njujork, maj 2017.“, nalivpero preko njega i četiri potpisa pri dnu

Kasnije se ceo plan zvao SegWit2x. Po objavi, potpisnici su do 25. maja bili 58 firmi iz 22 zemlje, sa 83,28% računske snage. Na spisku su menjačnice, firme za novčanike i plaćanje, rudarske grupe i nekoliko pojedinaca.

Ljudi koji vode svoje čvorove nisu bili za tim stolom. Oni se nigde ne potpisuju i niko ih ne broji. A hard fork na 2 MB važi samo za čvorove koji pređu na novi program, kako objašnjava tekst o hard forku. Po nama, u tome je bila slaba tačka sporazuma. Brojao je one koji prave blokove i one koji čuvaju tuđe bitcoine, a ne one koji proveravaju pravila.

Rudari su popustili pre roka, preko BIP 91

Predlog BIP 91, koji je napisao James Hilliard, dobio je broj 22. maja 2017. Kad 269 od 336 blokova, odnosno 80%, nosi signal na bitu 4, rudari sami odbacuju svaki blok bez signala za SegWit (BIP 91). To je isti bit 4 koji je tražio sporazum iz Njujorka.

Po našem brojanju sa mempool.space, prag je pređen u periodu koji se završio 21. jula, sa 284 od 336 blokova. BIP 91 je zaključan od bloka 476.784, a važi od bloka 477.120, 23. jula 2017. Od tog bloka do zaključavanja SegWita signal je nosio svaki od 2.688 blokova.

Signal za SegWit je mesecima stajao između četvrtine i trećine, pa je u julu skočio na sve blokove

Udeo blokova sa signalom u svakom periodu od 2.016 blokova, novembar 2016. do avgusta 2017.

  • Signal za SegWit (bit 1)
  • Signal za sporazum i BIP 91 (bit 4)
Brojevi sa grafikona
PeriodSignal za SegWit (bit 1)Signal za sporazum i BIP 91 (bit 4)
do 2. decembra 2016.22,4%nije bilo
do 15. decembra 2016.24,2%nije bilo
do 28. decembra 2016.25,8%nije bilo
do 10. januara 2017.25,8%nije bilo
do 22. januara 2017.24,3%nije bilo
do 4. februara 2017.23,2%nije bilo
do 18. februara 2017.24,1%nije bilo
do 3. marta 2017.26,6%nije bilo
do 17. marta 2017.26,4%nije bilo
do 30. marta 2017.28,9%nije bilo
do 13. aprila 2017.30,5%nije bilo
do 27. aprila 2017.33,3%nije bilo
do 10. maja 2017.34,6%nije bilo
do 23. maja 2017.32,9%nije bilo
do 4. juna 2017.30,9%0,0%
do 17. juna 2017.31,8%0,0%
do 2. jula 2017.40,9%2,9%
do 14. jula 2017.45,5%0,0%
do 27. jula 2017.71,4%43,4%
do 9. avgusta 2017.100,0%11,9%

Izvori: mempool.space, zaglavlja blokova 439.488 do 481.824 (otvara se u novom prozoru), 4.11.2026, polje verzije svakog bloka, naše brojanje; BIP 91 (otvara se u novom prozoru), 22.5.2017, 269 od 336 blokova na bitu 4. Bit 4 je dobio značenje 1. juna 2017, pa ga pre toga ne crtamo. Kad je BIP 91 počeo da važi, signal na bitu 4 više ništa nije menjao.

Po nama, BIP 91 je spojio obe strane. Rudari su ispunili slovo sporazuma iz Njujorka, a uradili su upravo ono što je BIP 148 tražio od 1. avgusta.

Prvog avgusta lanac se podelio, ali ne zbog BIP 148

Kad je 1. avgust došao, čvorovi sa BIP 148 nisu imali šta da odbace. Svaki blok je već nosio signal. Lanac se ipak podelio, i to sa druge strane.

Grupa programera i rudara napravila je program po specifikaciji UAHF, hard fork koji pokreću korisnici. Sama specifikacija kaže da je nastala po uzoru na ideju zakazanog dana. Prvi blok posle zakazanog trenutka morao je da bude veći od 1 MB, granica je bila najmanje 8 MB, a transakcije su dobile nov način potpisivanja. Tako transakcija sa jednog lanca ne važi na drugom (specifikacija UAHF). Poslednji zajednički blok i prvi blok novog lanca, Bitcoin Cash, opisuje tekst o hard forku.

Šta je koji čvor prihvatao 1. avgusta 2017.

Od 23. jula svaki blok nosi signal, pa prve dve vrste čvorova prate isti lanac.

Čvor bez BIP 148blok važi ako jeblok do 1 MBsignal nije bitanlanac BitcoinaČvor sa BIP 148blok važi ako jeblok do 1 MBsamo sa signalomlanac BitcoinaČvor po UAHFblok važi ako jeprvi blok preko 1 MBnov način potpisalanac Bitcoin Cash

Sliku možeš da pomeraš levo-desno.

Izvori: BIP 148 (otvara se u novom prozoru), 12.3.2017, od 1.8. do 15.11.2017. blok bez signala ne važi; specifikacija UAHF (otvara se u novom prozoru), 24.7.2017, prvi blok veći od 1 MB, granica najmanje 8 MB, nov potpis.

SegWit je zaključan 9. avgusta, a važi od 24. avgusta

U periodu od 2.016 blokova koji se završio 9. avgusta signal za SegWit nosio je svaki blok, 100%. SegWit je zaključan od bloka 479.808, a važi od bloka 481.824, 24. avgusta 2017.

Drugi deo sporazuma, 2 MB, otkazan je 8. novembra

Ostao je hard fork. Program btc1, koji su napravili zagovornici sporazuma, zakazao ga je za 12.960 blokova posle početka SegWita, odnosno 90 dana po 144 bloka (izvorni kod btc1). To je padalo sredinom novembra 2017.

Menjačnica Bitfinex je od 5. oktobra pustila trgovinu dva tokena, po jedan za svaki lanac koji bi mogao da nastane (obaveštenje). Tako se još pre podele videlo koliko su ljudi spremni da plate za koji lanac.

Dana 8. novembra 2017. organizatori su na listi za dopisivanje bitcoin-segwit2x javili da odustaju. Pismo je potpisalo šest ljudi:

„Unfortunately, it is clear that we have not built sufficient consensus for a clean blocksize upgrade at this time.“ (Nažalost, jasno je da za sada nismo izgradili dovoljnu saglasnost za čistu promenu veličine bloka, pismo na listi.)

Svoj stav nisu promenili. U istom pismu piše da će, kako naknade rastu, postati jasno da je veći kapacitet lanca potreban. Sporazum koji je u maju imao potpise sa 83,28% računske snage ipak nije doneo hard fork.

Šta je leto 2017. pokazalo

  • Signal rudara nije glas. On pokazuje da je dovoljno računske snage spremno za nova pravila, a pravila i dalje proverava svaki čvor.
  • Potpisi firmi nisu bili dovoljni za hard fork. Za njega je trebalo da novi program pokrenu i čvorovi, a to se ne dogovara za stolom.
  • Ko se ne slaže, može da ode. Bitcoin Cash je dobio svoja pravila bez ičije dozvole, a Bitcoin je zadržao svoja.

Ne zna se šta bi bilo da rudari nisu popustili preko BIP 91. Organizatori SegWit2x u istom pismu pišu da je baš njihov plan u avgustu prekinuo zastoj i doveo do SegWita. Mi mislimo da su obe stvari radile zajedno. Rudari su izabrali put na kome nisu rizikovali svoje blokove, a taj put je vodio tamo gde su čvorovi već krenuli.

Šta iz ovoga sledi za tebe

  • Koja pravila važe za tvoj novac, proverava čvor kome tvoj novčanik veruje. Ako je to tvoj čvor, ta pravila biraš ti.
  • Kad se najavi podela lanca, proveri šta će uraditi tvoj novčanik i tvoja menjačnica. Dok je važio BIP 91, njegov tekst je savetovao da se pre prihvatanja uplate čeka više potvrda (BIP 91).

Šta dalje?

Ovo je četvrti tekst dela staze o filozofiji i istoriji pokreta. Sledeći je tekst 10 Bitcoin mimova: odakle su došli i šta zaista znače, o izrazima iz Bitcoin zajednice, od prvih poruka na forumu do laserskih očiju, i o tome gde mogu da te zavaraju.

Rudari prave blokove, firme čuvaju tuđe bitcoine, a koji blok važi, odlučuje tvoj čvor.

  1. Dan nezavisnosti Bitcoina: ko je 2017. odlučio koja pravila važe

Tekst 19 od 23

Napredne teme