https://github.com/quantum-labs-ai-ml/bitcoin-quantum
Demo project about breaking Bitcoin cryptography using Quantum technology
https://github.com/quantum-labs-ai-ml/bitcoin-quantum
bitcoin cryptograph demo quanutm-computing tech
Last synced: 3 months ago
JSON representation
Demo project about breaking Bitcoin cryptography using Quantum technology
- Host: GitHub
- URL: https://github.com/quantum-labs-ai-ml/bitcoin-quantum
- Owner: quantum-labs-ai-ml
- License: mit
- Created: 2025-04-18T11:27:57.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-18T13:04:54.000Z (about 1 year ago)
- Last Synced: 2025-05-01T08:14:44.250Z (about 1 year ago)
- Topics: bitcoin, cryptograph, demo, quanutm-computing, tech
- Language: Python
- Homepage:
- Size: 30.3 KB
- Stars: 3
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Bitcoin Cryptography Demo 💻🪙🔑
Demo project about breaking Bitcoin cryptography using Quatum technology
**Project idea by Rsync25**
## Overview
This project demonstrates a simplified version of Bitcoin's cryptography, specifically the Elliptic Curve Digital Signature Algorithm (ECDSA), using a toy elliptic curve with intentionally small parameters. The goal is to illustrate how Bitcoin's cryptographic principles work and to show how a brute-force attack can exploit weak parameters. This is for educational purposes only and does not reflect Bitcoin's actual security, which uses the secure secp256k1 curve with large parameters.
**The project includes:**
- Key pair generation (private and public keys).
- Signing and verifying a transaction-like message.
- A brute-force attack to recover the private key in the weakened system.
- Explanations of why Bitcoin's real cryptography is secure.
**Warning:** The elliptic curve parameters (p=17, n=19) are tiny and insecure. Bitcoin uses a 256-bit curve (secp256k1), making such attacks computationally infeasible with current technology.
## Prerequisites
- Python 3.6+
- No external libraries required (uses standard hashlib for SHA-256).
## Setup
- Clone or download the repository.
- Ensure Python is installed (python3 --version).
- Place the bitcoin_crypto_demo.py script in your working directory.
## Usage
- Run the script:
`python3 bitcoin_crypto_demo.py`
**The script will:**
- Generate a private-public key pair.
- Sign a sample message ("Send 1 BTC to Alice").
- Verify the signature.
- Perform a brute-force attack to recover the private key.
- Demonstrate that the recovered key can sign valid messages.
## Example Output
=== Bitcoin Cryptography Demo (Simplified) ===
Private key: 7
Public key: (13, 6)
Message: Send 1 BTC to Alice
Signature: (10, 12)
Signature valid: True
=== Simulating Brute-Force Attack ===
Attempting brute-force attack...
Private key found: 7
Signature with recovered key valid: True
**Note:** This demo uses a tiny curve (p=17, n=19). Bitcoin uses secp256k1 with a 256-bit key, making brute-force infeasible.
## How It Works
- Elliptic Curve: Uses a toy curve defined by y^2 = x^3 + 2x + 3 (mod 17) with a small order (n=19).
- Key Generation: A private key is a random integer, and the public key is computed as private_key * G (scalar multiplication of the generator point).
- Signing: A simplified ECDSA-like algorithm signs a message using the private key and a random ephemeral key.
- Verification: The signature is verified using the public key and the message hash.
- Brute-Force Attack: Iterates through possible private keys (1 to n-1) to find one that generates the public key, feasible only due to the small curve size.
## Why Bitcoin Is Secure
Bitcoin uses the secp256k1 curve with a 256-bit key space, resulting in approximately 2^256 possible private keys. Brute-forcing this would take longer than the age of the universe, even with the world's fastest supercomputers. Additionally:
- The elliptic curve discrete logarithm problem (ECDLP) is computationally hard.
- SHA-256 is collision-resistant, protecting transaction integrity.
- Bitcoin's network consensus rules further mitigate theoretical attacks.
## Limitations
- The toy curve is not secure and is used only for demonstration.
- The signing algorithm simplifies ECDSA for clarity (e.g., no domain parameters).
- The brute-force attack is practical only because of the small key space (n=19).
## Educational Goals
- Understand the basics of elliptic curve cryptography.
- Learn how digital signatures ensure transaction authenticity.
- See why weak cryptographic parameters lead to vulnerabilities.
- Appreciate the strength of Bitcoin's real-world cryptography.
## License
This project is licensed under the MIT License.
## Disclaimer
*This project is for educational purposes only. Do not use it for real cryptographic applications. Bitcoin's actual cryptography is secure and should not be confused with this simplified demo.*
*Created as part of an educational exercise to explore cryptographic principles.*