mirror of
https://github.com/lux-apps/papers.git
synced 2026-10-30 18:15:21 +00:00
Restructured from flat .tex/.pdf files into per-paper subdirectories. Added Antje Worring as co-author on all papers. Synced PDFs to pdfs/ for download site.
93 lines
3.4 KiB
TeX
93 lines
3.4 KiB
TeX
\section{Validator Lifecycle Management}
|
|
\label{sec:lifecycle}
|
|
|
|
\subsection{Registration and Activation}
|
|
|
|
\begin{algorithm}[H]
|
|
\caption{Validator Registration}
|
|
\label{alg:registration}
|
|
\begin{algorithmic}[1]
|
|
\Procedure{RegisterValidator}{operator, selfStake, blsKey, commission}
|
|
\State \textbf{require} $\mathsf{selfStake} \geq s^{\min}_{\text{val}} = 2{,}000$ LUX
|
|
\State \textbf{require} $\mathsf{commission} \in [c^{\min}, c^{\max}]$
|
|
\State \textbf{require} BLS proof-of-possession for $\mathsf{blsKey}$
|
|
\State Lock $\mathsf{selfStake}$ in staking contract
|
|
\State $\mathsf{activationEpoch} \gets e_{\text{current}} + 1$
|
|
\State Add to pending validator queue
|
|
\EndProcedure
|
|
\end{algorithmic}
|
|
\end{algorithm}
|
|
|
|
\subsection{Commission Rate Changes}
|
|
|
|
Validators may adjust their commission rate with restrictions:
|
|
|
|
\begin{definition}[Commission Change Rules]
|
|
\begin{enumerate}
|
|
\item Maximum increase: 2 percentage points per epoch.
|
|
\item No decrease restriction (can lower freely).
|
|
\item Change takes effect after a 1-epoch notice period.
|
|
\item Delegators are notified and can redelegate during the notice period.
|
|
\end{enumerate}
|
|
\end{definition}
|
|
|
|
This prevents validators from attracting delegators with low commissions and then suddenly raising rates.
|
|
|
|
\subsection{Voluntary Exit}
|
|
|
|
\begin{algorithm}[H]
|
|
\caption{Voluntary Validator Exit}
|
|
\label{alg:exit}
|
|
\begin{algorithmic}[1]
|
|
\Procedure{ExitValidator}{validator $v_i$}
|
|
\State Begin unbonding for all delegators of $v_i$
|
|
\State Remove $v_i$ from active set at epoch $e_{\text{current}} + 1$
|
|
\State $v_i$'s self-stake enters unbonding ($\tau_{\text{unbond}} = 14$ days)
|
|
\State Pending rewards distributed at epoch boundary
|
|
\State After $\tau_{\text{unbond}}$: release self-stake to operator
|
|
\EndProcedure
|
|
\end{algorithmic}
|
|
\end{algorithm}
|
|
|
|
\subsection{Validator Rotation and Churn}
|
|
|
|
\begin{definition}[Churn Limit]
|
|
At most $\mathsf{maxChurn} = \max(4, |\mathcal{V}| / 64)$ validators can enter or exit per epoch, preventing rapid validator set changes that could destabilize consensus.
|
|
\end{definition}
|
|
|
|
\begin{proposition}[Churn Safety]
|
|
With churn limit $C$ and epoch length $E$ blocks, the minimum time for an adversary to accumulate $1/3$ of stake through new validator registrations is:
|
|
\begin{equation}
|
|
T_{\text{takeover}} = \frac{|\mathcal{V}| / 3}{C} \cdot E \text{ blocks}
|
|
\end{equation}
|
|
For $|\mathcal{V}| = 2{,}800$, $C = 44$, $E = 8{,}640$: $T \approx 182{,}000$ blocks ($\approx 21$ days).
|
|
\end{proposition}
|
|
|
|
\subsection{Performance Scoring}
|
|
|
|
Validators are scored on a composite metric used for delegation recommendations:
|
|
|
|
\begin{definition}[Validator Performance Score]
|
|
\begin{equation}
|
|
\text{Score}_i = 0.40 \cdot u_i + 0.25 \cdot (1 - c_i / c^{\max}) + 0.20 \cdot \text{AppchainCoverage}_i + 0.15 \cdot \text{Tenure}_i
|
|
\end{equation}
|
|
where $\text{AppchainCoverage}_i = |\mathcal{K}_i| / |\mathcal{K}|$ and $\text{Tenure}_i = \min(1, \text{epochs active} / 365)$.
|
|
\end{definition}
|
|
|
|
\begin{table}[H]
|
|
\centering
|
|
\caption{Performance score distribution at epoch 500.}
|
|
\label{tab:scores}
|
|
\begin{tabular}{lrrr}
|
|
\toprule
|
|
\textbf{Score Range} & \textbf{Validators} & \textbf{Avg Stake (LUX)} & \textbf{Avg Commission} \\
|
|
\midrule
|
|
0.90--1.00 & 420 & 185,000 & 5.2\% \\
|
|
0.75--0.90 & 1,100 & 110,000 & 7.1\% \\
|
|
0.50--0.75 & 850 & 65,000 & 10.8\% \\
|
|
$< 0.50$ & 330 & 25,000 & 18.3\% \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\end{table}
|
|
|