[Proposal] A privacy layer for Nouns

TL;DR

A way for users to anonymously place a bid for daily Nouns auctions.

Problem statement

Privacy is a fundamental human right. But privacy concerns play a part in discouraging adoption beyond the crypto niche, as traditional investors hesitate to expose how much they trade on a trading dapp like Uniswap, or how often they invest & borrow on a lending dapp like Compound. Especially, in the more relevant context to Nouns, the “bluechip” NFT collectors wouldn’t be willing to disclose to the world which NFT assets they’ve collected and are holding in their wallets.

Additionally, people often intend to keep secret sauce for their own. That’s also true for professional NFT traders who wouldn’t want to retire their portfolio and trading strategy to others.

For example, by observing recent Nouns bids, we could know which bids poap.eth placed, which bids he won and which nouns he has in his Ethereum wallets.

Our solution

We are from the Incognito core team who have been building a privacy layer for web3 since 2018. Incognito network is powered by over 3100 nodes with about $250M shielded (a.k.a deposited) volume through 13 supported bridges to popular blockchains like Ethereum, BNB Chain, Polygon, etc. The smart contract code and audit report of the bridges could be found here and here respectively.

We’ve previously brought privacy to popular DEXs such as Uniswap, Curve and PancakeSwap in the past. Similarly, our solution for the aforementioned problems is integrating Incognito with Nouns smart contracts, from that we will be able to leverage Incognito’s privacy ecosystem in order to bring privacy to Nouns’ functions (bidding, voting, etc).

Let me describe a concrete workflow of anonymously placing a bid with Nouns here so that you can get how it works:

Step 1: User needs to shield ETH into Incognito then receive private ETH in the Incognito wallet

Step 2: From shielded private ETH in Incognito wallet, the user can anonymously place a bid for a newly created Noun.

Step 3: Once a Noun auction is settled, either ETH (if being losing bid) or Noun NFT (if being winning bid) will be returned to the vaults then re-shielded to a designated one-time address (OTA) in Incognito chain so that the user can receive private ETH or private Noun in the Incognito wallet.

Since all transactions initiated from Incognito wallet (to Incognito chain) are confidential and unlinkable, no one can guess which Ethereum address a bid is placed by, so which Nouns an Ethereum wallet has actually collected. For more details of how Incognito’s privacy-preserving works, please check out the topic.

nouns.wtf is a very interesting project with many innovative ideas, especially Nouns DAO that is a novel way to fund projects built by the community. But it would be far better if the funded projects can contribute back to the Nouns DAO from their revenue to continue incentivizing other good projects. So in our design, users who want to preserve their privacy by using the product, they will need to pay a small fee from their bidding amount and the fee will be transferred directly to Nouns DAO address.

Funding request

We estimate this project taking ~1.5 month of dedicated effort by a team of:

  • 1 cryptographer
  • 1 blockchain engineer
  • 2 app engineers (1 for the website and 1 for backend jobs)
  • 1 designer

Functions to be delivered: one complete product including website, wallet extension (for interacting with the website and Incognito blockchain) that will be ready for users to:

  • shield (a.k.a deposit) ETH into Incognito chain.
  • anonymously place a Noun bid.
  • store private ETH and/or private Noun NFT in Incognito wallet.
  • unshield (a.k.a withdraw) ETH and/or Noun NFT back to Ethereum wallet.

Given a rate of 8 ETH/mo for each contributor, we’re requesting 60 ETH total for delivery of this first product.

Future works

Due to the integration’s flexibility, in addition to privacy bidding, other usecases such as privacy voting or privacy Nouns selling with popular marketplaces like OpenSea, X2Y2, etc are definitely possible.

If you are interested in exploring the Incognito project, you might visit the following helpful resources: network explorer, forum, whitepaper.

11 Likes

This looks interesting, though it takes time to build but it will support my collection strategy eventually. Will there be any security issue with this integration ?

3 Likes

Cool idea. It’s high time for Nouns to take privacy layer into consideration. Let’s BUIDL

4 Likes

This sounds good, not seeing any privacy idea lately.

3 Likes

Thanks for your kind words, guys. That is giving us more motivation to bring the proposal to reality…

Regarding the security question, as mentioned in the proposal, both Incognito network and similar integrations have been battle-tested on mainnets for about 3 years, not just a sort of proof of concept prototype, so we are pretty confident we can securely bring the privacy option to Nouns users.

Happy to hear more feedback from the great community!

2 Likes

pretty sus to have a bunch of friends/bots mindlessly encourage your prop

Typically wallets that want to remain anonymous while bidding simply fund a fresh wallet from an exchange - the process above seems like a weirdly complex way to go about it.

1 Like

Hey @gremplin, you mean funding a fresh wallet from a CEX, correct? If so, there are a few obvious reasons that would prevent us from preserving our anonymity in this way:

  1. The CEX might usually track all activities belonging to an identity that happened in its system. Consequently, it could easily link our deposit wallet to the fresh wallet. Even worse, many CEXs require KYC as well so we are giving up entire our privacy to a CEX if we do that way.

  2. Furthermore, CEXs are custodial. Remember why crypto users were moving to use DEX instead.

  3. Also, after winning a bid and receiving a Noun in the fresh wallet, what if we keep needing anonymity for other actions like transferring to another wallet or opening an auction on an NFT marketplace in order to hide our NFT collection strategy?

While the proposed solution seems complicated behind the scene (for example, zero-knowledge proofs we use for privacy-preserving), we will be trying to bring the most convenient UI/UX to the end-users via Incognito wallet and web interface which users can achieve (3) frictionlessly alongside the main goal - preserve anonymity. We hope that our proposal would bring a complete privacy solution to Nouns over all common functions, not only bidding.

2 Likes

Hello Nouns fam, in order to help non-technical audiences easily envision how the UI/UX will look like, we’ve made intuitive mock-ups for the aforementioned steps in the original proposal as follows:

Step 1:

User simply opens Incognito wallet extension, goes to the shielding page by clicking on “Shield a coin” button then sends ETH to the shielding address (shown in QR code) to perform shielding into Incognito.

Step 2:

From pNouns website, user can place an anonymous bid similarly to what he/she is performing with the current Nouns website (https://nouns.wtf). Only discrepancy is that he/she would sign the bid transaction through Incognito wallet extension instead of Metamask.

Step 3:

User can view a list of privacy nouns he/she is owning from winning privacy biddings on pNouns website.

Step 4:

Finally, user can unshield a privacy Noun back to Ethereum by clicking on “Unshield” button that then would open Incognito wallet extension on the top right corner for inputting recipient Ethereum wallet and confirming the unshielding transaction. The “Unshield” button will be visible when user hover in a particular privacy Noun.

Thank you!

2 Likes

Update : nevermind, I see the mock-up, getting how it works now. (I didn’t notice the comments just read the original prop)
Thanks for your answer, I’m a big fan of privacy projects and will definitely give it a try once it goes live.
To be honest, I’m not a developer so couldn’t fully understand everything in the proposal. Specifically, when you say you will bring privacy to Nouns bidding function, can you please give an intuitive mock-up or things like that so that even the average audience can envision how it will look like?

1 Like

Hi @duc , Thanks for providing this walk through. This is a truly ground breaking idea - totally privacy during an auction. I :heart: it! This would be ground breaking for Nouns and a key differentiator.

My only request would be that the Incognito Wallet Extension (I see this being like the Metamask with Privacy-Enabling features) have integration with Hardware Wallet E.g. Ledger Nano, so that my private keys are safe and secure on the Ledger. I would also use my Ledger to sign transactions, just like I would with using Metamask.

Do others in the Noun fam agree with my idea?
If you do, please express your approval by clicking the :heart_decoration: on this Comment. Thanks.

3 Likes

Glad to hear that you love the prop. Surprisingly, you also knew the Incoginto Wallet Extension. That product is pretty new and has just been launched for a month.

Re Hardware Wallet support, yes, totally agree with you, security should be the 1st priority and our team is working on it in this Q4.

And sorry for the late response, the prop didn’t get much support from the community (yet). However, we will still build it anyway since bringing privacy to the crypto space is a mission that our team set on day one.

1 Like

Thx for the update @duc. I’m amazed by the dedication of the Incognito team. They remain true to their mission of bringing privacy to the crypto space.

For folks here in the Noun’s community, if you do not know much about the Incognito project, I highly recommend you take a look at all the exciting stuff on their recently published Q4 Dev Roadmap here - Incognito's Q4 2022: Technical Roadmap - Roadmap - Incognito

It’s an impressive project with a high quality technical team. The most exciting thing for my personally is the “Hardware Wallet” support work is starting with Phase 1 development. They not only say things, they actually are building it.

Check this project out!

1 Like