Proof of Quota (PoQ)
The PoQ ensures that a node does not exceed its allocated message quota during an epoch. It is divided into two components:
1. Proof of Cover Message Quota ($\pi_{Q_C}$):
- Purpose: Ensures that a node is eligible to emit cover messages within a quota $Q_C$ for an epoch.
- Key Idea: The public key $\mathbf K_i$ belongs to a key set $\mathcal{K}e$ *derived from a valid Proof of Role $(\pi{R,e})$* for the epoch $e$ and its index $i$ is below $Q_C$.
- Constraints:
- $K_i \in \mathcal{K}_e$ (proves membership).
- $i < Q_C$ (ensures the index is within the quota limit).
- $\pi_{R,e}$ is valid and corresponds to the epoch $e$.
- Witness:
- Private key corresponding to $K_i$
- Proof of role $\pi_{R,e}$.
- Index $i$ of the key $K_i$.
- Public Inputs:
- Public key $K_i$.
- Epoch $e$.
- Key set $\mathcal{K}_e$.
- Quota limit $Q_C$.
2. Proof of Data Message Quota ($\pi_{Q_D}$):
- Purpose: Ensures that a node is eligible to emit data messages within a quota $Q_D$ for an epoch.
- Key Idea: The public key $K_i$ belongs to a key set $\mathcal{K}$ derived from a valid Proof of Leader $(\pi_L$) and its index $i$ is below $Q_D$.
- Constraints:
- $K_i \in \mathcal{K}$ (proves membership).
- $i < Q_D$ (ensures the index is within the quota limit).
- $\pi_L$ is valid and corresponds to the leader selection.
- Witness:
- Private key corresponding to $K_i$.
- Proof of leader $\pi_L$.
- Index $i$ of the key $K_i$.
- Public Inputs:
- Public key $K_i$.
- Key set $\mathcal{K}$.
- Quota limit $Q_D$.
3. Combined Proof ($\pi_Q$):
- Purpose: A logical OR proof that ensures either the cover quota proof or the data quota proof is valid.
- Key Idea: $\pi_Q = \pi_{Q_C} \lor \pi_{Q_D}$.
- Constraints:
- Either $\pi_{Q_C}$ is valid or $\pi_{Q_D}$ is valid.
- Witness:
- One of the above witnesses depending on which proof is satisfied.
- Public Inputs:
- Public keys and relevant parameters for both proofs.