SecretDrop - Private Corpus of Knowledge for Nouns

TLDR;

We propose SecretDrop, a private corpus of knowledge, memes, media and data built and accessed only by current and future Nouners!

Background

We a team of two building Medusa, a decryption oracle based on threshold cryptography. We are exploring problems we can solve for Nouns that involve private data managed onchain. We’re inspired by PersonaeLabs proposals for heyanoun.xyz and Aztec+Aragon’s proposal for private voting.

SecretDrop is one of many ideas we have that we can build with Medusa. We also have some thoughts around private auctions and how we can improve private voting with Medusa. Our goal is to engage with the community, get feedback and fail fast if the need is not there. Feel free to leave questions, comments, ideas and suggestions. We hope this is the start of a collaborative relationship between Medusa and Nouns!

Introduction

SecretDrop enables Nouners to broadcast messages and content to Nouns DAO, resulting in an exclusive corpus of knowledge, memes, media and data that only current and future Nouners can access!

SecretDrop is powered by Medusa, a decentralized decryption oracle network incubated by Protocol Labs, and is a multi-chain app that composes Ethereum state with Arbitrum execution.

Objective

Our primary objective is to build a web3-native application where Nouners share secret content with other Nouners. We achieve this with Medusa, a decryption oracle that enables users to access private content on web3. This application enables members to broadcast encrypted messages to members of the DAO without fear of interception or unauthorized access.

SecretDrop mechanisms

A new secret is represented as an NFT on Arbitrum with public metadata + private content stored in Arweave.

The process is as follows:

  1. Creating a new secret: A Noun encrypts their message (can be a document, video etc) and submits it in the application. The content is uploaded to Arweave and then a transaction mints an NFT created by the authoring Noun and owned by the SecretDrop contract. A signal is also emitted to alert Medusa of the new encrypted content. A preview of the content based on public metadata is discoverable through the application and can be shared publicly.
  2. Unlocking a secret: A Noun submits a tx to SecretDrop, which first verifies they are a Noun and then emits a request to Medusa. The Noun receives a secret reencryption from Medusa (via onchain events), which allows them to decrypt the content. Once a Noun has been granted access, they will not have to submit a tx to view the content in subsequent sessions.

The content is always encrypted, i.e. private, and can be stored on any storage solution. For this proposal, we plan on using the Arweave decentralized storage network via Bundlr for ease of use.

For performance and cost reasons, we combine Ethereum and Arbitrum execution. All transactions originate on Ethereum in order to authorize Noun ownership. Further processing, including onchain proof verification, occur on Arbitrum via L1-to-L2 messaging. Because all txs originate on Ethereum, Nouns will not have to bridge or switch networks; the whole process will be transparent and seamless to users.

Benefits

By implementing a private broadcasting mechanism using Medusa, Nouns DAO members will benefit from:

  1. Fully decentralized way of sharing exclusive content between current and future Nouns DAO members
  2. Native onchain experience: Medusa interactions happen fully onchain, and later can be integrated more deeply into the DAO structure (instead of an external service). For example, Nouns could leverage onchain governance to allow public access to certain content via Medusa’s public decryption.
  3. Collaborating with a pioneering project in the Web3 space that leverages threshold cryptography for private data access.

Budget and Timeline

We estimate the project will take approximately 3 months to complete with a team of 2-3 developers. The proposed budget is $80,000 to cover development, testing, and deployment costs.

Deliverables

Milestone 1: 1.5 months

  1. SecretDropGateway smart contract for Nouns DAO members on Ethereum.
  2. SecretDrop smart contract on Arbitrum that manages Secret NFTs and integrates with the Medusa network for encrypted message management and decryption.
  3. Integration with the external storage layer (Arweave / Bundlr)

Milestone 2: 1.5 months

  1. An activity-feed and archive interface to submit, browse, and unlock messages from Nouns
  2. A dashboard showing the Medusa network usage and health
  3. API documentation and support for integration with SecretDrop contracts

Team

We are a team of two people with complementary backgrounds and have worked together efficiently over the last 10 months. Nicolas Gailly is veteran cryptography researcher and distributed systems engineer. Nicolas is the creator of drand, a network akin to Medusa relying on threshold cryptography that generates unbiased randomness essential for Filecoin leader elections and other blockchains. He has worked on the consensus layer of Filecoin as well as the proof of storage underlying the blockchain. He is also versed in the SNARKs space and implemented and deployed in production snarkpack, a way to efficiently aggregate thousands of SNARKs together.

Jonathan Easterman is a versatile developer with product savvy and greenfield engineering experience. Jonathan spearheaded a multi-year transformation of AppFolio’s architecture from a monolithic Ruby-on-Rails application running on bare-metal servers to cloud-native microservices running on AWS and Kubernetes. This laid the foundation for product teams to accelerate new feature development. He then led a team to build a brand new offering where he scaled an SMB SaaS product for real estate service providers from 0 to 10,000 DAU over 18 months.

Nicolas owns the core Medusa cryptography and networking while Jonathan owns the smart contracts, deployment infrastructure, SDK and frontend dapps of Medusa.

Nicolas Gailly:

Jonathan Easterman:

Caveats

Decentralization Roadmap

As of May 2023, Medusa is a pre-Mainnet network with nodes solely operated by the core team. We are working to move to a permissioned network (similar to Cosmos) during the next 6-12 months and then gradually introduce permissionless access to participate in the network. We will introduce a plan for the Noun community to gradually move to the permanent Mainnet once shipped.

Guarantees

The availability of secret content will rely on the Arweave/Bundlr stack. The availability of access to that content relies on Ethereum. The ability for Nouners to unlock access to new content relies on Medusa and Arbitrum.

We guarantee this pre-mainnet Medusa network is to run for at least 1 year. There is no guarantee of 100% uptime. If the network is not available for any reason, requests can still be sent and responses will be delivered in a reasonable time frame (24-48 hours). Therefore, message broadcasts will always settle eventually.

Expectations

This is an alpha release of the Medusa product and is to be used with caution. The code has not been yet audited. However because major web3 ecosystems would benefit from Medusa, we feel putting Medusa on Mainnet already can help ecosystems such as Nouns and allow the Medusa project to receive early feedback in a controlled manner.