Git Product home page Git Product logo

hermit's Introduction


Logo

Hermit

A Secure MutltiParty Computation Collaboration Platform build on top of Filecoin to enhance AI privacy.
View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About The Project

Runner Ups of File Coin Data Economy Hackathon 🚀 4️⃣

The need for collaborative data analysis in today's networked world is evident in a variety of industries, including healthcare and finance. However, the overriding concern for data security and privacy frequently stymies this requirement for cooperation. This is where Secure Multi-Party Computation (SMPC) shines as a solution that allows for collaboration while protecting private data using cryptographic methods. However, the scalability, efficiency, and ease of integration of current Coll frameworks are frequently lacking. Presenting THE HERMIT—a novel SMPC solution painstakingly designed to confront these issues head-on. THE HERMIT promises to transform collaborative data analysis in the digital era by providing strong privacy guarantees, unmatched scalability, and smooth integration capabilities. Privacy and security are always guaranteed.

Getting Started

Prerequisites

This is an example of how to list things you need to use the software and how to install them.

  • npm
    $ npm install npm@latest -g
  • cargo
    $ curl https://sh.rustup.rs -sSf | sh
  • docker Depending on the distro
    $ sudo dnf install docker

Beginning THE HERMIT's Journey:

Greetings from THE HERMIT, the ultimate in collaborative data analysis that protects privacy! Start your technological adventure with THE HERMIT by carefully setting up and implementing the following components:

Base setup:

Fork this repo and clone it into your local

$ git clone https://github.com:<your_username>/Hermit && cd Hermit

Zero-Knowledge (zk) Server:

Launch the zk server instance, which is the foundation for THE HERMIT's cryptographic activities. Verify the zk server's correct operation to guarantee the smooth execution of cryptographic protocols, which is necessary for the creation and validation of cryptographic proofs.

$ cd zk
$ cargo run

SMPC Server:

Start up THE HERMIT ecosystem's dependable platform for secure multi-party computation (SMPC), the SMPC server infrastructure. Maximize performance and resilience in server settings to provide effective computation over dispersed datasets and protect data privacy using cryptographic primitives.

Collaborator Server:

Turn on the infrastructure of Collaborator Server, which is essential for promoting coordination and communication between various parties.

Architecture & Data

The data flow in our application contains mainly of three phases :

Belman's zk-SNARKs and zkProofs::

When two parties decide to collaborate the first ensures integrity in both the datasets provided

Bellman's zk-SNARKs, which offer brief, non-interactive arguments of knowledge, are used to construct zkProofs. Without disclosing the actual data, partners can use these proofs to confirm that the number of data points in respective datasets is identical. Bellman's zk-SNARKs provide effective verification and small proof sizes by utilizing sophisticated cryptographic techniques including polynomial commitment schemes and elliptic curve pairings. A trusted setup step is used to build proving and verifying keys, and then a zk-circuit representing the equality constraint between the dataset sizes is created as part of the proof generation process. Data privacy and integrity are guaranteed since zkProofs can be effectively validated by anybody without requiring access to the underlying datasets once they have been created.

Uploading  Data to Filecoin and IPFS::

Collaborators use the decentralized peer-to-peer file sharing technology IPFS to upload their datasets. To ensure tamper-resistance and information integrity, IPFS uses cryptographic hashing to create content-based addresses, also known as information IDs or CIDs, for uploaded data. In addition, partners start a storage agreement on the decentralized Filecoin storage network. Filecoin uses cryptographic proofs, including Proof-of-Spacetime (PoSt) and Proof-of-Replication (PoRep), to confirm that storage providers are adhering to the storage agreements. These cryptographic techniques preserve the secrecy of partners' datasets while ensuring data availability, redundancy, and durability in a trustless and decentralized way.

SMPC

SMPC facilitates collaborative decision tree training via secret sharing and secure function evaluation (SFE). Shamir's Secret Sharing Scheme fragments training data into shares for collaborators. Reconstruction requires a pre-defined threshold, ensuring individual data privacy.

SFE protocols like Yao's garbled circuits or oblivious transfer (OT) handle decision tree node computations. Yao's garbled circuits transform the tree into a circuit with wires representing data and gates representing computations. Collaborators receive obfuscated circuit sections and secret keys corresponding to their data. Secure comparisons are performed without revealing actual data values. OT enables one party to transmit messages to another such that the receiver learns only the chosen message, oblivious to others' content. This facilitates secure data point comparisons against chosen thresholds.

Collaborators iteratively evaluate nodes using SFE. Secret shares of decision outcomes propagate down the tree based on a pre-defined aggregation function (e.g., majority vote) while maintaining individual data point secrecy. This culminates at the terminal nodes, revealing the final decision tree for collaborative tasks.

The choice of SFE protocol and secret sharing scheme impacts efficiency. Techniques like homomorphic encryption or packed SFE can improve efficiency for specific cases, but often introduce trade-offs in security or communication complexity. Research focuses on optimizing protocols for practicality while maintaining strong privacy guarantees.

Roadmap

  • Add Changelog
  • Implment the Compiler in Rust
  • Add Additional Templates w/ Examples
  • Add "components" document to easily copy & paste sections of the readme

See the open issues for a full list of proposed features (and known issues).

(back to top)

Usage

Imagine you're building a model to classify handwritten digits (0-9). Each row represents a flattened image of a digit, with the four features capturing characteristics like pixel intensities in different regions. The fifth element would then indicate the actual digit (0, 1, 2, etc.).

we are taking this dataset as our input dataset for the smpc training and outputting the Decision tree made along with their node id's and other relevant data.

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

Research Papers

These are the list of Research we used to gain knowledge about smpc

(back to top)

hermit's People

Contributors

sahilgill24 avatar utkarshdagoat avatar vrag99 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

hermit's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.