Files
papers/hanzo-crypto-payments/sections/03-crypto-payment-architecture.tex

47 lines
2.0 KiB
TeX

\section{Crypto Payment Architecture}
\label{sec:architecture}
% ============================================================================
\subsection{Payment Flow}
\begin{enumerate}[leftmargin=1.4em]
\item \textbf{Initiation}: Customer selects crypto payment at
checkout. SDK displays available currencies and chains.
\item \textbf{Rate lock}: Hanzo locks the exchange rate for 15
minutes. Rate sourced from aggregated exchange feeds (Binance,
Coinbase, Kraken) with TWAP smoothing.
\item \textbf{Address generation}: MPC-derived payment address
generated for this transaction (unique per payment).
\item \textbf{Payment}: Customer sends cryptocurrency to the
generated address.
\item \textbf{Confirmation}: Chain-specific confirmation monitoring
(see Section~\ref{sec:multichain}).
\item \textbf{Settlement}: Received crypto is converted to the
merchant's settlement currency (default USDC) and transferred to
the merchant's MPC-managed settlement wallet.
\item \textbf{Fiat off-ramp}: If configured, USDC is converted to
fiat and wire-transferred to the merchant's bank account within 24
hours.
\end{enumerate}
\subsection{MPC Wallet Management}
Each merchant's payment infrastructure is backed by an MPC key group
using CGGMP21 threshold ECDSA~\cite{cggmp21}:
\begin{itemize}[leftmargin=1.4em]
\item \textbf{2-of-3 signing}: Hanzo Operations + Merchant Co-Signer
+ Disaster Recovery.
\item \textbf{Single DKG ceremony}: One key generation produces
signing capability for all supported chains (secp256k1 for EVM and
Bitcoin, ed25519 for Solana via separate ceremony).
\item \textbf{Payment addresses}: Derived from the MPC public key
using chain-specific address encoding (Ethereum \texttt{keccak256},
Bitcoin \texttt{bech32}, Solana \texttt{base58}).
\item \textbf{Unique addresses}: Each payment gets a unique derived
address via BIP-32 HD derivation from the MPC master key.
\end{itemize}
% ============================================================================