mirror of
https://github.com/lux-apps/papers.git
synced 2026-10-30 18:15:21 +00:00
Sweep across the non-Tier-1 paper catalogue (Tier-1 owned by parallel
agent and excluded). All 113 processed papers already had luxcover
wired up; this commit fixes 14 build breakers and produces fresh
PDFs across the catalogue.
Fixes:
- lux-blockchain-scaling-laws: em-dash inside lstlisting -> --
- lux-corona-pq: stale \input pointing at 03-the-corona-scheme renamed
to 03-the-corona-scheme (file already renamed on disk)
- lux-lattice-cryptography-primer: same Corona->Corona rename
- lux-formal-verification-lean4: Lean source uses unicode (×, ∀, ∃, ∈,
∧, ∨, ∩, ≠, ⟨, ⟩, ·, ¬) inside lstlistings. Added a literate map
so listings render the math glyphs without UTF-8 fault.
- lux-id-did-specification: ✓/✗ in tabular replaced with \ding{51}
/ \ding{55} (pifont). Added pifont package.
- lux-ntt-simd-implementation: middle-dot in Go assembly listings;
added literate {·}{\textperiodcentered}.
- lux-ntt-transform: μ, ×, –, — in regular text (no T1 fontenc).
Replaced with $\mu$/$\times$/--/--- via unicode->latex sweep.
- lux-perpetuals-derivatives, lux-quantum-consensus,
lux-quasar-consensus, lux-tee-computing-mesh: same unicode->latex
sweep across body text. Also fixed broken math segment
`$L_{avg} = 10$\times$$` -> `$L_{avg} = 10\times$`.
- lux-zchain: emoji glyphs in roadmap table replaced with
parenthetical text.
- lux-triple-proof-consensus: dropped duplicate \usepackage{geometry}
that clashed with luxcover (geometry option clash).
- pq: defined missing \Rq macro.
PDFs rebuilt for the full Tier-2/3 set.
Excluded (Tier-1, parallel agent): lp-073-pulsar, lp-stricte2epq,
dag-evm-formal, lp-010-quasar-stm-{3,4}, lp-020-quasar-consensus,
lux-institutional-custody, lux-nist-mptc-submission, pqsafe-il5,
pq-rns, plus shared/ and lps/.
44 lines
1.4 KiB
TeX
44 lines
1.4 KiB
TeX
\section{Job Container Format}
|
|
|
|
\label{sec:containers}
|
|
|
|
\subsection{Encrypted OCI Images}
|
|
|
|
Jobs are packaged as OCI-compatible container images with layer-wise encryption:
|
|
|
|
\begin{lstlisting}[caption={Job Container Manifest},label={lst:container}]
|
|
{
|
|
''image_digests'': [''sha256:abc123...''],
|
|
''entrypoint'': [''python'', ''run.py''],
|
|
''resource'': {''cpu'': 2, ''memGB'': 4, ''gpu'': 1},
|
|
''maxGas'': ''2000000000'',
|
|
''refundAddr'': ''0xabc...''
|
|
}
|
|
\end{lstlisting}
|
|
|
|
\textbf{Encryption scheme}:
|
|
\begin{itemize}
|
|
\item Code layers encrypted with AES-256-GCM using $K_{code}$
|
|
\item Input data encrypted with AES-256-GCM using $K_{input}$
|
|
\item Both keys sealed inside TEE using hardware seal-key
|
|
\item Stargz + fuse-overlayfs for in-enclave mounting (no decryption outside TEE)
|
|
\end{itemize}
|
|
|
|
\subsection{Execution Trace Merkle Tree}
|
|
|
|
During execution, the worker records a trace of program counter, stack frames, and memory deltas:
|
|
|
|
\begin{equation}
|
|
\text{Trace}_i = (PC_i, \text{StackFrame}_i, \Delta\text{Memory}_i)
|
|
\end{equation}
|
|
|
|
The Merkle tree is constructed bottom-up:
|
|
|
|
\begin{align}
|
|
\text{Leaf}_i &= \text{Hash}(\text{Trace}_i) \\
|
|
\text{Root} &= \text{MerkleTree}(\text{Leaf}_0, \ldots, \text{Leaf}_n)
|
|
\end{align}
|
|
|
|
This root is embedded in the attestation quote, enabling fraud proofs: if a worker submits an incorrect result, a challenger can provide a Merkle proof of a specific trace element that violates the expected computation.
|
|
|