Files
papers/morpheus/onepagers/lp-315-routing-alpha.tex
zeekayandHanzo Dev cf44d44756 morpheus: the ADOPT series, omnibus, rubric, LOI and one-pagers
ADOPT-00 through ADOPT-10, the 18-page omnibus, the decentralization rubric,
the whitepaper and the LOI — every paper written for the Morpheus engagement,
with the shared cover and proposal styles, versioned here beside the LP series.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-03 21:12:23 -07:00

99 lines
5.4 KiB
TeX

\documentclass[10pt,a4paper]{article}
\usepackage{../shared/proposal}
\usepackage[utf8]{inputenc}\usepackage[T1]{fontenc}
\usepackage{amsmath,amssymb}\usepackage{listings}\usepackage{xcolor}
\input{../shared/lstlang}
\newcommand{\code}[1]{\texttt{\small #1}}
\begin{document}
\sloppy
\proposalhead{Routing Alpha}{%
A bid is priced in seconds, so the provider is paid the same whatever answers. Model selection is
the entire margin, and nobody on this network is trading it.}{LP-315}
\noindent\textbf{What the price is.}
A bid carries one economic field, \code{pricePerSecond} (\code{IBidStorage.sol:17}), and
settlement is that field times elapsed session time (\code{SessionRouter.sol:264}). Revenue is
fixed when the bid is posted; the cost of answering is unobserved, unpriced and entirely the
provider's own.
\vspace{0.35ex}
\noindent\textbf{The mechanism.}
Write $p$ for the bid, $T$ for duration, $c(\pi)$ for expected backend cost per second under
selection policy $\pi$, $Q(\pi)$ for delivered quality. Revenue is $pT$ whatever $\pi$ does, so
profit $(p-c(\pi))T$ is maximised by minimising $c(\pi)$ subject to a floor $Q(\pi)\ge\bar q$.
That is what a learned router already computes: Enso maximises
$Q(\pi)-\lambda c(\pi)-\mu\ell(\pi)$ over an SLO-feasible set, per request, in microseconds on
CPU. Here the multipliers are not hand-tuned. Normalising profit by $pT$ leaves $1-c(\pi)/p$, so
the cost weight scales as $\lambda\propto 1/p$. The latency weight has no source in settlement at
all, since a slower backend serves fewer requests inside the same paid window and so costs less;
whatever restrains latency lives in the consumer's scorer, not in the contract. Define routing
alpha as the gap between pinning one model and routing optimally at the same floor,
\[
\alpha(\bar q) \;=\; c(\pi_{\mathrm{pin}}) \;-\; \min_{\pi\,:\,Q(\pi)\,\ge\,\bar q} c(\pi),
\]
bounded below by the mass of requests a cheaper model answers at the floor times the price spread
of the pool.
\vspace{0.35ex}
\noindent\textbf{Illustrative, and only that.}
The network publishes no price, usage or session-length series in any of its 62 repositories, so
what follows is shape, not measurement. Take a pool whose cheapest admissible backend costs $0.2$
against the pinned model's $1.0$, and suppose seven requests in ten clear the floor on it. Routed
cost is $0.7(0.2)+0.3(1.0)=0.44$, so $\alpha$ is $0.56$ of pinned cost; if pinned service consumes
$60\%$ of bid revenue, routing takes it to $26\%$.
\vspace{0.35ex}
\noindent\textbf{Price discovery, not a trading strategy.}
Alpha that size does not stay with whoever finds it. \code{postModelBid} is permissionless inside
the \code{bidMin}/\code{bidMax} band (\code{Marketplace.sol:81}), so as routed providers enter,
$p$ is competed toward $c(\pi^\star)$ and the surplus moves to the consumer, who buys duration and
buys more of it as $p$ falls. Morpheus has no process today that discovers what a session-second
is worth; routing is one. The limit that binds first is yours and it is deliberate: \code{\_claimForProvider} clamps period claims to
\code{provider.stake - provider.limitPeriodEarned} (\code{SessionRouter.sol:383}), so the
arbitrage runs out of capital before it runs out of competition.
\vspace{0.35ex}
\noindent\textbf{The dual.}
Routing alpha and substitution fraud are one functional at two floors. $\alpha$ is non-increasing
in $\bar q$, so a router quietly serving below the advertised floor earns more than one honouring
it, and the difference is the fraud surplus. On chain the two are indistinguishable, because the
backend is configuration and not code (\code{aiengine/openai.go:64} POSTs to any configured base
URL with a bearer token). The market's own selection statistic points the wrong way:
\code{ScoreInput} (\code{rating/interface.go:15}) is throughput, time-to-first-token, duration,
success ratio and stake over price. Quality is not an argument to it, and dropping the floor
weakly improves every term. LP-313 and LP-316 are preconditions, not companion reading.
\begin{stake}{What Morpheus gets}
\item Price discovery for session-seconds, and the first published routed-against-pinned cost
figure on the network.
\item A provider whose margin comes from selection quality rather than from stipend timing.
\end{stake}
\begin{stake}{What we get, stated plainly}
\item A live per-second market to price Enso against, with settlement, staking and dispute built.
\item Somewhere the transport and attestation work of LP-312 and LP-313 pays for itself.
\end{stake}
\noindent\textbf{First step, and who takes it.}
Hanzo registers a provider on the Base diamond, bids on an existing \code{modelId}, serves it from
\code{api.hanzo.ai} with Enso choosing the backend, and publishes $\alpha$ measured against a
pinned control over the same traffic. Nothing on chain has to move: bidding is permissionless
inside the band, so no facet upgrade and no 5-of-9 signature. Morpheus contributors audit the
figure against session receipts, and the number is the network's whether or not anything else
here is adopted.
\vspace{0.35ex}
\noindent\textbf{What this does not solve.}
It is silent on whether the advertised model answered, and consumer prompts still cross the wire
in cleartext while provider responses are ECIES-encrypted.
\vspace{0.5ex}
\noindent{\color{muted}\footnotesize\sffamily
LP-315, full paper available. Market: \texttt{0x6aBE1d282f72B474E54527D93b979A4f64d3030a} on Base.
\quad\textbullet\quad \texttt{[email protected]}}
\end{document}