Taproot je bil združen v Bitcoin Core oktobra 2023, pri čemer je ostala le metoda aktivacije te težko pričakovane nadgradnje protokola osredotočena na dodajanje prožne pametne pogodbe in večjo zasebnost transakcij v Bitcoin.

Prejšnji teden se je Bitcoin razvojna skupnost zbrala prek Internet Relay Chat (IRC), da bi razpravljala o parametrih aktivacije Taproot in dveh zahtevah za vlečenje kode (PR) signalnega mehanizma BIP 8.

“V želji, da bi se to približalo cilju, organiziramo sestanek na IRC na kanalu ## taproot-activation v torek, 2. februarja ob 19:00 UTC,” je organizator razvoja Bitcoinov Michael Folkson objavljeno prek poštnega seznama bitcoin-dev. “Primarni cilj bo dokončno spremeniti način aktiviranja BIP 8 …”

Na koncu je ta sestanek omogočil večji vpogled v to, kako se najpomembnejši protokol Bitcoina spreminja od SegWita naprej.

Opomba urednika: Izjave, povzete iz spodnjega IRC, so bile zaradi jasnosti nekoliko urejene, sicer pa so predstavljene, kot so bile napisane.

Dajanje oblike predlogu

Razvijalec Bitcoinov Anthony Towns je sestavil predlogi in možni scenariji za aktivacijo Taproota. Na sestanku 2. februarja, tista, za katera se zdi, da imajo največ podpore, sta »BIP 8 (false, 1y)« in »BIP 8 (true, 1y)«. Vendar glasovanje ni bilo opravljeno, razpravljalo se je le o vsaki alternativni metodi aktivacije.

Kaj pa to pomeni? BIP 8 je mehanizem, ki omogoča nadgradnjo soglasja v Bitcoin omrežju z mehkimi vilicami, natančneje mehko vilico, ki jo aktivira rudar, ali MASF z možnostjo dodajanja uporabniško aktivirane mehke vilice (UASF) po določenem času. V zadnji posodobitvi konsenza (SegWit) je bil poleg MASF BIP 9 uporabljen uporabniško aktiviran soft fork (UASF). Vendar se zdi, da Taproot za rudarje ni sporen, zato se zdi manj verjetno, da bi bil tokrat potreben UASF.

Če se vrnemo k predlogu, sta parametra »lockinontimeout« in »timeout«, pri čemer lockinontimeout v bistvu pomeni, ali bi bila aktivacija prisiljena ali ne, in »timeout« pomeni okno, v katerem bi se aktiviral. Drug pomemben parameter, o katerem ni bilo dovolj razprave, je bila “startheight”.

Če je lockinontimeout napačen in posodobitev nima dovolj podpore, se prekliče in določi se nov predlog. (Bitcoin razvijalec Luka Dashjr opisal lockintimeout = false kot rudarjem dodatno moč, ki je nikoli niso nameravali imeti),

“Če začnete z (timeout = T, lockinontimeout = false), so tri možnosti, ko zadete T: aktivacija ne uspe, poskusite znova z novim aktiviranjem (timeout = T + 1 leto, lockinontimeout = true, npr.); pred tem vsem poveste, naj svojo programsko opremo preklopijo na (timeout = T, lockinontimeout = true), takrat ste MASF nadgradili na UASF, «so na IRC zapisali Towns. “Obstaja tudi možnost, da se vsi nadgradijo na programsko opremo, ki določa (timeout = T-6 mesecev, lockinontimeout = true). V tem primeru bodo ljudje, ki so nadgradili, začeli zavračati bloke v T-6mesecih in če se aktivira najdaljša veriga do takrat bo soft-fork aktiviran tako v stari kot novi programski opremi. “

Vendar se Dashjr ne strinja glede lockinontimeout = false:

“… ali smo zadovoljni z lockingtimeout = false na splošno?”, Bitcoin Developer Maxim Orlovsky vprašal.

“Da,” razvijalec strele Rusty Russell se je odzval. “Imamo kladivo UASF, če ga potrebujemo, vendar je bolje, da ga ne uporabljamo.”

“Lot = true ne pomeni, da ga uporabljamo, lot = false pomeni, da je namen rudarjem, da odločajo,” je zapisal Dashjr. “BIP8 (false) je regresija.”

Toda Russell je nasprotoval temu, kar vidi kot vsiljevanje razvijalcem: “Menim, da je pomembno, da se izognemo pojavljanju pooblastil razvijalca nad protokolom, prav tako pa mi je všeč, da se pred aktiviranjem pojavijo težave,” je zapisal. “Zato raje začnem z lockin = false in ga ponovno obiščem po 6 mesecih, če se ne aktivira.”

“Ni pooblastila za razvijalce … bolj smiselno je narediti 1y, false kot 1y, true za isto obdobje 1y [v primeru dveh nadaljnjih uvedb],” je odgovoril Dashjr.

Toda Russell ni bil videti zamajan:

“Ne strinjam se,” je zapisal. »Rudarji dobijo koordinacijsko moč, ker jih lahko za razliko od drugih skupin zanesljivo izmerimo na decentraliziran način. To pomeni sposobnost * ne * koordiniranja, da. Vendar imamo načrt tudi za to, saj BIP-8 povzroča, da bo UASF veliko manj verjetno povzročil razkol. To je tako dobro, kot zmoremo. “

“Lot = true IS načrtuje za to,” je v odgovor zapisal Dashjr, “rudarjem ne preprečuje, da bi delali MASF.”

Drugi v klepetu so predlagali, da lockinontimeout = false neobvezno, vendar privzeto:

“Lot = false je varnejši kot lot = true, zato je najprej vredno narediti lot = false, saj vemo, da je hashpower ~ 90% že pro-taproot,” je zapisal razvijalec CoinSwap Chris Belcher.

Če lahko uporabniki v določenem trenutku enostavno spremenijo lot = false v lot = true, ne da bi potrebovali novo izdajo jedra, bi podprl, če lot = false ostane privzeto, ” Keagan McClelland napisal.

Kladivo UASF

Razčistiti:

BIP8 z LockinOnTimeout je nadomestni MASF z UASF.

Dokler se rudarji aktivirajo, UASF ne pride.

Vnaprej načrtovani UASF tudi zagotavlja, da se MASF zgodi:

Izogiba se rudarjem in jim daje pravico do veta ter ustvarja ustrezno spodbudo za zagotovitev MASF.#Bitcoin #Tootot

– Luke Dashjr (@LukeDashjr) 2. februarja 2023

Dashjr želi uporabiti »BIP 8 (true)«, rezervni del UASF, kot napravo za teorijo iger, da se prepriča, ali bodo rudarji aktivirali Taproot, in jim ne da možnosti »veta«, tako kot to, kar se je zgodilo s SegWit.

“Glede na zahteve po signalizaciji, kakšno vrsto napadov na zaustavitev ali žalovanje bi lahko dosegel rudarski bazen, če ceni zaustavitev koreninskega korena?” je uporabnik z imenom “gloved” 2. februarja vprašal v IRC. “Npr. zloraba mejnega hashrateja, potrebnega za aktivacijo.”

Spomnimo, signalizacija gre za zmanjšanje tveganja vilic in nima nič skupnega s politično podporo ali glasovanjem.

“MASF je najprimernejša pot, pri čemer UASF ni potreben, če rudarji ne signalizirajo,” je odgovoril Dashjr. “Skupnost bi lahko UASF premaknila prej, če bo jasno, da jo nekdo zavlačuje.”

PR 1020 in 1021

Da bi BIP 8 deloval, bi ga bilo treba spremeniti. To pomeni spremembe v signalnem mehanizmu in to so ciljne kode, ki želijo to storiti:

  • 1020: Pojavila bi nepotrebno signalizacijo rudarja po fazi LOCKED_IN, saj bo v tej fazi soft fork že zagotovo aktiviran.
  • 1021: Dovoli, da nekateri bloki MUST_SIGNAL ne signalizirajo.

1020 je na sestanku 2. februarja prejel potrditev, 1021 pa se je sprva zdelo nepotrebno.

“Ok, torej 1021 je pomemben samo, kadar rudarji NISO aktivirali vilic,” je zapisal Dashjr. “1021 je SAMO v scenariju UASF … omogoča, da do 5% blokov manjka zahtevanega signala … IMO je to nesmiselno in samo povečuje zapletenost.”

Toda kasneje v izmenjavi, raziskovalec Blockstream Nick Jonas poudaril, da bi lahko bilo potrebno 1021.

“Ponovno # 1021, če se odločite zagnati bip8 (true), pri večini vozlišč, ki še vedno izvajajo bip8 (false), pa res ne bi zagnali kode, ki ne izvaja # 1021, ker bi se v nasprotnem primeru znašli v napačni verigi,” je zapisal Jonas.

“Nick ima močno točko,” je odgovoril Dashjr, kasneje v IRC. “Brez 1021 lahko zaženete LOT = true in ne sledite verigi, ki jo aktivira Taproot!”

V drugi izmenjavi, pomembni za te PR-je, je Towns opozoril, kako bi ti PR-ji lahko bili pomembni za potencial slabih akterjev.

„(1) tukaj je argument, da med sistemom UASF zahteva signalizacija ustvarja tveganje za razcepe verig – če blok ne signalizira, bo rudar, ki ni UASF, gradil na tem, vendar vsi vedo, da bosta oba bloka zavrnjena, zato to je priložnost, da napadalci podvojijo. sprejetje čim večjega števila blokov brez signalizacije (tj. do 5%) omejuje ta napad, «je zapisal Towns. “(2) druga stvar je, če začnete z daljšim časovnim zamikom (timeout = 2 leti, lockinontimeout = true / false) in nato želite pospešiti aktivacijo, ker so vsi nadgrajeni, trgi pravijo, da si to želijo, in je 6% rudarjev, ki poskušajo prepričati vse, da je bitcoin zanič, in bi se morali premakniti na drugo verigo, potem lahko nastavimo (timeout = 1 leto, lockinontimeout = true). “

“Toda ti rudarji bodo ustvarili težavo, ko bomo vseeno dosegli 5%, kajne?” Je vprašal Dashjr.

“” Ustvari težavo, ko dosežemo 5% “- da,” je odgovoril Towns, “če obstaja >prag rudarjev lahko ustvarijo težavo; če je le 2% ali tako, se s tem izognemo težavam, če krajši časovni zamik naredimo z lockinontimeout = true, če pa dosežemo časovno omejitev in dobimo 98% blokov, vendar ne 100%, to zagotavlja, da vsi ostanejo v soglasju , in čeprav gre za 98-odstotno verigo, ki se nadaljuje z najdaljšo težo, ljudem, ki so uporabili hitri sistem UASF v stilu bip148, ni treba znižati svoje programske opreme. “

“Ali je glede na 1021 scenarij UASF treba le združiti, dokler ni verjetno, da bo potreben?” Je vprašal Folkson.

“Da, smiselno je samo, če to kodo zaženejo” stara “vozlišča,” je odgovoril uporabnik ghost43.

Na koncu sta bila oba PR-ja združena.

V povzetku

Zdi se, da je BIP 8 (ki je različica BIP 9) trenutno najbolj resen aktivacijski mehanizem. Obstajajo pa polemike glede tega, ali naj bo aktivacija trdna, četudi predstavlja tveganje, da bo UASF rudarjem zavrnil pravico do veta; to storite varno z verjetnostjo zamude pri aktiviranju v primeru nezadostne signalizacije; ali nastavite false kot privzeto in po potrebi aktivirajte true. Privrženci prve možnosti menijo, da rudarji ne bi smeli zmotiti procesa skupnosti, medtem ko privrženci druge možnosti menijo, da odmik UASF ni potreben in kaže neupravičeno vsiljevanje, saj so rudarji pokazali, da sprejemajo Taproot.

PR 1021 je varnejša splošna napaka BIP 8, saj preprečuje razcep verige v nekaterih primerih, ko več kot 95 odstotkov, vendar manj kot 100 odstotkov vse razpršene moči podpira mehko vilico..

Naslednji sestanek za aktiviranje Taproot (torek, 16. februarja ob 19:00 UTC), naj bi bil osredotočen na pregled kode, ki mu bo sledil še en sestanek za razpravo o parametrih. Ko se razprava nadaljuje, se Bitcoin približuje svoji najpomembnejši nadgradnji protokola v zadnjih letih.