Workers Auto Approve
enigma, ethereum, privacy, rust
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
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)
These materials should help you get started:
[Enigma 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)
Setup your profile
Tell us a little about you:
No results found for
Type to search skills..
Required [[totalcharacter]] / 240
Are you currently looking for work?
[[ option.string ]]
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.
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: