mirror of
https://github.com/lux-apps/papers.git
synced 2026-10-30 18:15:21 +00:00
- canonical lux-corona-pq paper: rank-7 Module-LWE (A in R_q^{8x7}, q=48-bit), Module-SIS
- scrub residual Corona Ring-LWE/R-LWE labels across ethos-of-lux, pqsafe-il5,
lux-whitepaper, lux-quasar-composition, lp-020; Corona<->Pulsar = parameter regime,
both Module-LWE (not rank-1-vs-rank-k)
- LLM.md: drop stale 'Corona as rank-1' wobble note; align to code/Ringtail params
- rebuild affected PDFs
121 lines
5.6 KiB
TeX
121 lines
5.6 KiB
TeX
\section{Conflicts resolved by LP-300}
|
|
\label{sec:conflicts}
|
|
|
|
LP-300 records -- and pins the resolution for -- four pre-existing
|
|
allocation conflicts discovered during the corpus audit. Each row
|
|
below is a closed conflict; the consuming LPs have been amended (or
|
|
must be amended) to point at their post-resolution slots. The
|
|
canonical handoff lives in LP-214 \S``Schema ID Allocation'' (Option B
|
|
map); LP-300 reproduces it here as the normative arbiter.
|
|
|
|
\subsection{Conflict 1 -- \texttt{0xE0..0xEF} triple-claim}
|
|
|
|
The single most consequential conflict in the corpus. Three LPs
|
|
simultaneously claimed bytes inside the same 16-byte block:
|
|
|
|
\begin{itemize}[leftmargin=2em,nosep]
|
|
\item LP-208 originally allocated \texttt{0xF0..0xFF} for DAG mempool,
|
|
then reclaimed the prefix to \texttt{0xE0..0xE1} after the LP-214
|
|
light client claim surfaced.
|
|
\item LP-211 allocated \texttt{0xE2..0xE7} for cross-shard 2PC (six
|
|
messages).
|
|
\item LP-218 Draft initially allocated \texttt{0xE0..0xEF} for
|
|
rollup envelopes -- overlapping LP-208 \emph{and} LP-211.
|
|
\item LP-214 separately claimed \texttt{0xF0..0xF2} for light-client
|
|
envelopes, colliding with the original LP-208 claim.
|
|
\end{itemize}
|
|
|
|
\paragraph{Resolution.} Per the LP-214 canonical handoff:
|
|
|
|
\begin{table}[h]
|
|
\centering
|
|
\small
|
|
\begin{tabular}{@{}p{1.4cm}p{2.4cm}p{8.4cm}@{}}
|
|
\toprule
|
|
\textbf{LP} & \textbf{Final range} & \textbf{Rationale} \\
|
|
\midrule
|
|
LP-208 & \texttt{0xE0..0xE1} & Earliest concrete Draft with measurable wire impact; takes the low edge of the block. \\
|
|
LP-211 & \texttt{0xE2..0xE7} & Six-message contiguous block; sat unconflicted at original allocation. \\
|
|
LP-218 & \texttt{0xE8..0xEF} & Shifted from prior \texttt{0xE0..0xE3} claim; gets the contiguous 8-byte tail of the block. \\
|
|
LP-214 & \texttt{0xF0..0xF2} & Sits in the framing future range; LP-208 vacated \texttt{0xF0..0xF1} when it moved to \texttt{0xE0..0xE1}. \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\caption{Final \texttt{0xE0..0xFF} layout. Every consuming LP must
|
|
amend its ``Wire schemas'' section to cite the post-resolution range
|
|
and reference LP-300 \S\ref{sec:typekind} as the binding map.}
|
|
\label{tab:conflict1}
|
|
\end{table}
|
|
|
|
LP-219 reuses LP-211's \texttt{0xE2..0xE7} at the rollup tier; this
|
|
is treated as a ShapeKind-level extension (TxKind \texttt{0x44}
|
|
inside the LP-218 \texttt{0xEC} envelope) rather than a TypeKind-level
|
|
reclamation, so it does not contend for the slot at namespace 1.
|
|
|
|
\subsection{Conflict 2 -- LP-218 P3Q slot vs displaced Plonky3 STARK}
|
|
|
|
LP-218 attaches a P3Q wrapper at PQ precompile slot \texttt{0x012205}.
|
|
The original LP-218 Draft cited a Plonky3-fork STARK as the
|
|
underlying primitive at the same slot. LP-0120's PQ precompile
|
|
registry instead pins \texttt{0x012205} to the P3Q rollup-batch
|
|
verifier wrapper, with the raw STARK primitive displaced.
|
|
|
|
\paragraph{Resolution.} \texttt{0x012205} is owned by LP-0120 with
|
|
the LP-218 wrapper. The displaced Plonky3-fork STARK is held at the
|
|
placeholder slot \texttt{0x012220} pending a dedicated LP allocation.
|
|
LP-300 records both states: \texttt{0x012205} is live for the wrapper;
|
|
\texttt{0x012220} is Reserved for the displaced primitive. The
|
|
wrapper's verifier dispatches the underlying primitive by kind byte
|
|
at the body level, so a future move of the raw primitive to a
|
|
different slot does not break LP-218.
|
|
|
|
\subsection{Conflict 3 -- LP-220 sibling-slots vs LP-218 kind-dispatch}
|
|
|
|
LP-220 proposed allocating sibling slots \texttt{0x012206} (Corona)
|
|
and \texttt{0x012207} (Magnetar) as wrapper-only entries, distinct
|
|
from LP-218's slot reuse at \texttt{0x012205}. The conflict surfaced
|
|
when LP-0120's PQ registry assigned the same two slots to the raw
|
|
primitives -- Corona at \texttt{0x012206} (Module-LWE threshold) and
|
|
Magnetar at \texttt{0x012207} (SLH-DSA threshold).
|
|
|
|
\paragraph{Resolution.} LP-220 wrappers share their slot with the
|
|
raw primitives, dispatched by kind byte at the body level -- the
|
|
same pattern LP-218 uses at \texttt{0x012205}. LP-0120 keeps
|
|
\texttt{0x012206} and \texttt{0x012207} as the raw-primitive
|
|
allocation; LP-220 attaches the P3Q-Corona and P3Q-Magnetar wrappers
|
|
on the same slots. LP-0120's raw Groth16 verifier at \texttt{0x0901}
|
|
remains separate. The wrapper-vs-primitive ambiguity is resolved
|
|
purely at the body kind byte, never at the slot.
|
|
|
|
\subsection{Conflict 4 -- Deprecated allocations entering cooldown}
|
|
|
|
Six allocations entered Deprecated state during the 2026-05-18
|
|
precompile sweep (AUDIT-2026-05-18). A Deprecated slot is NOT
|
|
immediately re-allocatable: the slot remains nominally owned by its
|
|
deprecating LP for the cooldown window, during which it MUST NOT
|
|
be reused by a different LP.
|
|
|
|
\paragraph{Resolution.} \S\ref{sec:cooldown} pins the cooldown
|
|
policy. The six rows become re-allocatable on 2027-05-18:
|
|
\texttt{0x9201}, \texttt{0x9210}, \texttt{0x9211},
|
|
\texttt{0x0200..0006}, \texttt{0x0200..0007}, and \texttt{0x0200..000B}.
|
|
The deprecation entries persist in LP-300 across the cooldown to
|
|
prevent accidental re-use.
|
|
|
|
\subsection{Resolution authority and amendment chain}
|
|
|
|
For each closed conflict the consuming LPs MUST amend their relevant
|
|
``Wire schemas'' / ``Precompile slot'' / ``Schema-ID allocation map''
|
|
section to:
|
|
|
|
\begin{enumerate}[leftmargin=2em,nosep]
|
|
\item State the final post-resolution slot or range.
|
|
\item Reference LP-300 \S\ref{sec:typekind} (TypeKind) or
|
|
\S\ref{sec:precompile} (precompile) as the binding map.
|
|
\item Drop any duplicated allocation tables; the consuming LP becomes
|
|
informative-only on the allocation question.
|
|
\end{enumerate}
|
|
|
|
A consuming LP at status Final without a matching LP-300 row, or with
|
|
a row that disagrees with LP-300, is itself in violation and must be
|
|
amended in the same PR cycle.
|