Bitcoin Improvement Proposal
Source CodeDownload
  • Introduction
  • Installation
  • Quick Usage
  • Manual
    • No EC-Multiply
    • EC-Multiply
Powered by GitBook
On this page
  • Select Mode
  • Generate Intermediate Passphrase
  • Create New Encrypted WIF
  • Verify Confirmation Code
  • Decrypt WIF
  1. Manual

EC-Multiply

PreviousNo EC-Multiply

Last updated 6 months ago

EC-Multiply is a feature within BIP38 that allows users to create multiple Bitcoin addresses and corresponding encrypted private keys that can all be unlocked with the same passphrase, without revealing the private key during the process. This method relies on elliptic curve multiplication to generate a set of keys derived from a passphrase, allowing for secure cold storage without needing to keep track of individual private keys. By using an "intermediate code" derived from the passphrase, users can distribute or generate these encrypted keys securely.

When a new encrypted private key is generated using EC-Multiply, it includes a confirmation code that lets the user verify the passphrase’s accuracy without decrypting the private key itself. This confirmation code is a proof mechanism that associates the passphrase with the address. EC-Multiply is particularly useful in situations where a user wants to generate multiple addresses from a single passphrase or distribute encrypted keys for use with cold wallets, as it reduces the risk of private key exposure while maintaining flexibility and security.

Here are the steps:

Select Mode

  1. Select Cryptocurrency

  2. Select Network

  3. Select Mode

Generate Intermediate Passphrase

  1. Enter Passphrase

  2. Enter Owner Salt

  3. Click Generate (If you don't have owner salt)

  4. Enter Lot

  5. Enter Sequence

  6. Enter Intermediate Passphrase

  7. Click Generate

Output
{
    "cryptocurrency": "...",
    "network": "...",
    "passphrase": "...",
    "owner_salt": "...",
    "lot": ...,
    "sequence": ...,
    "intermediate_passphrase": "..."
}

Create New Encrypted WIF

  1. Enter Seed

  2. Click Generate (If you don't have seed)

  3. Enter Intermediate Passphrase

  4. Select WIF Type

  5. Click Create

Output
{
    "encrypted_wif": "...",
    "confirmation_code": "...",
    "public_key": "...",
    "seed": "...",
    "public_key_type": "...",
    "address": "..."
}

Verify Confirmation Code

  1. Enter Confirmation Code

  2. Enter Passphrase

  3. Click Verify

Output
{
    "public_key": "...",
    "public_key_type": "...",
    "address": "...",
    "lot": ...,
    "sequence": ...
}

Decrypt WIF

  1. Enter WIF

  2. Enter Passphrase

  3. Click Decrypt

Output
{
    "wif": "...",
    "private_key": "...",
    "wif_type": "...",
    "public_key": "...",
    "public_key_type": "...",
    "seed": "...",
    "address": "...",
    "lot": ...,
    "sequence": ...
}

Click Generate (If you don't have intermediate passphrase. )

Refer