-
Notifications
You must be signed in to change notification settings - Fork 98
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
56b7cc1
commit 221ddb7
Showing
2 changed files
with
41 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
# Fuzzing Ethereum's devp2p Protocol | ||
|
||
|
||
|
||
The Ethereum network, a cornerstone of decentralized applications, is a prime target for potential security breaches due to its widespread adoption. Ensuring the maximum security of the network and node interactions is crucial to prevent significant problems. The devp2p protocols, responsible for facilitating communication between Ethereum nodes, are a critical area of focus to enhance network security. Fuzzing, a robust testing technique, can be employed to identify vulnerabilities and potential issues in the Ethereum network's devp2p protocols using the Go programming language. | ||
|
||
Securing the Ethereum network is paramount to maintain its integrity and protect against potential attacks. Vulnerabilities or bugs in the devp2p protocols could lead to disruptive issues or even compromise the entire network. To mitigate this, Ethereum contributors have developed various tools, including fuzzers. | ||
|
||
|
||
Fuzzer programs provide invalid, unexpected, or random data as inputs to a computer program, monitoring for exceptions such as crashes, failing built-in code assertions, or potential memory leaks. By leveraging fuzzers, we can simulate diverse scenarios, identify unexpected behaviors, and uncover vulnerabilities that may not be apparent through traditional testing. | ||
|
||
By harnessing the power of fuzzing and developing fuzzers in Golang to interact with Geth's devp2p protocols, we can bolster the security of the Ethereum network. Targeted fuzzing enables the Ethereum community to proactively address potential threats, ensuring the robustness and longevity of the Ethereum ecosystem. | ||
|
||
|
||
### Here is a list of different fuzzers made by Ethereum contributors: | ||
|
||
https://github.com/MariusVanDerWijden/tx-fuzz | ||
|
||
https://github.com/MariusVanDerWijden/FuzzyVM | ||
|
||
https://github.com/holiman/goevmlab/ | ||
|
||
https://github.com/infosecual/nosy | ||
|
||
https://github.com/ethereum/c-kzg-4844/tree/main/fuzz | ||
|
||
https://github.com/jtraglia/kzg-fuzz | ||
|
||
https://github.com/sigp/beacon-fuzz | ||
|
||
https://github.com/infosecual/wormtongue | ||
|
||
|
||
### Resources | ||
|
||
* [Devp2p Specification](https://github.com/ethereum/devp2p) | ||
* [Official Go implementation of the Ethereum protocol](https://github.com/ethereum/go-ethereum) | ||
* https://github.com/MariusVanDerWijden/FuzzyVM | ||
* https://github.com/MariusVanDerWijden/tx-fuzz | ||
* https://github.com/MariusVanDerWijden/merge-fuzz |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters