This week began with the build phase at EIF, and I worked on getting the project proposal ready. I was very interested in implementing something related to cryptography, so I came up with the idea of using MPC (Multiparty Computation) and ZK (Zero Knowledge) protocols. Before proceeding with this idea, I decided to revise my cryptography basics and deep dive into MPC to improve my understanding of it.
If you’re wondering what MPC is, MPC stands for Multiparty Computation.
Multiparty computation (MPC) is a branch of cryptography that allows multiple parties to jointly compute a function over their private inputs without revealing those inputs to each other. In other words, it allows computation on data without requiring the data to be revealed to any single participant or central authority.
MPC algorithms ensure that each participant can obtain the computation's result without knowing the other parties' data. This is accomplished through the use of cryptographic protocols such as secret sharing, homomorphic encryption, and garbled circuit
MPC paper I referred to :
https://eprint.iacr.org/2020/300.pdf

Shamir's Secret Sharing is a cryptographic algorithm that divides a secret into multiple shares and distributes them among participants. This allows the secret to be rebuilt only if a large enough number of shares are combined, but not if only a few shares are available.
Adi Shamir created the algorithm in 1979, and it is based on polynomial interpolation. The secret is first encoded as a polynomial constant term, and then a number of random points on the polynomial are generated and distributed among the participants. Any subset of the participants can combine their shares to reconstruct the polynomial and thereby recover the secret. This can be proven using Zero-Knowledge.
Zero-Knowledge-Proof (ZKP) is a cryptographic protocol that allows one party to prove to another that a particular statement is true without revealing any additional information other than the validity of the statement itself.
In a zero-knowledge proof, the party making the proof (known as the prover) can persuade the other party (known as the verifier) that a particular statement is true without revealing how they know it is true. The verifier is convinced that the statement is true because the proof is constructed in such a way that someone unfamiliar with the statement would be extremely unlikely to create a convincing proof of its truth.
https://twitter.com/RuthuRao/status/1520014511654072320?s=20
Writing these proofs in Circom has been a challenging but absolutely interesting experience. Circom is both a programming language and a toolset for building zero-knowledge proofs (ZKPs), which allows developers to design and compile circuits capable of generating ZKPs. These circuits can represent any computation that can be expressed as a directed acyclic graph (DAG), including arithmetic operations, Boolean logic, and more complex computations.
https://twitter.com/RuthuRao/status/1633830388815790092?s=20
Some of the objectives:
Users can recover their account with just a part of their private key due to MPC.
The other parts of the key is stored at different locations and the location is secured via ZKP.
Allows for Secret key distribution among the user’s trusted accounts.
Allows users to recover keys without compromising security or privacy.
Prevents loss of funds due to lost or forgotten keys.
Provides an additional layer of security for cryptocurrency wallets.
Identity of the parties involved and the data they hold is unknown.
This project solves the problem of users permanently losing access to their funds due to lost or forgotten private keys.
One of the main challenges of using cryptocurrencies is the risk of losing access to funds due to lost or stolen private keys. Private keys are used to access and manage cryptocurrency funds, and if they are lost or stolen, the user may permanently lose access to their funds. Key recovery wallets with MPC and ZKP solve this problem by offering a highly secure way to recover lost or stolen private keys.
Multiple parties can work together using MPC to reconstruct a user's private key without any one party having access to the full key. ZKP can be used to verify the correctness of the reconstructed key without revealing any additional information about the key itself.
This project proposes a key recovery system using multi-party computation and zero-knowledge proofs to provide wallet security. Unlike existing projects, this system allows wallet owners to recover keys without compromising their security or privacy. The existing projects use centralised servers to store the private keys, with this approach the private keys are only revealed if user’s authorised using ZKP.
Keep an eye out in the coming weeks! You've made it to the end; please send me any articles related to the content above.
Keep building
This week began with the build phase at EIF, and I worked on getting the project proposal ready. I was very interested in implementing something related to cryptography, so I came up with the idea of using MPC (Multiparty Computation) and ZK (Zero Knowledge) protocols. Before proceeding with this idea, I decided to revise my cryptography basics and deep dive into MPC to improve my understanding of it.
If you’re wondering what MPC is, MPC stands for Multiparty Computation.
Multiparty computation (MPC) is a branch of cryptography that allows multiple parties to jointly compute a function over their private inputs without revealing those inputs to each other. In other words, it allows computation on data without requiring the data to be revealed to any single participant or central authority.
MPC algorithms ensure that each participant can obtain the computation's result without knowing the other parties' data. This is accomplished through the use of cryptographic protocols such as secret sharing, homomorphic encryption, and garbled circuit
MPC paper I referred to :
https://eprint.iacr.org/2020/300.pdf

Shamir's Secret Sharing is a cryptographic algorithm that divides a secret into multiple shares and distributes them among participants. This allows the secret to be rebuilt only if a large enough number of shares are combined, but not if only a few shares are available.
Adi Shamir created the algorithm in 1979, and it is based on polynomial interpolation. The secret is first encoded as a polynomial constant term, and then a number of random points on the polynomial are generated and distributed among the participants. Any subset of the participants can combine their shares to reconstruct the polynomial and thereby recover the secret. This can be proven using Zero-Knowledge.
Zero-Knowledge-Proof (ZKP) is a cryptographic protocol that allows one party to prove to another that a particular statement is true without revealing any additional information other than the validity of the statement itself.
In a zero-knowledge proof, the party making the proof (known as the prover) can persuade the other party (known as the verifier) that a particular statement is true without revealing how they know it is true. The verifier is convinced that the statement is true because the proof is constructed in such a way that someone unfamiliar with the statement would be extremely unlikely to create a convincing proof of its truth.
https://twitter.com/RuthuRao/status/1520014511654072320?s=20
Writing these proofs in Circom has been a challenging but absolutely interesting experience. Circom is both a programming language and a toolset for building zero-knowledge proofs (ZKPs), which allows developers to design and compile circuits capable of generating ZKPs. These circuits can represent any computation that can be expressed as a directed acyclic graph (DAG), including arithmetic operations, Boolean logic, and more complex computations.
https://twitter.com/RuthuRao/status/1633830388815790092?s=20
Some of the objectives:
Users can recover their account with just a part of their private key due to MPC.
The other parts of the key is stored at different locations and the location is secured via ZKP.
Allows for Secret key distribution among the user’s trusted accounts.
Allows users to recover keys without compromising security or privacy.
Prevents loss of funds due to lost or forgotten keys.
Provides an additional layer of security for cryptocurrency wallets.
Identity of the parties involved and the data they hold is unknown.
This project solves the problem of users permanently losing access to their funds due to lost or forgotten private keys.
One of the main challenges of using cryptocurrencies is the risk of losing access to funds due to lost or stolen private keys. Private keys are used to access and manage cryptocurrency funds, and if they are lost or stolen, the user may permanently lose access to their funds. Key recovery wallets with MPC and ZKP solve this problem by offering a highly secure way to recover lost or stolen private keys.
Multiple parties can work together using MPC to reconstruct a user's private key without any one party having access to the full key. ZKP can be used to verify the correctness of the reconstructed key without revealing any additional information about the key itself.
This project proposes a key recovery system using multi-party computation and zero-knowledge proofs to provide wallet security. Unlike existing projects, this system allows wallet owners to recover keys without compromising their security or privacy. The existing projects use centralised servers to store the private keys, with this approach the private keys are only revealed if user’s authorised using ZKP.
Keep an eye out in the coming weeks! You've made it to the end; please send me any articles related to the content above.
Keep building
<100 subscribers
<100 subscribers
Share Dialog
Share Dialog
Ruthu Rao
Ruthu Rao
No comments yet