Bitcoin Post-Quantum Guidelines

This document is in progress.
You can participate by creating issues in related GitHub repo and submit pull requests - it'll be greatly appreciated!

Contents

  1. Key differences from Bitcoin
  2. ElectrumPQ light wallet setup
  3. Protect your forked balance from a quantum attack
  4. How to mine
  5. Full node setup
  6. Full node setup with Docker
  7. ElectrumX server setup
  8. BPQ Crypto lib for developers

Key differences from Bitcoin

Bitcoin Post-Quantum is a bit different than Bitcoin.

ElectrumPQ light wallet setup

Run ./electrumpq or ./electrumpq --testnet for the Testnet and use wizard to create a new wallet:

Choose "Standard wallet":

Choose "Create a new seed":

Choose a type of XMSS address:

Save your 24-words seed to a safe place:

Enter your saved seed:

Choose a strong password to encrypt your wallet with symmetric encryption AES-256 (it is quantum-safe):

This is it:

Mainnet addresses begin with "pq1", Testnet addresses begin with "tq1". Column "Left" shows how many available signatures you have. Column "Used" shows how many signatures you have already used. Colum "Reserved" shows how many unspent transactions outputs (a.k.a "Coins") you have.

Protect your forked balance from a quantum attack

For the security reasons, it is strongly recommended that you transfer the money from the keys in the Bitcoin blockchain to addresses that are managed by other keys before you enter the old ECDSA keys into the wallet program.

If you have balance in Bitcoin blockchain before the block height 555000 (or 1445550 in Testnet), you have the same balance in the Bitcoin Post-Quantum blockchain.

To protect them from a quantum attack and start using them in the Bitcoin Post-Quantum blockchain, create a new wallet:

Choose "Import Bitcoin/BPQ addresses or private keys":

Paste your private keys:

Skip encryption, as you will need this wallet just once:

Make sure your balance is present:

Send all your claimed coins to your previously created quantum-safe address (press "Max", then "Send"):

After that coins are protected in your quantum-safe address:

How to mine

Mining is currently available for Nvidia GPU.

  1. First of all create a BPQ address with sufficient amount of signatures (XMSS-16 and XMSS-20 are recommended)
  2. Choose your CUDA devices from list: ./nheqminer -ci
  3. Start miner with chosen CUDA devices (example: 0, 1, 2, 3): ./nheqminer -l pool.bitcoinpq.org:3857 -u <YOUR_BPQ_ADDRESS> -cd 0 1 2 3

Full node setup

BPQ source code can be found here

Full node setup with Docker

How to start full node with Docker (install Docker) in few clicks:

  1. Clone github repo
    git clone https://github.com/bitcoinpostquantum/docker-bpq.git

  2. Start docker file
    cd docker-bpq
    ./create

  3. Start demon
    ./run_as_interactive
    bpqd -printtoconsole -testnet=1


  4. To get to bpq-cli open new console window and

    sudo docker ps

    you'll see container handle which you need to use in next command:

    sudo docker exec -it ContainerHandle /bin/bash

    bpq-cli -testnet=1 getblockcount


Once you wish to stop container run:

sudo docker stop ContainerHandle

Docker file can be found in this repo

ElectrumX server setup

ElectrumX server source code repo

BPQ Crypto lib for developers

bpqcrypto lib source code is here