stacksgov / grants-program

Archive of past Stacks Foundation grant applications. Historical record of ecosystem development.
https://stacks.org/grants
141 stars 36 forks source link

Option for DID-based user data exchanges #324

Closed Regulr3 closed 2 years ago

Regulr3 commented 2 years ago

**Background

What problems do you aim to solve? How does it serve the mission of a user-owned internet?**

Currently there is no way to easily engage, aggregate, or manage all of your data within the Stacks ecosystem. While your data may be stored in your own Gaia hub and only be accessible by the specific app that you created it on, there needs to be an intuitive place a user can go to interface with all of their data as they transition some from Web2 into Web3 while also accounting for the net new data users will create in Web3. We’re building a DID-backed ‘data vault’ for all users and entities within the Stacks ecosystem to use and build upon as they see fit. This will enable the needed flexibility in the future when more and more services and entities are interacting with each other across potentially various networks or blockchains, while not requiring interactions to rely on chain-specific identifiers (i.e. wallet addresses).

In addition to this, there needs to be a privacy-preserving manner in which to engage with each other that does not necessitate the exchange of value on chain in the public view. Peer DIDs provide this functionality and needed channels for exchange without always publicly revealing the participants. (Note: all Stacks accounts automatically create a Stacks and Bitcoin DID) DIDComm is the planned backing strategy for implementing peer-to-peer communications.

DIDs here will allow for interoperability across a brand’s apps or services to “read in” additional user data across a broad range of networks, applications, services, and data sources.

Our core focus is on helping users of dapps or services within the Stacks ecosystem to start more formally using DIDs for all participants and agreements by expanding the plumbing and basic set of utilities that allow each respective party to engage with the data they create over time. We’re working towards providing both brands and consumers alike a Web3 toolkit to truly usher in the benefits that Web2 can and has provided us like personalized experiences, product recommendations, and additional conveniences when navigating the web in a privacy-preserving manner.

With the above laid out, we’re delivering the following updates which were outlined in milestone 1 of our previously approved grant ‘Extending the Use Cases of NFTs” - Issue #233.

(Spoke with Will, he recommended we close this previous grant and submit this new grant given what we have already built while also considering the previous grant funding being cut in half due to the timing of grant distribution occurring when the market dropped and the STX price dropped roughly 50%, such that we received less than half of the $7,500 we had scoped for M1; thus slowing down some of our progress)

M1 Deliverables - From previously approved grant ‘Extending NFT Use Cases’ (https://github.com/stacksgov/Stacks-Grants/issues/233)](https://github.com/stacksgov/Stacks-Grants/issues/233)

- A working draft SIP proposal for mutable-NFTs we have been exploring: (https://github.com/TrubitTech/Mutable-NFT-SIP) (https://github.com/TrubitTech/TrubitTech/tree/prototype/mutable-nft-api/packages/mutable-nfts) _1. Contract state maintains an up-to-date mapping of an NFT's id to its metadata url

  1. An external API serves up any initial/default metadata for a given NFT_

- Mutable clarity contracts: (https://github.com/TrubitTech/TrubitTech/blob/prototype/mutable-nft-api/packages/mutable-nfts/contracts/mutable-nft.clar)

- Gaia utility & JSON schema for handling data ingestion: (https://github.com/TrubitTech/stacks.js-gaia) (https://json-schemas.vercel.app/schema_customer.json)

- Trie creation script for user keyword and filtering functionality: (https://github.com/TrubitTech/trie-script-2)

- Data extraction and parsing via OAuth and zip upload (Facebook & Instagram data so far):_ (https://github.com/TrubitTech/DataExtraction/tree/facebook)

- NFTree creation and testing with sample data sets (in collaboration with JacobRyan): (https://github.com/TrubitTech/nftree-test)

Watch the ‘Data Vault’ demo recording: Here is a recording of our functioning ‘Data Vault’ we’ve been building and testing with direct input and feedback with focus groups over the last month to ensure the user experience is intuitive and offers functionality users will be able to immediately benefit from, both new to Stacks/Web3 or who are well versed in Stacks/Web3 already.

COMPLETED:

Project Overview What solution are you providing? Who will it serve?

  1. Support concealing the identity of users from brands by ensuring that all respondents/participants in a brand’s campaign happen client-side and involve no storage of any identifying participant data. All brand campaigns will be broadcasted to all available clients and each client will respond–building audiences dynamically.

  2. Open source UI package with reusable components for projects in stacks ecosystem

  3. Open source Gaia utility library to make Gaia easier to use/understand for creators and users of stacks apps/services

In order to create the optimal user experience, we have found there needs to be a fully functional web-based UI/UX to interface with one’s data stored in Gaia. That user experience is best accomplished and delivered outside of the browser extension we have built given the limited screen space it has but also our desire to create and provide a set of libraries/packages that lets users and other services within the Stacks ecosystem better engage and manage their data within Gaia. The ‘Data Vault’ we have created already within the web extension is the best way to place more data into a user’s Gaia hub on the fly and for future endeavors, we can speak to around sites/dapps having the ability to read in a user's data via the extension and an SDK and other backed plumbing of sorts.

If we are to create a truly user-owned data layer where the data still has value and the desire to be exchanged with entities a user consents to, then we need the above-enumerated deliverables to be available by default. This ‘data vault’ will contain both Web2 and Web3 data and our Gaia utilities along with our open source UI packages will provide a user’s a far more compelling manner to engage with their data in Gaia.

**Scope

What are the components or technical specs of the project? What will the final deliverable look like? How will you measure success?**

The key components of the project will include the following:

**Budget and Milestones

What grant amount are you seeking? How long will the project take in hours? If more than 20, please break down the project into milestones, with a clear output (e.g., low-fi mockup, MVP with two features) and include the estimated work hours for each milestone.

Total Grant Request: $40,000 (this includes the $10k we were approved to receive from the previously approved grant where we have not received the M2 funding.)

Projected total of 320 hours for all efforts related to the milestones outlined below.

M1: Scope of work, deliverables, and grant amount of total. (160 hours - $20,000) Developing Client-side Application for data uploads and OAuth and supporting utility libraries.

@trubit/storage open-sourced package for interacting with Gaia

@trubit/ui open-sourced package for reusable components for projects on the stacks ecosystem

M2: Scope of work, deliverables, and grant amount of total. (160 hours - $20,000) Expanding on the existing DID support to implement off-chain interactions via Peer DIDs.

1. Enabling Stacks users to view and use their DID as a means to establishing relationships and connections with dapps, services, and other stacks users

2. Creating an intuitive ‘in-app’ user experience that allows for both on-chain and off-chain Peer DID relationships and interactions between entities

**Team

Who is building this? What relevant experience do you bring to this project? Are there skills sets you are missing that you are seeking from the community? Please share links to previous work.**

We are a seasoned team of entrepreneurs, technologists, developers, and product specialists.

Risks What dependencies or obstacles do you anticipate? What contingency plans do you have in place?

The biggest risk we see is the possibility of data leakage or bugs in potential smart contracts as we seek to provide reusable templates that both data owners and data consumers can access, deploy, and enforce without having to know too much about the technical requirements. We are focusing on making these ‘privacy-preserving shared data access’ smart contract templates as clean and simple as possible in order to not overcomplicate ongoing relationships that need flexibility but also enforce strict constraints.

One other unknown we would highlight at this stage is uncertainty around the scope and types of structured data that web3 apps will require in the future. We believe this is a “known unknown” at this stage, and the contingency plan is to build this as an open framework that can be adapted to accommodate evolving needs of the web3 world.

Community and Supporting Materials Do you have previous projects, code commits, or experiences that are relevant to this application? What community feedback or input have you received? How do you plan to share your plan to the community over time and as the final deliverable?

(https://twitter.com/TRUBIT_TECH/status/1504068897812713472?s=20&t=J4o696jirb1dy4GzvOUhiQ)

We have a ton of support from the community to build a tool in which we have named a user’s ‘data vault’ and have had really compelling feedback as to what this user experience must be like in order for the masses to find it useful and to ultimately take the time to adopt a tool like this. We’ve conducted 3 focus groups in the last month to learn what people really want to get out of their data, what they are willing to share vs. what they are not willing to share, and what their ultimate motivations will be when it comes to adopting a Web3 tool like the one we’re developing.

We have multiple testimonials (see below) and have attracted interest from several podcasts including Crypto Internet Show with Muneeb, Patrick and others, The Built On Bitcoin Podcast with Jake, the GoldSilverBitcoin Podcast, and The Bitcoin Magazine Podcast. We’re active Syvita Guild members and are actively collaborating with other members within the community.

stx-grant-bot[bot] commented 2 years ago

Thanks for submitting a grant proposal. Our team will review your submission and get back to you.

linden commented 2 years ago

This looks very interesting, especially how DIDs will cross both bitcoin/stacks, further cementing them together.

will-corcoran commented 2 years ago

@Regulr3 - Very excited to continue supporting development on this tech. This is approved. Please email me and lets set up a meeting for the last week in April to discuss progress and get you introduced to the new Gaia residents.

Best, Will

stx-grant-bot[bot] commented 2 years ago

Congratulations. Your grant is now approved. Please complete the on-boarding link here: https://grants.stacks.org/onboard?q=997da758c5bdfbb8d91a70976c9d500f

Regulr3 commented 2 years ago

@will-at-stacks awesome - thanks!!!

Yes will ping you and also hopefully see you down in Miami this coming week :) Excited to deliver this soon to everyone!

Regulr3 commented 2 years ago

Contract signed!

Regulr3 commented 2 years ago

@will-at-stacks just wanted to check to see when we should expect grant funds dispersed? thanks!

will-corcoran commented 2 years ago

Hello and thank you for participating in the Stacks Foundation Grants Program!

We are in the process of migrating from GitHub to the new Grants Dashboard. In order to complete your grant, you will need to submit any remaining Progress Review and/or Final Review requests through the Dashboard in order to receive your remaining payments.

Lastly, please note we are marking this grant 'closed' on GitHub for organizational purposes, but it is still 'open' on the Grants Dashboard.

Thanks and we hope to continue to support your efforts with additional grants!

Best, Will