Files
papers/morpheus/adoption/adopt-09-minimal-base-fixes.tex
zeekayandHanzo Dev 2ae0219c29 morpheus: market figures as of 2026-09-18
MOR at $1.58, $14.3M cap, about $1.3M of DEX depth and $57K of daily volume,
from CoinGecko and GeckoTerminal. Figures derived from them move with them: a
$100K sell is now about two days of volume rather than eleven, and the emission
worked example uses today's ~12,050 MOR/day. The protocol-owned share is stated
as most of the depth; the exact share was an August read.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-18 00:21:22 -07:00

90 lines
4.6 KiB
TeX

\documentclass[11pt,a4paper]{article}
\usepackage{../shared/luxcover} % black cover (self-contained TikZ logo)
\usepackage{../shared/proposal} % \proposalhead helpers and the stake environment
\usepackage[utf8]{inputenc}\usepackage[T1]{fontenc}
\usepackage{amsmath,amssymb}
\usepackage{listings}\usepackage{xcolor}
\input{../shared/lstlang}
\newcommand{\code}[1]{\texttt{\small #1}}
\setlength{\emergencystretch}{3em}
\title{Four Fixes on Base, No Migration}
\author{Zach Kelling\\\textit{Lux Industries, Inc.}\\\texttt{[email protected]}}
\date{2026}
\begin{document}
\luxcoverpage
\sloppy
\noindent{\color{muted}\footnotesize\sffamily ADOPT-09 \quad\textbullet\quad Hanzo AI \& Lux Industries \quad\textbullet\quad 2026}\par
\vspace{0.8ex}
\noindent{\LARGE\bfseries Four Fixes on Base, No Migration}\par
\vspace{0.7ex}
\noindent{\color{rule}\rule{\linewidth}{1.1pt}}\par
\vspace{1.0ex}
\noindent
Fifty lines of Solidity make Morpheus settlement real, with no chain move. It is the
cheapest entry in this series.
\vspace{0.6ex}
\noindent\textbf{The problem, in their numbers.}
MOR trades at \$1.58, market cap near \$14M [verified]. Real revenue is Lido and Aave yield,
about \$476K a year and falling, down from \$3.24M a quarter at the 2024 launch [verified].
Emission outruns real revenue near ten to one [verified]. This is not a fraud: principal is
withdrawable one to one. The honest problem is dilution outrunning revenue, over a settlement
number no one can check. Settlement is \code{pricePerSecond} times elapsed time [verified]. The
provider node signs a seven-field receipt, including the input and output token counts that say
how much inference happened (\code{abi.go:12-19}) [verified]. The contract decodes five of the
seven and drops the two that matter (\code{SessionRouter.sol:237}) [verified]. Only the provider
signs (\code{SessionRouter.sol:227}). Nothing stops a provider opening a session against its own
bid (\code{SessionRouter.sol:106}). The owner key, an anonymous five-of-nine, can rewrite any
facet in one transaction, with no timelock [verified]. Morpheus built the honest half. The node
already signs the work. The contract discards it.
\vspace{0.6ex}
\noindent\textbf{The fix.}
Four edits to the \code{SessionRouter} facet in \code{Morpheus-Lumerin-Node/smart-contracts/}.
None touch the token, the treasury, the staking math, or the chain.
\begin{itemize}
\item \textbf{Decode the whole receipt.} Add two \code{uint32} fields to the decode tuple at
\code{SessionRouter.sol:237}. Settlement then reads the tokens, not just the clock. About five lines.
\item \textbf{Make the consumer co-sign.} \code{closeSession} already holds \code{session.user}
and the recover-and-compare helper (\code{SessionRouter.sol:543}). Run it against the
consumer, and a provider cannot post volume the consumer will not sign.
\item \textbf{Forbid self-dealing.} One \code{require(session.user != bid.provider)} removes the
wash trade where a provider funds a session against its own bid.
\item \textbf{Timelock the owner.} A timelock between the Safe and the owner role turns a stolen
key into an announced upgrade with a withdrawal window, not an instant silent loss.
\end{itemize}
\vspace{0.4ex}
\noindent\textbf{The outcome.}
About fifty lines of Solidity [illustrative: sum of the four edits above], on the diamond that
already exists. No migration, no new token, no vote to move capital. Best case: settlement reads
work the node already signs, both parties sign the bill, self-dealing is blocked, and a
compromised owner key buys a window instead of the treasury.
\vspace{0.4ex}
\noindent\textbf{Assumptions.}
Reading \code{inputTokens} proves a count was signed, not that the tokens were produced;
attesting the work is a later step (LP-313). The receipt still settles on the provider's reported
count until a consumer disputes it. A timelock narrows the owner key's blast radius; it does not
remove it. This makes the base honest, not complete.
\vspace{0.4ex}
\noindent\textbf{Relevance.}
Lux built \code{mord}, an un-fakeable settlement engine where faked work earns zero and model
substitution is slashed; forty tests pass as of 2026-08-29 [verified]. We know which fifty lines,
and why. This fix is the first rung, and the rest of the series stands on an honest receipt.
\vspace{0.6ex}
\noindent{\color{muted}\footnotesize\sffamily
ADOPT-09. Facet \code{SessionRouter} in \code{Morpheus-Lumerin-Node/smart-contracts/}. Diamond
\texttt{0x6aBE1d282f72B474E54527D93b979A4f64d3030a} on Base. Citations checked against the working
tree. Leads to LP-313 and LP-323.
\quad\textbullet\quad \texttt{[email protected]}}
\end{document}