Files
papers/lux-validator-mpc/sections/05-frost-threshold-schnorr-and-bls-signatur.tex
zeekay 4a753bb639 papers: reorganize into per-paper dirs, add Antje Worring as co-author
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.
2026-04-18 21:50:07 -07:00

62 lines
2.3 KiB
TeX

\section{FROST: Threshold Schnorr and BLS Signatures}
\label{sec:frost}
\subsection{Protocol Overview}
FROST (Flexible Round-Optimized Schnorr Threshold)~\cite{komlo2020frost} is a
two-round threshold Schnorr signature protocol. Unlike CGGMP21, FROST operates
over groups where Schnorr signatures are native, making it suitable for:
\begin{itemize}[leftmargin=2em]
\item Ed25519 (Solana, Cosmos, Polkadot)
\item BLS12-381 (Ethereum consensus, Lux consensus)
\item BIP-340 Taproot (Bitcoin)
\end{itemize}
\subsection{Two-Round Protocol}
\begin{algorithm}[ht]
\caption{FROST Signing.}
\label{alg:frost}
\begin{algorithmic}[1]
\Require Message $m$; key shares $sk_i$ for $i \in S$; $|S| = t$
\Ensure Schnorr signature $(\tilde{R}, z)$
\State \textbf{Round 1 (commitment):}
\ForAll{$P_i \in S$}
\State Sample $(d_i, e_i) \leftarrow \mathbb{Z}_q^2$
\State Broadcast $(D_i, E_i) = (d_i \cdot G, e_i \cdot G)$
\EndFor
\State \textbf{Round 2 (response):}
\State $B \leftarrow \{(i, D_i, E_i)\}_{i \in S}$
\State $\rho_i \leftarrow H(\text{``binding''}, i, m, B)$ for each $i$
\State $\tilde{R} \leftarrow \sum_{i \in S} (D_i + \rho_i \cdot E_i)$
\State $c \leftarrow H(\tilde{R}, pk, m)$ \Comment{Fiat-Shamir challenge}
\ForAll{$P_i \in S$}
\State $z_i \leftarrow d_i + \rho_i \cdot e_i + \lambda_i \cdot sk_i \cdot c$
\State Broadcast $z_i$
\EndFor
\State $z \leftarrow \sum_{i \in S} z_i$
\State \Return $(\tilde{R}, z)$
\end{algorithmic}
\end{algorithm}
\subsection{FROST for BLS}
FROST extends naturally to BLS signatures because BLS signing is a scalar
multiplication $\sigma = sk \cdot H(m)$ in $\mathbb{G}_1$. Threshold BLS:
\begin{enumerate}[leftmargin=2em]
\item Each party computes partial signature $\sigma_i = sk_i \cdot H(m)$.
\item The coordinator reconstructs $\sigma = \sum_{i \in S} \lambda_i \cdot \sigma_i$.
\item Verification: $e(\sigma, G_2) = e(H(m), pk)$ where $pk \in \mathbb{G}_2$.
\end{enumerate}
BLS threshold signing requires only \emph{one} round (each party independently
computes their partial signature). No precomputation or commitment phase is needed.
This makes BLS threshold signing significantly faster than ECDSA threshold signing.
%% ========================================================================
%% 6. KEY RESHARING
%% ========================================================================