Retragerile la mizare

Începând cu actualizarea Shanghai/Capella, retragerile au fost activate în Lanțul Beacon, cu includerea EIP-4895. Această propunere de îmbunătățire a Ethereum permite retragerea automată a recompenselor în stratul de execuție și, de asemenea, oferă o modalitate pentru validatorii care au ieșit să deblocheze întregul sold — nu este necesar gaz.

Activarea retragerilor

Pentru ca validatorul să poată efectua retrageri de orice fel, trebuie oferită și înregistrată o adresă pentru retrageri în contul dumneavoastră din Lanțul Beacon. Aceasta trebuie să fie o adresă pe care să o controlați și nu poate fi schimbată odată ce a fost confirmată.

Validatorii actuali

În funcție de cum ați configurat depozitul inițial, contul ar putea sau ar putea să nu fie pregătit deja pentru retrageri:
  • Mizare Depozit CLI: dacă ați folosit indicatorul --eth1_withdrawal_address când generați chei, puteți continua
  • Key Gen GUI Wagyu: dacă ați furnizat o adresă pentru retragere la generarea cheilor, puteți continua (identificat în „modul avansat”)
Introduceți indexul validatorului pentru a verifica dacă aveți contul pregătit pentru retrageri sau nu:

Actualizarea cheilor de validator

În cazul în care contul de validator încă are acreditări de retragere BLS (0x00), un mesaj de unică folosință trebuie să fie un semnal difuzat pe care contul stratului de execuție trebuie folosit pentru toate retragerile.
  • 0x00 = „Tip 0” = chei BLS = Coduri de autentificare vechi pentru retrageri: Neeligibil pentru retrageri
  • 0x01 = „Type 1” = Chei de execuție = Acreditări pentru retragere noi: Retrageri activate
Rețineți că acreditări pentru retragere nu sunt identice cu destinatar comision, care primește comisioanele de tranzacție din blocurile propuse. Acestea pot fi setate la aceeași adresă, dar fiecare trebuie setată separat.

Instrumente disponibile pentru generarea mesajului de schimbare a cheii

Aceste instrumente vă vor ajuta să generați cheile și mesajele necesare pentru a semna. Mesajele semnate pot fi transmise pentru includere în blocuri începând cu actualizarea Shanghai/Capella.
Acest lucru necesită fraza de cuvinte mnemonică și trebuie efectuată pe o mașină izolată offline.

Coadă Modificare BLS la execuție (BTEC)

Una dintre cozile care merită menționate este o coadă care limitează câte adrese de retragere BLS (0x00) pot fi actualizate la adresa de execuție (0x01) în timpul unui bloc dat.If more than 16 requests are being made at one time, a queue will be formed and these will be processed in subsequent blocks. Once completed, your validator is permanently enabled for withdrawals, and will be eligible for payouts during the next sweep.

Retrageri excedent sold (retrageri parțiale)

O retragere excedent sold este procesată când un validator activ are un sold efectiv maxim de 32 și un sold total de peste 32. Un singur validator nu poate obține recompense pentru soldul care depășește 32 ETH și, astfel, orice sold suplimentar al acestor conturi va fi extras automat în adresa Ethereum.Acestea sunt denumite, de asemenea, „retrageri parțiale” sau „plăți pentru recompense”, deoarece restul de 32 de ETH rămâne blocat și mizat.
📝 Nu se pot solicita manual cantități de ETH pentru retragere

Abandonarea mizării (retrageri integrale)

O retragere completă este procesată pentru orice validatori inactivați care nu mai sunt considerați a fi implicați în mizare, care au abandonat integral responsabilitățile de validare. Astfel, pentru ca un validator să își retragă complet soldul, trebuie să finalizeze mai întâi procesul de ieșire.

Pentru a ieși din procesul de mizare și pentru retragerea completă a întregului sold rămas, trebuie să efectuați două lucruri:

  1. Asigurați-vă că ați actualizat acreditările de retragere cu o adresă a execuției pentru retragere
  2. Semnalizați intenția de a abandona mizarea prin semnarea și difuzarea unui mesaj de ieșire voluntară folosind cheile validatorului și clientul validatorului
Prin efectuarea pasului unu, veți activa retragerile din contul de validator. Acest lucru va declanșa automat plățile excedentare aferente soldului (retrageri parțiale) care urmează să fie prelucrate, dar acest lucru nu deblochează automat restul de fonduri, nici nu declanșează o ieșire din rețea.Cei care doresc ca validatorul propriu să iasă din procesul de mizare și să își retragă ETH, trebuie să consulte ghidul de mai jos aferent configurației dumneavoastră:Clienți cu nivel de consens:Instrumente nod alternativ:
Pentru a face un cont eligibil pentru o retragere totală, trebuie să ieșiți mai întâi din contul validatorului. Se poate ieși din conturile validatorilor din mizare în două modalități principale: voluntar sau forțat.
  • Oricine doreşte să îşi încheie obligațiile de mizare poate semna un mesaj de „ieşire voluntară”, transmis apoi Lanțului Beacon pentru demararea procesului. Acesta este un pas manual.
  • Conturile care au fost penalizate sau cu un sold insuficient vor fi forțate să iasă, respectând regulile rețelei. Acest proces este automat și nu poate fi oprit odată început.
Orice ieșire, voluntară sau nu, trebuie să fie procesată prin coada de ieșire. Acest proces nu este instantaneu și depinde de cât de multe conturi ies în același timp.
📝 Validatorii trebuie să finalizeze sarcinile de validare în continuare, până la ieșire
Când validatorul s-a retras și soldul complet a fost retras, orice fonduri suplimentare depuse în validatorul respectiv vor fi transferate automat în adresa de retragere în timpul următoarei verificări a validatorului. Un validator nou trebuie activat pentru a remiza ETH.

Mecanisme de retrageri: cum funcționează

Retragerile ca operațiune, nu ca un tip nou de tranzacție

Utilizatorii Ethereum sunt utilizați pentru tranzacțiile care sunt executate manual. Dacă doriți să transferați fonduri, trebuie să semnați o tranzacție și să plătiți gazul.EIP-4895, intitulat Retrageri forțate în lanțul Beacon ca operațiuni, implementează un design care a simplificat acest întreg proces pentru participanți.În loc ca un nou tip de tranzacție să fie utilizat pentru ca participanții să solicite manual retrageri, se verifică automat soldul excedentar eligibil al conturilor la fiecare câteva zile. Toți validatorii sunt verificați pe o buclă nelimitată și orice recompense disponibile sau fonduri ieșite sunt „împinse” automat într-un cont de retragere furnizat.

Coadă aferentă retragerii

Coada aferentă retragerii este umplută și procesată automat de cei care propun blocuri, care verifică automat orice plăți disponibile printr-un mecanism de verificare.Pe o buclă permanentă, fiecare cont de validator este evaluat continuu pentru retrageri eligibile de ETH (dintre care două tipuri, mai multe despre aceasta mai jos). Validatorii sunt procesați în ordine în funcție de numărul indicelui, iniţial de la 0, fiecare dintre cei care au propus ulterior revenind de unde a rămas ultimul.Când un validator este programat să propună următorul bloc, acesta efectuează o verificare a conturilor validatorului în căutarea retragerilor eligibile. În timpul verificării, validatorul va verifica un maxim de 16.384 conturi, încercând să găsească 16 retrageri disponibile pentru a fi procesate în următorul bloc.Ca un ac de ceas, procesul merge într-o direcție și, când se ajunge la ultimul validator, verificarea o ia de la început. Pentru fiecare validator de pe traseu, contul este evaluat pentru identificarea potențialelor retrageri.
📝Rețineți că aceste cozi de „retragere” și „BLS la execuție” sunt independente și nu concurează. Fiecare este limitată la una per bloc.

Coadă de ieșire și coadă de activare

După cum știe oricine care a trecut deja prin procesul de activare a unui validator, acest proces nu este automat, mai ales dacă sunt mulți alți utilizatori care încearcă să se alăture în același timp. Acest lucru se datorează faptului că stratul de consens utilizează o coadă de activare pentru a limita cât de repede noile conturi de validator pot intrare în rețea.Similar, există și o coadă de ieșire, care limitează cât de repede pot ieșire rețeaua validatorii. Acest lucru este justificat din motive de securitate. Dat fiind că fiecare validator este limitat la un sold maxim efectiv de 32 ETH, acest lucru împiedică potențiala utilizare a unor părți mari de ETH într-un atac și ieșirea rapidă din rețea a tuturor participanților simultan.Numărul de validatori care poate fi activat sau abandonat într-o anumită epocă (6,4 minute) este stabilit de numărul de validatori activi existenți în prezent pe rețea.Patru (4) ieșiri de validator sunt permise per epocă, plus încă una (1) pentru fiecare 65.536 validatori activi, în total peste 327.680. Începând din februarie 2023, această limită este de șapte (7) și va crește la opt (8) în cazul în care numărul de validatori atinge 524.288.
📝Rețineți că aceste cozi de „activare” și „ieșire” sunt independente și nu concurează. Fiecare este limitată la una per epocă.

Epocă de ieșire și epocă de retragere

Imediat după difuzarea unui mesaj voluntar de ieşire semnat, valorile epocă de ieșire şi epocă pentru retragere sunt calculate pe baza numărului de epoci curent. Aceste valori determină exact când nu va mai fi necesar ca validatorul să efectueze validarea online și, respectiv, atunci când validatorul este eligibil pentru o retragere completă.
Ieșire din epocă - epoca la care valodatorul nu mai este activ, nu mai obține recompense și nu se mai supune regulilor de penalizare.Această epocă este determinată de prima epocă disponibilă, care nu este deja maximizată cu alți validatori care abandonează (limita de rată depinde de totalul validatorilor din rețea) și trebuie să fie cel puțin patru (4) epoci după inițierea abandonului.Până la această epocă (în timp ce se află „în coadă”), validatorul trebuie să fie online și trebuie păstrate aceleași reguli de penalitate ca întotdeauna. Nu opriți validatorul până nu se ajunge la epocă.
Epocă pentru retragere - epoca la care fondurile de validator sunt disponibile pentru o retragere completă în timpul următoarei verificări a validatorului.Aceasta are loc la fiecare 256 de epoci după epoca de ieșire și necesită ~27,3 ore.
Sumar abandonare coadăOdată difuzat un mesaj de abandonare voluntară, acesta necesită:
  • Cel puțin Aproximativ 25 de minute (patru epoci) din epoca actuală înainte de a ajunge la epoca de ieșire (fără altele în coadă, foarte variabil)
  • Apoi încă ~27 de ore (256 de epoci) înainte ca aceste fonduri să fie semnalizate ca disponibile pentru retragere
  • Apoi până la încă câteva zile pentru ca următoarea secvență a validatorului să execute retragerea completă (presupune acreditări pentru retragere 0x01)
This timing of this last step is variable depending on validator index, current sweep position, and number of validators. Mai multe despre frecvența plăților mai jos.
Rețineți că, odată ce un utilizator are acreditări de retragere 0x01 și a transmis o ieșire voluntară, nu este necesară o acțiune suplimentară până când procesarea este finalizată.

Cum este evaluat fiecare validator pentru retrageri

Se urmează un arbore de decizie pentru a stabili ce tip de retragere va fi inițiat. În cazul în care validatorul verificat dispune de ETH eligibil pentru a fi retras, acesta se adaugă la lista de retragere. Dacă nu există, contul este omis.
  1. A fost oferită o adresă de retragere?
    • Dacă da, treceți la următoarea întrebare
    • Dacă nu, opriți-vă. Nu vor fi procesate retrageri și contul va fi omis
  2. Validatorul a finalizat procesul de ieșire?
    • Dacă da, opriți procesarea. Retragere completă a fost procesată pentru orice sold rămas
    • Dacă nu, treceți la următoarea întrebare
  3. Soldul efectiv a ajuns la valoarea maximă de 32?
    • Dacă da, retragere excedent sold a fost procesată
    • Dacă nu, nu vor fi procesate retrageri și contul va fi omis
Apoi producătorul de blocuri verifică următorul validator în coadă și stabilește încă o dată dacă o retragere trebuie procesată sau nu. Acest proces este repetat până când au fost identificate 16 retrageri eligibile sau până la verificarea a 16.384 validatori, oricare dintre acestea survine prima. În acel moment, coada de retragere este trimisă către stratul de execuție pentru includere la finalul următorului bloc.

Ce factori afectează frecvența plăților?

Durata ciclului de verificare a fiecărui cont depinde de:
  1. Limite rată setate în coada aferentă retragerii (ar putea fi schimbate pe parcursul testelor înainte de Shanghai)
    • Max withdrawals per payload: 16 (24)
      Numărul maxim de retrageri care poate fi procesat într-un singur bloc
    • Max validators per withdrawals sweep: 16,384 (214)
      Numărul maxim de conturi care pot fi verificate într-un bloc. Se oprește atunci când sunt găsite 16 retrageri. Dacă nu sunt găsite 16 recompense eligibile în primele 16.384 conturi verificate, coada retragerilor pentru blocul respectiv va fi trimisă așa cum este și următorul inițiator va prelua de unde a rămas acest bloc.
  2. Numărul total de conturi de validator (numărul indexului, fiecare cont de validator înregistrat vreodată, activ doar în timp)
  3. Număr total de conturi de validator cu retrageri eligibile (variabil)
    • Conturile fără acreditări de retragere actualizate vor fi omise
    • Conturile cu retrageri integrale și sold zero vor fi omise
    • Conturile active cu un sold efectiv sau un sold total mai mic de 32 vor fi omise
  4. Număr de sloturi goale (oportunități ratate la nivelul blocurilor, variabile, de obicei minime)
  5. Sincronizare slot strat de consens: 12 secunde (nu se planifică modificarea)
Aceasta poate fi rezumată pentru a estima limita superioară a duratei unei acțiuni complete de verificare în funcție de numărul de retrageri care trebuie prelucrate:
Număr de retrageriTimpul până la finalizare
400.0003,5 zile
500.0004,3 zile
600.0005,2 zile
700.0006,1 zile
800.0007 zile

Informații suplimentare