RAMCoin
Concept for a 'green' rainbow-table-shard and RAM based crypto coin.
In this blog post, I want to lay down the base concept for a crypto currency that aims to be relatively environmentally friendly. RAMCoin aims to require RAM more than CPU within the mining process and as such should provide an economy that could potentially be more environmentally friendly than coins whose economy is basically centered around the cost of electricity needed for mining. Where traditional proof of work based coins revolves around finding a nonce that when combined with a transactions block produces a hash with specific properties, the properties required of the target hash favor energy hungry brute-force methods.
Rainbow tables
In user and access management systems, passwords are usually not stored within the authorization platform but instead what is most often stored are the (salted) hashes of these passwords. If an attacker would get his hands on the hashes, a brute force attack would eventually lead to the password being discovered, for relative short passwords within a possibly practical time frame. Given that the hashing mechanism is known for a given platform, however, and given a specific maximum password length, there is also the possibility to pre-compute a number of hashes and store these on disk. The size for storing such a hash set on disk would normally be prohibitively large. To attenuate the storage requirements for pre-computed-hash to password mappings, the concept of rainbow tables allows to significantly reduce the total storage needs at the expense of some additional indirections. The size of rainbow-tables, however, is likely to still be rather large depending on the maximum expected password length.
Rainbow-shard mining
With RAMCoin we aim to make rainbow table principles based mining significantly more economically viable than CPU or ASIC based mining. Next to this, we aim to make the use of RAM for mining with rainbow table shards more economically viable than the use of hard disks or SSDs. To accomplish this, we choose an address space that is large enough to be close to impossible to be completely covered by on-disk rainbow tables even in a worldwide large scale distributed set-up consisting of hundreds of thousands of well-equipped miners. We want to force a proof of work component, but not too much over the top as to keep the ecological footprint relatively low.
Before a miner can start mining coins, a rainbow shard must be mined. A rainbow shard is basically a fragment of the full unattainable rainbow table that is randomly seeded and is dimensioned in such a way that on a standard PC, GPU based mining of a shard the size of the physical RAM should be dimensioned so that it takes a number of months. Faster shard mining with GPU or ASIC could of cause be possible. While shard mining is commencing, the coin mining power of the node will grow linearly with the growing shard size.
Coin mining using the rainbow shard
So how would we go about mining with a rainbow table shard?
Well, for the most part very much similar to that of regular proof of work crypto coins. We take the block with transactions, take a random nonce and calculate a hash. Then we check for a special property of the hash we found, in our case that special property is:
Let us look at a simplified example of how this works:
- We take the hash of the previous block B as key K. We pick a random nonce N and calculate a hash H. We increase the work needed to calculate a single hash by applying SCrypt.
The result should be that:
So basically we are looking for partial SCrypt collisions. Note that while the left-hand side using a large X is designed to be operations that take a lot of work during rainbow shard mining, the right-hand side uses a significantly smaller Y that is chosen in such a way that:
-
Looking up a potential left-hand match in an in-RAM rainbow shard should be a few orders of magnitude faster than calculating a right-hand value, thus favoring increased RAM for POW economics over increased computing power.
Looking up a potential left-hand match using hard disks or SSD, while allowing for orders of magnitude larger shards and thus much larger address space to be covered in a single lookup, also increases the per candidate lookup time by orders of magnitude. Removing any unfair advantage that disk-based rainbow shards might have. The economic value of the rainbow-shard storage media is determined by the product of the medium size and the random-access access time of the media.
It is desired to have a relatively constant and not too large time window for a transaction to end up in the blockchain. To accomplish this, it is common practice to adjust the total amount of work needed to generate the needed proof of work. To accomplish this in the above setup, we introduce the concept of a shifting wild card mask (SWCM) that regulates the proof of work required by the network to add a single block to the block chain.
To state it simply, the SWCM determines the number of bits m used in the example above.
Better match, higher payout ?
While it is important from a responsiveness of the distributed ledger to reduce and increase the amount of work needed depending on the total mining power available, this does not mean all proof of work is created equal.
As it seems reasonable that, despite the shifting wildcard mask, a better match should enjoy higher payout, we should consider something like a match quality depending payout on proof of work. <br. As an example, the amount of RAMCoin R, that is rewarded to the lucky miner could be determined by the number of zero bits in the result of an XOR operation between H, C, and SCWM. For example :
R = 100 . √2(zerobits(H ⊕ C ⊕ SCWM))
Feedback
This blog post is just a preliminary outline of the POW concept for RAMCoin. I am currently soliciting feedback on the idea of creating such a rainbow-table-shard based crypto currency aimed at being a significantly more environmentally friendly cryptocurrency due to the fact that available RAM size and repeated RAM access more than consumed electricity linked to CPU/GPU/ASIC processing power would determine the yield of the mining process. That is, I would expect the electricity usage of the whole RAMCoin mining network to be significantly lower than that of other mostly proof of work based coins. Is the idea described above viable? Would they yield a green POW based coin? Or are there essential oversights making these concepts fundamentally flawed. Please help me with feedback on the concepts described in this post, either by commenting below or by contacting me on Twitter.
Project inception?
Oh, and if you happen to be a skilled cryptographer or C++ developer looking for an open source project to work on, drop me a private message on twitter.
While I've successfully run a number of one man open source projects, writing a crypto coin surely isn't suitable for a one man project, so let me know if you would like to be part of the team. I believe that a five up-to eight man team of motivated spare-time developers should be a good fit for a project like this, so if you agree the concepts laid down here are solid and we can get together a team of at least five skilled and motivated people, the RAMCoin project could be a go. Oh, and we definitely need a cat-herder on board. I'm fully capable of being technical lead on this one, but I lack the diplomatic skills needed for being the logistics and people lead over a bunch of volunteering geeks. We need someone with the appropriate skillset for that on board. A decent cat-herder so to speak.
I know there are a lot of crypto enthusiasts here on Steemit, as such I have hope that I can at least get some decent feedback on the concepts described in this blog post and have some hope that we may indeed get a small team together interested in making a green, rainbow-shared based, POW crypto coin a reality.
Seems like proof of space.
Do you have a list of all the proofing strategies, such as proof of work, proof of space, proof of stake, etc?
@originalworks
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
This comment has received a 10.00 % upvote from @nettybot thanks to: @fersher.
Send 0.100 SBD to @nettybot with a post link in the memo field to bid on the next vote.
Oh, and be sure to vote for my owner, @netuoso, as Steem Witness
Have a great day!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Yes, proof of space would seem like an appropriate name, though i thought of it myself as power efficient proof of work that scales with space.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
I saw it named before.
Not my own term.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
@OriginalWorks Mention Bot activated by @fersher. The @OriginalWorks bot has determined this post by @pibara to be original material and upvoted it!
To call @OriginalWorks, simply reply to any post with @originalworks or !originalworks in your message!
For more information, Click Here!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Nice post
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
This post was resteemed by @resteembot!
Good Luck!
Learn more about the @resteembot project in the introduction post.
Check out the other content resteemed by @resteembot.
Some of it is really cool!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
@croupierbot lottery 0.05 Test #2
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Hi. I am the ALPHA version of @croupierrbot.
pibara has upvoted posts by :
['resteembot', 'fersher', 'nice2share'].
The block number of the current head of the block chain is 15196587
After block 15196610 is added to the blockchain and becomes irreversable, I will anounce the fairly drawn winner using the witness signature from that block.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
OK, I have drawn the winner.
pibara has upvoted posts by:
['resteembot', 'fersher', 'nice2share'].
The winner of the draw is resteembot.
This winner has been drawn using block 15196610.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
This post was resteemed by @resteembot!
Good Luck!
Learn more about the @resteembot project in the introduction post.
Check out the other content resteemed by @resteembot.
Some of it is really cool!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Oops. Seems like I might want to exclude *bot named accounts from being @croupierbot lottery winners ;-)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit