Hyle-org / examples

Collection of example contracts to be deployed on Hylé
2 stars 10 forks source link

Multisig / threshold signatures #14

Open s0lness opened 3 weeks ago

s0lness commented 3 weeks ago

Write a program in any provable language (Circom, Cairo, Noir, Rust) to provide a proof of K signatures out of N in a multisig setup.

fishonamos commented 3 weeks ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

Backend Developer

How I plan on tackling this issue

Implement a Rust Program that checks if a signature is valid against a given public key and message. Also, I will compare the count of valid signatures to K and return true if the condition is met.

codeZe-us commented 3 weeks ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

Software Engineer with interest in Mobile Application and Blockhain technologies. My stacks are: SwiftUI, Kotlin, Solidity, Golang, Flutter, Cairo with a basic knowledge of Rust.

How I plan on tackling this issue

I can do this with Cairo or Rust. For Cairo, I will setup Multisig by defining the data structures for public keys, signatures, and the logic to verify that K out of N signatures are valid, then I will proceed to implementing the Verification Logic which will take will take N public keys and K signatures as input and verify if the signatures are valid for the given public keys.

For Rust, firstly, I will add dependencies for cryptographic operations and possibly for zero-knowledge proofs, then proceed to Multisig setup by defining the structure to hold the public keys and signatures. Then I will implement the verification function, key generation and signing functions. Also, I will work on the logic to verify that K out of N signatures are valid. if needed, I can implement zero-knowledge proof aspect to this, which will require me to integrate a zk-SNARK or zk-STARK library. ETA: 2 - 3 days.

bitfalt commented 3 weeks ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

Hii, my name is Daniel and I'm a software and web3 developer. I've done smart contracts using Cairo and recently started exploring Rust. I'm also doing a Starknet Bootcamp where I learned about provable languages, zk-proofs and the basics of a program. I'm also a member of the Dojo Coding community.

How I plan on tackling this issue

The way I would tackle the issues is in the following way:

Also, I would read the docs for the Collatz Conjecture and learn how to implement the program in Hyle correctly.

For writing the way I would tackle this issue, I read the following articles as references: https://scryptplatform.medium.com/threshold-signatures-a0eff03dc29c https://scryptplatform.medium.com/distributed-key-generation-3ef41ced01ed

ShantelPeters commented 3 weeks ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

I would design a program to verify that a multisig transaction is authorized by at least K out of N signatures using a provable language. For instance, in Circom, I’d create a circuit to check the validity of K signatures from a set of N, leveraging zero-knowledge proofs to ensure only valid proofs are accepted without revealing the actual signatures. Testing and optimizing the circuit would be crucial to ensure performance and correctness.

How I plan on tackling this issue

To tackle this issue, I would:

  1. Define Requirements: Outline the multisig setup, specifying K signatures required from N total signatures.
  2. Choose Language: Opt for a suitable language like Circom for zk-SNARKs or Cairo for Starknet integration.
  3. Develop Circuit/Program: Implement a proof system that verifies the presence of at least K signatures out of N. This involves creating a circuit or function that checks the signature set's validity and generates a proof.
  4. Testing: Ensure the program handles various scenarios and edge cases effectively, validating correctness and performance.
  5. Integration: Connect the proof system with existing systems or smart contracts as needed.

This approach ensures the program accurately verifies multisig signatures while providing a provable, efficient solution.

ScottyDavies commented 3 weeks ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

I have several years of experience working with provable languages and cryptographic protocols, particularly in the context of blockchain and distributed systems. I have deep expertise in Circom, Cairo, Noir, and Rust, and have developed various zero-knowledge proof applications and smart contracts.

How I plan on tackling this issue

I would approach this issue with following steps UI and UX Design: Create a user-friendly interface for signature input and proof submission. Communication with Backend: Establish a communication channel to send signatures and receive verification results. Signature Collection and Handling: Provide a way for users to input their signatures and validate the input. Proof Verification and Display: Receive the verification result from the backend and display it to the user. Error Handling and User Experience: Implement robust error handling and provide clear guidance to the user. Integration with the Backend: Collaborate with the backend team to ensure seamless integration. Security and Accessibility: Ensure the application adheres to best practices for web security and accessibility.

CollinsC1O commented 3 weeks ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

Hi @s0lness I will love to work on this

PrincesoDan commented 3 weeks ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

it is my first issue