<oembed><type>rich</type><version>1.0</version><author_name>npub1sm6zhjmk5scuz294jmpkw99wwwjzetjgwp4fu4gn6utqgdz87hkqamnq7h</author_name><author_url>https://nostr.ae/npub1sm6zhjmk5scuz294jmpkw99wwwjzetjgwp4fu4gn6utqgdz87hkqamnq7h</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2014-07-04&#xA;📝 Original message:On 07/04/2014 07:15 AM, Andy Parkins wrote:&#xA;&gt; On Friday 04 July 2014 06:53:47 Alan Reiner wrote:&#xA;&gt;&#xA;&gt;&gt; ROMix works by taking N sequential hashes and storing the results into a&#xA;&gt;&gt; single N*32 byte lookup table.   So if N is 1,000,000, you are going to&#xA;&gt;&gt; compute 1,000,000 and store the results into 32,000,000 sequential bytes&#xA;&gt;&gt; of RAM.  Then you are going to do 1,000,000 lookup operations on that&#xA;&gt;&gt; table, using the hash of the previous lookup result, to determine the&#xA;&gt;&gt; location of next lookup (within that 32,000,000 bytes).  Assuming a&#xA;&gt;&gt; strong hash function, this means its impossible to know in advance what&#xA;&gt;&gt; needs to be available in RAM to lookup, and it&#39;s easiest if you simply&#xA;&gt;&gt; hold all 32,000,000 bytes in RAM.&#xA;&gt; My idea wasn&#39;t to make hashing memory hungry; it was to make it IO-hungry.  It &#xA;&gt; wouldn&#39;t be too hard to make an ASIC with 32MB of RAM.  Especially if it &#xA;&gt; gained you a 1000x advantage over the other miners.  It seems that sort of &#xA;&gt; solution is exactly the one that Mike Hearn was warning against in his blog.&#xA;&#xA;I think you misundersood....  using ROMix-like algorithm, each hash&#xA;requires a different 32 MB of the blockchain.  Uniformly distributed&#xA;throughout the blockchain, and no way to predict which 32 MB until you&#xA;have actually executed it.   If the difficulty is high enough, your&#xA;miner is likely to end up going through the entire X GB blockchain while&#xA;searching for a good hash, but other nodes will only need to do 32 MB&#xA;worth of disk accesses to verify your answer (and it will be unknown&#xA;which 32 MB until they do the 1,000,000 hash+lookup operations on their&#xA;X GB blockchain).&#xA;&#xA;I think that strikes a good compromise of needing access to 100% of the&#xA;blockchain, without requiring reading 20 GB to verify a block.&#xA;&#xA;(Replace N=1,000,000, 32 MB and 20 GB with the appropriately calibrated&#xA;numbers in the future)</html></oembed>