Bitcoin not Blockchain, why OpenCAP is decentralized but not distributed
Not every application or problem should be solved with a blockchain. In some cases centralized control of a system, (or a subset of a system) is desired. Andreas Antonopoulos has a good video on that:
The most important thing that cryptocurrencies like Bitcoin, Monero, and Nano have brought us is a deflationary monetary system that is controlled and censored by no one. This is extremely important and is what gives them the value that we have ascribed.
However not everything requires this level of decentralization. It is important to define what level of decentralization is needed for a specific project, because it comes at a cost. That cost has many forms, among which some are complexity of implementation, difficult user experiences, electricity consumption, and inefficient algorithms.
An alias system should be easily controlled
The purpose of OpenCAP is to give users a convenient and human-readable address where they can receive cryptocurrencies. In order to do that, OpenCAP must be:
- Easy to use — If it isn’t, then it serves no purpose
- Secure — The protocol must encourage and allow the best security practices
- Flexible — Many companies and individuals will want to build apps on top of the protocol, each having different requirements and features.
- Easy to implement — In order for an alias system to be useful, the majority of the ecosystem must support it. It will only be supported if it is easy for developers to add to their apps.
- Controllable — This is why OpenCAP is decentralized but not distributed. When you own an OpenCAP alias you have full control over how and where the data that hosts the alias is stored. This is essential and allows the protocol to be used for features that would be impossible or in some cases impractical on a blockchain.
OpenCAP can guarantee uniqueness
OpenCAP allows an alias like “lane$ogdolo.com” to represent my current bitcoin address. Because I care about privacy, I want to use a new address each time I receive a payment. With OpenCAP, my webserver hosts my alias so the solution is simple. Anytime someone pays me, my webserver generates a new Bitcoin address.
This isn’t practical on a blockchain because the ledger updates asynchronously. I can’t guarantee that two people looking for my alias at about the same time will get different addresses, because I had no time to update it.
OpenCAP is more forgiving
In order for a system using a blockchain to function, the owner of an asset must hold the private key (password-like value) to prove that they own it. If the private key is lost then the asset is lost forever. Imagine the following scenario:
There is a non-profit called Feed the Hungry. They have a donation alias on a blockchain-based alias sytem. Let’s say the alias is “feedthehungry”. One day, the private key is lost. That alias will now forever accept donations into old or incorrect addresses, and they will never be able to add more cryptocurrency types. Or maybe the addresses are owned by Feed The Hungry, but now they can’t add new addresses or new types of cryptocurrencies to accept.
That alias is now essentially orphaned and can never be used again. This would be disastrous for companies that want/need their alias. “apple” “google” “amazon” etc. With OpenCAP, as long as you own the domain where the alias is hosted, this can’t happen.
If an alias system is born on a blockchain, there must be a way for users to “register” aliases. I’ve yet to think of a fair way that this can be done. While the system is in its infancy, aliases will be very cheap. Anyone can go and buy/secure all of the “valuable” aliases. “john”, “google” “apple”, etc…
There needs to be a way to distribute ownership in a relatively fair way. OpenCAP is built on DNS so that businesses that already own their own domains own their aliases by default. If a better/more decentralized DNS ever domes along, OpenCAP version 2.0 can easily migrate.
OpenCAP is Decentralized not Distributed
The alias -> address relationships are stored on OpenCAP servers. Anyone can run an OpenCAP server, just like anyone can run an email server. This makes OpenCAP decentralized. OpenCAP does not share the relationship data on a distributed ledger however. This is how we prevent squatting and make the system flexible and efficient.