Biggest problem I immediately see with beeble's post is it's very hard to deal with things like assigning miners to groups when people are constantly joining and leaving the network. Then there's the issue of how someone who just joined can have a bond somehow verified so they can start mining immediately.
Any system which requires EVERY node to know every other node in the network is just not going to work. Any deterministic way of pairing people off based on wallet addresses NEEDS either that - or a centralised authority.
The former (knowing everyone else on the network) fails because above a certain size the participants in the network will change (or appear to change) far faster than a complete list can be circulated and agreed upon. And not only does the list have to be agreed upon and propagated, it has to be stored forever - so it can be verified that a team claiming work were actually a valid team.
For that reason alone, I don't see anything which requires teams to be feasible. And as you already realised (which is why you added teams I assume) it's totally exploitable without them.
The miners available for mining register by making aspecial transaction before the block they start mining for (ie: they make a special transaction-- once it is in the block chain for say the 2nd confirmation they are now in the game-- ie: their bond is active so they must mine.). You could set it up so that they must mine for just one block, or a fixed number of blocks controlled by the size of the transaciton they made or indefinitely (indefinitely would require another transaction to officially exit the mining game), this is just detail though-- going beyond what I've though about. I've already explained what happens when someone leaves during the calculation stage, the result of single miner left is considered valid as for as the total-number-steps is concerned and the miner that didn't finished is penalised by losing their bond.
NOTE: I've just edited this heavily and re-worded it-- the first edition was a mess
Surely this is going to lead to HUGE block-chain bloat as ALL of the following have to be stored indefinitely:
1. Wallet address and a bond transaction for EVERY miner on the network EVERY time they join it.
2 Each block, every miner has to have a transaction either paying from their wallet to the block finder or refunding to them.
Wouldn't be that many transactions. At the moment on bitcoin the number of miners is just in the thousands (I believe) and each miner usually mines for quite long period straight (hours/days/weeks/months) at a time. If you made it that the miners mine indefinitely unless they formerly exit (or run out of bond) then that's not many transactions per day. It would be less than Sastoshi Dice.
The number of transactions regarding the bonds can actually be dramatically reduced-- the system keeps a running total of the bonds and fees off-main-chain among the nodes over a minning session or set of blocks (which ever is smaller) and clears it at session exit or on the last block of the set.
Please note: I thinking about a new system here- I'm not limited to what I can do by how bitcoin currently works. I'm not in the slightest interested in maintaining compatibility with the current bitcoin system-- this is not a bitcoin fork proposal but a complete new system based on some of the more interesting parts of bitcoin technology!
Also, there's an issue with the idea of a bond for doing a fixed amount of work. Either:
a) It's trivial to do - so serves no purpose to prevent anyone submitting loads of fake miners to lock other people into partnerships that will never finish.
or
b) It's hard enough to do that miners below a certain size legitimately won't be able to meet it sometimes : leading to increasing centralisation of mining.
You could make the fee self adjusting according to formula that accounts for number of miners, total reward, total transaction amount.
Oh - and you do realise miners can choose which transactions to include? The incentive would be for miners to try generating missing out other people's transactions until they found a set pairing them with a partner they wanted. Then not only can they collude but they lock other perfectly valid miners out - as the other miners can't mine at all without a bond in the chain.
I think you're confusing calculations with transaction blocks.
I explicitly stated that the dishing out of
calculations is handled deterministically by the system. It may require that a hash of each algorithm is pre-registered/acknowledged by a group-of-miners somewhere before it gets processed or something like that-- but I imagine that it is possible to solve this. The miners are still free to choose whichever
transactions to include in a block that they want (besides the bond/fee ones).
Ultimately all a miner has to do is generate a block with JUST bonds from himself and a partner - then noone else can ever join as they can't get a bond payment processed. Or run a pool with a high fee that only includes deposits from its own members: the fee is worth it for members as once the pool finds a few blocks they gain a shot at locking everyone else out from mining.
I'm trying to understand what you wrote here-- but am not following it, sorry. I think you're confusing calculations with transactions. The bond stuff is a transaction not a calculation. The miners are very restricted as to which calculations they're allowed to perform.
However, despite all these objections, I hope you realise something: you've gone past the point of denying the system works outright and into questioning specific details. This is
GREAT, I appreciate your feedback very much cause it is making me think about the system more-- till now it has been just a general idea that I've had for a few years and never put that much thought into it.