Skip to content

Our project for the Filecoin Data economy hackathon

Notifications You must be signed in to change notification settings

Sahilgill24/Hermit

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


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

Product Name Screen Shot

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)

About

Our project for the Filecoin Data economy hackathon

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 33.6%
  • TypeScript 26.3%
  • JavaScript 21.9%
  • Solidity 17.0%
  • CSS 1.2%