[Proposal] Memory Hard Mining Algorithm (FishHash)

In a voting that ended on October 3rd 2023 the mining community of the IronFish project opted to change the proof of work scheme (PoW) used in the project to a proposal made by Lolliedieb on September 18th. The until then nameless proof of work scheme got its name ”FishHash” through the discussions within the community in the days between the presentation and the final voting.

The goal behind the whole process that preceded the voting was the idea of democratizing the mining of IronFish. For most blockchain projects, a large number of miners in the initial mining community is beneficial because it increases the total number of people who interact with the blockchain and thus accelerates the initial spread.

However, during the first days of the IronFish project, it was observed that there was a high percentage of blocks of unknown origin. Due to the lack of reaction to price changes of this hash rate of unknown origin, it could at least be assumed that this hash rate had a not inconsiderable economic advantage over the widespread GPU miners and was thus contrary to the idea of a mining community that was as broadly based as possible.

The idea of fish hash - which is the result of the discussion process about re-diversification of the mining community - is to be memory bandwidth bound rather then the compute-bound blake3 algorithm. For memory chips there is only a limited diversity in their performance and characteristics, since all memory cells are optimized to record data as reliably and quickly as possible and to make it available to the user again. For this reason, the memories used in different device categories such as graphics cards (GPU), field programmable gate arrays (FPGA) and application-specific integrated circuit (ASIC) are also very similar and have only minor differences in their performance when identical chips are used in different devices.

Therefore, the idea is to create a PoW scheme that is mainly based on the existence and performance of these memory chips, so that the performance and efficiency difference between specialized and widely available hardware is as small as possible. This document describes the basic structure of this new scheme and which steps are necessary to compute a correct hash value with the new scheme.

Read the full spec here as well as a video presentation of the algorithm with slides. I’m posting this for the author @Lolliedieb to solicit community feedback. Feel free to read + comment.

1 Like

Generally support. If possible try to have as much of the mining spec in binary to reduce data transfer costs. Iedoc has a copy of a suggested spec.

Glad my initial proposal is moving along, thank you Lollie for doing the technical work and sorry for not stopping by more often things have been hectic.

1 Like