Drivelains-urile permit operatorilor de noduri sidechain să plătească minerilor pentru mine – și mai mult! PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Drivechain-urile permit operatorilor de noduri sidechain să plătească minerilor pentru mine – și mai mult!

Acesta este un editorial de opinie al lui Shinobi, un educator autodidact în spațiul Bitcoin și gazdă de podcast Bitcoin orientată spre tehnologie.

De data aceasta, voi defalca și voi discuta despre cum funcționează lanțurile de transmisie; acestea au fost propuse inițial în 2015. Dintre toate propunerile discutate până acum, drivechain-urile sunt cele mai vechi și cele mai dezvoltate în ceea ce privește detaliile specifice de implementare și design, documentate în BIP-uri. 300 și 301. Paul Sztorc, creatorul conceptului, a avut în minte câteva obiective principale de design și, deși acest lucru nu este deloc cuprinzător, iată câteva:

  • Izolați fiecare lanț lateral, astfel încât orice defecțiune sau problemă să-i afecteze doar pe cei care îl folosesc.
  • Lăsați lanțurile laterale să fie rotite fără a fi nevoie de o furcă nouă pentru fiecare.
  • Activați transferul de bitcoin în și afară dintr-un sidechain cu un peg bidirecțional.
  • Permite experimentarea gratuită în design, speră că ar depăși nevoia de altcoins.

Există două aspecte principale ale întregului design, motiv pentru care există două BIP-uri separate. Primul este mecanismul peg (BIP300), care este cel care permite să funcționeze peg-ul în două sensuri. Sztorc a conceput ceva numit escrow rate de hash, care, în termenii cei mai de bază, le permite minerilor, ca grup amorf, să păstreze colectiv monedele din toate lanțurile laterale. A doua este o schemă de minerit fuzionată „oarbă”, în care obiectivul este de a permite minerilor de bitcoin să fie producători de blocuri la un nivel de consens, fără a fi necesar să valideze sidechain-ul pentru a face acest lucru. Ambele aceste piese împreună prezintă un mecanism de fixare în două sensuri și o modalitate prin care minerii de bitcoin să ia parte la minarea lanțurilor laterale în timp ce încearcă să atenueze riscul de centralizare pe care îl prezintă.

BIP300 specifică logica pentru propunerea unui nou sidechain, activarea unui nou sidechain, propunerea unui set combinat de retrageri, aprobarea unui astfel de set de retrageri, logica de validare pentru tranzacțiile efective de retragere și validarea pentru tranzacțiile de depozit.

Activarea unui nou sidechain în cadrul propunerii drivechain este foarte asemănătoare cu procesul unei furci moale activate prin semnalizarea minerului. Diferența majoră este, desigur, că nu este de fapt o furcă moale - o singură furcă pentru a activa regulile de consens drivechain le permite minerilor, în orice moment, să semnaleze să activeze un nou sidechain. în regulile consensului pentru lanțul de transmisie. Pentru a propune activarea unui nou sidechain, un miner trebuie să plaseze o date OP_RETURN în ieșirea lor coinbase care să includă un identificator unic pentru acel sidechain, o cheie publică de utilizat în operațiunile de depozit, date despre versiune, descrieri care pot fi citite de om și hash-uri ale clientului software. și istoricul GitHub al acestuia (nu există nicio aplicare a consensului aici, doar date pe care oamenii le pot referi).

Atunci când un miner propune activarea unui nou sidechain și includerea tuturor datelor necesare în baza sa de monede, devine un fel de perioadă de „semnalizare a minerului” cu privire la crearea sau nu a acestui nou sidechain din punctul de vedere al consensului mainchain-ului. Un miner poate folosi un format special pentru a include o propunere în ieșirile din baza de monedă, iar alți mineri pot crea o altă ieșire urmând un al doilea format pentru a semnala activare. O nouă propunere de sidechain necesită ca 90% din blocurile dintr-o perioadă de dificultate să semnaleze activarea pentru ca o nouă creare de sidechain să fie confirmată. Acest lucru creează mecanismul peg pentru a activa sidechain-ul, dar interacțiunea dintre sidechain și mainchain este mai nuanțată decât atât.

În acest moment, oricine poate atașa monede în lanțul lateral. Pentru a conecta sidechain-ul, un utilizator creează pur și simplu o tranzacție cu două intrări cu propria sa intrare și UTXO corespunzătoare soldului sidechain-ului cu o singură ieșire care atribuie totul sidechain-ului. Acest lucru garantează că sidechain-ul are întotdeauna un singur UTXO care conține toate fondurile blocate în el. Retragerile sunt gestionate prin votul minerilor. Mainchain-ul nu înțelege cine deține ce pe sidechain, iar mainchain-ul va considera valabilă orice retragere aprobată de mineri în cadrul mecanismului de vot. Din acest motiv, există o întârziere lungă în procesul de retragere. Există două etape în procesul de retragere dintr-un sidechain: o propunere de retragere (pachet) și apoi faza de vot pentru retragere. Minerii trebuie să creeze o ieșire OP_RETURN în tranzacția lor coinbase cu un hash al tranzacției de retragere propusă pentru a propune o retragere. Acest hash, totuși, similar cu sighash, semnalează angajarea doar pentru o parte a unei tranzacții în loc de întregul lucru. Nu se angajează la intrarea UTXO care reprezintă fonduri blocate într-un drivechain sau ieșirea care returnează totul care nu este retras la un sidechain special UTXO. Acest lucru se datorează faptului că orice depozite în drivechain ar crea un nou UTXO și, astfel, ar invalida angajamentul față de tranzacția de retragere atunci când oamenii au mers să o valideze.

De aici începe perioada de vot al minerilor asupra propunerii de retragere. După ce a fost propus un pachet, minerii pot vota dacă să le aprobe sau nu. Fiecare bloc care este minat permite minerului respectiv să crească un contor de aprobare, în sus sau în jos cu unul sau doi, pentru a se abține de la a face ceva. În plus, există și câteva limitări specifice, deoarece este posibil să existe mai mult de un pachet pentru un singur sidechain - dacă un miner alege să voteze „da” (crește contorul cu unul) pentru un pachet de retragere pentru un sidechain, el trebuie sa votați „nu” (scădeți contorul cu unul) pentru fiecare alt pachet asociat cu acel sidechain specific.

Acest lucru este pentru a garanta că nu există „retrageri duble”, în cazul în care cineva are o ieșire în mai multe pachete care i-ar plăti mai mult bitcoin pe mainchain decât i se datorează.

Pe de altă parte, minerilor li se permite să voteze nu pentru fiecare pachet propus. Acest lucru ar trebui să funcționeze ca un fel de alarmă pentru toată lumea că un miner care validează aceste retrageri (asigurându-se că sunt monede deținute în mod legitim de pe lanțul lateral care sunt retrase) a observat că se întâmplă ceva invalid. Amintiți-vă, un punct cheie al acestui design este că minerii nu trebuie să valideze nimic din sidechain, așa că, dacă nu aleg oricum, mulți mineri ar putea vota în favoarea pachetelor pe care nu le verifică. Această funcție de alarmă este concepută pentru ca aceștia să fie alertați că ar trebui să verifice pachetele pentru a se asigura că nu are loc o retragere frauduloasă.

Odată ce un pachet a atins pragul necesar (13,150 de blocuri, sau aproximativ 90 de zile), tranzacția care procesează efectiv retragerea devine valabilă și poate fi confirmată. Dar ce fac oamenii dacă minerii aprobă o retragere frauduloasă care fură bani din sidechain? Propunerea lui Sztorc este de a se angaja într-un soft fork activat de utilizator (UASF) pentru a invalida tranzacția peg-out nevalidă. Acest lucru prezintă un risc uriaș în ceea ce privește consensul pentru mainchain. UASF din 2017 a fost o mișcare cu risc ridicat care abia a reușit, iar Bitcoin a fost mult mai mic decât este astăzi. Cu cât Bitcoin crește mai mare, cu atât mai dificilă va fi coordonarea acestor acțiuni.

Dacă vă amintiți de la articol despre lanțuri spațiale, acel design s-a bazat pe minerit combinat oarb ​​(BMM). Designul BMM al lui Ruben Somsen este de fapt a doua variantă a acestuia, prima fiind designul lui Sztorc, așa cum este prezentat în BIP301. Specificația BMM în drivechains este compusă din două mesaje: un mesaj de solicitare și un mesaj de acceptare. Ambele sunt coordonate, respectiv, printr-un tip de tranzacție special pe mainchain și printr-o ieșire specială în tranzacția de bază de monede a unui miner.

Tranzacția de solicitare este construită de oricine creează blocuri sidechain. Scopul BMM este că această persoană poate fi cineva care nu minează, așa că tranzacția de solicitare este acolo pentru a le permite să plătească minerilor pentru a confirma blocul sidechain-ului propus. Propunerea blocului sidechain construiește o tranzacție care include hash-ul blocului sidechain, ID-ul atribuit sidechain-ului când a fost creat și ultimii patru octeți din antetul blocului mainchain anterior. Există trei reguli suplimentare de consens aplicate acestor tipuri de tranzacții. În primul rând, o tranzacție de solicitare este invalidă, cu excepția cazului în care există și o ieșire de acceptare potrivită în tranzacția coinbase a blocului respectiv. Acest lucru este pentru a garanta minerii nu pot percepe o taxă din cerere fără a accepta și a extrage blocul sidechain. În al doilea rând, pentru fiecare sidechain este permisă includerea unei singure tranzacții de cerere într-un bloc mainchain. Acest lucru este pentru a ne asigura că doar un singur bloc din orice sidechain poate fi extras efectiv pentru fiecare bloc mainchain. În cele din urmă, ultimii patru octeți ai blocului mainchain anterior trebuie să se potrivească. Acest lucru asigură că o solicitare este valabilă doar pentru a fi extrasă în următorul bloc și astfel de tranzacții nu pot fi extrase mai târziu și nu pot fura bani de la un proponent de blocuri sidechain după ce blocul altcuiva a fost extras.

Ieșirea de acceptare este foarte simplă: datele antetului mesajului și hash-ul blocului sidechain. Dacă un miner rulează el însuși un nod drivechain, poate pur și simplu să ignore tranzacțiile de solicitare și să includă întotdeauna propria lor ieșire de acceptare în baza de monede pentru a-și extrage propriile blocuri sidechain. Împreună, aceste două aspecte le permit minerilor fie să opereze ei înșiși un nod sidechain, fie unui alt non-miner să o facă și să-l plătească pe miner să-și extragă blocurile. Ideea este că, dacă minerii înșiși nu rulează sidechain-urile și mănâncă costurile suplimentare de validare, atunci altcineva o poate face pentru ei. Dacă există concurență în non-mineri care încearcă să câștige taxe pe sidechain, este probabil ca aceștia să continue să liciteze taxa pe care sunt dispuși să o plătească minerilor în tranzacția lor la cerere, până când aceasta reprezintă majoritatea taxelor pe care le câștigă, cu miner păstrând doar un mic procent din profit și plătind restul minerilor.

Aceasta este mecanica din spatele modului în care funcționează lanțurile de transmisie. În continuare, lanțurile laterale federate și apoi, după aceea, o defalcare a tuturor dezavantajelor și dezavantajelor pe care le poate avea fiecare design.

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

Timestamp-ul:

Mai mult de la Revista Bitcoin