Ce este Segregated Witness (SegWit)?

Ghidul pentru începători despre Bitcoin SegWit 💭
Segregated Witness (SegWit) a fost o actualizare adusă codului sursă al Bitcoin 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ă ce 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 utilizatori al rețelei și o divizare ostilă. Diviziunea a dat naștere unei serii de noi proiecte derivate din Bitcoin, 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 pentru viabilitatea pe termen lung a protocolului.
În fiecare an, mulți din comunitatea Bitcoin sărbătoresc 1 august ca „ziua independenței Bitcoin”. Acest eveniment marchează ocazia în care voința oamenilor a triumfat împotriva intereselor centralizate ale companiilor de mining Bitcoin consacrate.
Să explorăm fiecare dintre aceste evenimente așa cum s-au întâmplat și să deslușim istoria din spatele SegWit.
Bitcoin înainte de SegWit ⏮️
Înainte de activarea SegWit, capacitatea blocului Bitcoin a rămas neschimbată timp 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 (nu au) stabilit niciun parametru pentru cât de mari puteau 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 viitoarele 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 scala în mai multe moduri.
Debit redus și timpi lenți de tranzacționare
Doar un număr limitat de tranzacții pot încăpea în blocul de 1MB, relativ 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ă — o diferență uriașă față de rețelele tradiționale de plată digitală 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, acesta 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 blocurilor Bitcoin durează aproximativ o oră.
La acea vreme, când doar o mână de criptografi „Cypherpunk” erau conștienți de 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, limitat de capacitatea sa mică de bloc, a însemnat că și taxele erau comparativ mult mai mari decât sunt astăzi.
Iată o modalitate ușoară de a înțelege această problemă. Imaginați-vă că stați afară într-o mulțime de oameni după ce ați vizionat un spectacol de teatru. Toată lumea de la 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 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 maleabilitate a 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 lor printr-o funcție hash creează un ID de tranzacție. Puteți afla mai multe despre funcțiile hash în articolul nostru Cum utilizează criptomonedele criptografia?
Dar, pentru simplitate, vă puteți gândi la aceste ID-uri de tranzacție ca la 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ă confunde software-ul client blockchain. Toate nodurile rulează software client pentru a interacționa cu blockchain-ul și a îndeplini roluri importante, cum ar fi verificarea datelor.
Această eroare de maleabilitate din 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 că a fost cel mai mare hack Bitcoin din istorie.
Experții au raportat că un hacker, sau un grup de hackeri, a golit portofelul Bitcoin al bursei Mt. Gox. Au făcut acest lucru parțial prin modificarea ID-ului tranzacției 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 hackerului (hackerilor) să sifoneze peste 840.000 BTC de la bursă.
Ce îmbunătățiri a adus SegWit? ⚙️
Contribuitorul Bitcoin Pieter Wuille a prezentat pentru prima dată actualizarea 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ă aceasta putea fi implementată fără a hard-fork-a rețeaua.
Separarea semnăturii digitale și a informațiilor despre tranzacție
Propunerea lui Wuille a crescut capacitatea blocului Bitcoin prin „segregarea” datelor „witness” 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 mining Bitcoin.
Minerii care reușesc să câștige competiția proof-of-work bazată pe criptografie a Bitcoin câștigă aceste tokenuri nou create ca „recompense de bloc”.
Datele witness, cunoscute și sub denumirea de ScriptSig sau Unlocking Script, includ informații despre semnătura digitală și cheia publică necesare pentru a debloca Bitcoin-ul transferat. Actualizarea SegWit a introdus un „câmp witness” separat pentru partea ScriptSig a unei tranzacții.
Prin procesarea informațiilor despre semnătura digitală separat 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 mai mari de debit al tranzacțiilor. 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, taxe 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 witness on-chain. Nu sunt utilizate protocoale sidechain sau Layer 2.
Greutatea blocului
Înainte de SegWit, minerii măsurau blocurile Bitcoin după dimensiune (în octeți). Acest sistem a funcționat bine atunci când blocurile conțineau atât date witness, cât și date de tranzacție, dar a întâmpinat probleme atunci când acestea au fost separate.
Pentru a depăși acest lucru, actualizarea a introdus o metrică numită greutate de bloc pentru a gestiona dimensiunea blocurilor.
Cu acest concept, fiecare bloc de 1 megabyte constă 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 octeți (fără date witness) * 3 + Dimensiunea totală a tranzacției în octeți.
Prin eliminarea datelor din câmpul witness 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 witness. 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 1MB la 4MB, dacă un bloc constă aproape în întregime din date witness. 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 taxe 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 taxe.
Un câștig pentru ambele părți. Sau așa ați crede.
Gata cu problemele de maleabilitate a tranzacțiilor
Conform structurii SegWit, ID-ul tranzacției hash-uite conține doar informațiile tranzacției, nu și informațiile din câmpul witness.
Această modificare elimină componenta modificabilă a unei tranzacții Bitcoin care a permis anterior atacurile de maleabilitate.
Ca rezultat, soluții secundare de scalare, cum ar fi Bitcoin Lightning Network, au devenit posibile.
De ce a fost SegWit controversat? 🤔
Mulți din comunitatea de dezvoltatori au considerat că SegWit nu a mers suficient de departe pentru a aborda problemele de scalare ale Bitcoin.
Principalele argumente împotriva activării SegWit includ:
- Debitul 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, global.
- Taxele ar rămâne relativ ridicate, făcând lucruri precum microtranzacțiile nefezabile 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.
- S-a descoperit ulterior că SegWit ar anula mecanismul ASICBOOST al Bitmain; un exploit folosit pentru a crește semnificativ eficiența echipamentelor de mining.
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ă să proceseze noi blocuri SegWit.
Pentru a-și consolida implementarea, peste 95% din toți minerii Bitcoin ar trebui 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 să spunem, marile firme de mining, 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 bitcoin-dev.
Un soft fork activat de utilizatori nu fusese niciodată încercat pe rețeaua Bitcoin înainte, dar ar permite dezvoltatorilor să implementeze SegWit cu aproximativ 51% sprijin din partea minerilor. Cei care au refuzat să sprijine noile blocuri riscau ca blocurile lor să fie respinse de noduri. Soluția nu a fost lipsită de riscuri. Dacă SegWit nu ar fi primit suficient sprijin din partea minerilor, rezultatul ar duce invariabil la o divizare a lanțului.
Cei împotriva SegWit au propus în schimb un alt upgrade 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 cu versiunile anterioare ale clientului Bitcoin. Aceste modificări au însemnat 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 planurile pentru lansarea SegWit în vară și pentru creșterea dimensiunii blocului Bitcoin la 2MB până în noiembrie.
Înainte de noiembrie, Shaolinfry a elaborat două Propuneri de Îmbunătățire Bitcoin (BIP-uri); BIP148 și BIP149. Prima a reprezentat o soluție rapidă și fermă; semnalați sprijinul pentru blocurile SegWit sau nodurile vă vor respinge blocurile. Cea de-a doua a oferit un orizont de timp mai lung pentru ca minerii să se alăture, stabilind un termen limită de activare pentru iulie anul următor.
Pe măsură ce data se apropia, inginerul de garanție Bitmain, James Hillard, a propus un nou BIP; BIP91. Soluția sa a căutat să facă SegWit 2X și BIP148 compatibile între ele. De ce să riscați o divizare a lanțului din cauza a două actualizări SegWit concurente când le puteți face pe ambele compatibile?
Pe 1 august, sprijinul suficient din partea minerilor a consolidat activarea SegWit. A doua etapă a Acordului de la New York, însă, 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 bifurcat din blockchain-ul Bitcoin.
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 arătat importanța consensului atunci când a venit vorba de modificări ale blockchain-ului Bitcoin, precum și amploarea descentralizării puterii pe care o oferea Bitcoin.
Nicio persoană nu a putut prelua controlul rețelei și să-și ducă la bun sfârșit propunerea.
În schimb, comunitatea a dezbătut, a iterat și a continuat procesul lung de atingere a consensului ca grup colectiv — nu la direcția unei singure persoane.
Începeți să cumpărați Bitcoin
Acum că ați aflat totul despre SegWit, sunteți gata să vă continuați călătoria cripto și să cumpărați Bitcoin?
Consultați ghidul nostru din Centrul de Învățare Kraken pentru mai multe informații despre Cum să cumpărați Bitcoin (BTC) și înregistrați-vă pentru un cont Kraken astăzi.