Background on the Ethereum pre-sale mechanism
As the Ether sale progresses, we will be releasing a series of blog posts regarding our development plans and intended organizational structure. Today we explain some of the background details of the Sell Ether module. The sales module is displayed on our website. https://www.ethereum.org During the sale period.
What is that?
Ether Sale is an HTML/JavaScript web application that allows individuals and organizations to pre-purchase Ether tokens with Bitcoin. Ether can be purchased by parties interested in developing decentralized applications on the Ethereum platform, or simply to pay for the use of applications on the platform after the genesis block is released. The application runs mostly within the browser, including pseudo-random number generation (PRNG) and encryption/decryption of user secrets.
We will also provide a standalone pure Python application that can be used to purchase ether from a command line interface instead of using a website store.
Website workflow:
- After agreeing to the store’s terms and conditions, buyers enter the amount of Ether they want to purchase, their email address, and the password they want to use for encryption, which generates a “random” seed that serves as the basis for each transaction’s Bitcoin and Ethereum addresses. .
- that much user Buyers send their payment in Bitcoin to a generated address that appears on the store page and is also available as a downloadable encrypted wallet file. When a browser monitoring the Bitcoin blockchain confirms that sufficient funds have been sent to the generated address, the browser creates a new transaction delivering Bitcoin to the Genesis sale address. This transaction is signed by the buyer’s browser and submitted to the Bitcoin network. No transaction data is stored. that much This is because the Bitcoin blockchain acts as a purchase database.
- After the transaction is successfully submitted, user Buyers will again be prompted to download a backup copy of their encrypted wallet, in addition to being emailed another backup file. Buyers should be aware that storing their wallets as email attachments in their email accounts for any period of time makes them vulnerable. Email attachments should be downloaded to a safe computer as soon as possible and the email should be deleted from your email system.
(Here’s some technical information. The GUI we developed encapsulates all this in a very user-friendly way.)
Wallet encryption process:
- Generates SEED randomly.
- BKPKEY = sha3(SEED + “\x02″)(:16)
- key = pbkdf2(PW)
- ENCSEED = encryption(key, SEED)
- WALLET = ( ENCSEED, BKPKEY ) (includes non-sensitive data such as Ethereum and Bitcoin addresses)
BTC and ETH private keys and addresses are derived from SEED.
Seed recovery process:
- WALLET + PASSWORD RECOVERY: (General)
- key = pbkdf2(PW)
- SEED = Decryption (KEY, ENCSEED)
Outline of website steps to buy ether:
- Buyer clicks “Buy Ether” and agrees to the Terms and Conditions.
- Buyer enters initial purchase information.
- Buyers enter the amount of Ether they wish to purchase.
- Buyers enter their email address as the destination for their wallet backup file.
- The buyer enters a password that serves as the crypto seed. We recommend that you use a very strong password.
- Buyers create entropy by moving the mouse or tapping the screen. A “seed” is constructed based on the generated entropy and other random system inputs. Once the desired entropy length is reached, a wallet is created using the seed. The wallet includes:
- Your personal BTC address to send funds to
- Individual ETH address
- encrypted seed
- Backup Encryption Seed
- The browser selling app will check your newly created BTC address to see if your funds will arrive. Before sending funds, buyers can download the wallet. If something goes wrong between transactions, all funds sent to the buyer’s personal deposit address can be accessed via password. If the BTC address’s unspent balance is > 0.01 BTC, the browser sell app will create a signed transaction using two specific outputs from the newly created BTC address.
- The total unspent balance minus miner fees will be output to the main selling BTC address. This BTC address is where all funds go and is a fixed, known BTC address.
- (String) 10000 satoshis are output to the BTC address generated from the ETH address. This Bitcoin address is intended to verify your Ethereum address and is unique for every transaction.
- The browser selling app will prompt the buyer to re-download the wallet. & We also send buyers an email with a backup of their Ether wallet. The same precautions as mentioned above apply. Please do not leave your wallet as an email attachment in your email system. Download it as soon as possible and make sure the email is deleted.
- Your browser selling app will display the number of Bitcoin transaction confirmations.
Then that’s it! There is a lot of technical work going on in the background, but the GUI we have developed will carry out the process in clicks.