Home

Awesome

zkPoEX

zkPoEX

zkPoEX (zk proof of exploit) is a Proof-of-Concept developed at ETH Denver Hackathon with the aim to facilitate communication and collaboration between security experts and teams in the decentralized finance (DeFi) space by enabling white hat hackers to report live vulnerabilities in smart contracts while maintaining the confidentiality of the exploit.

Problem

Bug bounty programs in the DeFi space can be hard to run and maintain, not always honored, and may not always offer sufficient compensation for white hats. This can lead to a lack of incentive for hackers to report vulnerabilities, which can ultimately result in a less secure DeFi ecosystem.

Solution

Our tooling allows auditors to safely generate a zero-knowledge proof of exploit without revealing the actual exploit. With zero-knowledge proofs, the auditor can prove that they know of a transaction that can produce an undesirable change of state in certain contracts, without revealing the specifics of the exploit.

Since the auditor is not giving away the exploit, the project is incentivized to work with the auditor to fix the vulnerability. This facilitates communication and collaboration between hackers and project owners for a more secure DeFi ecosystem.

<div align="center" style="text-align: center;">

zkPoEX

</div>

Technologies Used

The project utilizes the following technologies:

Installation and Setup

To use the project, you will need to have the following installed on your system:

To test the evm :

$ just test-evm

To generate proof (and verify) :

$ just prove

Please note that this particular example requires at least 16gb of RAM and may take a long time depending on your hardware.

Acknowledgements:

We would like to thank Maciej Zieliński for providing an example in his blog post of how to run Solidity code inside SputnikVM inside Risc0. We would also like to thank Daniel Lumi for advising us in this project.

Contributing

Contributions to the project are welcome and encouraged. To contribute, fork the project on GitHub, make your changes, and submit a pull request.

Disclaimer

zkPoEX is provided "as is" without any warranties.

The purpose of zkPoEX is to promote responsible disclosure and encourage organizations to address security vulnerabilities in a timely and effective manner, thereby enhancing overall security.

The developers and maintainers of the Tool disclaim all liability for any damages, losses, or harm resulting from the use or misuse of the Tool.

For more information, read the Disclaimer