Is it possible to make block production difficulty not the same for every node, but automatically adjusting to the node's hardware speed? For example, node A and node B are both trying to solve for their next blocks, node A's hardware speed is twice that of B's. Their client software detect their hardware speeds and adjust the difficulty in such a way that B's next block's difficulty is only half that of A's. Is this possible?


No, difficulty is a network-wide consensus rule. POW mining helps solve the issue of sybil attacks, whereas your idea opens up mining to sybil attacks:

Your idea would create a level playing field for all devices (regardless of computing power), so if I want to expand my mining operation, I would just want to run thousands of mining nodes. Hardware doesn't matter, so I could just use cheap computers, or better yet, a botnet. The more nodes I can make, the better!

Additionally, how can you be sure nodes aren't lying about the hashrate available to them? How can you be sure a user hasn't rewritten the source code of their client to artificially lower the difficulty? Etc.

  • Good point. Forgot that POW also guards against Sybil attack by simply requiring energy cost. However, couldn't we try to alleviate Sybil attack through other means? I foresee two possible ways: a) Requiring every node to have validated a minimal number of transactions before being eligible to mine; b) Each node must submit coins with a minimal amount of coin days in order to be eligible to mine.
    – Danny
    Jun 27 '18 at 8:30
  • The general idea is to shift he cost from energy consumption to somewhere else, something that is roughly equal for everyone, like real work done, time etc.
    – Danny
    Jun 27 '18 at 8:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.