
Can't see past my shades
A privacy product suite for EVMs including private crowdfunding, sealed-bid auctions and private token voting.
Demo
About
The problem it solves Most people today don't care about privacy on blockchains because it often makes UX worse without providing any new functionality. "Cant see past my shades" is a set of privacy applications that actually unlocks new capabilities and user behaviors. ## Private Crowdfunding Depending on what money is being raised for, public crowdfunding has different problems. If you are raising money to take part in an auction, clear-text amounts can put contributors at a disadvantage. Other use cases may be for pooling real estate investments, or community based projects. Other crowdfunds may want to hide their raise unless they meet a certain threshold, so as not to seem like a failure. ## Sealed-bid auctions Auctions where all bid amounts can lead to distorted and inflated prices. This may be fine or desirable for certain products, but disadvantageous when true price discovery is desirable (e.g. government contracts and procurement, real estate sales, mineral rights, corporate asset deals, private equity, etc). ## Private token voting Keep votes private is an expectation in the physical world, the only reason we don't expect it on blockchains is because its a hard problem to solve. Some of the obvious benefits of keeping votes private is to avoid the [bandwagon effect](https://en.wikipedia.org/wiki/Bandwagon_effect) as well as coercion.
How it's made
Challenges we ran into Using viem + hardhat is not a great experiences, especially with ESM modules. I had to hack around a lot of the default tooling that hardhat provides and do it myself. To get around the hurdles, I did a lot of hardcoding of values, so deployments and scripting are pretty fragile right now. There is also not a lot of great libraries and tooling for building ZK applications, so I ended up having to write a lot of this stuff myselft. This left me with less time for creating a nice user interface that allows average users to interact with the contracts. Right now, users have to interact with the applications through scripts.