I attempted to post this on StackExchange, but was told to come here. So here it is:
I've been thinking a lot about bitcoins lately, and I've discovered some problems with the theory behind them.
1Q) How much will transaction fees eventually be?2Q) There is a lot of wasted computational power, due to the requirement for "proof of work." Assuming they found a fix for #1, this would still drive the transaction fees to be a LOT higher then they would otherwise need to be.
3Q) Banking information is propagated freely to anybody and everybody. If you wanted to figure out how much money your friend (or worse, your enemy) has, and all of their transactional data, it really wouldn't be that hard. This isn't a huge problem, but this information ideally should be on a "need to know" basis.
After those questions came to mind, I did lots of research on the theory and did lots of thinking. I believe I have an extremely simple solution to all of these problems:
We redefine what it means to bitcoin mine. We scrap the entire idea of "proof of work," as well as blocks. All nodes that define themselves as bitcoin miners must now tell every other node that they are a miner, or "validator" if you will.
3A) When a client posts a transaction, that transaction is propagated ONLY to all validators, and NOT to other clients. Clients should not know about the transaction history of other clients.
2A) All validators must validate the transaction, and then post their results to all other nodes. If it is determined (by each individual node) that 2/3 majority of the validators have validated the transaction, then the transaction is deemed to be valid. There is no "proof of work" and clockcycles are no longer wasted.
1A) The reward (transaction fee) is equally split among all validators. Since each individual node knows how many registered validators there are, it can easily calculate a minimum transactional fee. Transaction fee = (time to process transaction) * (cost per time to process).
What do you guys think, does this make sense at all?