Skip to content

Commit ede6bab

Browse files
committed
Write clearer about bls
1 parent 3cf76f4 commit ede6bab

File tree

4 files changed

+40
-8
lines changed

4 files changed

+40
-8
lines changed

src/Hydra/Protocol/OffChain.tex

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,12 @@ \section{Off-Chain Protocol}\label{sec:offchain}
99
on- and off-chain semantics. Participants of the protocol are also called Hydra
1010
head members, parties or simply protocol actors. The protocol is specified as a
1111
reactive system that processes three kinds of inputs:
12+
13+
\noindent The off-chain protocol coordinates BLS accumulator operations (see Section~\ref{sec:bls-accumulators})
14+
for partial fanout support. When UTxO sets are too large for single transactions,
15+
the off-chain protocol automatically falls back to partial distribution using
16+
exclusion proofs, ensuring all UTxOs can be distributed across multiple transactions
17+
while maintaining cryptographic integrity. The protocol processes three kinds of inputs:
1218
\begin{enumerate}
1319
\item On-chain protocol transactions as introduced in
1420
Section~\ref{sec:on-chain}, which are posted to the mainchain and can be

src/Hydra/Protocol/OnChain.tex

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,12 @@ \section{On-chain Protocol}\label{sec:on-chain}
1717
protocol transaction
1818
on-chain: \mtxInit{}~\ref{sec:init-tx}, \mtxCom{}~\ref{sec:commit-tx}, \mtxAbort{}~\ref{sec:abort-tx}, \mtxCollect{}~\ref{sec:collect-tx}, \mtxIncrement{}~\ref{sec:increment-tx}, \mtxDecrement{}~\ref{sec:decrement-tx}, \mtxClose{}~\ref{sec:close-tx}, \mtxContest{}~\ref{sec:contest-tx}, and \mtxFanout{}~\ref{sec:fanout-tx}. \\
1919

20+
\noindent The protocol uses BLS accumulators (see Section~\ref{sec:bls-accumulators}) to enable
21+
partial fanout when UTxO sets exceed transaction size limits. The \mtxCollect{} transaction
22+
creates BLS accumulator commitments to UTxO sets, and \mtxFanout{} transactions use
23+
exclusion proofs to distribute subsets of UTxOs while maintaining cryptographic guarantees
24+
about the remaining UTxOs. \\
25+
2026
\noindent Besides the main state transitions of the head protocol, there is
2127
the related ``deposit protocol'' with two transactions in support of
2228
\mtxIncrement{}: \mtxDeposit{}~\ref{sec:deposit-tx} and \mtxRecover{}~\ref{sec:recover-tx}. \\

src/Hydra/Protocol/Preliminaries.tex

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -84,24 +84,38 @@ \subsection{Public key multi-signature scheme}\label{sec:multisig}
8484
out the $ver$ suffix for verification key such that $k = k^{ver}$ for better
8585
readability.
8686

87-
\subsection{Partial Fanout Support}\label{sec:partial-fanout}
87+
\subsection{BLS Accumulators for Partial Fanout}\label{sec:bls-accumulators}
8888

8989
\noindent To enable partial fanout when UTxO sets are too large for a single transaction,
90-
the protocol uses a cryptographic commitment scheme that supports partial distribution
90+
the protocol uses BLS (Boneh-Lynn-Shacham) accumulators that support partial distribution
9191
proofs. This allows distributing a subset of UTxOs while proving that the remaining
9292
UTxOs are still valid and can be distributed in subsequent transactions.
9393

94+
\begin{definition}[BLS Accumulator]
95+
A BLS accumulator scheme provides the following operations:
96+
\begin{itemize}
97+
\item $\accSetup$ generates public parameters for the accumulator system
98+
\item $\accCommit(U)$ creates a commitment to a UTxO set $U$
99+
\item $\accWitness(C, u)$ generates a membership witness for UTxO $u$ in commitment $C$
100+
\item $\accVerify(C, u, w)$ verifies that witness $w$ proves $u$ is in commitment $C$
101+
\item $\accExclude(C, S)$ generates an exclusion proof for subset $S$ from commitment $C$
102+
\item $\accVerifyExclude(C, S, \pi)$ verifies that exclusion proof $\pi$ allows removal of $S$ from $C$
103+
\end{itemize}
104+
\end{definition}
105+
94106
\begin{definition}[Partial Distribution]
95107
For a UTxO set $U$ and a subset $S \subseteq U$ to be distributed:
96108
\begin{itemize}
97-
\item $\accUTxO(U)$ creates a commitment to the UTxO set $U$
98-
\item $\accPartial(U, S)$ creates a proof that subset $S$ can be distributed
99-
\item $\accVerifyPartial(C, S, \pi)$ verifies that proof $\pi$ allows distribution of $S$ from commitment $C$
109+
\item $\accUTxO(U)$ creates a BLS accumulator commitment to the UTxO set $U$
110+
\item $\accPartial(U, S)$ creates an exclusion proof showing that subset $S$ can be distributed
111+
\item $\accVerifyPartial(C, S, \pi)$ verifies that exclusion proof $\pi$ allows distribution of $S$ from commitment $C$
100112
\end{itemize}
101113
\end{definition}
102114

103-
\noindent This enables the protocol to handle large UTxO sets by automatically falling back
104-
to partial distribution when full fanout exceeds transaction size limits.
115+
\noindent The BLS accumulator enables the protocol to handle large UTxO sets by automatically falling back
116+
to partial distribution when full fanout exceeds transaction size limits. The accumulator provides
117+
cryptographic guarantees that distributed UTxOs are valid and that remaining UTxOs are still
118+
available for future distribution.
105119

106120
\subsection{Extended UTxO}\label{sec:eutxo}
107121
The Hydra Head protocol is specified to work on the so-called Extended UTxO (EUTxO) ledgers

src/macros.tex

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -366,7 +366,13 @@
366366
\newcommand{\sortOn}{\mathsf{sortOn}}
367367
\newcommand{\combine}{\mathsf{combine}}
368368

369-
% Partial fanout functions
369+
% BLS Accumulator functions for partial fanout
370+
\newcommand{\accSetup}{\mathsf{accSetup}}
371+
\newcommand{\accCommit}{\mathsf{accCommit}}
372+
\newcommand{\accWitness}{\mathsf{accWitness}}
373+
\newcommand{\accVerify}{\mathsf{accVerify}}
374+
\newcommand{\accExclude}{\mathsf{accExclude}}
375+
\newcommand{\accVerifyExclude}{\mathsf{accVerifyExclude}}
370376
\newcommand{\accUTxO}{\mathsf{accUTxO}}
371377
\newcommand{\accPartial}{\mathsf{accPartial}}
372378
\newcommand{\accVerifyPartial}{\mathsf{accVerifyPartial}}

0 commit comments

Comments
 (0)