How can I limit the mining to specifics miners authentified by private key or something like that?

0

I know how to code in C++, but I don't know really how all mining system works. I have my altcoin, and I would like to block reward blocks to miners which are not authentified (something by private key or Wallet Address). I would let miners generate blocks and coins, but I don't want them they get it, all coins mined for nothing would be sent to a master wallet or be lost forever. But, if a miner has generated coins and he is authentificated and authorized to generate coin, he would get them.

To put it simple, I just want to block coin generation ability to everyone. I've thought I could just stop them to run a thread for mining, but they could modify the client and start it. So I was wondering how can I can do that, I've read the code about CheckWork, ProcessBlock, etc... But I can't understand it fully.

Thanks from advance for your help.

Raito

Posted 2014-05-09T17:15:28.627

Reputation: 111

Answers

1

I'm not sure I see why you'd want to do it (increased centralization, likely decreased anonymization, and decreased mining incentive are generally considered bad things), but here's how I think I would do it, in general terms.

Have one (or more) master public keys hardcoded into the app. Have a special type of transaction that must be signed by a master's private key that authorizes an address to mine. Only blocks that have a reward, with the reward paid to an authorized address are considered valid. The address-authorization could exist in the same block that it's mined in, or any prior block in the chain.

  • (optionally) Allow blocks with no reward.
  • (optionally) Have another special type of transaction that authorizes a new master key, to try to ensure that you won't be left without valid masters in the future.
  • (optionally) Make the authorization limited by time and/or number of successfully mined blocks, so that it must be renewed periodically.

Tim S.

Posted 2014-05-09T17:15:28.627

Reputation: 4 159

It's more for some tests and to see how it's possible to do it. Nothing for the usual use. Where should I search to add a new type of transaction?Raito 2014-05-09T19:03:50.260

I'm not familiar with the code, so I don't know.Tim S. 2014-05-09T19:30:24.000