We believe that diversity of expertise is key to tackling complex challenges, and that cross-disciplinary collaboration is essential to driving meaningful innovation.
Our Cryptography Research team works closely with our external partners and engages in continuous internal research across several domains.
Cryptography protocols
Decentralized identity, verifiable credentials
Sybil and white-labeling resistance
Consensus design
Zero-knowledge proofs: security analysis & new schemes
Distributed Validator Technology (DVT)
Our research is helping the Lido DAO transition from a permissioned staking service into a permissionless one.
A research project that Nethermind is currently conducting with Cardinal Cryptography.
zkSNARKS have received increasing interest in the last few years because of their practical implications in designing efficient, secure, and privacy-preserving proof systems. However, there is a trade-off between security and communication, proof generation, and proof verification complexity - often resolved to the detriment of security.
We analyzed the security of zkSNARKs used in the Ethereum ecosystem, specifically to secure zk rollups. We found that some zkSNARKs do not meet the reference value of 128 bits of security and are much less secure. The reduction of security was possible due to our sound understanding of theoretical cryptography, which allowed us to design attacks that are significantly more efficient than those considered by zkSNARKs’ authors.
Modern zkSNARKs are cryptographic zero-knowledge proof systems - in other words, systems used to prove the veracity of statements while still keeping parts of the statements private. To achieve this goal, zkSNARKs utilize mathematical procedures, such as the Fast Fourier Transform, that require performing computations on sets of numbers known as finite fields. As it turns out, the native arithmetic performed on CPUs and GPUs does not operate on finite fields, but instead works on sets of numbers called rings, specifically integers modulo 2^64. Our team is working on creating a zkSNARK employing the native CPU/GPU arithmetic of rings, which could lead to better efficiency and performance on these computing architectures.
We have developed a novel zkSNARK called “Vampire”, that has the shortest proof among all updatable and universal zkSNARKs. The proof size is twice as small as Plonk’s and only marginally worse than Groth16’s. Importantly, the latter proof system is neither updatable nor universal. A proof-of-concept implementation will be available soon.
Our team has developed a user-friendly tool to help securely store mnemonic keys, which are essential for accessing digital wallets. We use a method called Shamir's secret sharing to split the key into multiple shares. To reveal the original key, a certain number of these shares (known as the threshold) must be combined. The tool allows the user to choose both the number of shares and the threshold.
This approach enhances security, as the key parts can be stored on different devices or locations, making it harder for hackers to access the entire key. Additionally, it reduces the risk of losing the key due to accidents or device failures. Our cryptography research team has written a blog post explaining how Shamir's secret sharing works and how to use it for secure mnemonic key sharing.