Files
zeekay abf99d05fc 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

86 lines
2.7 KiB
TeX

\section{Integration with Ethereum}
\subsection{EIP-7702 Delegation}
EIP-7702 allows EOAs (Externally Owned Accounts) to delegate execution to smart contracts while preserving address. EPERVIER enables quantum-resistant delegation:
\textbf{Workflow:}
\begin{algorithmic}[1]
\STATE User generates EPERVIER keypair
\STATE Deploy delegation contract with EPERVIER verification logic
\STATE Set EOA's code pointer to delegation contract (via EIP-7702 transaction)
\STATE Future transactions validated via EPERVIER instead of ECDSA
\end{algorithmic}
\textbf{Example Contract:}
\begin{lstlisting}[language=Solidity]
contract EPERVIERDelegate {
address public owner;
IEPERVIER verifier;
function execute(
address to, uint256 value, bytes calldata data,
bytes calldata signature
) external {
bytes32 msgHash = keccak256(abi.encode(to, value, data));
address recovered = verifier.recover(msgHash, signature);
require(recovered == owner, "Invalid signature");
(bool success,) = to.call{value: value}(data);
require(success, "Execution failed");
}
}
\end{lstlisting}
\subsection{EIP-4337 Account Abstraction}
EPERVIER integrates with EIP-4337 for quantum-resistant smart contract wallets:
\textbf{UserOperation Structure:}
\begin{lstlisting}
struct UserOperation {
address sender;
bytes callData;
uint256 maxFeePerGas;
bytes signature; // EPERVIER signature
// ... other fields
}
\end{lstlisting}
\textbf{Validation:}
\begin{lstlisting}[language=Solidity]
function validateUserOp(UserOperation calldata userOp)
external returns (uint256 validationData)
{
bytes32 userOpHash = getUserOpHash(userOp);
address recovered = EPERVIER.recover(userOpHash, userOp.signature);
if (recovered != address(this)) return SIG_VALIDATION_FAILED;
return 0; // success
}
\end{lstlisting}
\textbf{Gas Budget:} EIP-4337 allocates 4M gas for UserOp validation. EPERVIER's 1.9M gas fits comfortably, leaving 2.1M for additional logic (e.g., session keys, spending limits).
\subsection{Native Precompile Proposal}
Long-term viability requires native EVM precompile support. We propose:
\textbf{Precompile Address:} 0x0b (next available after 0x0a for Blake2f)
\textbf{Interface:}
\begin{lstlisting}
Input: [pubkey_hash (32B)] [signature (666B)] [message (var)]
Output: [success (1B)] 0x01 if valid, 0x00 otherwise
Gas: 30,000 (comparable to ECDSA)
\end{lstlisting}
\textbf{Rationale:}
\begin{itemize}
\item NTT amenable to hardware acceleration (GPU, FPGA, ASIC)
\item Estimated 100-500x speedup vs. Solidity implementation
\item Target: $<$50k gas (20x cheaper than current)
\item Precedent: BLS12-381 precompiles (EIP-2537) for Ethereum 2.0
\end{itemize}