bitcoin-address-generator

Bitcoin Address Generator

PyPI version Python Package License: MIT

⚠️ Educational and Development Use Only

This package is intended for educational and development purposes. Do not use for production or with real Bitcoin transactions.

Introduction

This repository explores the use of randomly generated hexadecimal numbers to create a bitcoin wallet address using the Elliptic Curve Digital Signature Algorithm. When Alice wants to buy a book from Bob, after all has been agreed upon, Bob needs to provide Alice with a bitcoin wallet address where the payments will be deposited. The transaction will be done on the blockchain, so Bob needs a bitcoin wallet address to receive payments. This repository covers how a bitcoin wallet address can be created from randomly generated private keys.

In cryptography, the Elliptic Curve Digital Signature Algorithm (ECDSA) offers a variant of the Digital Signature Algorithm (DSA) which uses elliptic-curve cryptography.

Method

Bob signs a hash of a message with his private key, and then Alice proves with his public key. Bob also uses a random nonce value for the signature (K)

ecdsa_new

With ECDSA, Alice will sign a message with her private key, and then Bob will use her public key to verify that she signed the message (and that the message has not changed) ecdsa

The diagram below illustrates the architecture and how the Bitcoin wallet addresses are created:

Architecture

Features

Setting Up Our Environment

To achieve desired outcome, first we need to set-up the environment. For development purposes, you can use:

  1. Google Colab environment - https://colab.research.google.com/
  2. Local Python environment
  3. Package installation via pip (see Installation section)

For getting randomly generated private keys, you can use:

Note: For production use, always ensure secure methods of private key generation.

Python Libraries & Dependencies

ECDSA Python Library - Implementation of the Elliptic Curve Cryptography • Hashlib - Contains hash algorithms for SHA256, RIPEMD160 • Codecs - For encoding and decoding • Base58 - For Base58Check encoding

Installation

pip install bitcoin-address-generator

Quick Start

from bitcoin_address_generator import generate_wallet

# Generate new wallet
private_key, public_key, address = generate_wallet()
print(f"Bitcoin Address: {address}")

Command Line Usage

# Generate new address
bitcoin-address-generator generate

# Validate address
bitcoin-address-generator validate <address>

Development Roadmap

v0.1.0 (Current)

v0.2.0 (Planned)

v0.3.0 (Planned)

v0.4.0 (Planned)

Documentation

Feedback

If you have any feedback, please reach out to me at gs_wl889@icloud.com

Contributing

Contributions are always welcome! See CONTRIBUTING.md for ways to get started. Please adhere to this project’s CODE_OF_CONDUCT.md.

Love to read more? Here are some resources & references

Security

This package is for educational purposes. See SECURITY.md for important security considerations.

License

MIT