In this post I will shortly detail my experience in dealing with Bitcoin transactions for a website. Maybe this well help other people starting out.
BackgroundI work for a company that sells online storage space. Users can get a free upload account with 50 GB and buy extra storage space using PayPal or Bitcoin. My task was to create a system where users would be able to buy extra storage space for Bitcoins and also sell their files and earn 95% of the profit. These are the pros and cons we experienced when working with Bitcoin.
Pros- Implementation is easy, the bitcoin daemon is reachable with RPC which is very easy to implement in PHP.
- No third party involvement. Unlike PayPal a transaction cannot be undone by a third party, so we do refunds manually.
- Generating unique addresses is very quick, we auto generate new accounts and addresses on the fly, generate a QR code in Javascript and people can pay within seconds.
- The Bitcoin daemon is stable but a bit CPU and memory intensive compared to other daemons on the system.
Cons- Confirmations can literally take hours. Doing a transaction often takes minutes or even hours to get confirmed. We currently wait a few seconds before accepting a payment but cannot afford to wait for confirmations. (and thus have a less secure payment system than we'd like).
- Transaction fees are relatively high for micro transactions. For example, when people sell their art pictures for 20 eurocents/2 mbtc each, the transaction fees increase the price by roughly 25%. This is hurting the really small transactions, we hope the network will reduce transaction fees to 0.1 mBTC or even less in the future.
Other considerations- Recurring payments are not possible, might be a problem depending on your niche.
- We have a few thousand accounts and a few thousand addresses. Bitcoind queries are still very fast but we couldn't find any reliable metrics on queries against super large wallets with millions of addresses.
ConlcusionWe are very happy with Bitcoin as a payment option. Implementation is simple, easier and cheaper than PayPal and payment is virtually anonymous. However, we do risk double spending to reduce user annoyance and micro transactions are still not very cheap with Bitcoin. We consider these issues small compared to the benefits!