← Back to home

Ascenda

Private derivatives trading on real assets. Your positions, your business.

Problem Statement

What Ascenda Does Ascenda allows users to trade options, futures, and complex derivatives strategies on major stocks (Apple, Tesla, SPY) and other real-world assets with complete privacy. Unlike traditional brokers where your data gets sold to competitors, or current DeFi where every transaction is public, Ascenda uses cutting-edge encryption technology called FHEVM (Fully Homomorphic Encryption Virtual Machine) to keep all trading activity completely confidential—not even the platform operators can see your positions, trade sizes, or strategies. The Core Innovation The platform combines three breakthrough technologies: FHEVM for privacy (all trading data is encrypted at the smart contract level), 1inch's cross-chain infrastructure for optimal liquidity and execution across multiple blockchains, and Etherlink Layer 2 for MEV protection that prevents front-running and sandwich attacks. This creates something that has never existed before: institutional-grade derivatives trading with bank-level privacy on decentralized infrastructure. Who It's For Ascenda targets three primary markets: traditional traders moving from platforms like Interactive Brokers who want DeFi yields but need familiar tools and privacy; sophisticated crypto users who want to trade complex strategies without revealing their positions to competitors; and institutions (family offices, hedge funds) who require both regulatory compliance and complete confidentiality. The platform serves anyone who needs to execute sophisticated trading strategies without broadcasting their intentions to the market. Technical Implementation Built on Solidity smart contracts deployed on Etherlink, Ascenda integrates with Chainlink oracles for real-time price feeds and 1inch protocols for cross-chain settlement. The frontend is a professional React application that looks like traditional trading platforms but operates entirely on-chain. Users can execute everything from simple call/put options to complex multi-leg strategies like iron condors and straddles, all while maintaining complete privacy through encrypted smart contract calculations. Market Impact Ascenda addresses a $4 trillion derivatives market that currently has no privacy-preserving solution. By combining the sophistication of Wall Street tools with the transparency and yields of DeFi, while adding the privacy of Swiss banking, Ascenda creates essential infrastructure for the future of finance where privacy isn't a luxury but a necessity for competitive trading.

Solution

Ascenda Protocol: Technical Architecture & ImplementationCore Architecture OverviewAscenda is a privacy-first derivatives trading platform built onEtherlink(Tezos Layer 2) leveragingFully Homomorphic Encryption (FHE)for complete transaction privacy. The protocol enables users to trade complex derivatives strategies while keeping all position sizes, prices, and collateral amounts completely confidential.Key Technologies & Stack1. Fully Homomorphic Encryption (FHE) - The Privacy Engine// All sensitive data encrypted using fhEVM import {FHE, externalEuint64, euint64, ebool} from "@fhevm/solidity/lib/FHE.sol"; struct ConfidentialPosition { euint64 quantity; // Encrypted position size euint64 strikePrice; // Encrypted strike euint64 premium; // Encrypted premium euint64 collateralAmount; // Encrypted collateral }Why FHE was crucial:Enables computations on encrypted data without decryptionUsers can trade derivatives without revealing position sizes or pricesMarket makers can't front-run based on order flowComplete privacy preservation while maintaining smart contract logic2. Etherlink (Tezos L2) - The Settlement Layer// Hardhat configuration for Etherlink networks networks: { etherlinkMainnet: { url: "https://node.mainnet.etherlink.com", accounts: [deployerPrivateKey], }, etherlinkTestnet: { url: "https://node.ghostnet.etherlink.com", accounts: [deployerPrivateKey], }, }Benefits of Etherlink:EVM-compatible with lower fees than Ethereum mainnetNative FHE support through fhEVM integrationFast finality for derivatives tradingSeamless bridging to other chains3. Cross-Chain Settlement ArchitectureAtomic Swap Enginestruct AtomicSwapEscrow { bytes32 escrowId; address initiator; address participant; euint64 amount; // Encrypted amount bytes32 secretHash; // HTLC secret hash uint256 timelock; bool redeemed; }Cross-chain flow:User initiates settlement with encrypted amountsResolver locks funds on destination chainSecret reveal enables atomic completionFallback timelock prevents fund loss1inch Fusion+ Integrationinterface IFusionProtocol { struct FusionOrder { address makerAsset; address takerAsset; bytes getMakerAmount; // Dynamic pricing bytes getTakerAmount; bytes predicate; // Conditional execution } }Fusion+ advantages:Dutch auction mechanism for optimal pricingGasless trading experienceMEV protection through sealed bidsProfessional resolver networkCore Protocol Components1. Confidential Collateral Systemcontract AscendaConfidentialCollateral is ConfidentialFungibleToken { // Wraps USDC/USDT into encrypted tokens function confidentialDeposit(address to, uint256 amount) external { uint64 confidentialAmount = SafeCast.toUint64(amount / _rate); euint64 encryptedAmount = FHE.asEuint64(confidentialAmount); _mint(to, encryptedAmount); } // Async decryption for withdrawals function finalizeUnwrap(uint256 requestId, uint64 amount, bytes[] calldata signatures) external { FHE.checkSignatures(requestId, signatures); _underlying.safeTransfer(to, publicAmount); } }Privacy-preserving features:All balances encrypted using FHEOnly user can decrypt their own balanceAuthorized contracts can operate on encrypted amountsAsync decryption prevents front-running2. Derivatives Enginefunction openConfidentialPosition( string calldata underlying, PositionType positionType, externalEuint64 encryptedQuantity, externalEuint64 encryptedStrikePrice, uint256 expiration, externalEuint64 encryptedCollateral, bytes[] calldata proofs ) external returns (uint256 positionId) { // All operations on encrypted data euint64 quantity = FHE.fromExternal(encryptedQuantity, quantityProof); euint64 pnl = _calculateConfidentialPnL(position, currentPrice); }Derivative types supported:Options (calls/puts)Futures contractsComplex multi-leg strategiesSynthetic asset exposure3. Complex Strategy Engineenum StrategyType { BULL_CALL_SPREAD, BEAR_PUT_SPREAD, IRON_CONDOR, IRON_BUTTERFLY, STRADDLE, STRANGLE } function createStrategy( StrategyType strategyType, uint256[4][] calldata legParams, // [quantity, strike, limit, collateral] bytes[] calldata proofs ) external returns (uint256 strategyId) { // Validate strategy logic require(_isValidStrategyType(strategyType, legParams.length)); // Create individual legs for (uint256 i = 0; i < legParams.length; i++) { uint256 legOrderId = _createStrategyLegOrder(...); orderToStrategy[legOrderId] = strategyId; } }Notable Technical Innovations1. Encrypted Amount Validation Pattern// Validate collateral without revealing amounts function _validateCollateralAsync( euint64 syntheticAmount, euint64 collateralAmount, uint256 price ) internal { euint64 leftSide = collateralAmount.mul(FHE.asEuint64(100)); euint64 rightSide = syntheticValue.mul(FHE.asEuint64(collateralizationRatio)); ebool isInsufficient = leftSide.lt(rightSide); // Request async decryption for validation bytes32[] memory cts = new bytes32[](1); cts[0] = ebool.unwrap(isInsufficient); uint256 requestId = FHE.requestDecryption(cts, this.finalizeValidation.selector); }2. Dual-Amount Architecturestruct ConfidentialOrder { euint64 quantity; // Encrypted actual amount euint64 collateralAmount; // Encrypted collateral // Public estimates for volume tracking/validation uint256 estimatedQuantity; uint256 estimatedCollateral; }Why this pattern:FHE operations are expensive - minimize decryptionsNeed public amounts for volume limits and gas estimationEncrypted amounts for actual executionEstimates don't reveal exact positions3. Resolver Bond & Slashing Mechanismfunction lockSettlement(uint256 settlementId, externalEuint64 encryptedBond) external { euint64 bond = FHE.fromExternal(encryptedBond, bondProof); require(bond >= requiredBond, "Insufficient bond"); // Lock resolver funds confidentialCollateral.authorizedTransfer(msg.sender, address(this), bond); settlement.resolverBond = bond; } function _slashResolver(address resolver, euint64 amount, string memory reason) internal { // Transfer slashed funds to insurance confidentialCollateral.authorizedTransfer(address(this), insuranceFund, amount); resolverInfo.isSlashed = true; }Security & Risk Management Features1. Circuit Breakersmodifier whenNotCircuitBroken() { require(!_isCircuitBroken(), "Circuit breaker active"); _; } function _updateDailyVolume(uint256 volumeToAdd) internal { if (dailyVolume > maxDailyVolume) { emit CircuitBreakerTriggered(dailyVolume, maxDailyVolume, block.timestamp); } }2. Emergency Withdrawal Systemfunction requestEmergencyWithdrawal() external { emergencyWithdrawalRequests[msg.sender] = block.timestamp; } function executeEmergencyWithdrawal() external { require(block.timestamp >= requestTime + EMERGENCY_WITHDRAWAL_DELAY); // Release locked collateral after delay }3. Multi-Role Access Controlbytes32 public constant RESOLVER_ROLE = keccak256("RESOLVER_ROLE"); bytes32 public constant ORACLE_ROLE = keccak256("ORACLE_ROLE"); bytes32 public constant EMERGENCY_ROLE = keccak256("EMERGENCY_ROLE");Development & Testing StackHardhat Configurationmodule.exports = { solidity: { version: "0.8.28", settings: { optimizer: { enabled: true, runs: 200 }, viaIR: true, // Required for complex FHE operations }, }, networks: { etherlinkMainnet: { /* config */ }, etherlinkTestnet: { /* config */ }, } };Key Dependencies{ "@fhevm/solidity": "^0.7.0", // FHE operations "@openzeppelin/confidential-contracts": "^0.2.0-rc.1", // Privacy primitives "@openzeppelin/contracts": "^5.4.0", // Standard contracts "@nomicfoundation/hardhat-toolbox": "^6.1.0" // Development tools }Particularly Noteworthy "Hacks"1. FHE Performance OptimizationSince FHE operations are computationally expensive, we implemented:Batched encryptionsfor multi-leg strategiesLazy decryption- only decrypt when absolutely necessaryEncrypted boolean logicfor complex conditional validationEstimation patternsto avoid unnecessary FHE operations2. Cross-Chain Privacy BridgeThe atomic swap mechanism maintains privacy across chains by:Using hash-locked contracts with encrypted amountsResolver bonds in encrypted formSecret revelation that doesn't expose underlying amountsFallback mechanisms that preserve privacy even in failure cases3. Gasless Trading UXIntegration with 1inch Fusion+ enables:Users sign intentions, not transactionsResolvers compete to execute ordersNo gas fees for end usersMEV protection through sealed bid auctionsThis architecture creates a truly private, cross-chain derivatives platform that rivals traditional finance in sophistication while maintaining complete on-chain transparency and decentralization.

Hackathon

ETHGlobal Unite

2025

Prizes

  • 🏆

    Hack the Stack: Bring Fusion+ to Etherlink3rd place

    Etherlink

Contributors