Skip to content

OldHomePage

Bob Holden edited this page Aug 2, 2020 · 3 revisions
  • Notes from 20190912:
    • Hopefully this will clarify things:
      • The exported "Account-Level Extended Public Key" is already derived to this level:

        BIP-32 Root Key (m) -> CKDpriv (m/XX') -> CKDpriv (m/XX’/0’) -> CKDpriv (m/XX’/0’/x’)

      • The tool "getBTC":
        • Inputs the exported account-level extended public key which contains:
          • the Parent Public Key
          • the Parent Chain Code
        • which derives:

          CKDpub (M/XX’/0’/x’/0)

        • which is used to calculate a payment address which derives
          • BIP44 - (P2SH) Payment Address:

            CKDpub (M/44’/0’/0’/0/x) for payment addresses beginning with "1"

          • BIP49 Deriver derives:

            CKDpub (M/49’/0’/0’/0/x) for payment addresses beginning with "1"

          • BIP84 Deriver derives:

            CKDpub (M/84’/0’/0’/0/x) for payment addresses beginning with "1"

Target Audience

Key Concepts

  • Bitcoin HD Wallets:
    • are based on a Master Private Key, which is a Cryptographically Secure Randomly Generated 256 bit number, which IS the Wallet.
    • use a scheme to create Private and Public keys for each level of the derivation path from a master private key
    • use Derivation Path Levels to segregate

and provide a private and public key for each level of the path.

Accounts which are parts of a

  • An Account-Level Extended Public Key is exported by the HD Wallet for the Account Level of the derivation path.
  • Payment Addresses are derived from the public key of the lowest level of the derivation path, meaning that in order to create a public key to be used in a payment address, we need the next to last level's public key as the parent public key that is used in the final child key derivation process.

The Tools in the Toolbox

This toolbox contains 4 basic tools:

  • Public KeyChain Extractor
    • Inputs an account-level, extended public key that is exported from the Merchants, Bitcoin BIP 32/44/49/84 HD Wallet
    • Outputs a public key and chain code for the Change Level of the derivation path
  • xPub Deriver:
    • Inputs:
      • Change Level Public Key of the derivation path (m/44'/0'/0'/0/)
      • User provided index number of the payment address to be generated (the position of the address in the wallet)
    • Output:
      • Payment address beginning with "1".
  • yPub Deriver:
    • Inputs:
      • Change Level Public Key of the derivation path (m/49'/0'/0'/0/)
      • User provided index number of the payment address to be generated (the position of the address in the wallet)
    • Output:
      • Payment address beginning with "3".
  • zPub Deriver:
    • Inputs:
      • Change Level Public Key of the derivation path (m/84'/0'/0'/0/)
      • User provided index number of the payment address to be generated (the position of the address in the wallet)
    • Output:
      • Payment address beginning with "bc1".

User Hardware/Software Requirements:

  • A Web Server running programming software that is able to dynamically deliver web content to the user that includes:
    • A shopping cart
    • An "invoice numbering and tracking" system
    • A QR Code Generator
Clone this wiki locally