Zero-knowledge Jobs
407 jobs found
Are you the one?
Starknet is the fastest-growing network in terms of new developers joining the network. Nethermind builds many developer-facing tools that need to work seamlessly in this fast-paced blockchain. This ecosystem needs contributors with quality-mindset, capable of applying their craftsmanship and systematic creativity to improve its components. Do you have what it takes?
Responsibilities:
- R&D working culture
- Development of scalable, high availability, and low-latency architectures
- Implement optimization algorithms to improve code generation and execution efficiency.
- Collaborate with software engineers and architects to integrate compiler technologies into larger software systems.
- Analyze and debug compiler-generated code to ensure correctness
- Contribute to the documentation of compiler design, implementation, and usage.
- Participate actively in code reviews, providing valuable insights and feedback to peers.
- Opportunity to work with the top software engineers and research professionals to solve the toughest technical challenges
- Working with the latest tools and technologies
- Troubleshooting
Skills:
- Ability to implement efficient algorithms and design complex data structures
- Excellent programming skills, Go or Rust preferred but will also considerother tech stacks(e.g. Java, C++)
- Experience with compiler construction tools such as Lex, Yacc, LLVM, GCC, or similar.
- Strong understanding of compiler architecture, principles, and optimization techniques.
- Familiarity with assembly language programming and debugging.
- Ability to write clean, testable, and maintainable code without over-engineering
- An entrepreneurial nature, willing to take ownership and run toward problems
- Several years of experience in software development
- Awareness of cloud-based computing environments (eg. AWS)
- Strong computer science background, including knowledge of algorithms, data structures, and operating systems concepts.
- Effective communication skills, both written and verbal.
Nice to have:
- Performance and memory optimisations
- Awareness of blockchain / EVM / TransactionPool / JSON RPC
- Knowledge of zero-knowledge proofs (ZKPs) and their integration into Starknet or similar platforms.
- Cryptography
- Knowledge of parallel programming paradigms and techniques.
- Experience with dynamic analysis tools for performance profiling and optimization.
- Understanding of formal methods and compiler verification techniques.
- Familiarity with virtual machine architectures and execution models
Examples of projects the team has worked on:
- Transpiler from Solidity to Cairo
- Virtual Machine in Go for Cairo code
- Compiler to convert Sierra code to machine code via MLIR and LLVM
- Integration with elements of Starknet ecosystem (eg. Starknet Blockifier)
What is Zero-knowledge?
Zero-knowledge is a concept in cryptography that allows two parties to exchange information without revealing any additional information beyond what is necessary to prove a particular fact
In other words, zero-knowledge is a way of proving something without actually revealing any details about the proof
Here are some examples of zero-knowledge:
- Password authentication: When you enter your password to log into an online account, the server doesn't actually know your password. Instead, it checks to see if the hash of your password matches the stored hash in its database. This is a form of zero-knowledge because the server doesn't know your actual password, just the hash that proves you know the correct password.
- Sudoku puzzles: Suppose you want to prove to someone that you've solved a particularly difficult Sudoku puzzle. You could do this by providing them with the completed puzzle, but that would reveal how you solved it. Instead, you could use a zero-knowledge proof where you demonstrate that you know the solution without actually revealing the solution itself.
- Bitcoin transactions: In a Bitcoin transaction, you prove that you have ownership of a certain amount of Bitcoin without revealing your private key. This is done using a zero-knowledge proof called a Schnorr signature, which allows you to prove ownership of a specific transaction output without revealing the private key associated with that output.
- Secure messaging: In a secure messaging app, you can prove to your contacts that you have access to a shared secret without revealing the secret itself. This is done using a zero-knowledge proof, which allows you to prove that you have access to the secret without actually revealing what the secret is.