Prelievi di staking

A partire dall'aggiornamento Shanghai/Capella, sono stati abilitati i prelievi sulla beacon chain, con l'inserimento di EIP-4895. Questa proposta di miglioramento di Ethereum consente di prelevare automaticamente le ricompense a livello di esecuzione, e fornisce anche un modo ai validatori usciti di sbloccare l'intero saldo, senza la necessità di gas.

Abilitare i prelievi

Affinché il validatore sia in grado di effettuare qualsiasi tipo di prelievo, occorre fornire un indirizzo di prelievo e registrarlo nel proprio conto sulla beacon chain. Questo dovrebbe essere un indirizzo monitorato e, una volta impostato, non può essere modificato.

Validatori correnti

A seconda di come hai impostato il deposito iniziale, il conto potrebbe essere già pronto o meno per i prelievi:
  • Staking Deposit CLI: se hai usato il flag --eth1_withdrawal_address durante la generazione delle chiavi, puoi continuare
  • GUI Wagyu Key Gen: se hai fornito un indirizzo di prelievo quando hai generato le chiavi, puoi continuare (si trova nella “modalità avanzata”)
Inserisci qui il tuo indice del validatore per verificare se il tuo conto è pronto o meno per i prelievi:

Come aggiornare le chiavi del validatore

Se il conto del validatore presenta ancora credenziali di ritiro BLS (0x00), deve essere trasmesso un messaggio una tantum che indica quale conto del livello di esecuzione deve essere usato per tutti i prelievi.
  • 0x00 = "Type 0" = chiavi BLS = vecchie credenziali di prelievo: Non idonei per i prelievi
  • 0x01 = "Type 1" = chiavi di esecuzione = nuove credenziali di prelievo: Prelievi abilitati
Ricorda che le credenziali di prelievo non sono le stesse del destinatario della commissione, che riceve le commissioni di transazione dai blocchi proposti. Entrambe possono essere impostate sullo stesso indirizzo, ma ciascuna deve essere impostata separatamente.

Strumenti disponibili per generare il messaggio di modifica della chiave

Questi strumenti ti aiuteranno a generare le chiavi e i messaggi necessari da firmare. I messaggi firmati possono essere trasmessi per essere inseriti in blocchi a partire dall'aggiornamento Shanghai/Capella.
Tale operazione richiede l'uso della frase di seed mnemonica e deve essere eseguita su una macchina isolata offline.

Coda di passaggio da BLS all'esecuzione (BTEC)

Una delle code da notare è una coda che limita quanti indirizzi di prelievo BLS (0x00) possono essere aggiornati a un indirizzo di esecuzione (0x01) durante un determinato blocco.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.

Prelievi del saldo in eccesso (prelievi parziali)

Un prelievo del saldo in eccesso viene elaborato quando un validatore attivo ha un saldo effettivo massimo di 32, e il saldo totale è superiore a 32. Un singolo validatore non può ottenere ricompense in eccesso oltre 32 ETH, quindi da questi conti sarà prelevato automaticamente un qualsiasi saldo extra al rispettivo indirizzo Ethereum.Questi sono anche detti “prelievi parziali” o “pagamenti di ricompensa” in quanto i restanti 32 ETH rimangono bloccati e in staking.
📝 Non è possibile richiedere manualmente importi specifici di ETH da prelevare

Come uscire dallo staking (prelievi completi)

Viene elaborato un prelievo completo per tutti i validatori inattivati che non sono più considerati in staking, che sono completamente usciti dalle loro responsabilità di convalida. Pertanto, affinché un validatore prelevi tutto il saldo, deve prima completare il processo di uscita.

Per uscire dallo staking e fare un prelievo completo dell'intero saldo residuo, devi fare due cose:

  1. Assicurati di aver aggiornato le tue credenziali di prelievo con un indirizzo di prelievo di esecuzione
  2. Segnala la tua intenzione di uscire dallo staking firmando e trasmettendo un messaggio di uscita volontaria alla rete utilizzando le chiavi del validatore e il client validatore
Completando il primo passo, attiverai i prelievi dal tuo conto validatore. Questo attiverà automaticamente i pagamenti del saldo in eccesso (prelievi parziali) da elaborare, ma questo non sblocca automaticamente il resto dei tuoi fondi né attiva un'uscita dalla rete.Chi vuole far uscire il validatore dallo staking e prelevare i propri ETH deve consultare la guida qui sotto che corrisponde alla propria configurazione:Client di consenso:Strumenti di nodo alternativi:
Per rendere un conto idoneo a un prelievo completo, per prima cosa devi uscire dal conto. Esistono due modi principali per far uscire i conti validatori dallo staking: volontariamente o in modo forzoso.
  • Chiunque desideri concludere i propri obblighi di staking può firmare un messaggio di “uscita volontaria” che viene poi trasmesso alla beacon chain per avviare il processo. Si tratta di un passaggio manuale.
  • I conti sottoposti slashing o con un saldo insufficiente, saranno costretti a uscire secondo le regole della rete. Questa operazione è automatica e non può essere interrotta una volta iniziata.
Qualsiasi uscita, volontaria o meno, deve essere elaborata attraverso la coda di uscita. Tale azione non è istantanea, e dipende da quanti altri conti stanno uscendo allo stesso tempo.
📝 I validatori devono comunque completare le proprie mansioni di convalida fino all'uscita
Una volta che un validatore è uscito e il suo saldo totale è stato prelevato, tutti i fondi aggiuntivi depositati su quel validatore saranno automaticamente trasferiti all'indirizzo di prelievo durante lo sweep del validatore successivo. Per rimettere in staking gli ETH, deve essere attivato un nuovo validatore.

Meccanica dei prelievi: come funzionano

Prelievi come operazione, non come nuovo tipo di transazione

Gli utenti di Ethereum sono abituati a transazioni eseguite manualmente: se si desidera trasferire fondi, è necessario firmare una transazione e pagare il gas.EIP-4895, intitolato Beacon chain spinge i prelievi come operazioni, implementa un design che semplifica l'intero processo per gli staker.Invece di un nuovo tipo di transazione utilizzato affinché gli staker richiedano manualmente prelievi, i conti vengono controllati automaticamente per il saldo in eccesso ammissibile a intervalli di pochi giorni. Tutti i validatori sono controllati su un ciclo infinito, e qualsiasi ricompensa disponibile o fondi usciti sono automaticamente “spinti” in un conto di prelievo fornito.

Coda di prelievo

La coda di prelievo viene compilata ed elaborata automaticamente dai proponenti di blocchi, che controllano automaticamente eventuali pagamenti disponibili tramite un meccanismo di sweeping.In un ciclo infinito, il conto di ogni singolo validatore viene valutato di continuo per i prelievi di ETH idonei (ne esistono di due tipi, come vedremo più avanti). I validatori vengono elaborati in ordine per numero di indice, che inizia da 0, e ogni proponente successivo riprende da dove ha lasciato l'ultimo.Quando un validatore è programmato per proporre il blocco successivo, esegue uno sweep di account validatori alla ricerca di prelievi idonei. Durante lo sweep, il validatore controllerà un massimo di 16.384 account, cercando di trovare 16 prelievi disponibili da elaborare nel blocco successivo.Al pari di una lancetta di orologio, questo processo avanza in una sola direzione, e quando viene raggiunto l'ultimo validatore, lo sweep ricomincia da capo. A ogni validatore lungo il percorso, viene valutato il conto per potenziali prelievi.
📝Le code di "prelievo" e "da BLS a esecuzione" sono indipendenti e non in competizione. Ciascuna è limitata per blocco.

Coda di uscita e coda di attivazione

Come ben sanno coloro che sono già passati per il processo di attivazione di un validatore, questo processo non è automatico, soprattutto se ci sono molti altri utenti che cercano di entrare nello stesso momento. Questo perché il livello di consenso utilizza una coda di attivazione per limitare la velocità con cui i nuovi conti validatori possono entrare nella rete.Allo stesso modo, esiste anche una coda di uscita, che limita la velocità con cui i validatori possono abbandona la rete. Questo avviene per motivi di sicurezza. Dato che ogni validatore è limitato a un saldo effettivo massimo di 32 ETH, ciò impedisce che grandi percentuali di ETH possano essere utilizzate potenzialmente in un attacco e poi uscire subito dalla rete in un attimo.Il numero di validatori che possono essere attivati o da cui uscire in una data epoca (6,4 minuti) è determinato da quanti validatori attivi sono attualmente sulla rete.Sono consentite quattro (4) uscite dei validatori per ogni epoca, più un'altra (1) ogni 65.536 validatori attivi totali su 327.680. A partire da febbraio 2023, questo limite è di sette (7) e arriverà a otto (8) se/quando il numero di validatori arriva a 524.288.
📝Le code di "attivazione" e "uscita" sono indipendenti e non in competizione. Ciascuna è limitata per epoca.

Epoca di uscita ed epoca di prelievo

Subito dopo aver trasmesso un messaggio di uscita volontario firmato, i valori epoca di uscita e epoca idonea per il prelievo sono calcolati in base al numero di epoca corrente. Questi valori determinano con precisione quando il validatore non dovrà più essere online per eseguire la validazione e quando il validatore è idoneo per il prelievo completo, rispettivamente.
Epoca di uscita: epoca in cui il validatore non è più attivo, non guadagna più ricompense e non è più soggetto a regole di slashing.Questa epoca è determinata dalla prima epoca disponibile che non abbia già raggiunto il limite con altri validatori in uscita (il limite di velocità dipende dai validatori totali sulla rete), e deve essere almeno quattro (4) epoche dopo l'inizio dell'uscita.Fino a questa epoca (nello stato "in coda"), il validatore deve essere online e deve rispettare le consuete regole di slashing. Non spegnere il validatore fino a quando non si raggiunge questa epoca.
Epoca idonea per il prelievo: epoca in cui i fondi del validatore sono idonei per un prelievo completo durante lo sweep del validatore successivo.Questo si verifica 256 epoche dopo l'epoca di uscita, che richiede ~27,3 ore.
Riepilogo sulla coda di uscitaUna volta trasmesso un messaggio di uscita volontaria firmato, ci vorranno:
  • Almeno ~25 minuti (quattro epoche) dall'epoca corrente prima di raggiungere l'epoca di uscita (senza altri nella coda, altamente variabile)
  • Poi un'altra ~27 ore (256 epoche) prima che questi fondi siano contrassegnati come ritirabili
  • Poi fino a qualche altro giorno per il prossimo sweep del validatore per eseguire il prelievo completo (presuppone credenziali di prelievo 0x01)
This timing of this last step is variable depending on validator index, current sweep position, and number of validators. Maggiori informazioni sulla frequenza dei pagamenti di seguito.
Tieni presente che, una volta che un utente possiede credenziali di prelievo 0x01 e ha trasmesso un'uscita volontaria, non sono necessarie ulteriori azioni fino al completamento dell'elaborazione.

Come viene valutato ciascun validatore per i prelievi

Si segue un albero decisionale per stabilire che tipo di prelievo sarà avviato. Se il validatore sottoposto a controllo presenta ETH idonei al prelievo, viene aggiunto alla coda di prelievo. Se non sono presenti ETH, il conto viene ignorato.
  1. È stato fornito un indirizzo di prelievo?
    • In tal caso, passa alla domanda successiva
    • In caso contrario, fermati. Non verrà elaborato alcun prelievo e il conto viene ignorato
  2. Il validatore ha completato il processo di uscita?
    • In tal caso, fermati. Prelievo completo elaborato per eventuale saldo residuo
    • In caso contrario, passa alla domanda successiva
  3. Il saldo effettivo ha raggiunto il limite di 32?
    • In caso affermativo, prelievo del saldo in eccesso elaborato
    • In caso contrario, non verrà elaborato alcun prelievo e il conto verrà ignorato
Il produttore di blocchi controlla quindi il validatore successivo in linea e determina ancora una volta se è necessario elaborare o meno un prelievo. Questo processo viene ripetuto fino a quando non sono stati individuati 16 prelievi idonei o fino a quando non sono stati controllati 16.384 validatori, a seconda di quale dei due casi si verifica per primo. A quel punto, la coda di prelievo viene inviata al livello di esecuzione da includere alla fine del blocco successivo.

Quali fattori influiscono sulla frequenza dei pagamenti?

Il tempo che impiega il ciclo per controllare ogni conto dipende da:
  1. Limiti tariffari impostati sulla coda di prelievo (potrebbe cambiare mediante test prima di Shanghai)
    • Max withdrawals per payload: 16 (24)
      Numero massimo di prelievi che possono essere elaborati in un unico blocco
    • Max validators per withdrawals sweep: 16,384 (214)
      Numero massimo di account che possono essere controllati in un blocco. Si ferma quando vengono trovati 16 prelievi. Se nei primi 16,384 conti controllati non vengono trovate 16 ricompense idonee, la coda di prelievo per quel blocco sarà inviata così com'è, e il proponente successivo riprenderà da punto in cui era rimasto.
  2. Numero totale di conti del validatore (numero di indici, ogni conto del validatore mai registrato, in crescita costante nel tempo)
  3. Numero totale di conti validatore con prelievi idonei (variabile)
    • I conti senza credenziali di prelievo aggiornate saranno ignorati
    • I conti sottoposti a prelievo completo e con un saldo pari a zero saranno ignorati
    • I conti attivi con un saldo effettivo o totale inferiore a 32 saranno ignorati
  4. Numero di slot vuoti (opportunità di blocco perse, variabile, tipicamente minimi)
  5. Tempistiche dello slot del livello di consenso: 12 secondi (nessun piano da modificare)
Insieme, queste informazioni consentono di stimare il limite superiore di quanto tempo richiede uno sweep completo a seconda di quanti prelievi devono essere elaborati:
Numero di prelieviTempo di completamento
400.0003,5 giorni
500.0004,3 giorni
600.0005,2 giorni
700.0006,1 giorni
800.0007 giorni

Letture consigliate