No funded issue found.
Check out the Issue Explorer
Be the OSS Funding you wish to see in the world.
Looking to fund some work? You can submit a new Funded Issue here .
Time left
Opened
Issue Type
Workers Auto Approve
Project Type
Time Commitment
Experience Level
Permissions
Accepted
Reserved For
Secret Benchmarking
enigmampc
enigma, ethereum, privacy, rust
## Request
Enigma Secret Contracts enable apps to compute over encrypted data. One simple use-case for this is “secret benchmarking”. This is a database of encrypted data that allows users to compare data they have access to with other data sets. For example, a database of 500 quotes for a service. A user could submit a quote she received, and get back which percentile her quote falls within (i.e., more expensive than 90% of other quotes). [Note: this use-case is similar to "secret Data Validation", but with additional complexity.]
## Solution Description
This solution should deploy a contract that accommodates two types of users: data providers, and data users. A data provider should be able to submit a list of values (Id, hours, rate). A data user should be able to submit a single value (Id, hour, rate). The contract should encrypt and return the percentile within which the data user’s value falls.
This will involve:
- Writing a Secret Contract in Rust and deploying it to the Enigma Discovery network that handles the logic for the application and functions as the encrypted storage.
- Using the Enigma-JS client to encrypt and transmit the data provider’s dataset to the secret contract.
- Using the Enigma-JS client to encrypt and transmit the data user’s datapoint to the secret contract, receive the correct output and successfully decrypt the result locally.
- Creating two UIs: for data providers, and data users.
## Implementation Details and Data Flow
1. Data Provider (user A) submits a dataset with [task ID, hours, rate] via an UI. [Note: this can be filler data, but should resemble something like: 4353 (ID), 32 (total hours), 123 (hourly rate)] Data Providers should be able to enter a "task name" to title the data set.
2. Dataset submitted by Data Provider is encrypted via Enigma-JS and submitted to the secret contract (which functions as the data storage in this example-- dataset should not be overly large).
3. Data Users (user B) select the "task name" from a list in a UI (for example, Generic Security Audit).
4. Data Users are prompted to submit quote data via the UI.
5. Data user data is encrypted via Enigma-JS and submitted to the secret contract.
6. The secret contract should compare the Data user B submitted with User A's dataset, and determine what percentile User B data is within.
7. The percentile result should be encrypted for User B, and returned.
8. User B should be able to receive and decrypt the result in their UI.
## Other Deliverables
- Migration scripts (if required)
- Integration tests
- Readme
## Success
A running application, which should have a simple React-based UI (or similar), enable the solution, and handle failure (i.e., displays a meaningful message when improperly formatted data is submitted).
## Bounty Selection
For this first bounty round, the process works as follows:
1. Developer / team submits a **“pre-submission for approval”** for a bounty
2. Enigma reviews submissions, and selects an applicant (we don’t have a firm timeline for this, but hope to work quickly)
3. Applicant completes the task satisfactorily and receives the bounty
If the task is not completed, or applicant is unable to continue work in a timely manner, Enigma will select another applicant.
To complete a pre-submission for approval,
First, comment on this issue within github and indicate your interest. Then, please also complete [this application form. ](https://airtable.com/shrN7Bu95f3R21XKx)
## Resources
These materials should help you get started:
[Enigma Discovery Documentation
](https://enigma.co/discovery-documentation/)
[Developer Quickstart Guide](https://blog.enigma.co/the-developer-quickstart-guide-to-enigma-880c3fc4308)
[Secret Contracts Walkthrough](https://blog.enigma.co/getting-started-with-enigma-an-intro-to-secret-contracts-cdba4fe501c2)
[Enigma-JS
Walkthrough](https://blog.enigma.co/getting-started-with-enigma-a-front-end-demo-for-dapps-bc694d3d81b9)
Setup your profile
Tell us a little about you:
Skills
No results found for [[search]] .
Type to search skills..
Bio Required
[[totalcharacter]] / 240
Are you currently looking for work?
[[ option.string ]]
Next
Setup your profile
Our tools are based on the principles of earn (💰), learn (📖), and meet (💬).
Select the ones you are interested in. You can change it later in your settings.
I'm also an organization manager looking for a great community.
Back
Next
Save
Enable your organization profile
Gitcoin products can help grow community around your brand. Create your tribe, events, and incentivize your community with bounties. Announce new and upcoming events using townsquare. Find top-quality hackers and fund them to work with you on a grant.
These are the organizations you own. If you don't see your organization here please be sure that information is public on your GitHub profile. Gitcoin will sync this information for you.
Select the products you are interested in:
Out of the box you will receive Tribes Lite for your organization. Please provide us with a contact email:
Email
Back
Save