Hyle-org / examples

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

WebAuthn signature verification on Hylé (easy!) #8

Open s0lness opened 3 weeks ago

s0lness commented 3 weeks ago

Write a program to verify a WebAuthn signature (ECDSA secp256r1) on Hylé. This is the 1st step to supporting WebAuthn-compatible wallets on Hylé. You can do it in any language (Noir, Rust, Cairo).

Here's the documentation to code your 1st smart contract on Hylé.

We've actually already done it! Here's the ECDSA signature verification in Noir used for the vibe check demo. You can just repackage it properly in this folder repo. Bonus points if you do it in other languages, here's Cartridge's implementation in Cairo and here's one in Rust.

raizo07 commented 3 weeks ago

@s0lness I'll like to work on this

raizo07 commented 3 weeks ago

@s0lness I'll like to work on this

sotoyjuan commented 3 weeks ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

Hey! I'd like to collaborate on this project. I have five years of frontend development experience, I'm currently going through a Starknet bootcamp with Dojo Coding, which provides me with the foundational knowledge needed. I believe this combination of my experience and current training makes me well-suited to tackle this issue. I've already contributed to another project. Thanks for considering me.

How I plan on tackling this issue

I'd start by going through the documentation for coding smart contracts on Hyle, then checking the Noir implementation and since I know Cairo I would implement it in Cairo. I'd love to collaborate on this project!

raizo07 commented 3 weeks ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

Hello, I'll like to be assigned to work on this. I am a first time contributor and would love to be given the opportunity.

wugalde19 commented 3 weeks ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

Hi Hyle team, I’m William from Costa Rica 🇨🇷 and member of the Dojo Coding community. I am interested in contributing to this issue and believe my skills and background make me well-suited for the task. I’ve worked over 7 years as Full Stack engineer in several technologies (including the ones used on this project JS, and Typescript) and I am currently expanding my expertise in Rust, Cairo, and Solidity.

I’m interested in learning more about your team and contribute to the examples repo

Profiles: https://app.onlydust.com/u/wugalde19

https://github.com/wugalde19

How I plan on tackling this issue

The way I’d approach this is by studying your Noir implementation first and understand your coding style, patterns. Then go and checkout the implementation in Cairo and Rust and chose one of them to implement as part of the solution of this issue (I wanna challenge myself doing it in another language) Once I do start working on the solution I’d reach out in the Telegram group asking for feedback about my implementation and if someone could guide me on how to test it. Then once I’m ready to create the PR, I’d also add/update documentation. Finally, create the PR to start receiving your valuable feedback and iterate over my implementation.

ShantelPeters commented 3 weeks ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

My background in blockchain development, particularly with Cairo and Rust, positions me well for this task. I've worked extensively with smart contract languages and have experience implementing cryptographic functions and multi-signature systems. I can leverage this experience to adapt and repurpose the existing ECDSA signature verification code in Noir for Hylé, and potentially translate it into Cairo or Rust for additional versatility and integration with various systems.

How I plan on tackling this issue

To verify a WebAuthn signature (ECDSA secp256r1) on Hylé:

  1. Repackage Existing Code: Start by repackaging the provided ECDSA verification code in Noir for Hylé. Ensure it’s correctly structured and integrated as per Hylé's smart contract requirements.
  2. Verify Functionality: Test the repackaged Noir implementation to confirm it performs accurate ECDSA signature verification.
  3. Expand to Other Languages: For bonus points, adapt the verification logic to Cairo and Rust. Ensure each implementation adheres to the signature verification standards and integrates with Hylé as expected.

This approach leverages existing code and documentation, allowing for efficient and accurate implementation in multiple languages.

DiegoB1911 commented 3 weeks ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

I'm a Full Stack Developer with two years of experience. I'm also a member of Dojo Coding, where I'm learning new things such as Cairo and Web3. This is my first time participating in an OD Hack, and I'm eager to learn and contribute to new projects.

How I plan on tackling this issue

To solve this problem I would do this: 1: Review Existing Implementations 2: Implement Verification in Cairo 3: Integration and Validation: Ensure that implementation is compatible with Hylé and integrates seamlessly

SoarinSkySagar commented 2 weeks ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

I am a full stack dapp developer and love to write smart contracts. I have been working with blockchains and smart contracts for more than a year now.

How I plan on tackling this issue

Will write a program in Noir to verify a WebAuthn signature from the provided example. Will make sure to refactor it and modify it to make it more readable and add comments explaining what the following lines of code do.

CollinsC1O commented 2 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

BernalHQ commented 2 weeks ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

Hi, my name is Bernal. I am a software developer with four years of experience. Currently, I work as a backend developer and am enthusiastic about Web3 development, which is why I’m very interested in contributing to this issue.

How I plan on tackling this issue

First, I’m going to familiarize myself with the project and how it works. Then, I’ll use the Cairo ERC20 contract as inspiration for the implementation, followed by running some tests.

PoulavBhowmick03 commented 2 weeks ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

I'm Poulav Bhowmick, a software engineer at Invisible Studios with a robust background in TypeScript, Rust, Solidity Cairo, fullstack development and blockchain technology. My experience includes building robust applications, optimizing functionalities and blockchain integration. I have actively participated in events and open source contributions, enhancing my capability to tackle real-world tech challenges. My projects can be viewed on my GitHub Profile and OnlyDust Profile. Plus I´m active member of Starknet community🇷.

How I plan on tackling this issue

I will address this issue by implementing a WebAuthn signature verification process on Hylé, leveraging the existing ECDSA secp256r1 implementation. My approach will be as follows:

Understand the Existing Noir Implementation: I will first review the provided Noir code used for the vibe check demo, ensuring that I understand the core components and the overall flow of the signature verification.

Repackage the Noir Implementation: I will refactor the existing Noir code to fit the structure and organization required by the Hylé repository. This will involve placing the code in the appropriate directory, ensuring modularity, and making any necessary adjustments to align with the project's coding standards.

Implement in Rust and Cairo (if applicable): I will also implement the WebAuthn signature verification in Rust and Cairo, following the examples provided by Cartridge. This will not only demonstrate cross-language support but also provide flexibility in choosing the most suitable implementation for future use cases.

Testing: I will write comprehensive test cases to ensure that the verification logic is sound and performs correctly across different scenarios. This includes validating the signature against various public keys and ensuring that the transaction hash matches the expected challenge.

Documentation: Finally, I will update the relevant documentation to explain the implementation details, how to use the verification function, and any considerations for future developers.

This approach will ensure a robust and well-documented solution for supporting WebAuthn-compatible wallets on Hylé.

ETA - 3 days

MachoMaheen commented 2 weeks ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

I am a Full Stack Blockchain Developer with hands-on experience in developing smart contracts on various blockchain platforms. My work at Spathion Labs involved developing a DEFI lending pool on the Shardeum Blockchain, where I gained substantial experience in integrating smart contracts with frontend applications and implementing security features. I also have experience in multiple programming languages, including Solidity, Rust, and Cairo, which are critical for smart contract development.

Furthermore, I have actively participated in hackathons such as ETHIndia 2022, ETHDenver 2023, and ETHForAll 2023, where I honed my skills in developing decentralized applications and won a bounty at ETHForAll 2023. My recent project involved developing Devdock, a VS Code extension for the Starknet ecosystem, where I integrated Web3 authentication via GitHub and Starknet wallets, showcasing my ability to work across different blockchain platforms and tools.

This experience, combined with my passion for blockchain technology, positions me well to contribute effectively to this project, particularly in the area of WebAuthn signature verification and cross-language implementation.

How I plan on tackling this issue

To tackle the WebAuthn signature verification problem on Hylé, I would follow a structured approach:

  1. Review Existing Implementations:

    • I would begin by studying the provided ECDSA signature verification implementation in Noir, as it is already functional and serves as the foundation for this task. Understanding the core components, logic, and structure will be essential for successful implementation.
  2. Repackage the Noir Implementation:

    • I would then refactor the existing Noir code to fit the structure and standards required by the Hylé repository. This will involve organizing the code within the appropriate directories, ensuring modularity, and making any necessary adjustments to align with Hylé's coding conventions.
  3. Expand to Other Languages:

    • For additional versatility and integration, I would adapt the verification logic to Rust and Cairo.This would not only demonstrate cross-language support but also offer flexibility in choosing the most suitable implementation for future use cases.
  4. Testing:

    • I would write comprehensive test cases to validate the signature verification logic. This would include checking the functionality across different scenarios, such as verifying signatures against various public keys and ensuring transaction hash consistency.
  5. Documentation:

    • Finally, I would update the project documentation to explain the implementation details, including how to use the verification function and any considerations for future developers.

This approach ensures a robust, versatile, and well-documented solution for supporting WebAuthn-compatible wallets on Hylé.

martinvibes commented 2 weeks ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

i'm a frontend dev and a blockchain developer, will love to take on this issue and get it done if you give me the chance

How I plan on tackling this issue

Review Documentation:

Check the provided ECDSA verification code in Noir and implementations in Cairo and Rust. Select a Language:

Choose one of the supported languages (Noir, Rust, Cairo) for my implementation. Implement Verification:

Write the WebAuthn signature verification code using ECDSA secp256r1 in my chosen language. Package the Code:

Organize and add my implementation to the designated folder in the repository. Test and Validate:

Ensure my code works correctly by running tests and verifying functionality.

MatiasAchucarro commented 1 week ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

I am a passionate and results-driven web developer, currently deepening my knowledge in web3 technologies, Cairo, and open-source development through Dojo Coding. My skill set includes expertise in JavaScript, React, HTML, CSS, C# with .NET Entity Framework, and more. I also have experience with tools like Git, GitHub, SQL Server, and Postman. My focus has been on building solid web applications, from task lists to full-fledged CRUD systems, with front-end, back-end, and database integration.

This will be my first contribution to the open-source ecosystem, and I am excited to learn and collaborate on innovative projects, particularly those involving Cairo.

How I plan on tackling this issue

First, I would review the ECDSA signature verification implementation in Noir and the Hylé documentation. Then, I would adapt that code to work in the specified repo folder. If needed, I’d also implement it in Cairo and Rust using the examples. Finally, I’d test the verification in each language, commit the code, and open a Pull Request with basic documentation.