Account creation with ECSDA and El Gamal

System Overview

This system leverages the security and flexibility of cryptographic protocols to enhance privacy and functionality in cryptocurrency transactions. It utilizes ECDSA (Elliptic Curve Digital Signature Algorithm) keys from a user's current wallet to initiate a multi-step process that securely manages and encrypts wallet keys and signatures.

Step-by-Step Process

  1. Account Creation with ECDSA Keys:

    • Upon creating an account, the system uses the ECDSA keys from the user's existing cryptocurrency wallet. These keys are instrumental in the initial phase of the cryptographic process, ensuring the user's identity is securely linked to their existing wallet.

  2. KDF ETH/BTC Wallet Generation:

    • The system signs a predefined El Gamal public key value and feeds into a Key Derivation Function (KDF), which deterministically returns a value to be used to generate a new ETH/BTC wallet. This KDF wallet utilizes ECDSA for signing, creating a derived set of keys (private and public) that are intrinsically connected to the user's original wallet through the KDF process.

  3. El Gamal Key Generation:

    • The KDF-derived private key value is then used to generate El Gamal encryption keys as well. This step introduces an additional layer of cryptographic security, enabling secure message encryption and decryption capabilities.

  4. Encryption with El Gamal Keys:

    • The server or smart contract utilizes its own set of El Gamal keys to encrypt the original ECDSA signature and the KDF-derived private key. This encrypted data ensures that sensitive information, such as signatures and private keys, is securely stored and transmitted.

  5. Proxy BTC/ETH Address:

    • The public key derived from the KDF serves as the user's proxy BTC/ETH address. This address acts as a secure and privacy-preserving identifier for transactions within the system.

  6. Regeneration of KDF Keys:

    • Users do not need to store their KDF keys across sessions. Instead, these keys can be deterministically regenerated using the original ECDSA signature. This feature simplifies key management and enhances security by reducing the need to store sensitive information.

  7. Integration with zk-SNARKs:

    • Although the newly derived KDF could theoretically be used in various cryptographic applications, its direct use as a prover key in a zk-SNARK system is unlikely due to the circuit-specific nature of zk-SNARK proofs and the requirement for a Universal Common Reference String (CRS). However, this does not preclude its use in other aspects of a zk-SNARK-based system or in ensuring privacy and security through other means.

A pseudo-code of the account creation is shown below:

BitcoinNode CreateAccount( const ECDSA<private_key> &prvt_key )
    auto elgamal_pubkey_predefined = GetAddressFromTable();

    auto cypher_signature = prvt_key.sign(elgamal_pubkey_predefined);

    auto new_derived_key_value = GenerateKDF(cypher_signature);

    BitcoinNode proxy_bitcoin_node(new_derived_key_value);
    ELGamal<key_pair> new_keys_elgamal(new_derived_key_value);

    auto encrypted_signature = new_keys_elgamal.encrypt(cypher_signature);
    auto encrypted_kdf = new_keys_elgamal.encrypt(new_derived_key_value);;;

    return proxy_bitcoin_node;


Security and Privacy Implications

This system is designed with a focus on security and privacy, leveraging the strengths of ECDSA, KDF, and El Gamal encryption to protect user data and transactions. The ability to encrypt key information and signatures with El Gamal keys, coupled with the privacy offered by proxy addresses and the security of deterministic KDF key regeneration, provides a robust framework for secure and private cryptocurrency transactions.


The described cryptographic system offers a comprehensive approach to enhancing security and privacy in cryptocurrency transactions. By integrating ECDSA, KDF, and El Gamal encryption, and acknowledging the potential (though circuit-specific) integration with zk-SNARKs, it presents a sophisticated model for secure cryptographic operations within the blockchain ecosystem.

Last updated