Misterul segregat a devenit una dintre cele mai interesante propuneri care au provocat o discuție plină de viață în comunitate. Propunerea a fost făcută de Peter Velle în cadrul atelierului Scaling Bitcoin din Hong Kong.
Susținută de mulți membri ai comunității, se consideră că SegWit este capabil să îmbunătățească performanțele Bitcoin în mai multe domenii simultan. Cineva chiar sugerează că SegWit este soluția mult așteptată a problemei de scalare care poate aduce pace comunității sfâșiate de disputele legate de dimensiunea blocului.
Principiul de funcționare
Pentru a înțelege modul în care funcționează SegWit, trebuie să înțelegeți esența tranzacțiilor bitcoin la un nivel tehnic suficient de profund. Pentru a începe, bineînțeles, este important să înțelegeți că protocolul bitcoin constă, în esență, din tranzacții. Nodurile din rețeaua p2p nu trimit reciproc bitcoins - trimit pachete cu date de tranzacție.
Puteți spune că tranzacțiile reprezintă un set de "încuietori", care constă în două componente principale. O parte "eliberează" bitcoinele conținute în tranzacțiile anterioare utilizând date numite "intrări". Intrările conțin scripturi - adică instrucțiuni despre cum se execută intrarea. Ele sunt numite scriptSigs. Cealaltă parte conține un nou set de încuietori - așa-numitele descoperiri - că „blocare“ la fel sau o cantitate mai mică de Bitcoins. Acestea includ script-uri numite scriptPubKeys. Astfel, bitcoins-ul se deplasează de la intrări la ieșiri într-o singură tranzacție, în timp ce sărind de la o tranzacție la alta.
Cheile private
O semnătură este o tehnică criptografică în care o cheie privată este utilizată pentru a calcula o secvență unică de numere în combinație cu orice alte date. Cheia publică corespunzătoare poate fi utilizată pentru a verifica dacă semnătura a fost creată utilizând această cheie privată. Astfel, semnăturile se dovedesc atât dreptul de proprietate al cheii private, precum și o confirmare dată de către proprietarul cheii private - și toate acestea fără o prezentare. In cazul in care Bitcoins cheile private sunt folosite în mod obișnuit pentru datele tranzacției de semnătură cu excepția bucșe, și de-a lungul scriptPubKeys, sumele prinse și alte date. Ca rezultat, semnătura și cheia publică, prin care se consumă bitcoins, sunt adăugate la tranzacție în câmpul de intrare. Acest lucru demonstrează că proprietarul cheii a vrut cu adevărat să facă o tranzacție și asigură că nu poate fi falsificat.
Un bitcoin este considerat imuabil, deoarece schimbarea oricărei părți a oricărei tranzacții în retrospectivă va schimba ID-ul tranzacției, ceea ce va duce la o schimbare în antetul blocului - cu toate acestea, un astfel de bloc nu va mai îndeplini cerințele. Și deoarece antetul blocului afectează structura anteturilor de blocuri ulterioare, acestea nu se vor potrivi cu ele.
SegWit se bazează pe conceptul de lanțuri laterale dezvoltate de Blockstream și completează ideea dezvoltatorului kernel-ului bitcoin, Luke Dash. Conceptul general a fost dezvoltat câteva luni mai târziu, în colaborare cu dezvoltatorii kernel-lui Gregory Maxwell și Eric Lombroso. Sistemul ar trebui să fie gata până la jumătatea anului curent.
Din punctul de vedere al nodurilor care nu utilizează SegWit (numite condițional le vechi), unele concluzii nou create pot începe să utilizeze un tip ciudat de scriptPubKeys. Ciudat în ele este că ele pot fi greu de considerat o încuietoare. În general, numit "cheltuiește-i pe toți", aceste chei, în ansamblul lor, spun că nu au nevoie de semnături. În plus, ei încă mai au un text complet lipsit de sens.
Nodurile vechi vor găsi aceste tranzacții lipsite de sens. Îi va părea că oricine poate crea un nou script, eliberând aceste concluzii - ceea ce înseamnă că ele sunt aproape complet neprotejate. În același timp, nodurile vechi nu pot accepta din punct de vedere tehnic tranzacții noi. Textul ScriptPubKeys va părea lipsit de sens, însă este acceptabil din punct de vedere tehnic. Astfel, vechile noduri vor confirma tranzacțiile ca valide și le vor transmite altor noduri.
Dar nodurile cu SegWit (să le numim noi) se vor comporta puțin diferit. Textul ScriptPubKeys nu le va părea lipsit de sens. Ei vor observa în ea un tip specific de ieșire.
Ca și constatările anterioare, aceste noi descoperiri vor avea nevoie de câteva semnături pentru eliberarea de Bitcoin - dar spre deosebire de ei, pentru că ei nu trebuie să fie o semnătură inclusă în scriptSig tranzacție următoare. În schimb, semnătura ar trebui inclusă într-o parte complet nouă a tranzacției - SegWit.
SegWit este în esență un add-on care conține semnături și alte date. Principalul lucru este că SegWit este complet ignorat de vechile noduri, dar este recunoscut ca nou. În plus, datele lor nu sunt șterse împreună cu alte părți ale tranzacției pentru a crea ID-ul.
Astfel, ambele noduri vechi și noi vor considera tranzacțiile cu SegWit valabile. Nodurile vechi le vor valida, deoarece din punctul lor de vedere nu au nevoie de semnături și de altele noi - deoarece semnătura necesară este în SegWit. Deoarece ambele noduri sunt trunchiate și alte date de tranzacție, în același ID, aranjament de blocuri consens este atins, și, prin urmare, de asemenea, blokcheyn nu va provoca dispute.
Există totuși o mică problemă: în cazul în care semnăturile nu afectează aspectul blocului, nu mai poate fi o dovadă că tranzacția include semnăturile corecte.
Propunerea lui Welle vă permite să eliminați semnăturile din tranzacțiile de tip bitcoin, păstrând neschimbarea acestuia și încălcând oricare dintre regulile acceptate de consens.
Dimensiunea blocului
Cu toate acestea, se atrage atenția cel mai mult asupra faptului că eliminarea semnăturilor de la blocuri de 1 megabyte poate crește de fapt dimensiunea blocului bitcoin. Acest lucru înseamnă că va fi posibil să se scrie mai multe tranzacții pe secundă în dulap - adică, cantitatea de tranzacții va crește. Mai mult decât atât, toate acestea nu vor încălca nici măcar regula de dimensiune maximă a blocului.
În propoziția lui Welle nu vorbim despre un nou tip de dimensiune maximă a blocului. Formula folosită pentru a calcula valorile limită este dată suficient de arbitrar - blocul fără martor plus partea a patra a lui SegWit în sumă nu trebuie să depășească 1 mb. Astfel, vechile noduri vor lua în considerare toate blocurile mai mici de 1 mb, deoarece un sfert din SegWit, pe care nu-l văd deloc, este inclus în același 1 megabyte. În acest timp, nodurile noi vor vedea că blocurile depășesc 1 megabyte, deoarece mărimea reală a SegWit este mai mare decât cel calculat.
Suma exactă a memoriei suplimentare depinde de tipurile de tranzacții care sunt incluse în blocurile noi. Dacă mai multe tranzacții stochează mai multe date în SegWit, deoarece este probabil să se întâmple în cazul tranzacțiilor cu mai mulți semnale, dimensiunea totală a noilor blocuri va crește. Acest lucru face ca dimensiunea maximă a noii unități să fie de aproximativ 1,75 megaocteți pentru tranzacții normale, și 4 MB ca un plafon tare, care nu poate fi depășită în nici un caz, chiar dacă SegWit împinge toate datele.
Există, însă, încă unul - și poate cel mai important avantaj: SegWit poate oferi flexibilitatea tranzacțiilor. De dragul acestui fapt, el, de fapt, a fost odată dezvoltat.
Această flexibilitate este asigurată de tehnica criptografică de modificare a semnăturii fără a schimba parametrul indicat de aceasta. Acest lucru se poate face chiar și fără cheia privată originală. În cazul Bitcoins care aceasta înseamnă că oricine poate alege orice tranzacție a rețelei P2P, și înlocuiți-o altă semnătură validă de calitate. Noua semnătură va corespunde tuturor acelorași date și poate fi verificată cu aceeași cheie. Nu schimbă deloc tranzacția. Cu toate acestea, deoarece pare diferit, ID-ul tranzacției se modifică dincolo de recunoaștere.
Flexibilitate tranzacție creează două probleme majore - confundă toate aplicațiile software hărți, care utilizează ID-ul pentru a verifica confirmarea tranzacției, dar, mai important, limitează în mod semnificativ domeniul de aplicare pentru toate tipurile de trucuri complicate lumi Bitcoin bazate pe tranzacții neconfirmate - cum ar fi canalele de plată și fulgere reţea. SegWit elimină semnătura din acea parte a tranzacției, care este folosit pentru a crea ID-ul - astfel încât, deși semnătura în ea și poate fi schimbat, aceasta nu împiedică software-ul pentru a utiliza ID-ul tranzacției, precum și nu va face nici o diferență la canalele de plată sau fulger de rețea. Prin urmare, spațiul este deschis pentru niveluri suplimentare de zoom.
Script Versiuni
Al treilea avantaj al lui SegWit a provocat la codec-uri bitcoin nu mai puțin, dacă nu chiar mai mult, încântare - versiuni de scripturi.
Efectul SegWit
Pentru a înțelege ce rol poate juca SegWit în litigiile legate de dimensiunea blocului, mai întâi este logic să reamintim rapid ceea ce, în general, se îndreaptă.
În general, vorbim despre un compromis între lățimea de bandă și descentralizare, cu un mic plus al economiei. Dimensiunea actuală a blocului de 1 megabyte permite rețelei să proceseze până la șapte tranzacții pe secundă. Așa-numitele "progresiste" cred că acest lucru este prea mic - o comparație cu Visa, al cărei sistem gestionează mii de tranzacții pe secundă, este deosebit de popular. blocuri prea mici, în funcție, pot progresat limita potențialul și de a crește valoarea tranzacțiilor Bitcoin blokcheynu, astfel încât să poată permite serviciile numai centralizate, și să conducă la utilizatorii de masă de îngrijire pentru a găsi soluții alternative de plată, și, eventual, prăbușirea întregului sistem.
Toate acestea, așa cum cred că descentraliștii, sunt capabili să realizeze o reglementare de tip bitcoin la nivelul protocolului, ceea ce va afecta rezistența sa la cenzură. Desi recunosc ca blocurile mai mici pentru a limita numărul de tranzacții care pot fi procesate în blokcheyne, ei cred că viitorul Bitcoin constă în lucrul cu programe de completare, cum ar fi aceeași rețea Lightning sau blokcheynov lemnoase. Progresorii tind să recunoască beneficiile unor astfel de aditivi suplimentari - dar nu ca o soluție pentru scalare. În opinia lor, bitcoin ar trebui mai întâi să fie scalat "la nivelul lanțurilor".
După cum a devenit clar, proprietățile lui SegWit, cu toate avantajele sale, nu reușesc să rezolve esența disputei referitoare la dimensiunea blocului. Progresorii nu consideră Lightning Network soluția pentru problema scalabilității. Protecția împotriva falsificării este utilă, dar blocurile de lumină vor rămâne în continuare mai puțin fiabile decât cele pline. Abandonarea datelor din tranzacțiile vechi nu poate fi superfluă, însă dezvoltatorii kernel-ului au oferit soluții similare chiar înainte de apariția lui SegWit. Versiunile byte pot juca un rol în viitor, dar nu este încă clar ce să facă cu ei.
Mecanismul de verificare a nodurilor SegWit este astfel încât timpul suplimentar pentru nodurile individuale este probabil neglijabil. Timpul de propagare va crește ușor, însă modelele lui Velle arată că 4 megaocteți se află în capabilitățile rețelei actuale.
Ca urmare, majoritatea detsentralistov SegWit favoare, considerând-o parte vitală a „foii de parcurs“ la scară pregătită de Gregory Maxwell. Acest card oferă un anumit câștig în timp și a întârziat momentul în care blocurile vor fi complet umplute (dacă SegWit va funcționa corespunzător), în timp ce nu încalcă regulile existente, în general, recunoscute. De data aceasta detsentralisty câștigat doresc să-și petreacă pe căutarea de soluții durabile, inclusiv crearea unei politici mai durabilă în ceea ce privește dimensiunea blocurilor, niveluri suplimentare de add-on-uri și alte optimizări. A progresat, cu toate acestea, nu cred că 2 MB este suficient - de exemplu, în propoziția Gavin Andreessen dimensiunea blocului în 20 de ani să crească până la 8 GB.
Furcă și furculiță moale
Din cauza lipsei de consens, unii utilizatori pot decide cu privire la hardfork, sperând probabil că alții vor implementa modificările, când va fi prea târziu să se opună. Cu toate acestea, în cazul în care ceilalți nu respectă exemplul, întreaga rețea se va împărți. Acest lucru sa întâmplat deja când Gavin Andresen și Hearn au introdus Bitcoin XT, dar nu au obținut nici un sprijin semnificativ. Mai mult, unii dezvoltatori preferă să pună în aplicare SegWit în sine ca o furcă greu, care are unele avantaje față de furculita.
Întrebarea adevărată este dacă o potențială furcă greu va găsi suficient sprijin în mediul de utilizare a unui bitcoin. Și deși mulți oameni consideră că consensul este un concept elastic, unii încă mai cred că a fost deja realizat în ceea ce privește furculita.
Soluția cea mai probabilă în momentul de față pare a fi harta rutieră Maxwell - singurul plan care nu necesită o furculiță dificilă, susținut de cei mai mulți dezvoltatori de biți. Astfel, acum îi lipsește doar sprijinul pentru proprietarii majorității capacităților de tip hash. Cu toate acestea, nu poate fi exclusă nici încercarea unei furci grele - probabil făcută de principalii jucători ai industriei. În plus, Bitcoin XT este, de asemenea, undeva în apropiere.
Ați găsit o eroare în text? Selectați-l și apăsați CTRL + ENTER