Files
papers/lux-teleport-architecture/sections/07-multi-tenant-architecture.tex
zeekay 4a753bb639 papers: reorganize into per-paper dirs, add Antje Worring as co-author
Restructured from flat .tex/.pdf files into per-paper subdirectories.
Added Antje Worring as co-author on all papers.
Synced PDFs to pdfs/ for download site.
2026-04-18 21:50:07 -07:00

59 lines
2.2 KiB
TeX

\section{Multi-Tenant Architecture}
\label{sec:multitenant}
%% =========================================================================
Teleport supports white-label deployment: multiple independent bridge brands operate from a single binary, sharing MPC infrastructure while maintaining distinct identities, fee structures, and chain sets.
\subsection{Routing}
Incoming requests are routed by hostname:
\begin{lstlisting}[language=Go,caption={Hostname-based tenant routing}]
func (s *Server) resolveTenant(
r *http.Request,
) (*TenantConfig, error) {
host := r.Host
cfg, ok := s.tenants[host]
if !ok {
return nil, ErrUnknownTenant
}
return cfg, nil
}
\end{lstlisting}
Each tenant hostname (e.g., \texttt{bridge.lux.network}, \texttt{bridge.example.com}) maps to a \texttt{TenantConfig} specifying allowed chains, fee parameters, branding assets, and yield strategy set.
\subsection{Tenant Manifest}
\begin{lstlisting}[language=JSON,caption={Tenant manifest example}]
{
"id": "tenant-lux",
"hostnames": ["bridge.lux.network"],
"chains": [1, 56, 137, 42161, 10, 8453, 96369],
"fee_bps": 30,
"stakeholder_bps": 5000,
"yield_strategies": ["babylon", "dchain-lp"],
"shariah_mode": false,
"mpc_group": "default"
}
\end{lstlisting}
The \texttt{mpc\_group} field selects which MPC key set to use. Multiple tenants can share the same MPC group (shared security) or use dedicated groups (isolated key material).
\subsection{Isolation Guarantees}
\begin{property}[Tenant Isolation]
Tenants share MPC signing infrastructure but are isolated in:
\begin{enumerate}[nosep]
\item Nonce namespaces: each tenant's nonce bitmaps are independent.
\item Fee accounting: bridge fees accrue to tenant-specific addresses.
\item Chain access: a tenant can only bridge to chains listed in its manifest.
\item Rate limits: per-tenant daily volume caps.
\end{enumerate}
\end{property}
The on-chain Teleporter contract does not encode tenant identity. Tenant isolation is enforced at the API and MPC relay layer. The contract's security properties (soundness, conservation) hold regardless of tenant configuration.
%% =========================================================================