Disclaimer: I am deliberately avoiding edge cases and other costs of Bitcoin.
Bitcoin (BTC) is a relatively new system and we often make sense of new systems by drawing on familiar experiences to describe them, so it is natural to draw on experience with dollars and gold to understand Bitcoin. Like an ounce of gold, the price of a bitcoin can be measured in dollars. As the price of a bitcoin skyrocketed in 2013, it became a famous asset like dollars or gold but the current price of a bitcoin does not have much to do with why it is useful. Over most recent interval ranges, bitcoins do not seem to offer any advantage as a store of wealth. So, what’s curious about Bitcoin is that what it seems to be famous for is not why it is useful.
Why is the Bitcoin system useful? Legacy systems for remote money transfers in dollars leave much room for improvement.
- Transaction fees are generally expensive
- Transactions generally take a long time to complete
- The systems are often inaccessible
- The systems often rely on easily compromised so-called shared secrets
These undesirable features generally do not seem to exist when transferring bitcoins.
This is not sufficient for Bitcoin to declare victory, though. An online payment often occurs within another online context or use case. For instance, you may be viewing a product page on the web and click to pay there or you might pledge an amount to a crowdfunding campaign on another web page. A web page is a rendezvous spot for you and the counterparty of the transaction. In fact, people seeking a friendly interface might use the Coinbase website to start spending bitcoins rather than a less friendly native Bitcoin client application. If everyone agrees to use only bitcoins and only Coinbase, then there’s nothing left to do.
That’s probably not happening because there are litecoins and many other similar digital assets. Walmart or Amazon and others might also issue their own digital assets. Why would a merchant accept bitcoins but not walmart coins or vice-versa? Although particular merchants may be selective about which digital assets they accept, that doesn’t mean there’s not room for many, many digital asset classes. Bitcoin is one of many experiments.
Opentransact accommodates these asset classes using the web where transactions often originate. Each asset class is assigned a URL. Let’s consider the two use cases identified earlier.
If financial provider example.com stores bitcoins, the URL for bitcoins there might be https://example.com/BTC. If I am merchant email@example.com and I want to request payment of 0.5 BTC from customer Alice who has bitcoins at example.com, I can redirect Alice’s browser to https://example.com/BTCfirstname.lastname@example.org&amount=0.5&redirect_uri=https://cybertacos.com/callback. After Alice submits the payment at example.com, she will be redirected to the merchant site. This type of Opentransact payment is called a Transfer Request.
When you pledge to a crowdfunding campaign, the payment is delayed until the project reaches its funding goal so the project site will receive an OAuth token that can be redeemed later for payment. This type of Opentransact payment is called a Transfer Authorization. Without Opentransact, the current state of affairs is that each crowdfunding system has the unenviable problem of needing a different software module written for each payment service imaginable. (Coinbase, Paypal, Stripe, Amazon Payments, Dwolla, etc…) One Opentransact module could work for every service that supported it. See the Opentransact recipe for crowdfunding for more details.
The Kipochi wallet is probably the first to support both Opentransact and Bitcoin. For more detail on how Bitcoin works, How the Bitcoin protocol actually works and possible new applications with its Script language are good resources.
Because online payments often occur in the context of web activity, there are usability issues that native Bitcoin clients do not address. Also, Bitcoin is not the only game in town. Opentransact accommodates these scenarios and because it is desirable to support these use cases using the entire DNS namespace in a way that resists proprietary lock-in, oscurrency supports Opentransact.