Timeline for Why did Satoshi design Bitcoin to be mineable only on specialized hardware, if the goal was decentralization?
Current License: CC BY-SA 3.0
21 events
when toggle format | what | by | license | comment | |
---|---|---|---|---|---|
Nov 15, 2017 at 21:44 | comment | added | David Schwartz | Let us continue this discussion in chat. | |
Nov 15, 2017 at 21:28 | comment | added | micheal65536 | How is more performance going to "not help" the task? | |
Nov 15, 2017 at 20:58 | comment | added | David Schwartz | @MichealJohnson Right, but those high-performance CPUs wouldn't help if the task was specifically designed to run best on commodity CPUs. With such a task, the demand for CPUs optimized for mining would align with the demand for better commodity CPUs (since the tasks have the same requirements), and would just result in more investment in commodity CPUs. (But in any event, you're getting way to into the details of just one hypothetical. The point is that the requirements of the algorithm determine the hardware used to mine.) | |
Nov 15, 2017 at 20:55 | comment | added | micheal65536 | There are plenty of high-performance CPUs around as well, and they wouldn't be prohibitively expensive to a serious miner. And if there was demand for high-performance CPUs for mining, more work would be put into making them and the prices would come down. You know, ASICs designed for mining didn't exist on day one, someone had to design and manufacture them and the demand was high enough for this to be profitable, and the benefits were great enough for miners to buy them. | |
Nov 15, 2017 at 20:14 | comment | added | David Schwartz | @MichealJohnson Mainstream CPUs get a huge price/performance boost from the massive quantities they are manufactured in and the billions of dollars companies like Intel and AMD put into optimizing them. | |
Nov 15, 2017 at 20:12 | comment | added | David Schwartz | @MichealJohnson "I cannot think of any situation where a more powerful CPU won't perform better than a less powerful CPU." It's not about performing better. It's about being more efficient. If that more powerful CPU has lots of cache that isn't being used but is still drawing power, it will cost more to get the same amount of work done. You can find lots of super-powerful, power hungry CPUs that, for example, don't run games significantly faster than much cheaper CPUs. | |
Nov 15, 2017 at 20:11 | comment | added | micheal65536 | Tell me what you think will happen if I take something that runs happily on a general-purpose CPU and then run it on a more powerful CPU. I cannot think of any situation where a more powerful CPU won't perform better than a less powerful CPU. "More powerful" could refer to simply having a faster clock speed, or more cores where calculations could be done in parallel. | |
Nov 15, 2017 at 20:07 | comment | added | David Schwartz | @MichealJohnson I feel like you're not reading what I said. I specifically said, "if the algorithm runs best on general purpose CPUs". And yet you somehow think that the algorithm will run better on "expensive, very powerful CPUs". If the algorithms runs best on general purpose CPUs, it will be less efficient on expensive, very powerful CPUs. For example, you can design the algorithm to require precisely as much cache per core as general purpose CPUs have. Powerful CPUs tend to have more cache, but that does them no good. Ditto with everything else. | |
Nov 14, 2017 at 17:22 | comment | added | micheal65536 | If the algorithm runs best on CPUs then the difficulty would be increased until miners have to buy expensive, very powerful CPUs. They'd still use a CPU, but just one that's prohibitively expensive for an attacker to get enough of. (The same applies to algorithms that run best on GPUs, or any other kind of hardware.) | |
Nov 14, 2017 at 9:25 | comment | added | David Schwartz | @MichealJohnson No. If the algorithm runs best on general purpose CPUs, then upgrading to "more powerful hardware" would make things worse because they would no longer have the hardware the algorithm runs best on and thus would lose money. But all the evidence we have suggests that Satoshi didn't think about this and just chose the algorithm that is the simplest that can provide the needed security for transactions. As it happened, that's an algorithm that runs best on ASICs because ASICs are awesome at simple algorithms. Intel puts billions into making their CPUs the best at something. | |
Nov 14, 2017 at 7:50 | comment | added | micheal65536 | This is the point: If Satoshi had used an algorithm that runs best on general purpose CPUs, miners would use general purpose CPUs until the network increases the difficulty to compensate for the number of miners. After that, miners would have to upgrade to more powerful hardware (whether that be CPUs, GPUs, or ASICs is irrelevant). And "attackers" in this case refers to "miners" who modify the block and then complete the proof of work, with the aim to complete the proof of work before anyone else, so the same rules and difficulty applies to both miners and attackers. | |
Nov 12, 2017 at 18:17 | comment | added | David Schwartz | @MichealJohnson Sorry, you still are totally wrong about these issues. First, attackers have no effect on the difficulty, only honest miners who extend the longest chain do. Second, what limits mining to expensive and not-easy-to-obtain hardware is the fact that bitcoin chose an algorithm that runs best on expensive and not-easy-to-obtain hardware, not the difficulty. Had Satoshi used an algorithm that runs best on general purpose CPUs, miners would use general purpose CPUs. | |
Nov 12, 2017 at 15:10 | comment | added | micheal65536 | I think you're missing my point. My point is that the network was designed to be resistant to attacks of the kind that you describe regardless of the particular characteristics of the algorithm used or what hardware it is most efficient on. If the algorithm worked best on GPUs and a lot of miners/potential attackers were renting them, the network's difficulty parameter would be adjusted so that it was no longer feasible to mine enough bitcoin on a rented GPU cluster. The idea of the difficulty parameter is to limit mining to expensive/not-easy-to-obtain hardware. | |
Nov 11, 2017 at 20:25 | comment | added | David Schwartz | @MichealJohnson Second, you are considering miners who seek to make a profit from mining rather than attackers who seek to disrupt the system (for example, to make a profit by shorting bitcoin). If Satoshi had picked and algorithm that worked best on GPUs, then attackers would rent GPU clusters to attack the system. I'm not sure if you didn't read my answer or didn't understand it, but what you are saying has nothing to do with the issue -- which is attack resistance. | |
Nov 11, 2017 at 20:25 | comment | added | David Schwartz | @MichealJohnson You are very, very wrong. But I'm not sure I can untangle your confusion in the space here. First: He did accidentally choose an algorithm with particular characteristics. There's no evidence he considered the differences between memory hard, decision hard, and calculation hard algorithms. And that makes a huge difference in the final result because whatever is most efficient at executing the algorithm is what will wind up executing it. | |
Nov 11, 2017 at 20:11 | comment | added | micheal65536 | He did not "accidentally" choose an algorithm with particular characteristics. The characteristics of the algorithm are irrelevant, the network was designed to give a particular behaviour regardless of the algorithm chosen and the available computing power. If he'd chosen an easier algorithm, the network would've compensated to make the work as difficult, so no matter what algorithm was chosen you wouldn't find people renting GPU clusters because too many people would be using GPU clusters and the difficulty would increase to compensate. | |
Nov 11, 2017 at 17:51 | comment | added | David Schwartz | @MichealJohnson I honestly don't see how that's even remotely relevant to the issues being discussed here. | |
Nov 11, 2017 at 15:01 | comment | added | micheal65536 | The crucial part is that, no matter what algorithm is chosen, the design of the network is such that the computational power required to solve the challenge will increase in proportion to increases in available computational power (for whatever particular algorithm is used). This applies no matter how easy or hard the algorithm is, because the network will compensate to ensure that the work is always the same difficulty. | |
Nov 10, 2017 at 21:22 | comment | added | David Schwartz | @MichealJohnson What I mean by "accidentally" is that I don't think Satoshi thought through the consequences of picking an algorithm that has the particular characteristics SHA256d has. He didn't think through what would happen if the algorithm required lots of memory versus what would happen if it required lots of branching. By accident, he picked an algorithm that accelerates on ASICs extremely well. And many people even initially thought that was a bad thing. (And this question shows that many people still do.) But I think time will prove that it's the best choice. | |
Nov 10, 2017 at 14:45 | comment | added | micheal65536 | I wouldn't say "accidentally". Bitcoin was intentionally designed so that the difficulty of mining would increase to compensate for increased computing power. It's doing exactly what it was supposed to do: making sure that it will always be hard enough to mine that it's not feasible for an attacker to dominate the network, no matter how much more powerful our computers become. Think of mining difficulty not in terms of absolute difficulty but in terms of difficulty relative to the average computing power available at the time - the relative difficulty is designed to always remain the same. | |
Nov 10, 2017 at 12:11 | history | answered | David Schwartz | CC BY-SA 3.0 |