Warnet War 🧨

Inspiration

The rise of vulnerabilities in older versions of Bitcoin Core presented a unique opportunity to simulate, study, and develop attack strategies in a controlled, large-scale environment. We wanted to explore how legacy software behaves under adversarial conditions, especially when deployed in a dynamic peer-to-peer (P2P) network. Warnet provided the perfect battlefield for this exploration.

What it does

Our project uses the Warnet package to simulate, deploy, and interact with a realistic Bitcoin P2P network inside a Kubernetes cluster. It allows us to conduct both reconnaissance and attack scenarios against nodes running outdated or intentionally flawed versions of Bitcoin Core. Through a smaller 12-node "scrimmage" setup, we could iterate and test strategies locally before executing them in a remote 100+ node battlefield.

How we built it

  • Installed Warnet in a Python virtual environment using this guide.
  • Set up a local Kubernetes cluster using Docker Desktop to run the 12-node scrimmage network.
  • Used the warnet deploy command to spin up the test environment and warnet dashboard to monitor the network.
  • Wrote attack scenarios in Python using Warnet’s test_framework, allowing us to simulate real P2P behavior and RPC interactions.
  • Accessed tanks using self.tanks["armada-0"] and ran targeted RPC and P2P commands to probe vulnerabilities.
  • Used k9s and kubectl for cluster management and monitoring.

Challenges we ran into

  • Managing Docker Desktop's resource limitations when running a full Kubernetes cluster.
  • Understanding the deep internals of legacy Bitcoin Core and the RPC interface.
  • Creating stable and reproducible scenarios that work across different flawed Bitcoin Core versions.
  • Debugging malformed P2P behavior in nodes with fake disclosures or intentional flaws.

Accomplishments that we're proud of

  • Successfully deployed Warnet locally and executed multiple scenarios in the scrimmage setup.
  • Created custom Python scripts that simulate real-world attacks using Bitcoin Core's RPC and P2P interfaces.
  • Identified vulnerabilities in older versions and observed unexpected network behavior in forks.
  • Improved our understanding of decentralized systems security and Bitcoin Core internals.

What we learned

  • Kubernetes is a powerful platform for simulating decentralized, adversarial networks.
  • Legacy Bitcoin Core versions exhibit a variety of unexpected behaviors when stressed.
  • The Warnet test framework makes it easy to interact with containerized Bitcoin nodes.
  • Crafting effective attack scenarios requires understanding both network topology and protocol internals.

What's next for Warnet War

  • Develop more sophisticated attack scripts like eclipse and consensus-splitting attacks.
  • Share our scenarios and test cases with the broader Bitcoin dev community.
  • Extend Warnet to simulate Layer 2 systems like the Lightning Network.
  • Explore visualization tools to map out attack propagation and node behavior in real time.

Built with ❤️ and Python using Warnet

Built With

Share this project:

Updates