Privacy NFT Marketplace
From etheresearch by terry
Introduction
In the rapidly evolving realm of Non-Fungible Tokens (NFTs), the need for privacy in ownership transactions has never been more crucial. Existing NFT marketplaces expose sensitive details on public blockchains, compromising user privacy. Our solution, the Privacy NFT Marketplace, introduces a pioneering approach using zk-SNARKs technology to safeguard user identities during NFT transactions.
This proposal outlines a secure and decentralized platform that leverages cryptographic proofs, allowing verifiable transactions without disclosing sensitive information. By prioritizing privacy through zk-SNARKs, our proposal addresses current privacy concerns in NFT ownership, fostering trust and confidence among users. This innovation aims to redefine the NFT landscape, encouraging broader adoption and contributing to the development of a privacy-centric NFT ecosystem.
How it works
Seller
Step 1: Deposit NFT and Generate Nullifier
- The seller initiates the process by depositing their NFT into the marketplace’s state Merkle tree and generates a new spending NFT nullifier associated with the deposited NFT.
Step 2: Create Sell Order
- Public: Listing Information: The seller creates a sell order, providing essential information.Collection Address: The address of the NFT collection.Token ID: The unique identifier of the NFT.Amount: The desired selling price.
- Collection Address: The address of the NFT collection.
- Token ID: The unique identifier of the NFT.
- Amount: The desired selling price.
- Private: Generate Seller’s ERC20 Nullifier:The seller generates a new spending ERC20 nullifier associated with the sale amount and a seller spending key.
- The seller generates a new spending ERC20 nullifier associated with the sale amount and a seller spending key.
- Public: Spending NFT Proofs:The seller creates proofs containing the collection address, token ID, spending NFT nullifier, and selling amount.
- The seller creates proofs containing the collection address, token ID, spending NFT nullifier, and selling amount.
→ (Collection address, token id, amount, new seller’s ERC20 Nullifier hash, spending NFT Proofs)
Buyer
Step 1: Deposit ERC20 and Generate Nullifier
- The buyer deposits ERC20 into the marketplace’s state Merkle tree and generates a new spending ERC20 nullifier associated with the deposited amount
Step 2: Create Accept-Sell Order
- Listing Lookup and Information:The buyer looks up the listing information on the public marketplace and decides to make a purchase.The buyer creates an accept-sell order, providing necessary details.Collection Address, Token ID, Amount.
- The buyer looks up the listing information on the public marketplace and decides to make a purchase.
- The buyer creates an accept-sell order, providing necessary details.Collection Address, Token ID, Amount.
- Collection Address, Token ID, Amount.
- Spending ERC20 Proofs:The buyer generates proofs containing the collection address, token id and lists proofs of their spending ERC20 nullifier.
- The buyer generates proofs containing the collection address, token id and lists proofs of their spending ERC20 nullifier.
- Generate New Buyer’s Nullifiers:New Buyer Spending NFT Nullifier: Associated with the collection address, token ID, and buyer spending key.New Buyer Spending Left-ERC20 Nullifier: Associated with the total deposit amount minus the NFT price.
- New Buyer Spending NFT Nullifier: Associated with the collection address, token ID, and buyer spending key.
- New Buyer Spending Left-ERC20 Nullifier: Associated with the total deposit amount minus the NFT price.
→ (Collection address, token id, amount, new buyer’s NFT Nullifier hash, new buyer’s ERC20 Nullifier hash, spending ERC20 proofs)
On-chain Verifier
The on-chain verifier function receives the following parameters:
- Collection Address
- Token ID
- Amount
- New Seller Spending ERC20 Nullifier Hash
- Seller Spending NFT Proofs
- Buyer Spending ERC20 Proofs
- New Buyer Spending NFT Nullifier Hash
- New Buyer Spending Left-ERC20 Nullifier Hash
Verification Steps:
Verify all nullifiers hash are available
- Verify Seller’s ERC20 Nullifier Hash:Confirm the amount in the new seller spending ERC20 nullifier hash.
- Confirm the amount in the new seller spending ERC20 nullifier hash.
- Verify Seller’s NFT Proofs:Validate the seller’s spending NFT proofs.Validate proof with given amount
- Validate the seller’s spending NFT proofs.
- Validate proof with given amount
- Verify Buyer’s ERC20 Proofs and Nullifier Hash:Confirm the buyer’s spending ERC20 proofs and new buyer spending left-ERC20 nullifier hash.Validate proof with given collection address and token id
- Confirm the buyer’s spending ERC20 proofs and new buyer spending left-ERC20 nullifier hash.
- Validate proof with given collection address and token id
- Verify Collection Address and Token ID in Buyer’s NFT Nullifier Hash:Ensure the correctness of the collection address and token ID in the new buyer spending NFT nullifier hash.
- Ensure the correctness of the collection address and token ID in the new buyer spending NFT nullifier hash.
Update state:
- Mark seller’s spending NFT nullifier hash as used
- Mark buyer’s spending ERC20 nullifier hash as used
- Add seller’s spending ERC20 nullifier hash to state tree
- Add buyer’s spending NFT nullifier hash to state tree
- Add buyer’s spending left-ERC20 nullifier to state tree
This robust verification process ensures the integrity and security of the NFT transaction on our marketplace, providing a trustworthy environment for both sellers and buyers.
Certainly! If you have any questions or need further clarification on any aspect of the process outlined above, feel free to comment
Disclaimer: The content of this article solely reflects the author's opinion and does not represent the platform in any capacity. This article is not intended to serve as a reference for making investment decisions.
You may also like
Ethena’s risky path: A synthetic stablecoin cautionary tale
How currencies for online games were created
10 signs you’ve been in the crypto industry too long
Meta reportedly cut metaverse budget by 20% as Q2 earnings call looms