RAMCoin: Concept for a 'green' rainbow-table-shard and RAM based crypto coin.steemCreated with Sketch.

in blockchain •  7 years ago 

RAMCoin

Concept for a 'green' rainbow-table-shard and RAM based crypto coin.

Traditionaly, proof Of Work (POW) crypto currencies could be classified as monetized global warming. We use processing power intensive and thus energy intensive operations to mine new coins with energy consumption as primary resource being used as mining leverage. It is not popular to think of POW based coins as monetized global warming, just as it isn't that popular to think of regular money under a fractional reserve banking system as monetized debt, it is still important to think of POW technologies in terms of their potential impact on the world's climate.

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:

“The Mth till Nth bits of the hash, prefixed with M random bits together form a password-hash that is part of our rainbow shard.”


Let us look at a simplified example of how this works:

  1. We take the hash of the previous block B as key K.
  2. We pick a random nonce N and calculate a hash H. We increase the work needed to calculate a single hash by applying SCrypt.

    H = SCRYPT(BLAKE2(N,BLAKE2(K,BLOCK)),Y)
  3. For each try T in the m bit namespace we calculate an L bit long rainbow candidate:

    C = T+H[m .. L]
  4. We look up if we can find password (plus salt?) P for hash C in our rainbow shard.
  5. If P is found using N and T, then N and P, together form our proof of work.


The result should be that:

SCRYPT(P,X)[m .. L] = SCRYPT(BLAKE2(N,BLAKE2(K,B)),Y)[m .. L]

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:
  1. 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.
  2. 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.
Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

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

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!

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.

I saw it named before.
Not my own term.

@OriginalWorks Mention Bot activated by @fersher. The @OriginalWorks bot has determined this post by @pibara to be original material and upvoted it!

OW2.gif

To call @OriginalWorks, simply reply to any post with @originalworks or !originalworks in your message!

For more information, Click Here!

Nice post

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!

@croupierbot lottery 0.05 Test #2

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.

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.

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!

Oops. Seems like I might want to exclude *bot named accounts from being @croupierbot lottery winners ;-)