Today I’m happy to introduce EarthBucks Pay, a new way to send and receive EBX, the token of EarthBucks.
EarthBucks Pay lets you create and sign a transaction from your list of unspent outputs to a cryptographic address automatically generated from the recipient’s EBX address. In addition to a transaction, EarthBucks Pay includes an end-to-end encrypted message that is only visible to the recipient. This message is encrypted with the same keys used in the transaction and is delivered off-chain.
Central to the new Pay feature is the idea of an “EBX address”, which looks
exactly like an email address. For example, my EBX address is
ryan@earthbucks.com
.
EBX addresses are designed to be familiar (they are exactly the same as and compatible with email addresses) while providing precisely the type of decentralization we are aiming for: in principle, anyone can run a server that resolves EBX addresses to cryptographic addresses. This is the same way email works: anyone can run an email server. However, it is expected that most people will simply be users of Pay servers hosted by businesses.
When you send EBX to someone, EarthBucks Pay uses the EBX address to query the Pay server to get a new public key for the recipient. That public key is used both to create a new transaction (the public key is hashed and put in the output), and it is also used with Diffie-Hellman to arrive at a shared secret with the sender. This shared secret is used to encrypt a message that is also sent to the recipient’s Pay server.
The message is encrypted with the same keys used in the transaction. The reason for this is so that the recipient can verify that only the sender of the transaction could have created this encrypted message. The message itself is not on the blockchain. The message is delivered fully off-chain to the recipient’s Pay server and never touches the blockchain. Neither Pay server can see the message, only the sender and recipient can see the message. No other servers, such as other mines or wallets, are aware that the message even exists, because it is off-chain.
The current implementation of EarthBucks Pay is a prototype. Currently, the only Pay server is earthbucks.com. When I finish implementing the other early mines, they will also use the same Pay protocol, so that users of compucha.com, for example, can send EBX to users of earthbucks.com.
Currently, EarthBucks Pay is only available to verified users. After the
automatic mining and mining advantage features are rolled out, and Pay has had a
chance to be thoroughly tested by real users in production, it will be opened up
for free to all users. However, there many still be limitations and verification
may be required for unlimited transactions.
EarthBucks Pay is now available to all users!
To try out EarthBucks Pay, simply go to earthbucks.com/pay and enter the payment address of the recipient and the amount in EBX. You can also include a message to the recipient. The recipient will receive the EBX and the message in their EarthBucks Pay wallet.
Note that there is currently a “Script” page at /script that shows all scripts for all transactions in your wallet. This page displays more detailed information than the /pay page, which is designed for higher-level payment information that is more user-friendly.
EarthBucks Pay makes it possible for users to begin sending and receiving EBX to each other. The new Pay protocol includes an end-to-end encrypted message so that the nature of the payment can be conveyed to the recipient in a manner that only the sender and receiver can read.