Title: Coin That Depends on RAM Availability for Mining Post by: themattenthehat on August 14, 2015, 06:32:32 PM Hello all, been out of the crypto game for a couple years, but starting to get back into it, and had an interesting idea today:
What if there was a cryptocurrency in which mining speed was dependent on the availability of RAM (or other fast memory) rather than computational speed? Here's why I think such a coin would be good:
Here are some important properties that I feel an implementation of this idea would need to have:
The dilema:
So what does everyone think? Is this a good idea? A terrible one? Are there problems I didn't think of or benefits/requirements that I missed? Title: Re: Coin That Depends on RAM Availability for Mining Post by: tromp on August 14, 2015, 07:52:06 PM What if there was a cryptocurrency in which mining speed was dependent on the availability of RAM (or other fast memory) rather than computational speed? You mean like a memory bound proof-of-work?! https://en.wikipedia.org/wiki/Proof-of-work_system#Variants Quote Linear scaling of mining performance with RAM - It would be important that mining performance scale linearly (rather than exponentially or logarithmically) with the amount of available RAM (and possibly speed of said RAM). I don't think that's realistic. You'll probably need to scale computing power along with the memory. Something like "1 memory bank + 1 virtual core = 1 vote" If one virtual core is waiting on a random access to a memory bank (incurring row switching latency), then other memory banks can still be serving requests from other cores. I would argue for the following desirable properties of a memory bound PoW: a target memory footprint that exceeds a single memory chip a pattern of necessarily random memory accesses minimal computation per random memory access no feasible trade-off of memory for time And of course instant memory less verification... Title: Re: Coin That Depends on RAM Availability for Mining Post by: themattenthehat on August 14, 2015, 08:42:12 PM You mean like a memory bound proof-of-work?! https://en.wikipedia.org/wiki/Proof-of-work_system#Variants Quote Linear scaling of mining performance with RAM - It would be important that mining performance scale linearly (rather than exponentially or logarithmically) with the amount of available RAM (and possibly speed of said RAM). I don't think that's realistic. You'll probably need to scale computing power along with the memory. Something like "1 memory bank + 1 virtual core = 1 vote" If one virtual core is waiting on a random access to a memory bank (incurring row switching latency), then other memory banks can still be serving requests from other cores. I would argue for the following desirable properties of a memory bound PoW: Ideally, I think that mining performance should scale with the amount of memory available. I think you are imagining a scenario where a mining algorithm uses a large but finite amount of memory, and access to sufficient memory would allow mining. I am imagining instead an algorithm that uses all available memory, and performance scales with the size of that memory space. This might be achievable by running as many instances of a mining algorithm as will fit in available memory, where each instance uses minimal CPU time but a large (but finite) amount of memory, and hashes at a fixed rate (not sure how that fixed rate could be set).a target memory footprint that exceeds a single memory chip a pattern of necessarily random memory accesses Agreed and agreed, as much memory as possible should be accessed in each computation, and memory access should be random to ensure that the miner keeps an entire data set in memory (rather than loading items in and out as necessary). There needs to be some advantage, however, to having a very large data set in memory compared to a small one.minimal computation per random memory access no feasible trade-off of memory for time I think what you mean is that you shouldn't be able to simulate a very large amount of memory by paging data in and out of physical memory. If so, I entirely agree.And of course instant memory less verification... Not quite sure what you mean by this, could you explain in a bit more detail?Title: Re: Coin That Depends on RAM Availability for Mining Post by: tromp on August 14, 2015, 08:57:35 PM I am imagining instead an algorithm that uses all available memory, and performance scales with the size of that memory space. This might be achievable by running as many instances of a mining algorithm as will fit in available memory I think that's the only feasible way to utilize large amounts of memory. If a single core can solve the PoW using, let's say, 1GB, then how could that single core do it 10x faster using 10GB? It would have to do 1/10th of the original memory accesses to 10x as big a memory space. That makes no sense at all. Quote I think what you mean is that you shouldn't be able to simulate a very large amount of memory by paging data in and out of physical memory. If so, I entirely agree. Paging is horribly slow, especially when doing random memory accesses, so we can completely ignore that. Quote And of course instant memory less verification... Not quite sure what you mean by this, could you explain in a bit more detail?Only mining, the search for proofs, should be memory bound. Verification of proofs, that needs to be done on phones and other limited devices, should use minimal resources. Title: Re: Coin That Depends on RAM Availability for Mining Post by: themattenthehat on August 14, 2015, 09:16:55 PM I am imagining instead an algorithm that uses all available memory, and performance scales with the size of that memory space. This might be achievable by running as many instances of a mining algorithm as will fit in available memory I think that's the only feasible way to utilize large amounts of memory. If a single core can solve the PoW using, let's say, 1GB, then how could that single core do it 10x faster using 10GB? It would have to do 1/10th of the original memory accesses to 10x as big a memory space. That makes no sense at all. Quote I think what you mean is that you shouldn't be able to simulate a very large amount of memory by paging data in and out of physical memory. If so, I entirely agree. Paging is horribly slow, especially when doing random memory accesses, so we can completely ignore that. Quote And of course instant memory less verification... Not quite sure what you mean by this, could you explain in a bit more detail?Only mining, the search for proofs, should be memory bound. Verification of proofs, that needs to be done on phones and other limited devices, should use minimal resources. Title: Re: Coin That Depends on RAM Availability for Mining Post by: themattenthehat on August 14, 2015, 09:45:50 PM Seems like it would be one really cool coin, we would have a coin for pretty much each piece of the pc: CPU (done), Hard drive (done), Graphic card (done), and now Ram. I'm not aware of the hard drive dependent coin (like i mentioned in OP I've been away from crypto for a while). Could you possibly link it, or just provide the name if its easy to find? If i see a lot of interest in this I may look into actually implementing it (particularly if I could find someone with some experience to help), and it seems like this could possibly provide some inspiration. Thanks! Title: Re: Coin That Depends on RAM Availability for Mining Post by: themattenthehat on August 14, 2015, 10:37:43 PM Seems like it would be one really cool coin, we would have a coin for pretty much each piece of the pc: CPU (done), Hard drive (done), Graphic card (done), and now Ram. I'm not aware of the hard drive dependent coin (like i mentioned in OP I've been away from crypto for a while). Could you possibly link it, or just provide the name if its easy to find? If i see a lot of interest in this I may look into actually implementing it (particularly if I could find someone with some experience to help), and it seems like this could possibly provide some inspiration. Thanks! |