Published on: 2014-07-07T06:12:42+00:00
In the world of cryptocurrency mining, the concept of a "runner up" does not exist. Instead, miners are rewarded for "near miss" solutions through pools that pay for shares that almost meet the difficulty target. The challenge lies in implementing this reward structure without miners giving up their right to block creation. Mike Hearn suggested the idea of rewarding "near miss" solutions through pools, which already exist and pay miners for shares that almost meet the difficulty target.Jorge Timón argues that algorithms are better in an application-specific device (ASD) than in a general-purpose computer. He believes that anything that can be done with software can also be done with hardware. However, he criticizes people who waste time pursuing the "anti-ASIC" myth, stating that algorithms can still be made into ASICs but will require more skilled designers and expensive fabrication. Timón suggests that keeping the algorithm simple and ASIC-easy promotes diversity in the marketplace but questions whether it is desirable to have people capable of mining who have not shown any interest.The efficiency of Proof-of-Work (POW) algorithms and their potential ASD implementation is discussed on the Bitcoin-development mailing list. One user believes that there are no algorithms that cannot be performed better in an ASD than in a general-purpose computer. Another user suggests that keeping the algorithm simple and ASIC-easy allows more people to design ASICs, leading to diversity in the marketplace. The conversation also touches on the production of competitive mining equipment and the potential dominance of entities like Intel, AMD, and IBM.Andy Parkins proposes creating an ASIC-proof proof-of-work algorithm. However, the proposal is deemed impractical due to high verification costs and limitations on mobile devices. It is suggested that simpler algorithms promote diversity in the marketplace, but it is acknowledged that specialized high-efficiency hardware for mining may still exist. Despite the limitations, the discussion surrounding these ideas is seen as important for learning and advancing the technology.The concept of a hashing algorithm called ROMix is discussed in an email exchange between Alan Reiner and Dr. Andy Parkins. ROMix stores sequential hashes into a lookup table, requiring a certain amount of RAM. The goal is to make hashing IO-hungry instead of memory hungry, but the implementation and trade-offs are still being discussed.One of the challenges in mining Bitcoin is the ability for miners to produce one hash for everybody, which does not affect the actual hash rate but makes it harder to reproduce. The difficulty adjustment algorithm ensures that blocks come at 10-minute intervals regardless of the hash rate. One possible solution to make mining "unASICable" is to use a harder algorithm or increase the size of the input data that needs hashing. Unlike an algorithm change, increasing the input size cannot be reduced by building a better ASIC.Alan Reiner suggests using the hash of a prevBlockHash||nonce as the starting point for 1,000,000 lookup operations to achieve the goal of making mining unASICable. Each previous lookup would determine which block and transaction is used for the next lookup. This method requires the entire blockchain to be available, even though only a small fraction of it is used for each "hash." Another participant suggests that involving lots of unpredictable memory accesses to a large chunk of fast memory is also unASICable. They propose deriving the data vector by the same means as a one-time pad and loading it into memory after boot. By making the vector large enough, it won't benefit from embedded RAM bandwidth/speedup, and clustering won't offer economies of scale.Andy Parkins suggests protecting against ASIC mining by making the algorithm IO-bound instead of CPU-bound. In his idea, the proof-of-work hash for a block would be the hash of "[NEW_BLOCK] [ALL_PREVIOUS_BLOCKS] [NEW_BLOCK]," where [ALL_PREVIOUS_BLOCKS] is 20GB and growing. This approach requires every byte of the blockchain to be fed through the hashing engine, making it IO-bound. Alan suggests using the ROMix algorithm defined by Colin Percival for this idea. It involves taking N sequential hashes and storing the results into a single N*32 byte lookup table. Applying a similar concept to Andy's idea, they can use the hash of a prevBlockHash||nonce as the starting point for 1,000,000 lookup operations to achieve what Andy describes without requiring the full 20 GB of reading on every hash.In response to the notion that it is impossible to have an ASIC-proof proof-of-work algorithm, Dr. Andy Parkins suggests that while no algorithm can exist that cannot be implemented in an ASIC, it is only true for algorithms that are CPU-bound. To protect against ASIC mining, the algorithm could be made IO-bound instead.
Updated on: 2023-08-01T09:41:23.937038+00:00