project screenshot 1
project screenshot 2
project screenshot 3
project screenshot 4
project screenshot 5
project screenshot 6

Anonique

Anonique is a non-custodial solution that uses stealth addresses which enables users to receive funds on Filecoin Blockchain without revealing receivers real address.

Anonique

Created At

HackFS 2023

Project Description

😎 Idea

  • I've always been fascinated by the concept of anonymity in blockchains, with various methods available to achieve it.
  • Privacy-focused blockchains like Monero and widely-used networks like Tornado Cash, which is based on anonymity sets or zero-knowledge proof solutions, provide near-perfect privacy for both parties in a transaction.
  • However, they require specialized tools or come at a higher cost than direct transfers, leaving a gap between expensive, complex solutions and non-private transfers.
  • Recently, Vitalik published an article titled "An Incomplete Guide to Stealth Addresses," which provided missing pieces of a simple yet effective solution for anonymous transactions, at least for the receiving party.
  • Inspired by this idea we decided to create a user-friendly tool utilizing stealth addresses. We chosen Filecoin as the initial network for its implementation due to its fast and affordable transactions.
  • The name Anonique comes from Anonymous+Unique as users will be completely anonymous and unique in each transactions 😎.

✒ What it does

  • Anonique uses an elliptic curve key pair, with its public part serving as a Anonique ID (base58-encoded) a meta-address not tied to any actual blockchain address.
  • Users can generate multiple Anonique IDs, storing the key for future use. They can then receive funds by sharing only their Anonique ID, without any additional blockchain-related information. The sender calculates a stealth address using the recipient's Anonique ID, creating a new, unpredictable stealth address for each transfer. This address is derived from the receiver's public key (their Anonique ID) and an ephemeral private key generated by the sender.
  • The sender then sends a transaction to the Registry contract with their ephemeral public key, transferring funds to the precalculated stealth address simultaneously. The receiver monitors new keys published to the Registry contract, attempting to construct a private key (and corresponding stealth address) using their Anonique ID's private part. If the resulting address contains funds, it's the stealth address where the funds were sent.
  • The receiver can then obtain the stealth address's private key and use it in any wallet software or transfer funds directly from the website to another party, exchange, or cold wallet. If the receiver doesn't withdraw funds to their personal address, the connection between them and the sender remains hidden.
  • Stealth addresses could even function like Bitcoin UTXOs, potentially leading to wallets that utilize them in this manner.

👥 Intended Users

  • The intended users of Anonique would be anyone who values privacy in their transactions and wants to keep their identity hidden. This could include individuals who want to keep their financial transactions private, businesses that want to protect their financial information, or anyone who wants to avoid the risks associated with revealing their identity in a transaction.
  • Anonique is designed to be user-friendly for both power and non-power users, making it accessible to a wide range of people.

⚔ Challenges

  • The main challenge was designing the best possible user experience, which we believe the current implementation achieves.
  • Another challenge was signing and sending withdrawal transactions without using the connected user wallet. We resolved this by creating a custom-built transaction broadcasted via public RPC URLs, which works effectively.

☄️ What's next?

  • Currently, Anonique only supports native coin transfers (FIL). However, adding support for tokens and NFTs would greatly enhance its utility. We are considering implementing relayer nodes to mint and sell notes as tokens (or NFTs) in exchange for covering user fees on transfers.
  • This approach allows users to maintain their anonymity while using note tokens to request relayers to cover fees and pay for transactions. Competition between relayers could help keep transfer fees reasonable.
  • Expanding Anonique to other EVM chains is relatively simple, thanks to FVM's compatibility. I'll also explore cross-chain transactions, potentially using a third-party bridge. Additionally, gas optimization in the Registry contract and its interaction with the receiving side can be improved.
  • Obtaining a legal opinion on Anonique's regulatory compliance would be beneficial. However, since the Registry is on the blockchain and the code is available on GitHub, funds will remain accessible even if the website is shut down.
  • Future UX improvements include notifications for funds received on new controlled stealth addresses and a mobile app (although the website is mobile-friendly). The possibilities are endless!

💪 Deployed Contract Addresses (Filecoin Calibration Testnet)

  • Registry Contract: https://calibration.filfox.info/en/address/0xe7F7067C9ECAB27c5F7f13E02b13eD50931f6D0f

How it's Made

  • We have started with a standard Hardhat project and added essential methods to the Registry contract. To enhance credibility, we intentionally avoided making the contract upgradeable, as there's no on-chain governance currently. If an upgrade is needed, we'll deploy a new version and provide client-side support.
  • Next, we developed the UI/UX using React and TypeScript, focusing on a simple yet elegant design for both power and non-power users.
  • Initially, we used ether.js for blockchain interactions, but later discovered the wagmi library, which streamlined the process.
  • The elliptic library handled the complex math involved with elliptic curves, and both libraries featured TypeScript typings, making them a joy to work with.
  • Tools Used: Solidity, Hardhat, Filecoin(Calibration) Blockchain, React, Typescript, Wagmi and Metamask.
background image mobile

Join the mailing list

Get the latest news and updates