Payments in Bitcoin
Payments are an important aspect of Bitcoin. Every transaction is a payment of some sort. Transactions are the only means through which information can be written onto the ledger. The process of block discovery is agreed upon through the acceptance of a coinbase transaction as a valid payment. A block is simply the process of having a collection of payments set down, collated and agreed upon as valid.
There are many different ways to request and make payments.
BIP-0021
BIP-0021 has been one of the predominant means of making mobile payments in Bitcoin throughout it's history. Almost all QR codes based payment gateways used within Bitcoin are or are an extention of BIP0021. It itself is an extension of RFC-3986, the RFC standard for URIs (Universal Resource Identifiers).
BIP-0070
[BIP-0070] was a payment protocol for reaching out to receivers using an extension of BIP-0021 that added a URL. The URL directed the phone to reach out to a server and provide it the address at the front of the QR code. This server would instruct the device making the query which address to send money to.
BIP-0270
BIP270 is a simplified version of the BIP70 Payment Protocol introduced in 2013. It is a protocol for communication between a payment host (usually either a merchant, a payment processor, or simply the recipient's wallet) and their customer (the sender of the funds), enabling both a better experience, simpler wallet infrastructure, advanced features such as multiple outputs, and better security against man-in-the-middle attacks. Designed for SPV and scalable wallets, it is peer to peer between the payer and the payee and the blockchain is only used to settle the transaction(s). This contrasts with legacy payment procedures where the payer would broadcast the transaction to the network (instead of the payee) and the payee would scan the network for relevant transactions.
This BIP is an optimisation of BIP-0070. Changes include:
- Moves all signature exchange and validation to the communication later (usually HTTPS)
- Add multiple outputs
- An library optimised for peer to peer transaction management