SegWit ir liudytojo duomenys: kaip Bitcoin pagerino transakcijų efektyvumą ir bloko svorį

Bitcoin istorija pažymėta kritiniais atnaujinimais, kurie apibrėžė jos kelią kaip pasaulinės skaitmeninės valiutos. Tarp šių techninių etapų nedaugelis buvo tokie transformuojantys ar karštai diskutuojami kaip Segreguoto liudytojo įdiegimas. Dažnai vadinamas savo sutrumpinta forma SegWit, šis protokolo atnaujinimas buvo aktyvuotas 2017 m. rugpjūtį po intensyvios bendruomenės diskusijos ir sutarimo kūrimo laikotarpio. Tai buvo lemiamas momentas tinklui, sprendžiantis ilgalaikes mastelio ir saugumo problemas.

Prieš SegWit Bitcoin tinklas susidūrė su augančiu spaudimu dėl didėjančios vartotojų bazės. Adoptacijai didėjant, originalaus bloko dydžio apribojimai tapo spūsties priežastimi, sukeldami tinklo užsikimšimą ir augančias transakcijų išlaidas. Kūrėjai ir suinteresuotosios šalys ieškojo sprendimo, kuris palengvintų šį spaudimą nepažeisdamas blokų grandinės decentralizuotos prigimties. Segreguotas liudytojas iškilo kaip gudrus inžinerinis sprendimas, optimizuojantis duomenų saugojimo būdą, o ne tiesiog didinantis bloko dydžio ribą.

Šis atnaujinimas padarė daugiau nei tik pagerino talpą. Jis fundamentaliai pakeitė transakcijų apdorojimo mechaniką, spręsdamas techninį pažeidžiamumą, žinomą kaip transakcijų keičiamumas. Ši problema išspręsta, SegWit sukūrė būtiną pagrindą antros pakopos sprendimams, tokiems kaip Lightning Network, klestėti. Tai nutiesė kelią momentaliems, mažos išlaidos mokėjimams, kurie anksčiau buvo sunku įdiegti saugiai.

SegWit supratimas reikalauja pažvelgti už techninių specifikacijų. Tai apima Bitcoin valdymo modelio, bloko erdvės ekonomikos ir bendruomenės dinamikos, skatinančios protokolo evoliuciją, tyrimą. Šis atnaujinimas parodė, kad Bitcoin gali prisitaikyti ir masteliuoti per minkštus šakojimus, išlaikydamas atgalinę suderinamumą, tuo pačiu įvesdamas radikalius efektyvumo ir naudingumo patobulinimus.

Mastelio iššūkis

Bitcoin iš pradžių buvo sukurtas su bloko dydžio, kuris gali būti pridedamas prie blokų grandinės, apribojimu. Šis apribojimas, nustatytas 1 megabaito (MB), tarnavo kaip apsaugos priemonė nuo šlamšto atakų tinklo pradiniuose etapuose. Tačiau Bitcoin išaugus iš neaiškaus eksperimento į pasaulinį pripažintą turtą, ši saugos funkcija pradėjo veikti kaip augimo apribojimas.

Bloko dydžio spūstis

Kiekviena Bitcoin transakcija susideda iš duomenų, kuriuos turi apdoroti ir saugoti kalnakasiai. Šie duomenys apima įvestis, išvestis ir skaitmenines parašas, įrodančias lėšų, kurie leidžiami, nuosavybę. Prieš SegWit erą visa ši informacija turėjo konkuruoti dėl vietos griežtame 1 MB bloko ribojime.

Kai tinklo populiarumas šoktelėjo, paklausa blokų erdvei dažnai viršijo pasiūlą. Vartotojai pateko į kainų karą, pridedami didesnius mokesčius prie savo transakcijų, kad paskatintų kalnakasius įtraukti juos į kitą bloką. Ši dinamika sukėlė lėtesnį patvirtinimo laiką vartotojams, kurie mokėjo standartinius mokesčius.

Piko laikotarpiu tinklas tapo užsikimšęs, padarydamas nepraktiškus mažus mokėjimus ar mikotransakcijas. Bendruomenė pripažino, kad Bitcoin veikti efektyviai kaip vertės saugykla ir mainų priemonė, tinklo pralaidumą reikia padidinti. Diskusijos sukosi aplink tai, kaip pasiekti šį mastelį neaukojant saugumo ar decentralizacijos.

Kieto šakojimo dilema

Vienas siūlomas sprendimas mastelio problemai buvo kietas šakojimas. Kietas šakojimas yra radikalus protokolo pakeitimas, padarantis anksčiau neteisingus blokus/transakcijas teisingais arba atvirkščiai. Mastelio kontekste tai būtų reiškę tiesiog perrašyti kodą, leidžiant didesnius blokus, pvz., 2 MB ar 8 MB.

Tačiau kieti šakojimai kelia didelę riziką. Jie reikalauja, kad visi tinklo mazgai atnaujintų savo programinę įrangą vienu metu. Jei bendruomenės dalis atsisako atnaujinti ar nesutinka su pakeitimu, blokų grandinė gali suskilti į dvi atskiras grandines. Taip nutiko su Bitcoin Cash sukūrimu, kuris pasirinko padidinti bloko dydį per kietą šakojimą.

Bitcoin Core kūrėjai prioritetizavo saugesnį požiūrį, vadinamą minkštu šakojimu. Minkštas šakojimas yra atgaliai suderinamas atnaujinimas, reiškiantis, kad mazgai, veikiantys senesnės programinės įrangos versijas, vis tiek gali dalyvauti tinkle. SegWit buvo sukurtas kaip minkštas šakojimas, užtikrinantis, kad tinklas liktų suvienytas, tuo pačiu teikiant reikiamus talpos patobulinimus.

Sutarties ir valdymo

Kelias į SegWit aktyvaciją išryškino unikalią Bitcoin valdymo prigimtį. Skirtingai nuo centralizuotų sistemų, kur lyderis diktuoja pakeitimus, Bitcoin remiasi sutarimu tarp įvairios dalyvių grupės. Tai apima kalnakasius, kūrėjus, mazgų operatorius ir galutinius vartotojus.

SegWit pasiūlymas, žinomas kaip Bitcoin Improvement Proposal (BIP) 141, reikalavo labai aukšto paramos slenksčio iš kalnakasių aktyvavimui. Konkrečiai, 95 % kasybos maišos galios turėjo signalizuoti pasirengimą per dviejų savaičių laikotarpį. Šis aukštas slenkstis užtikrina, kad atnaujinimai turėtų sutraukiančią paramą prieš prievartinį įgyvendinimą, minimizuodamas tinklo nestabilumo riziką.

How SegWit Works Under the Hood

The primary innovation of Segregated Witness is hinted at in its name. "Segregated" means to separate, and "Witness" refers to the digital signatures that verify a transaction. In legacy Bitcoin transactions, the digital signature data was intertwined with the transaction data, occupying a significant portion of the valuable 1MB block space.

Separating the Witness Data

SegWit restructured the transaction format by moving the witness data (signatures) out of the main block structure. While this data is still recorded and validated, it is stored in a separate structure that runs parallel to the base transaction block. This separation was the key to unlocking more capacity without technically increasing the 1MB limit for old nodes.

To visualize this, imagine a train representing a Bitcoin block. In the legacy system, passengers (transaction details) and their luggage (signatures) were all crammed into the same train cars. The train had a strict limit on how much volume it could carry.

SegWit effectively added a specialized cargo car to the back of the train specifically for the luggage. By moving the heavy luggage out of the passenger cars, the train could suddenly carry significantly more passengers within the same main compartments. The "luggage" still travels with the train, but it no longer takes up the premium space needed for the passengers themselves.

Block Weight vs. Block Size

To implement this change, SegWit introduced a new concept called "block weight." The old measurement of block size in simple bytes was replaced by a system that assigns different "weights" to different parts of a transaction. This allowed the network to differentiate between critical transaction data and witness data.

Under this new system, the base transaction data is counted at its full size, while the witness data is discounted. Specifically, witness data weighs significantly less than transaction data in the calculation of the block limit. This change effectively increased the block size limit from 1MB to a theoretical 4MB of "weight units."

This shift incentivized users and wallet providers to adopt SegWit addresses. Transactions that utilized the new format were cheaper to send because they consumed less "weight" in a block compared to legacy transactions. This economic incentive helped drive the adoption of the upgrade across the ecosystem.

Virtual Bytes (vBytes)

With the introduction of block weight, the concept of transaction fees also evolved. Fees began to be calculated in "virtual bytes" (vBytes) rather than raw bytes. A vByte is a unit of measurement derived from the weight of the transaction.

Because witness data is discounted, a SegWit transaction has a smaller vByte size than a legacy transaction of the same raw size. This means that for the same fee rate (satoshis per byte), a SegWit transaction costs less in total fees.

This efficiency gain was immediate for users who switched to SegWit-compatible wallets. It allowed the network to process more transactions per second, effectively increasing the throughput without the dangers associated with a hard fork. The optimization proved that intelligent engineering could squeeze more performance out of the existing infrastructure.

Transakcijų keičiamumo sprendimas

Nors mastelis buvo pagrindinė SegWit savybė, atnaujinimas išsprendė kitą kritinį techninį trūkumą, vadinamą transakcijų keičiamumu. Ši problema kankino Bitcoin nuo jo sukūrimo ir veikė kaip pagrindinė kliūtis kuriant pažangius antros pakopos protokolus.

Keičiamumas reiškia trečiosios šalies galimybę pakeisti unikalią transakcijos identifikatorių (TXID) prieš jai patvirtinant blokų grandinėje. Svarbu, kad šis pakeitimas galėtų būti padarytas neinvalidinant pačios transakcijos ar keičiant fundamentalius detales, tokias kaip siuntėjas, gavėjas ar suma.

Senajoje sistemoje skaitmeninis parašas buvo įtrauktas į transakcijos hash (TXID) skaičiavimą. Tačiau kriptografiniai parašai gali būti matematiškai vaizduojami šiek tiek skirtingais būdais, likdami galiojančiais. Atakuotojas ar perdavimo mazgas galėjo šiek tiek modifikuoti parašo duomenis, kas sukeltų visiškai kitą TXID.

Jei TXID pasikeistų, siuntėjas galėtų manyti, kad transakcija nepavyko, o gavėjas (ar atakuotojas) patvirtintų modifikuotą versiją. Tai sukėlė painiavą ir padarė pavojinga grandinti nepatvirtintas transakcijas. Jei pirmos grandinės transakcijos ID pasikeistų, bet kokia vėlesnė transakcija, remdamasi tuo ID, taptų negaliojančia.

SegWit tai sutvarkė pašalindamas parašo duomenis iš transakcijos dalies, naudojamos TXID generavimui. Kadangi „liudytojas“ buvo segreguotas, bet kokie parašo duomenų pakeitimai nebebūtų paveikę transakcijos ID. Tai padarė transakcijos ID nekeičiamu nuo sukūrimo momento.

Lightning Network įgalinimas

Transakcijų keičiamumo taisymas buvo katalizatorius Lightning Network. Lightning Network yra antros pakopos mastelio sprendimas, labai priklausantis nuo galimybės saugiai kurti nepatvirtintų transakcijų grandines.

Pagrindas antrai pakopai

Kad mokėjimo kanalai veiktų, dvi šalys efektyviai atidaro bendrą sąskaitą blokų grandinėje ir tada keičiasi pasirašytomis transakcijomis ne blokų grandinėje. Šios ne blokų grandinės transakcijos atnaujina kanalo balansą nepaliesdamos pagrindinės blokų grandinės.

Tačiau šios ne blokų grandinės transakcijos priklauso nuo pradinės „finansavimo transakcijos“, kuri saugiai pritvirtinta. Jei transakcijų keičiamumas vis dar būtų įmanomas, blogas veikėjas galėtų potencialiai pakeisti finansavimo transakcijos ID. Tai invaliduotų visą vėlesnę ne blokų grandinės logiką, kuria šalys susitarė.

Užtikrindamas transakcijos ID, SegWit suteikė tvirtą pagrindą šiems išmaniesiems kontraktams. Tai leido Lightning mazgams pasitikėti, kad transakcijos, kurias jie pasirašinėja ne blokų grandinėje, liks galiojančios galiausiai atsiskaitant pagrindiniame Bitcoin tinkle.

Momentali atsiskaitymai

Pašalinus keičiamumo riziką, Lightning Network galėjo būti saugiai diegiamas. Tai įgalino beveik momentalius mokėjimų atsiskaitymus tarp vartotojų bet kurioje pasaulio vietoje. Nors SegWit suteikė kuklų grandinės talpos padidėjimą, Lightning įgalinimas pasiūlė potencialą beveik neribotam ne blokų grandinės masteliui.

Vartotojai dabar galėjo transaktiuoti milijonus kartų neapsunkindami pagrindinės blokų grandinės, atsiskaitant tik galutinį rezultatą. Ši grandinės efektyvumo (per SegWit) ir ne blokų grandinės mastelio (per Lightning) kombinacija reprezentuoja Bitcoin pagrindinę strategiją globaliam transakcijų kiekiui valdyti.

Aktyvacijos saga: BIP 141 ir UASF

SegWit diegimas nebuvo tik techninis atnaujinimas; tai buvo istorinis įvykis decentralizuotame valdyme. Procesas atskleidė sudėtingą galios dinamiką tarp kalnakasių, kūrėjų ir vartotojų Bitcoin ekosistemoje.

Pasiūlymas (BIP 141)

SegWit atnaujinimas buvo formaliai pasiūlytas kaip Bitcoin Improvement Proposal 141. Sklandžiai aktyvuoti kūrėjai nustatė slenkstį, reikalaujantį 95 % blokų signalizuoti paramą atnaujinimui per dviejų savaičių sunkumo epochą. Tai buvo skirta užtikrinti, kad tinklas nesusiskaidytų.

Tačiau pasiekti šį sutarimą pasirodė sunku. Įvairūs politiniai ir ekonominiai interesai tarp pagrindinių kasybos baseinų sukėlė aklavietę. Kai kurie kalnakasiai teikė pirmenybę kietam šakojimui tiesioginiam bloko dydžio didinimui, o kiti dvejojo atnaujinti savo infrastruktūrą.

Mėnesius aktyvacijos signalizavimas svyravo gerokai žemiau reikiamo slenksčio. Atrodė, kad atnaujinimas gali užstrigti neribotam laikui, išryškindamas potencialų trūkumą priklausomybėje nuo kalnakasių signalizavimo protokolo atnaujinimams.

Vartotojo aktyvuotas minkštas šakojimas (BIP 148)

Frustracija dėl pažangos stokos, bendruomenėje iškilo žolinių judėjimas. Ši iniciatyva buvo žinoma kaip User Activated Soft Fork (UASF) arba BIP 148. Koncepcija buvo revoliucinė: užuot laukus kalnakasių balsavimo, ekonominė mazgų (vartotojų, biržų ir verslų) dauguma pati įgyvendintų atnaujinimą.

UASF dalyviai naudojo Bitcoin programinės įrangos versiją, kuri atmetė bet kokius blokus, ne signalizuojančius paramos SegWit po tam tikros datos. Tai efektyviai nubrėžė liniją smėlyje. Jei kalnakasiai toliau ignoruotų SegWit, jų blokai būtų atmesti reikšmingos tinklo dalies, sukeldami jiems pajamų nuostolius.

Vartotojo aktyvuoto minkšto šakojimo grėsmė pakeitė galios balansą. Tai parodė, kad nors kalnakasiai apdoroja transakcijas, vartotojai apibrėžia protokolo taisykles. Susidūrę su UASF ekonominiu spaudimu, kalnakasiai capituliavo, ir SegWit buvo užfiksuotas bei aktyvuotas 2017 m. rugpjūtį.

Adresų tipai ir suderinamumas

Po SegWit aktyvacijos Bitcoin ekosistema pamatė skirtingų adresų formatų atsiradimą. Šių formatų supratimas yra būtinas vartotojams, norintiems pasinaudoti mažesniais mokesčiais ir efektyvumo privalumais, kuriuos siūlo SegWit.

Senieji adresai

Originalus Bitcoin adreso formatas žinomas kaip Legacy. Šie adresai paprastai prasideda skaičiumi 1. Iš Legacy adresų siunčiamos transakcijos yra didesnės dydžio, nes jos nenaudoja liudytojo duomenų atskyrimo. Dėl to jos yra brangiausios naudoti transakcijų mokesčių požiūriu.

Įterptas SegWit (P2SH)

Užtikrinti sklandų priėmimą, kūrėjai įvedė suderinamumo sluoksnį, vadinamą Pay to Script Hash (P2SH). Šie adresai prasideda skaičiumi 3. Jie leido vartotojams siųsti SegWit transakcijas net jei siuntėjo piniginė visiškai nepalaikė naujo grynojo formato.

Įterptas SegWit suteikė vidurinį pagrindą. Jis siūlė reikšmingą mokesčių taupymą palyginti su Legacy adresais, nors ne tiek kiek visiškai grynas įdiegimas. Ilgą laiką tai buvo standartas daugeliui biržų ir piniginių teikėjų, kol jie atnaujino savo sistemas.

Grynas SegWit (Bech32)

Efektyviausias formatas yra Grynas SegWit, dar žinomas kaip Bech32. Šie adresai prasideda bc1. Gryni SegWit adresai yra išskirtiniai, nes jie nėra jautrūs raidžių dydžiui, mažinant rašybos klaidų riziką.

Daug svarbiau, grynos SegWit transakcijos yra mažesnės virtualiais baitais nei jų įterpti atitikmenys. Tai rezultuoja mažiausius galimus transakcijų mokesčius vartotojams. Ekosistemai subrendus, Grynas SegWit tapo numatytuoju standartu daugumai modernių piniginių ir paslaugų.

Adreso tipasPriešdėlisMokesčių efektyvumasSuderinamumas
Legacy1...ŽemasVisuotinė
Įterptas SegWit3...VidutinisAukštas
Grynas SegWitbc1...AukštasŠiuolaikinės piniginės

Už SegWit ribų: Taproot ir Ordinals

Sėkmingas SegWit įdiegimas įrodė, kad Bitcoin gali patirti sudėtingus atnaujinimus nepažeisdamas pagrindinės vertės proposicijos. Šis sėkmės kelias nutiesė kelią vėlesnėms inovacijoms, kurios dar labiau išplėtė tinklo galimybes.

Taproot ir Schnorr parašai

2021 m. lapkritį Bitcoin aktyvavo Taproot atnaujinimą. Taproot buvo sukurtas tiesiogiai remiantis SegWit pagrindu. Jis įvedė Schnorr parašus, leidžiančius dar didesnį efektyvumą ir privatumą.

Kaip ir SegWit, Taproot pakeitė duomenų saugojimo blokų grandinėje būdą. Jis įgalino parašų agregavimą, kur keli parašai sudėtingoje transakcijoje galėjo būti sujungti į vieną parašą. Tai padarė sudėtingus išmaniuosius kontraktus neatskiriamus nuo įprastų transakcijų, gerinant privatumą ir taupant bloko erdvę.

Be SegWit įvestų struktūrinių pakeitimų, konkrečiai scenarijaus versijavimo sistemos, atnaujinimai kaip Taproot būtų buvę ženkliai sunkesni diegti. SegWit nustatė aiškų kelią ateities išplečiamumui.

Ordinals kilimas

Pastaruoju metu Bitcoin Ordinals įvedimas panaudojo SegWit infrastruktūrą netikėtais būdais. Ordinals leidžia vartotojams įrašyti savavališkus duomenis – tokius kaip vaizdus, tekstą ar kodą – tiesiogiai ant individualių satoshi.

Tai įmanoma, nes SegWit nuolaidino „svorį“ liudytojo duomenims. Įrašytojai suprato, kad gali saugoti didelius duomenų kiekius liudytojo lauke transakcijoje už dalį kainos, lyginant su saugojimu pagrindinėje bloko srityje. Nors kontroversiška kai kuriems, laikantiems tai šlamštu, Ordinals parodė liudytojo duomenų erdvės lankstumą.

Šis netikėtas naudojimo atvejis išryškina SegWit dizaino tvirtumą. Sukurdamas atskirą, nuolaidintą duomenų juostą, atnaujinimas netyčia sukūrė drobę skaitmeniniams artefaktams, dar labiau diversifikuodamas Bitcoin blokų grandinės naudingumą.

Išvada

Segreguotas liudytojas stovi kaip liudijimas Bitcoin tinklo atsparumo ir prisitaikymo. Susidūręs su kritine spūstimi, grėsusia slopinti augimą, bendruomenė susivienijo už elegantišką, atgaliai suderinamą ir toliaregišką sprendimą. Per naują transakcijų duomenų struktūros įsivaizdavimą, SegWit suteikė momentalią pagalbą nuo aukštų mokesčių, išlaikydamas decentralizaciją, kuri suteikia Bitcoin vertę.

SegWit palikimas siekia toliau nei paprasti bloko svorio skaičiavimai. Jis išsprendė nuolatinį transakcijų keičiamumo pažeidžiamumą, atrakindamas potencialą antros pakopos mastelio sprendimams kaip Lightning Network. Be to, jis nustatė precedentą vartotojų valdomam valdymui, įrodydamas, kad ekonominė dauguma gali efektyviai patikrinti kasybos subjektų galią.

Bitcoin toliau evoliucionuodamas, SegWit struktūros lieka centrinės jo veikimui. Nuo Gryno SegWit adresų efektyvumo iki Taproot ir Ordinals pažangių galimybių, atnaujinimas perdefiniavo, kas įmanoma blokų grandinėje. Jis užtikrino, kad Bitcoin galėtų masteliuoti, atitinkantis globalią paklausą nekompromituodamas principų, kuriais buvo sukurtas.

SegWit revoliucionizavo Bitcoin atskirdamas parašus nuo transakcijos duomenų, efektyviai padidindamas bloko talpą ir taisydamas kritinius klaidas, kad įgalintų ateities mastelį.