Ce este Segregated Witness (SegWit)?

De Kraken Learn team
11 min.
26 noiembrie 2024

Ghidul începătorului pentru Bitcoin SegWit 💭

Segregated Witness (SegWit) a fost o actualizare a codului sursă Bitcoin, realizată pe 1 august 2017.

În ciuda faptului că a adus ceea ce mulți au considerat îmbunătățiri la blockchain-ul Bitcoin, SegWit s-a confruntat cu o opoziție puternică care a divizat comunitatea. 

În centrul problemei a fost un interes concurent între profitabilitatea minerilor și dezvoltatorii de rețea care căutau să facă Bitcoin mai ieftin și mai rapid de utilizat.

Tensiunea a provocat o ruptură în cadrul comunității, culminând cu primul soft fork activat de utilizator al rețelei și o divizare ostilă. Diviziunea a dat naștere unei serii de noi proiecte Bitcoin-forked, inclusiv Bitcoin Cash.

Până în prezent, SegWit rămâne unul dintre cele mai controversate evenimente din istoria Bitcoin. Dar s-a dovedit a fi și una dintre cele mai importante actualizări ale sale pentru viabilitatea pe termen lung a protocolului. 

În fiecare an, mulți din comunitatea Bitcoin celebrează 1 august ca “ziua independenței Bitcoin.” Acest eveniment marchează ocazia când voința oamenilor a triumfat împotriva intereselor centralizate ale companiilor stabilite de minerit Bitcoin.

Să explorăm fiecare dintre aceste evenimente așa cum s-au întâmplat și să deslușim istoria din spatele SegWit.

BTC icon
56.413.00
-1,23 %
24 de ore
btc

Bitcoin înainte de SegWit ⏮️

Înainte de activarea SegWit, capacitatea blocului Bitcoin rămăsese neschimbată de mulți ani. Capacitatea blocului se referă la numărul maxim de tranzacții care pot fi înregistrate într-un anumit bloc.

Când Bitcoin a fost lansat în 2009, creatorul(creatorii) său Satoshi Nakamoto nu a(au) stabilit niciun parametru pentru cât de mari ar putea fi blocurile Bitcoin.

Cu toate acestea, în 2010, Nakamoto a adăugat în secret o limită de dimensiune a blocului de 1 megabyte (MB) fără aprobarea altor contribuitori Bitcoin.

Mulți au crezut că Nakamoto a inclus limita pentru a preveni viitoare atacuri de tip distributed denial of service (DDoS) care ar putea afecta rețeaua.

Această limită fixă a capacității blocului a avut efectul nedorit de a restricționa potențialul Bitcoin de a se scala în mai multe moduri.

Debit scăzut și timpi lenți de tranzacționare

Doar un număr limitat de tranzacții pot încăpea în blocul de 1 MB, comparativ mic, pe care Bitcoin l-a adoptat acum. Această capacitate redusă a însemnat că rețeaua Bitcoin putea procesa doar aproximativ 2–3 tranzacții Bitcoin (BTC) pe secundă — departe de rețelele tradiționale de plăți digitale care pot procesa zeci de mii de tranzacții pe secundă.

În plus, pentru ca un bloc de tranzacții să fie considerat valid ca parte a procesului de mining Bitcoin, trebuie să primească șase confirmări. Cu alte cuvinte, șase blocuri noi trebuie adăugate la blockchain după blocul în cauză înainte ca acesta să fie finalizat. Cu un timp mediu de bloc de zece minute, aceasta înseamnă că confirmările blocului Bitcoin durează aproximativ o oră.

La momentul respectiv, când doar o mână de criptografi “Cypherpunk” cunoșteau Bitcoin, nu era neapărat o problemă uriașă. Dar, dacă rețeaua Bitcoin urma să devină un “sistem electronic de numerar peer-to-peer” global, așa cum a prevăzut Satoshi în White Paper-ul Bitcoin, lucrurile trebuiau să se schimbe.

Comisioane mari

Debitul redus al Bitcoin, constrâns de capacitatea sa mică de bloc, însemna că taxele erau, de asemenea, comparativ mult mai mari decât sunt astăzi.

Iată o modalitate ușoară de a înțelege această problemă. Imaginează-ți că stai afară într-o mulțime de oameni după ce ai văzut un spectacol de teatru. Toată lumea din teatru vrea să ia un taxi acasă în același timp. Dacă sunt multe taxiuri disponibile, ar trebui să fie ușor pentru toată lumea să ajungă acasă. Dar, dacă sunt doar câteva taxiuri, oamenii ar putea încerca să plătească un preț mai mare șoferilor de taxi pentru a-i motiva să-i ducă acasă primii. În funcție de cerere, prețurile taxiurilor ar putea crește semnificativ mai mult decât tariful normal.

Taxele Bitcoin funcționează pe aceleași principii de cerere și ofertă. Dacă mulți oameni doresc ca tranzacțiile lor să fie procesate în același timp, unii ar putea opta să plătească mai mult în taxe pentru ca tranzacția lor să fie procesată mai repede de către mineri. În perioadele de utilizare intensă a rețelei Bitcoin, congestia poate duce la concurență între utilizatori, ceea ce poate provoca o creștere bruscă a taxelor de tranzacție.

Maleabilitatea tranzacțiilor

O altă nuanță inerentă a modului în care funcționau blocurile Bitcoin era cunoscută sub numele de maleabilitatea tranzacțiilor. Înainte de SegWit, oamenii puteau schimba ID-ul unei tranzacții înainte ca aceasta să primească suficiente confirmări pe blockchain.

Preluarea informațiilor legate de o tranzacție specifică și rularea acestora printr-o funcție hash creează un ID de tranzacție. Poți afla mai multe despre funcțiile hash în articolul nostru Cum utilizează criptomonedele criptografia?

Dar, pentru simplitate, poți considera aceste ID-uri de tranzacție ca amprente digitale care sunt utilizate pentru a identifica și a face referire la tranzacții pe blockchain.

Schimbarea ID-ului tranzacției creează un hash complet nou, care ar putea uneori să confuzeze software-ul client blockchain. Toate nodurile rulează software client pentru a interacționa cu blockchain-ul și pentru a îndeplini roluri importante, cum ar fi verificarea datelor.

Această eroare de maleabilitate în codul Bitcoin a deschis ușa atacurilor malițioase. Unul dintre cele mai infame exemple de atac de maleabilitate a tranzacțiilor a fost hack-ul bursei Mt. Gox din 2014 — renumit pentru a fi cel mai mare hack de bitcoin din istorie.

Experții au raportat că un hacker, sau un grup de hackeri, a golit portofelul de bitcoin al bursei Mt. Gox. Aceasta a fost realizată parțial prin modificarea ID-ului de tranzacție al retragerilor lor. 

Atacul de maleabilitate a tranzacțiilor a făcut să pară că retragerile nu erau confirmate pe blockchain, când, de fapt, erau.

Această vulnerabilitate, împreună cu alți vectori de atac, a permis hackerilor să sifoneze peste 840.000 BTC din bursă.

Ce îmbunătățiri a adus SegWit? ⚙️

Contribuitorul Bitcoin Pieter Wuille a prezentat pentru prima dată upgrade-ul SegWit la un eveniment Bitcoin Hong Kong în 2015.

Soluția sa a fost inovatoare pe trei fronturi. SegWit a îmbunătățit scalabilitatea Bitcoin, a eliminat maleabilitatea și a permis nodurilor să adopte noua structură de tranzacție. Cel mai bun lucru este că acest lucru putea fi implementat fără a face un hard fork al rețelei.

Separarea semnăturii digitale și a informațiilor despre tranzacție

Propunerea lui Wuille a crescut capacitatea blocului Bitcoin prin „separarea” datelor „martor” dintr-un bloc și mutarea acestora în tranzacția coinbase. Tranzacțiile coinbase sunt primele tranzacții din fiecare nou bloc Bitcoin. Tranzacția coinbase este responsabilă pentru emiterea criptomonedei nou create în circulație ca recompensă pentru procesul de minare de Bitcoin.

Minerii care reușesc să câștige competiția Bitcoin bazată pe criptografie, denumită proof-of-work, câștigă aceste tokenuri nou create ca „recompense de bloc”.

Datele martor, cunoscute și sub numele de ScriptSig sau Unlocking Script, includ semnătura digitală și informațiile cheii publice necesare pentru a debloca bitcoinul transferat. Upgrade-ul SegWit a introdus un „câmp martor” separat pentru partea ScriptSig a unei tranzacții.

Prin procesarea separată a informațiilor despre semnătura digitală de câmpul de intrare al tranzacției, a existat mai mult spațiu pentru ca tranzacțiile să încapă în fiecare bloc.

Mai multe tranzacții pe bloc înseamnă capacități de debit mai mari. Astfel, în loc de 2-3 tranzacții pe secundă, Bitcoin poate procesa între 7-10 tranzacții SegWit pe secundă. Capacitatea crescută înseamnă, de asemenea, comisioane mai mici, deoarece blockchain-ul Bitcoin poate gestiona un volum mai mare de tranzacții.

În ciuda separării, este important de reținut că nodurile procesează în continuare atât datele tranzacției, cât și datele martor on-chain. Nu sunt utilizate protocoale sidechain sau Layer 2.

Greutatea blocului

Înainte de SegWit, minerii măsurau blocurile Bitcoin după dimensiune (în bytes). Acest sistem funcționa bine atunci când blocurile conțineau atât date martor, cât și date de tranzacție, dar au apărut probleme când acestea au fost separate.

Pentru a depăși acest inconvenient, upgrade-ul a introdus o metrică numită „greutate de bloc” pentru a gestiona dimensiunea blocurilor.

Cu acest concept, fiecare bloc de 1 megabyte este format din 4.000.000 de unități de greutate (WU). Fiecare tranzacție primește o greutate bazată pe următoarea formulă:

Dimensiunea de bază a tranzacției în bytes (fără date martor) * 3 + Dimensiunea totală a tranzacției în bytes.

Prin eliminarea datelor din câmpul martor din calcul, tranzacțiile SegWit au o greutate mult mai mică. Pe de altă parte, o tranzacție non-SegWit conține în continuare date martor. Aceasta înseamnă că tranzacțiile non-SegWit cântăresc întotdeauna de 4 ori mai mult decât tranzacțiile SegWit.

Acest concept crește teoretic dimensiunea unui bloc Bitcoin de la 1 MB la 4 MB, dacă un bloc constă aproape în întregime din date martor. Cu toate acestea, acest lucru nu este posibil în practică.

Principalul beneficiu al sistemului ponderat este că îi motivează pe mineri să proceseze blocuri care conțin în mare parte tranzacții SegWit. Presupunând că tranzacțiile SegWit au aceleași comisioane ca blocurile vechi, un miner poate procesa mult mai multe tranzacții SegWit pe bloc. Cu cât procesează mai multe tranzacții pe bloc, cu atât câștigă mai multe comisioane.

Un câștig pentru ambele părți. Sau cel puțin așa ai crede.

Fără probleme de maleabilitate a tranzacțiilor

Sub structura SegWit, ID-ul de tranzacție hashat conține doar informațiile tranzacției, nu și informațiile câmpului martor.

Această modificare elimină componenta modificabilă a unei tranzacții Bitcoin care a permis anterior atacuri de maleabilitate.

Drept urmare, au devenit posibile soluții de scalare secundare, cum ar fi Rețeaua Bitcoin Lightning.

 

De ce a fost SegWit controversat? 🤔

Mulți din comunitatea de dezvoltatori au considerat că SegWit nu a fost suficient de amplu pentru a aborda problemele de scalabilitate ale Bitcoin.

Principalele argumente împotriva activării SegWit includ:

  • Debitului crescut al Bitcoin de 7-10 tranzacții pe secundă este încă departe de a fi suficient de mare pentru un sistem de plată descentralizat și global.
  • Taxele ar rămâne relativ ridicate, făcând ca lucruri precum microtranzacțiile să fie impracticabile din punct de vedere financiar.
  • Minerii pot procesa în continuare blocuri de tranzacții vechi, ceea ce înseamnă că maleabilitatea este încă o amenințare.
  • Ulterior s-a descoperit că SegWit ar anula mecanismul ASICBOOST al Bitmain; un exploit utilizat pentru a crește semnificativ eficiența echipamentelor de minerit.

La aproximativ un an după propunerea lui Wuille, el și alți dezvoltatori Bitcoin Core, inclusiv Eric Lombrozo, pregătiseră codul pentru a fi lansat în viitoarea actualizare Bitcoin Core 0.13.1. Singurul pas rămas pentru a activa SegWit era ca minerii să înceapă procesarea noilor blocuri SegWit. 

Pentru a-i consolida implementarea, peste 95% din toți minerii de bitcoin ar fi trebuit să-și arate sprijinul pentru SegWit în primele două săptămâni de la inițierea sa — un obstacol major având în vedere circumstanțele de la acea vreme.

Soft fork activat de utilizatori

Inutil de spus, marile firme de minerit, cum ar fi Bitmain, erau încă nemulțumite de modificările propuse și au refuzat să sprijine activarea SegWit.

La începutul anului 2017, un dezvoltator pseudonim numit „Shaolinfry” a ridicat posibilitatea ca nodurile Bitcoin să impună un soft fork într-o postare online pe bitcoin-dev

Un soft fork activat de utilizatori nu fusese niciodată încercat pe rețeaua Bitcoin, dar ar fi permis dezvoltatorilor să impună SegWit cu aproximativ 51% sprijin din partea minerilor. Cei care au refuzat să sprijine noi blocuri riscau ca blocurile lor să fie respinse de noduri. Soluția nu era lipsită de riscuri. Dacă SegWit nu a primit suficient sprijin din partea minerilor, rezultatul ar duce invariabil la o divizare a lanțului.

Cei împotriva SegWit au propus un upgrade diferit, un hard fork SegWit 2X. Unul care ar implementa SegWit și ar crește dimensiunea blocului Bitcoin la 2MB.

Spre deosebire de upgrade-ul anterior, SegWit 2X nu ar fi compatibil retroactiv cu versiunile anterioare ale clientului Bitcoin. Aceste modificări însemnau că nodurile ar trebui să-și actualizeze software-ul pentru a continua să opereze în rețea.

SegWit și Acordul de la New York 🗽

Companiile de top din industrie s-au întâlnit la Consensus 2017 și au semnat în mod colectiv un memorandum denumit „Acordul de la New York”. Acest document a stabilit planuri pentru ca SegWit să fie lansat în vară și pentru ca dimensiunea blocului Bitcoin să crească la 2MB până în noiembrie.

Înaintea lunii noiembrie, Shaolinfry a redactat două Bitcoin Improvement Proposals (BIP-uri); BIP148 și BIP149. Primul a reprezentat o soluție rapidă și categorică; semnalizează sprijin pentru blocurile SegWit sau nodurile îți vor respinge blocurile. Cel de-al doilea a oferit un orizont de timp mai lung pentru ca minerii să se alăture, stabilind un termen limită de activare pentru luna iulie a anului următor.

Pe măsură ce data se apropia, inginerul Bitmain Warranty, James Hillard, a propus un nou BIP; BIP91. Soluția sa a căutat să facă atât SegWit 2X, cât și BIP148 compatibile unul cu celălalt. De ce să riști o divizare a lanțului din cauza a două actualizări SegWit concurente, când poți să le faci pe amândouă compatibile?

Pe 1 august, sprijinul suficient din partea minerilor a consolidat activarea SegWit. A doua etapă a Acordului de la New York, totuși, nu a primit același sprijin.

Eșecul de a crește dimensiunea blocului Bitcoin la 2MB a dus la formarea Bitcoin Cash (BCH) — un nou proiect forkat din blockchain-ul Bitcoin.

184.39
-0,32 %
24 de ore
bch

Importanța zilei independenței Bitcoin

Introducerea SegWit și decizia comunității de a respinge creșterea dimensiunii blocului au reprezentat un moment de referință pentru comunitatea Bitcoin în ansamblu.

SegWit a demonstrat importanța consensului în ceea ce privește modificările aduse blockchain-ului Bitcoin, precum și amploarea descentralizării puterii pe care o oferea bitcoin.

Niciun individ nu a putut prelua controlul rețelei și să-și ducă propunerea la bun sfârșit.

În schimb, comunitatea a dezbătut, a iterat și a continuat procesul lung de atingere a consensului ca grup colectiv — nu sub îndrumarea unui singur individ.

Începe să cumperi Bitcoin

Acum că ai învățat totul despre SegWit, ești gata să îți continui călătoria crypto și să cumperi bitcoin?

Consultă ghidul nostru din Centrul de Învățare Kraken pentru mai multe informații despre Cum să cumperi Bitcoin (BTC) și înregistrează-te pentru un cont Kraken astăzi.