Cum caută protocoalele P2P să rezolve centralizarea minării Bitcoin PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Cum caută protocoalele P2P să rezolve centralizarea minării Bitcoin

Pool-urile de minerit Bitcoin se bazează pe centralizare, dar P2Pool și alte protocoale au încercat să reducă nevoia de încredere în terți.

Într-o anterioară articol, am scris despre natura descentralizării versus centralizare în minerit Bitcoin și despre cum să conceptualizez asta într-un sens mai ales calitativ. Articolul a defalcat întregul stack de minerit, de la coordonarea pool-ului până la producția de energie, pentru a oferi o idee a relației dintre diferitele straturi ale stivei miniere și potențialul de a maximiza descentralizarea, subliniind faptul că, cu cât mai jos stiva se îndreaptă spre producția de energie, cu atât devine mai dificil și mai intens de capital să se aducă un nivel semnificativ de descentralizare la nivelul respectiv.

În acest articol, intenționez să aprofundez subiectul pool-urilor de minerit și coordonarea minerilor pentru a facilita operațiunile miniere deținute independent care cooperează în efortul de a extrage blocuri pentru a le adăuga la blockchain.

Crearea piscinelor miniere

Exploatarea mineritului a parcurs un drum lung din zilele în care puteai pur și simplu să dai clic pe un buton și să exploatezi în mod fiabil blocurile singur pe un procesor de laptop. Pe atunci, a fost efectiv un efort de amatori amatori care nu necesita investiții de capital reale sau expertiză, dar în prezent este o piață profesională de mai multe miliarde de dolari cu investiții masive de capital necesare la scară. Este un cu totul alt joc cu mingea.

Una dintre consecințele naturale ale acestei schimbări a naturii industriei miniere a fost crearea de piscine miniere foarte devreme. Când mineritul lăsa efectiv un laptop să funcționeze în colț, variația și imprevizibilitatea momentului în care veți găsi un bloc nu a fost chiar atât de mare - în cele din urmă, ați face-o și costul energiei pentru menținerea unui laptop în funcțiune nu a fost cu adevărat economic. importanţă.

Odată ce lucrurile s-au mutat la GPU-uri și ASIC-uri, a existat un cost de investiții materiale în avans și un cost mult mai semnificativ pentru energie electrică pentru a le menține în funcțiune. Acea imprevizibilitate în momentul în care veți găsi un bloc a devenit o problemă mult mai mare pentru mineri care încearcă să profite de investițiile lor de capital și să opereze profitabil. Aici intră în imagine bazinele miniere.

Ele permit minerilor să coopereze pentru a găsi un antet de bloc valid, care să lucreze împreună pe același bloc, trimițând recompensa coinbase către grupul de minerit, care apoi o distribuie proporțional între toți minerii participanți în raport cu cât de multă muncă au făcut pentru a ajuta la găsirea. blocul. Acest lucru este dovedit prin predarea „acțiunilor” către fondul minier; blocuri care nu îndeplinesc ținta de dificultate a rețelei, dar sunt suficient de mari pentru a demonstra că un miner nu minte și că de fapt rulează hardware și încearcă să găsească un bloc valid.

Centralizarea bazinului minier

Pool-urile de minerit centralizate au implicații mari pentru mineri individuali. Ele reprezintă un punct de centralizare în procesul de selectare (sau, mai important, de excludere) a tranzacțiilor pentru includerea într-un bloc. Acest lucru oferă fiecărui operator de grup de minerit control total asupra tranzacțiilor pe care aleg să le proceseze pe blockchain, fără posibilitatea proprietarilor actuali ai hardware-ului de minerit de a-și exercita un cuvânt de spus cu excepția faptului că părăsesc grupul în cazul în care nu sunt de acord cu criteriile conform cărora operatorul alege să seteze.

De asemenea, ei păstrează bitcoini minerii individuali până când acești mineri aleg să-i retragă din pool, lăsând operatorul pool-ului să acționeze ca un custode și un punct central care ar putea frauda minerii care folosesc pool-ul sau să fie presați de guverne să sechestreze fondurile individuale ale minerilor sau să aplice KYC cerinte pentru ei.

Deci, ce soluții există pentru a rezolva această problemă?

P2Pool: Poolul minier descentralizat inițial

P2 Pool este protocolul original al pool-ului de minerit descentralizat. Este un protocol peer-to-peer în care minerii se coordonează între ei pentru a împărți recompensele miniere în timp ce lucrează împreună pentru a găsi un bloc valid care îndeplinește ținta de dificultate. Această coordonare este realizată utilizând ceea ce designul protocolului se referă ca „sharechain”.

Minerii din P2Pool preiau blocuri care nu îndeplinesc ținta de dificultate a rețelei și își extrag efectiv propriul blockchain compus din toate copiile blocului unic la care lucrează pool-ul. Când îndeplinesc ținta de dificultate mai mică în care blocul ar fi transformat într-un bazin pentru a dovedi că exploatează într-un model centralizat, ei difuzează acel bloc către restul minerilor. „Dificultatea de acționare” a P2Pool a fost vizată astfel încât minerii să găsească o cotă aproximativ o dată la treizeci de secunde.

Sunt sigur că cititorii se întreabă cum funcționează plata către mineri individuali. Tranzacția coinbase este structurată astfel încât să fie creată o ieșire pentru fiecare miner individual din P2Pool, împărțind fondurile direct din tranzacția coinbase. Minerii din P2Pool verifică că toate plățile pentru ei înșiși și pentru toți cei care participă la pool sunt corecte și că fiecare miner care a contribuit cu o acțiune la sharechain este plătit corect pentru munca lor în fiecare acțiune nouă adăugată. Dacă un miner participant nu structurează corect plățile pentru toată lumea în cea mai recentă cotă, atunci toți ceilalți mineri din P2Pool încetează să-i includă în propriile plăți și „expulează” efectiv acel miner din pool pentru că nu s-a comportat corect.

Acest design a dus la câteva probleme de scalare, motiv pentru care nu mai este utilizat. Pe măsură ce participarea la un P2Pool crește, la fel crește și ținta de dificultate agregată pentru acțiunile din lanțul de acțiuni, care vizează aproximativ o dată la treizeci de secunde. Aceasta înseamnă că pentru minerii mai mici devine mai dificil să ajungă la dificultatea sharechain în orice perioadă de treizeci și secunde. Aceasta înseamnă că, pentru minerii mai mici, variația sau imprevizibilitatea veniturilor lor crește pe măsură ce rata de hash agregată într-un P2Pool crește. Acest lucru duce, de asemenea, la un număr mai mare de blocuri învechite, deoarece mai mulți mineri găsesc acțiuni concurente pentru lanțul de acțiuni, aproximativ în același timp, în timp ce mai mulți mineri se alătură P2Pool, ceea ce duce la „muncă irosită” din punctul de vedere al minerilor individuali care primesc doar compensate dacă cota lor este inclusă în lanțul de acțiuni.

Cealaltă problemă principală de scalabilitate constă în plățile care vin direct către minerii individuali din tranzacția în sine. Având în vedere că fiecare miner este plătit proporțional cu acțiunile pe care le-a extras și care sunt incluse în sharechain, fiecare miner din P2Pool necesită o nouă ieșire adăugată în tranzacția coinbase.

Acest lucru are două consecințe. În primul rând: minerilor li se oferă UTXO mici, de valoare mică, în fiecare bloc pe care P2Pool îl găsește, ceea ce vine cu costul condensării acestor rezultate mai târziu și/sau suportând costul tranzacțiilor mult mai mari atunci când merg să-și cheltuiască monedele din cauza numeroase UTXO individuale cu care ajung, în loc de unul singur atunci când se retrag după o perioadă dintr-un grup convențional. În al doilea rând: fiecare nouă ieșire coinbase ocupă spațiu bloc care ar putea fi consumat de tranzacțiile altor persoane și câștigă P2Pool mai mult în venituri din comisioane. Este o pierdere dublă pentru mineri care participă la protocol.

Aceste două probleme au contribuit la dispariția lent a protocolului și, în cele din urmă, să cadă într-o stare de neutilizare. După toate indicațiile din efortul meu de a urmări statistici precise și recente (mulți exploratori de blocuri vechi care urmăresc cota de fonduri miniere s-au închis de-a lungul anilor), se pare că ultimul bloc extras de P2Pool a fost activat. 12 Februarie 2019.

P2Pool cu ​​plăți de canal de plată

În 2017, la o lună după activarea SegWit blocată, Chris Belcher a făcut un propunere pentru a îmbunătăți scalabilitatea P2Pool prin utilizarea canalelor de plată unidirecțională și a unui grup de hub-uri care gestionează plățile către mineri.

Scopul principal al propunerii este de a aborda problema tranzacțiilor mai mari cu coinbase care pierd banii minerilor în două moduri diferite. La un nivel înalt, ideea este pur și simplu să plătiți întreaga tranzacție coinbase către un hub cu canale de plată deschise pentru minerii individuali și să garantați că capacitatea de a revendica fondurile din tranzacția coinbase este legată atomic de compensarea minerii pentru cotele lor prin canalele de plată.

Pentru a atinge obiectivul de atomicitate între tranzacția coinbase și canalele de plată pentru plăți, scriptul de ieșire a tranzacției coinbase trebuie să fie personalizat. În propunerea lui Belcher, este structurat ca un script cu mai multe ramuri cu trei condiții de cheltuieli:

  • O semnătură multiplă două din două. Cheia unu: butucul (Hc). Cheia doi: miner care a găsit blocul (Mc).
  • O singură cheie și un hashlock. Cheie: butucul (H). Hashlock: o valoare aleatoare generată de hub (X).
  • O singură cheie și un bloc de timp. Cheie: minerul care a găsit blocul (M). Timelock: un timelock relativ CSV de șase luni.

Oricare dintre aceste condiții de cheltuieli poate fi utilizată pentru a debloca rezultatul tranzacției coinbase. Acum, să ne uităm la scriptul canalului de plată pentru mineri, astfel încât să putem vedea cum interacționează cele două lucruri:

  • O semnătură multiplă două din două. Cheia unu: butucul (Hc1). Cheia doi: minerul (Mc1).
  • O semnătură multiplă două din două și un hashlock. Cheia unu: hub-ul (Hu1). Cheia doi: minerul (Mu1). Hashlock: valoarea aleatoare generată de hub-ul utilizat în coinbase (X).

Acum, să vedem cum interacționează aceste două lucruri unul cu celălalt.

Pe măsură ce minerii produc acțiuni pentru a le adăuga la lanțul de acțiuni, hub-ul monitorizează progresul. Pentru fiecare acțiune, hub-ul actualizează starea canalului cu mineri care predau o acțiune pentru a le plăti proporțional cu cantitatea de muncă pe care o fac. Cu toate acestea, le oferă doar o semnătură pentru a doua cale de script care necesită cheltuirea preimaginei hashlock - acest lucru garantează că, în mod implicit, fără ca hub-ul să le dea o semnătură pentru prima cale, nu pot revendica acele fonduri decât dacă hub-ul cheltuiește baza de monede. ieșite de la sine folosind calea scriptului cu hashlock, care le cere să publice preimaginea.

Acum, în cele din urmă, unul dintre minerii din P2Pool va găsi un bloc valid și îl va publica în rețea. În acest moment, hub-ul poate actualiza toate canalele de plată cu minerii și poate furniza semnătura primei căi de script din canal, permițând fiecărui miner să-și închidă canalul și să colecteze recompensele pe care le-a câștigat oricând dorește, fără a avea nevoie de hashlock. preimagine.

În acest moment, minerul care a găsit blocul semnează prima cale de script în coinbase, permițând hub-ului să revendice fondurile de la coinbase. Minerul respectiv primește un mic bonus din recompensele miniere pentru a-l stimula să semneze în mod cooperant. Dar amintiți-vă: dacă minerul refuză să coopereze, hub-ul poate pur și simplu să cheltuiască singur folosind calea hashlock și să dezvăluie preimaginea, permițând tuturor minerilor să-și strângă partea echitabilă din recompensă.

Acest lucru are doar dezavantajul de a forța toate canalele să se închidă în lanț, care trebuie redeschise pentru a continua mineritul. Ultima opțiune există în cazul în care operatorul hub alege să oprească procesarea plăților sau dispare. După șase luni, minerul care a găsit blocul poate revendica fondurile în întregime pentru el însuși dacă hub-ul nu a răspuns să coopereze sau a cheltuit monedele cu calea hashlock.

Acest lucru lasă două probleme specifice în ceea ce privește modelul de amenințare cu îmbunătățirile propuse de Belcher. Decizia ce tranzacții să includă într-un bloc lasă loc pentru variații în ceea ce privește valoarea totală a recompensei blocului se bazează pe ceea ce minerii individuali aleg să includă în șabloanele de bloc pe care le extrag.

La introducerea canalelor de plată, acest lucru creează o marjă de eroare, adică recompensa efectivă a blocului minat nu este egală cu ceea ce se angajează un hub minier în canalele de plată către mineri. În cazul în care estimările reale ale taxelor sunt mai mici decât a fost recompensa bloc, hub-ul poate pur și simplu să actualizeze canalele de plată folosind calea de cheltuieli cooperative cu o sumă mai mică și atâta timp cât nu pretind rezultatul coinbase cu calea hashlock, minerii nu au de ales decât să accepte o plată mai mică care se potrivește cu ceea ce a fost de fapt recompensa pentru minerit.

În cazul în care recompensa pentru minerit a fost puțin mai mare decât estimarea, este încă în interesul hub-ului să actualizeze canalele către mineri pentru a reflecta acest lucru, deoarece minerii pe care hub-ul îi tratează necinstit pot pur și simplu să plece oricând. Singurul caz marginal în care ar putea avea sens ca hub-ul să defecteze și să păstreze recompensa suplimentară ar fi dacă cineva ar plăti o taxă de miner anormal de mare, dar în afară de această situație, este în interesul hub-ului și al minerilor să se adapteze la orice discrepanță între estimarea recompensei și recompensa reală în bloc.

A doua problemă este faptul că hub-ul este un punct central care poate fi DDoS și forțat să împiedice funcționarea P2Pool. Propunerea lui Belcher implică utilizarea mai multor hub-uri și trimiterea fiecărei tranzacții coinbase de la diferite blocuri la diferite hub-uri. Cu toate acestea, acest lucru necesită ca mineri să aibă canale deschise de la toate hub-urile pe care le folosesc, care, după estimarea Belcher, că un hub are nevoie de 50 de ori recompensa bloc (aproximativ 650 BTC) pentru a oferi lichiditate minerilor, devine incredibil de ineficient de capital.

Braidpool: o altă iterație

Intrați Braidpool (atenție: linkul este o descărcare directă PDF de pe GitHub). Braidpool este o propunere a lui Bob McElrath și Kulpreet Singh, bazată pe propunerea lui Belcher, folosind canale de plată. Au fost introduse două modificări majore care îmbunătățesc problemele restante rămase cu propunerea lui Belcher.

Prima este o modificare a modului în care centrele și minerii comunică între ei. Ei propun ca minerii să atașeze o adresă Tor v3 la fiecare dintre acțiunile pe care le transmit grupului. În acest fel, hub-ul poate funcționa fără a expune niciun punct final al rețelei care este susceptibil la atacuri DoS.

Operatorul hub-ului se poate conecta apoi la mineri pentru a deschide și a actualiza canale cu aceștia, ușurând necesitatea ca minerilor să folosească mai multe hub-uri pentru a evita un singur punct de atac. Acest lucru permite unui Braidpool să funcționeze cu un singur hub, făcând întregul sistem mai robust și mai eficient.

Cum caută protocoalele P2P să rezolve centralizarea minării Bitcoin PlatoBlockchain Data Intelligence. Căutare verticală. Ai.
Sursa: Hârtia albă Braidpool

A doua modificare este utilizarea unui graf aciclic direcționat (DAG) în locul unui sharechain. Problema cu sharechain-ului a fost că, odată cu obiectivul de timp de partajare de treizeci de secunde, dificultatea necesară pentru acțiuni a crescut pe măsură ce pool-ul creștea în dimensiune, făcându-l mai dificil pentru mineri mai mici. Folosirea unui DAG precum Ethereum, în care nu este un joc cu sumă zero al unei singure acțiuni care ajunge în sharechain și alții rămân orfani, permite minerilor să stabilească în mod dinamic o dificultate pentru acțiuni care poate fi ajustată în funcție de rata de hash pe care o au și cum frecvent pot găsi acțiuni cu acesta.

Structura DAG include pe toți cei care au participat la ea între blocurile Bitcoin reale găsite, distribuind recompensele proporțional între toți, în funcție de munca pe care au furnizat-o DAG. Acest lucru rezolvă problema variației la scară pentru mineri individuali, pe măsură ce bazinele cresc.

În afară de aceste două modificări, restul structurii este exact ca propunerea lui Belcher, scripturile coinbase și canal sunt aceleași.

Gânduri finale

Unii cititori s-ar putea întreba de ce Betterhash nu a fost atins în acest articol. În timp ce descentralizează selecția tranzacțiilor pentru includerea într-un bloc, nu descentralizează complet toate funcțiile pool-ului - cel mai important, natura custodie a pool-urilor care gestionează fonduri. Acest lucru îi lasă pe mineri deschiși constrângerii prin refuzul de a plăti fonduri dacă minerul selectează tranzacții pe care grupul nu le aprobă. Prin urmare, nu l-aș considera un pool minier descentralizat, deși îmbunătățește marginal situația într-un mediu ostil, dar nu pe deplin adversar.

Acest articol a fost centrat pe P2Pool și a propus iterații pentru a îmbunătăți limitările sale de scalare. De dragul de a nu scrie o carte întreagă, nu am atins alte modele existente sau potențiale. De îndată ce reușesc să ajung la el, plănuiesc să scriu un articol de urmărire care să abordeze alte mecanisme de descentralizare a pool-urilor de minerit.

Aceasta este o postare pentru oaspeți a lui Shinobi. Opiniile exprimate sunt în întregime proprii și nu reflectă neapărat cele ale BTC Inc sau Revista Bitcoin.

Timestamp-ul:

Mai mult de la Revista Bitcoin