Author

Topic: Can you find a fault with this "slow" POW algorithm? (possible bounty) (Read 737 times)

legendary
Activity: 1890
Merit: 1086
Ian Knowles - CIYAM Lead Developer
Although the main point of this topic is the "slow POW" if you post (or PM) me a BTC address I'll send you a small reward for that find @watashi-kokoto.
legendary
Activity: 1890
Merit: 1086
Ian Knowles - CIYAM Lead Developer
Lines 132,267,325 are you using MD5?

Hmm... it isn't supposed to be doing so (only legacy stuff as per the conditional check at line 129) but indeed you've found an issue with the other two lines (will be fixing it today so thanks for that).

EDIT: New commit pushed that will now only uses MD5 for legacy encrypted data (and updated the line number in the OP).
sr. member
Activity: 689
Merit: 269
Lines 132,267,325 are you using MD5?

legendary
Activity: 1890
Merit: 1086
Ian Knowles - CIYAM Lead Developer
Now the first thing to note is that I'm going to delete any stupid posts or posts that say nothing useful (and posts that basically say "I recommend that you don't write such an algorithm yourself" will be deleted).

If you're wondering about my "ability" to create code then here are some examples of what I have done (some of which are based upon or include the work of other open source projects - so citing other open source code worth looking at is fine as a response):

https://github.com/ciyam/ciyam/blob/master/src/diff.h - an O(NP) diff implementation (that works out the "path" not just the distance)

https://github.com/ciyam/ciyam/blob/master/src/date_time.cpp - a huge amount of stuff for date and time things

https://github.com/ciyam/ciyam/blob/master/src/btree.h - a generic B+Tree implementation

https://github.com/ciyam/ciyam/blob/master/src/cache.h - a generic multi-region cache implementation

Okay - so hopefully after seeing those examples you can believe that I am not an idiot who doesn't know how to code and can therefore perhaps consider looking at the following: https://github.com/ciyam/ciyam/blob/master/src/crypt_stream.cpp#L442
(it is a memory-hard POW algo that was designed to work in a similar manner to scrypt)

It is entirely likely that I might end up using Cuckoo instead (as I quite like that algo but I just think it might be a little too complex for what I want) but for now I am using this so I'd like to see if anyone can find a serious issue with it.

(there might be a bounty offered later - but for now am just seeing if anyone is curious to take a look)
Jump to: