Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build an identity contract for Hylé with WebAuthn #1

Open
alexture opened this issue Jan 6, 2025 · 12 comments · May be fixed by #11
Open

Build an identity contract for Hylé with WebAuthn #1

alexture opened this issue Jan 6, 2025 · 12 comments · May be fixed by #11

Comments

@alexture
Copy link
Collaborator

alexture commented Jan 6, 2025

WebAuthn is a web standard aiming to standardize user authentication using passkeys.

Implementing WebAuthn verification means verifying proof of a P256 signature. Use Hylé to enable a verified authentication that creates a state transition. Hylé's pipelined proving allows you to build your challenge onchain without depending on a server.

Contributor guidelines

Please read our contributor guidelines on how to apply. Applications that don't follow these guidelines will not be accepted.

Suggested way to solve

The contract is deployed on Hylé with defined parameters (origin, type of alg/curve used, etc.).

  1. The user starts registration/login and gets relevant parameters by looking at the Hylé state (or defined in the circuit).
  2. The user sends a blob transaction for their login.
  3. Hylé sends a tx hash back to the user, which will be used as the challenge.
  4. In the contract, the tx hash is enforced to be the same as the public input used in the message verification.
  5. The user computes the proof and sends it to Hylé.
  6. Once the proof is settled on Hylé, the state is updated with the relevant information (counter/credential_id).

Resources

@martinvibes
Copy link

Holla i'm Martin, I'm a frontend developer who enjoys building smooth applications to pixel perfect and engaging websites using JavaScript, typescript and frameworks(React, nextjs, tailwindcss etc.) and i have contributed to other projects that have been merged.
Am also experienced in working and writing smart contracts.
Kindly assign :)

@salazarsebas
Copy link

My background

I'm a software engineer and passionate about solving problems, I've been contributing to open source software for a few months and it's an experience that has taught me a lot and I really like to contribute to other projects. I am a member of the Dojo Coding community⛩️. I will dedicate all my effort to complete this issue in the best way.

@ShantelPeters
Copy link

May I handle this issue? i am a blockchain developer with experience in cairo, HTMl, python , javascript , typescript etc..

@vestor-dev
Copy link

Holla i'm Vestor, I'm an experienced frontend developer and a smart contract developer and i would love to take on this issue.
Kindly assign :) and i'll get to work

@Wendyalbert
Copy link

May I take care of this?

@Jagadeeshftw
Copy link

Proposal to Work on the Issue

I am eager to contribute to this issue and believe I am well-suited for the task, given my extensive experience in Cairo programming and building decentralized applications on StarkNet. My expertise spans across multiple domains crucial for this implementation:

  • Smart Contracts & Blockchain Development: Proven expertise in StarkNet, Stellar, and Rust, with hands-on experience in developing secure and efficient smart contracts, blockchain integrations, and high-performance backend systems.
  • Backend Engineering: Strong background in designing and managing scalable APIs, handling server-side operations, and ensuring robust backend performance for blockchain applications.
  • Frontend Development: Proficient in building intuitive and responsive frontend interfaces using React and Next.js, ensuring seamless interaction between users and blockchain-based applications.

Why Assign This to Me?

I have a track record of delivering high-quality solutions efficiently, with a deep understanding of smart contract security, decentralized architectures, and full-stack development. My ability to bridge frontend, backend, and blockchain components ensures a well-rounded, optimized solution.

Estimated Timeline

I anticipate delivering a fully functional solution within 2 days. Please let me know if I can proceed.

I am excited about the opportunity to contribute and look forward to collaborating!

Best regards,
Jagadeesh B

@guha-rahul
Copy link

I have some experience with Risc Zero. Would love to tackle this

@juandiegocv27
Copy link

Hi, I’m Juan Diego Carballo, a software engineer with over a year of experience in blockchain projects, including smart contract development and wallet integration. I’ve worked on projects like ByteBeasts and contributed to open-source projects on OnlyDust, focusing on front-end and blockchain integration. I’m confident I can deliver a WebAuthn-based identity contract for Hylé.

Relevant Experience:

  • ByteBeasts: Integrated Dojo Engine for on-chain transactions in a 2D RPG game.
  • OnlyDust Contributions: Contributed to open-source projects, focusing on front-end and blockchain development.
  • Blockchain Experience: Over a year of experience in blockchain projects, including WebAuthn integration.

Approach:

  1. Implementation:
    • Develop a contract that uses WebAuthn for P256 signature verification.
    • Update Hylé’s state with user information (counter/credential_id) after successful verification.
  2. Testing:
    • Write unit tests for registration and authentication flows.
    • Use Risc0 or SP1 for proof generation.
  3. Documentation:
    • Document the contract and its workflow for ease of use.

Resources:

Availability:
I can start immediately and deliver a pr within a day of assignment.

@1nonlypiece
Copy link

Application for Contribution

I am excited about the opportunity to contribute to this issue and am confident that my expertise aligns well with the requirements. With a strong background in Cairo programming and decentralized application development on StarkNet, I bring a well-rounded skill set to deliver an effective solution.

Relevant Expertise

  • Blockchain & Smart Contracts: Extensive experience with StarkNet, Stellar, and Rust, specializing in developing secure and optimized smart contracts, blockchain integrations, and high-performance backend infrastructure.
  • Backend Development: Well-versed in API design, server-side logic, and scalable system architecture, ensuring efficient and seamless backend performance.
  • Frontend Engineering: Skilled in crafting interactive and responsive UI components using React and Next.js, enhancing the user experience for blockchain-based platforms.

Why Consider My Application?

My proven track record of delivering high-quality, optimized solutions in blockchain and full-stack development sets me apart. I have a deep understanding of smart contract security, decentralized architectures, and the synergy between frontend, backend, and blockchain layers—ensuring a seamless and efficient implementation.

ETA

I expect to have a working solution ready within 48 hours. Please let me know if I can proceed with the implementation.

@aniruddhaaps
Copy link

Hey, I'm a sofware developer with knowledge of react and rust and want to contribute to the issue. To address this issue, I would
-Develop a Hylé contract that verifies WebAuthn authentication by validating P256 signatures, referencing the WebAuthn documentation for details.
-Then deploy the contract on Hylé with parameters like origin and algorithm type defined in the circuit. Follow the suggested workflow to handle user registration/login and challenge generation on-chain.
-Finally I would utilize Risc0 or SP1 in dev mode for efficient proof generation, ensuring state transitions (e.g., counter updates, credential ID storage) align with Hylé’s pipelined proving. Adhere strictly to the contributor guidelines for submission.

@anonfedora
Copy link

I'm a Blockchain developer, proficient in Cairo, Rust, TypeScript, testing, designing continuous integration and continuous deployment pipelines..

@od-hunter
Copy link

Hi, please can I be assigned this please? I am a returning contributor and I would love to be given the opportunity to solve this issue please. I have experience in html, css, JavaScript, TypeScript, cairo and rust.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.