mirror of
https://github.com/lux-apps/papers.git
synced 2026-10-30 18:15:21 +00:00
Every rendered "T-Chain" / "ThresholdVM" / "teleportvm" reference across the paper corpus is rewritten to the correct canonical chain by concern: threshold signing / MPC / bridge custody / key recovery -> M-Chain (MVM); FHE / encrypted compute / threshold decryption -> F-Chain (FVM); teleport / cross-chain messaging -> B-Chain (bridgevm); consensus Pulsar stays Q-Chain. Section lux-trust-kernel/03-t-chain-threshold-governance.tex renamed -> 03-f-chain-encrypted-policy.tex (with \input + xref fixes). Braided "T-Chain" sections split by concern (M vs F). Only lp-020's chain-separation rationale and the shared lux/chains/thresholdvm library path retain the name, to record the removal. All changed papers rebuilt (pdflatex, rc=0, no undefined refs). §09 of lux-dao-governance-framework reframed: fabricated "production deployment" metrics ($50M/$240k/$12M, survey %s, "as of Oct 2024") relabeled as illustrative design configurations with no invented replacements; reality noted (DAO treasury is a 1/1 Safe); conclusion echo + one "first production" overclaim softened. This commit also captures concurrent corpus workstreams on the same tree. Co-authored-by: Hanzo Dev <[email protected]>
81 lines
3.7 KiB
TeX
81 lines
3.7 KiB
TeX
|
|
%% ===================================================================
|
|
%% LP-134 canonical naming (2025-12-15):
|
|
%% Per LP-134 (Lux Chain Topology), M-Chain has been split into:
|
|
%% M-Chain — MPC ceremonies for bridge custody of EXTERNAL wallets
|
|
%% (CGGMP21, FROST, Pulsar-general)
|
|
%% F-Chain — FHE compute + TFHE bootstrap-key generation (encrypted EVM)
|
|
%% M-Chain is REMOVED entirely; teleport is B-Chain (bridgevm, LP-6000). No teleportvm.
|
|
%% Where this paper says "M-Chain MPC" / "M-Chain threshold governance" /
|
|
%% "M-Chain TFHE" / "M-Chain custody", read as M-Chain (MPC) or F-Chain (FHE).
|
|
%% ===================================================================
|
|
|
|
\section{Approval Flows}
|
|
\label{sec:approval}
|
|
|
|
An approval flow is the most direct product mapping of threshold signatures.
|
|
The user mental model is: ``This action requires approval from $t$ of $n$
|
|
designated approvers before it executes.''
|
|
|
|
\subsection{Approval Flow Architecture}
|
|
|
|
\begin{definition}[Approval Flow]
|
|
An approval flow $\mathcal{A} = (a, t, n, \{A_1, \ldots, A_n\}, \tau, \mathsf{esc})$
|
|
consists of:
|
|
\begin{itemize}
|
|
\item $a$: the action to be approved (transaction, access request, configuration change)
|
|
\item $t, n$: the threshold and total approver count
|
|
\item $\{A_1, \ldots, A_n\}$: the set of designated approvers
|
|
\item $\tau$: the timeout (maximum time to collect $t$ approvals)
|
|
\item $\mathsf{esc}$: the escalation policy (what happens if $\tau$ expires without $t$ approvals)
|
|
\end{itemize}
|
|
\end{definition}
|
|
|
|
When a user initiates an action that requires approval, the system:
|
|
|
|
\begin{enumerate}
|
|
\item Creates a pending action record on the M-Chain with the action
|
|
payload and approval metadata.
|
|
\item Sends push notifications to all $n$ approvers: ``[User] requests
|
|
approval for [action description].''
|
|
\item Each approver reviews the action and either approves (producing
|
|
a FROST partial signature) or rejects (recording a rejection on-chain).
|
|
\item When $t$ partial signatures are collected, the M-Chain aggregates
|
|
them into a complete threshold signature, which authorizes the action.
|
|
\item The action executes with the threshold signature as its
|
|
authorization proof.
|
|
\end{enumerate}
|
|
|
|
The approver sees: ``Approve this payment of \$5,000 to Acme Corp?
|
|
[Approve] [Reject].'' They do not see: ``Please contribute your Shamir
|
|
share to the threshold ECDSA signing ceremony.''
|
|
|
|
\subsection{Timeout and Escalation}
|
|
|
|
Real approval flows must handle timeouts. If approvers are unavailable,
|
|
the action cannot remain pending indefinitely. The escalation policy
|
|
$\mathsf{esc}$ defines the fallback:
|
|
|
|
\begin{enumerate}
|
|
\item \textbf{Auto-deny.} If $\tau$ expires, the action is denied.
|
|
This is the default for high-security actions.
|
|
\item \textbf{Escalation.} If $\tau$ expires, the approval request
|
|
escalates to a secondary approver set $\{A'_1, \ldots, A'_{n'}\}$
|
|
with a new timeout $\tau'$.
|
|
\item \textbf{Threshold reduction.} If $\tau$ expires, the threshold
|
|
decreases by one (from $t$ to $t-1$) for a limited escalation period.
|
|
This models the real-world pattern of ``if two of three aren't
|
|
available, one can approve with a time delay.''
|
|
\item \textbf{Delegation.} An unavailable approver delegates their
|
|
approval capability to a substitute for a bounded time period.
|
|
\end{enumerate}
|
|
|
|
\begin{proposition}[Escalation Security Bound]
|
|
Under the threshold reduction escalation policy, the minimum effective
|
|
threshold during escalation is $\max(1, t - e_{\max})$ where $e_{\max}$
|
|
is the governance-set maximum escalation depth. If $e_{\max} < t - 1$,
|
|
then escalation cannot reduce the threshold to single-signer authorization,
|
|
preserving the multi-party security guarantee even during escalation.
|
|
\end{proposition}
|
|
|