### August
- Met with a DEX to discuss
- First draft of social media plan- soft launch
-----
### July 2023
Sandscreener is an open-source Proof of Inncence tool. It allows users to easily prove via zero-knowledge technology that cryptocurrency withdrawn from Tornado Cash is not associated with an exclusion list, without revealing the source of their funds.
The last month saw a few updates to how Sandscreener functions. Before we get to those, we must first mention the creation of the Sandscreener Medium, without which you would not be reading these updates. We'd like to be posting on Mirror primarily (or at least in parallel), but are experiencing some issues with ENS that can hopefully be resolved in the future. For now, we hope to continue providing monthly insights into Sandscreener development.
Now, onto the updates!
#### Onchain Exclusion Lists
The first is the decision to write the Merkle tree root of the exclusion list directly onto the Sandscreener Smart Contrct. This root is derived from the most recent exclusion list (accessed through the IPFS hash), and is used to generate the Prover's zero knowledge proof. This essentially bridges the human-readable exclusion list to an onchain form that web3 applications (from Sandscreener to Proof of Innocence and beyond) can then use to to verify that the proof is made using the validated blocklist.
#### No more SBT's :'(
The second update is the decision to scrap the feature of minting an SBT upon successful proof of innocence. The original thought was that an SBT that would act as a type of badge or certificate that the Prover could carry with them across the web3 ecosystem. Unfortunately this feature isn't feasible at this time due to the way Sandscreener currently handles the exclusion lists. To learn more about the unfeasibility of SBT's in Sandscreener, you can read Alex Kuzmin's writeup here: https://hackmd.io/@sandscreener/SJaAm_HF3
#### Provers not Users
Now might also be a good opportunity to share the decision to use the term "Prover" to refer to Tornado Cash users who wish to prove their innocence. This is mainly a product decision to help clearly distinguish the three different user roles Sandscreener has.
#### Problem Statement
Lastly, the team published a Problem Statement for maintaining exclusion lists. This statement is a first step to aligning contributors on a solution. You can read the Exclusion List Problem Statement here: https://hackmd.io/@sandscreener/B1PJTBZdn
In brief July's updates are:
- The exclusion tree root that is used for the proof is now onchain!
- SBT's as a certificate of innocence were scrapped.
- Finalised the first draft of the Exclusion List Problem Statement.
- Basic UI improvements to the Sandscreener App.
That's all for this month! If you're interested in learning more about Sandscreener you can join the Discord here: https://discord.gg/6MGYPreQBF
-----
- Onchain verification of the exclusion tree root that is used for the proof. Implemented a solution for putting the blocklist onchain
- decided not to use SBT's, token verifies state of the list at that moment but then immediately becomes opsolete when the list is updated. Would have to generate a new token for every change to the exclusion list when the merkle tree changes. This is also ignoring that fact that in a completely decentralised system Imagining a dynamic blocklist. Can mint SBT, cannot check real state of blocklist data to ensure it’s not fake.
- Created a Medium and posted the first Project update to it.
- Finalised the first draft of the Blocklist Problem Statement to help align
- Basic UI improvements to the Sandscreener App.
### June 2023
Some significant improvements were made to the Sandscreener software in June, namely the switch from indexing using a self-deployed indexer to a decentralised one. More upgrades around the persistent verification of "innocent" addresses are expected in the coming weeks. These major improvements were the direct result of contributions during the open weekly calls held in the Sandscreener Discord, open for anybody to join.
The Sandscreener team also began building a baseline web presence. A simple landing page was setup to answer the basic "what is Sandscreener" question for those curious about the project, as well as social media handle placeholders for future social engagement.
Below is a detailed list of all the June achievements:
- Added the decentralized indexing of the deposits via Graph Protocol
- Deployed the front end to app.sandscreener.io
- Created a basic sandscreener.io landing page with feature descriptions, a link to the App, and links to all social media accounts
- Created a Discord server with easy-to-find and reference resources
- Created a Telegram channel
- Created social media accounts– Twitter & Mastodon
- Created a placeholder logo and iterated on it several times
- Fixed a bug that wasn't presented an error if the wallet wasn't already on testnet