Files
papers/lux-zchain/sections/04-confidential-token-standard.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

38 lines
1.4 KiB
TeX

\section{Confidential Token Standard}
\subsection{LRC-721P (Private NFTs)}
Extension of ERC-721 with privacy:
\begin{algorithm}[H]
\caption{Shielded NFT Transfer}
\begin{algorithmic}[1]
\State \textbf{Input:} NFT ID $n$, recipient address $A_{\text{recv}}$, nullifier $\nu$
\State \textbf{Output:} zk-SNARK proof $\pi$
\State
\State // Prove ownership without revealing identity
\State $\text{commitment}_{\text{old}} \leftarrow \text{Hash}(n, A_{\text{sender}}, \text{salt})$
\State $\text{commitment}_{\text{new}} \leftarrow \text{Hash}(n, A_{\text{recv}}, \text{salt}')$
\State
\State // Public inputs: $(\text{commitment}_{\text{old}}, \text{commitment}_{\text{new}}, \nu)$
\State // Private inputs: $(n, A_{\text{sender}}, A_{\text{recv}}, \text{salt}, \text{salt}')$
\State
\State $\pi \leftarrow \text{Prove}\left(\begin{array}{l}
\text{commitment}_{\text{old}} \text{ in Merkle tree} \\
\land \ \nu = \text{Hash}(n, A_{\text{sender}}) \\
\land \ \text{commitment}_{\text{new}} = \text{Hash}(n, A_{\text{recv}}, \text{salt}')
\end{array}\right)$
\State \textbf{return} $\pi$
\end{algorithmic}
\end{algorithm}
\textbf{Privacy Properties}:
\begin{itemize}[leftmargin=1.1em]
\item NFT ownership hidden (only commitment visible)
\item Transfer recipient hidden (encrypted address)
\item Transfer history unlinkable (nullifiers prevent double-spend)
\item Optional metadata disclosure via auditor key
\end{itemize}