It does seem like that would not require an overseers anymore than Bitcoin does.
What am I missing?
It does seem like that would not require an overseers anymore than Bitcoin does.
What am I missing?
When I request a ride, the _system_ gives me...
To explain what you're missing, I have to talk about how decentralized networks are actually implemented.Think of the "system" as a large crowd of people in a room. Only certain people in the room have the information you want. It is totally unfeasible to ask every person in the room, you can only ask the three guys closest to you.
What do you do?
The best strategy to maximize query performance mimics the real-world— each person occasionally gossips information to each other, which replicates data across a network and increases the chance that someone nearby will have the answer you seek.
The problem then comes down to trust-- say you ask three guys nearby a question: "Do you know if there are any cabs nearby?"
Let's say those three guys did happen to know of a cab nearby but wanted it for themselves (they just got an invite to this AWESOME party in the Haight), so they lie to you and take the cab for themselves.
Or, in an alternative case— they are all three sons of a rather horrible cab driver and tell you that he is the ONLY one available.
If we had a global view of the system, the chances of this abuse might be minimized but this is just not feasible in real-world implementations.
There's also other implications for privacy (nodes in the middle might log your queries) which might also introduce new vectors for abuse.
Thinking about it this way, the real value of bitcoin might not be in the coins but in the blockchain itself.
It's essentially a write-only log that you can append to by paying a minimal fee.
Absolutely. Blockchains are much more general and useful than a Bitcoin-centric view assumes them to be. See http://namecoin.info, https://ethereum.org, http://bitshares.org, and http://proofofexistence.com for examples.
Using the block chain as a single, shared, decentralized database is an interesting solution but has serious flaws when used as you describe:
1. Transactions are not added immediately (and by added, I mean a consensus has been reached by a majority of the network on the state of the block chain), it can take up to 10 minutes for confirmation to be reached [1] with modern networks and hardware.
2. Each transaction increases the size of the block chain. To independently verify a transaction, each node must have a complete copy of the block chain which is about 21 GB today [2], and growing ~1 GB per month. This rate is expected to increase with time which presents one of the biggest flaws of Bitcoin today. Several strategies exist to reduce the size (pruning of the data, using lightweight clients that only store headers instead of full data) but all of these reduce the ability for an individual node to verify a transaction.
3. Transactions can fail for various reasons: data is too large, transaction fee too low, fork in the blockchain, orphaned blocks, etc. What's even worse is that you won't know (and can't try submitting the transaction again) until confirmation fails ~10 minutes later.
4. Transactions fees for storing arbitrary data in the block chain is dependent upon the real-world price of bitcoin. What's more, once the block reward approaches zero (the reward is cut in half approx. every four years) the rewards of mining will shift entirely to voluntary transaction fees. This will likely cause transaction fees to increase.
5. The block chain is only secure as long as there doesn't exist a single group with a majority of processing power (it is kept in check by competition between miners). If a monopoly develops it can abuse the system very readily.
These various reasons (latency, size, failure, fee increases over time) make the block chain a pretty bad back-end for the implementation of a shared, decentralized database of a real-time P2P app.
The idea isn't completely unsalvageable however, another way of looking at the problem is to realize that the block chain file itself is used as a shared resource between many "threads". Each thread has its own local copy but reconciliation must be performed across all threads to ensure consistent state (which introduces huge amounts of synchronization and contention).
To parallelize the problem, we must reduce the amount of resource contention required. The best way to do that is to use separate databases (eg, separate block chains) for separate, logical clusters of threads. Eg, for a ridesharing app, you can use a separate database (block chain) for each city. This way, only the data that is relevant to each thread must be synchronized.
There's a few problems with this approach (could allow local monopolies to develop more readily) as well but it better emulates natural models for decentralized systems.
It might also be better to use a hybrid approach based on the type of data involved:
1. Use a secure DHT (distributed hash table) to store data that isn't necessarily transactional (such as individual ratings that could be aggregated via an unstructured query).
2. Use a local block chain to synchronize shared resources (such as driver availability).
Yet another option: re-design bitcoin in such a way that these problems can be addressed and then convince miners to adopt that since it will in the long run result in increased fees for them because of a larger number of 'riders' on the transactions. This could offset the loss of mined coins and will effectively allow bitcoin a smoother transition from the 'mining' to the 'transaction' stage, it adds sufficient value to the blockchain that it might even replace the mined coin reward completely or surpass it before that reward goes to '0'.
You've pointed out why it can't be perfect. You haven't proven that it can't work.
Perfect is the enemy of good. It doesn't have to be perfect. I was going to say it just has to be better than our current system. But it doesn't. It just has to be legal. Maybe it's better, maybe it's worse. But we're allowed to give it a try (generally speaking -- maybe not in California, but possibly in another state that doesn't have the same rules).
If the flaws you point out occur often enough, then people will stop using it and the experiment will fail.
Who is "you"? Someone, somewhere would be creating a system that verifies unique identities, aggregates ratings, etc. Even if the logic is peer-to-peer, the system requires an extremely robust engineering infrastructure to keep it going, and the people that build that thing take on all the issues Uber is dealing with, but without real control over the system.
Or to put it differently, it's not a coincidence that all big peer-to-peer systems are anchored in weird spots around the world. In any major country the government will hunt down the keepers of the system and hold them accountable for the content.
So, to answer your question directly, you're missing a whole lot.
Credit card verification doesn't include the name, and only includes street number and zip code of the billing address.