@BayAreaCoins
Testnet people need a pool that pays for shares found. A CPU will still be able to submit valid shares easily and quickly receive a small amount of Bitcoin Testnet.
This approach would be useless for many developers. While it might be sufficient for payment gateways or wallets, anything mining-related requires the full experience of constructing a block and making it part of the blockchain. Developers need to learn how to properly create valid blocks, handle orphaned blocks, and manage other essential aspects of mining. Simply receiving coins or sending work via Stratum doesn't provide the hands-on experience needed to understand these critical processes.
True. After 20 minutes, CPU miners should also get a smaller block reward than usual.
You guys are assuming that if the difficulty drops to 1, it means a CPU miner is going to solve a block. This is not true. As long as an ASIC miner exists in the testnet ecosystem, CPU miners have little to no chance. Even in the rare event that a CPU miner beats the ASIC miner, the ASIC miner will simply overtake them by mining more blocks and forcing a reorg. In reality, not a single CPU miner stands a chance.
I appreciate the discussion and the ideas you're all suggesting, but I feel like we're not on the same page. It's worth clearing up some confusion. We have two major issues in testnet—so which one are we trying to solve?
Problem 1: CPU miners can no longer mine on testnet.Proposal A: Algorithm change from SHA-256 to something elsePros:
This immediately eliminates all ASICs and allows small developers with CPUs and GPUs to mine on testnet.
Cons:
Changing the algorithm is a major decision, and It makes a large part of the test environment significantly different from the mainnet.
Proposal B: Reset the network every X blocksPros:
Eliminates the incentive to hoard testnet coins, since ASICs are power-hungry, it's unlikely that people will waste resources mining a coin that disappears in a few days. In theory, this could be highly effective against ASIC dominance.
Cons:
It alters testnet slightly, making it non-identical to the mainnet (but not as drastically as Proposal A). This also assumes that abusers mine testnet coins for their value rather than for fun. If they're doing it for fun, this proposal won’t stop them.
Proposal C: Do nothingPros:
No changes to the code are needed.
Cons:
Developers without enough funding, or those in locations where running an ASIC isn’t feasible, won't be able to test.
My preference:Try Proposal B for a while. If it fails, roll back and let Proposal C handle it.
Problem 2: Block reorgs caused by malicious minersProposal A: Remove the difficulty reset and tet the difficulty grow.Over time, this will make block reorgs extremely expensive, discouraging abuse.
Proposal B: Establish a community-driven consensusTestnet developers should form a community that reaches an agreement outside of the code, if a miner is found abusing the system via reorgs, they can be collectively ignored, even if they have the longest chain.
I'll leave the pros and cons for you guys to discuss, along with any other proposals to address these issues.