Bitcoin Forum

Bitcoin => Project Development => Topic started by: watashi-kokoto on July 24, 2017, 06:42:58 PM

Title: SATOHASH - cryptographic key derivation function
Post by: watashi-kokoto on July 24, 2017, 06:42:58 PM
tocode released the Satohash function (

The function takes 256bit input (for example a password) and returns a 256bit output (for example a bitcoin private key)

This function can be used as a key derivation function. You only remember the password to your funds.

Another purpose the function can be used for hashing, like when combined with sha256 or any other function like this satohash(sha256(input file))

$ sha256sum hash.h | ./run

The function also can be mined to create proof of work like bitcoin. But must be again chained with arbitrary input hash function like sha256

There is also a command line code that hashes stdin or the first argument


empty input (all zeros)

$ ./run 0000000000000000000000000000000000000000000000000000000000000000

$ echo -n "" | ./run
$ ./run ""

hello world
$ ./run satohash

Demonstrate the avalanche effect, changing one letter changes whole output

$ ./run Satohash

I wish you happy holding of Bitcoin in your head, happy mining and fun. Thanks.

Title: Re: SATOHASH - cryptographic key derivation function
Post by: btc_enigma on July 25, 2017, 03:41:53 AM
How does this KDF compare to existing ones and its randomness properties.

Title: Re: SATOHASH - cryptographic key derivation function
Post by: CX4048 on July 01, 2019, 11:15:22 PM
If we look at it like regex, ? means that the previous selection (word in this case) is optional.

Removing teeth, we get 8 words, 32 characters. (WhyTheCombOfNatashaOtomoskiHas21)

Knowing that Satoshi Nakamoto is highly likely two of the words, we can assume that the other letters in the sentence make up the rest of the words.  That leaves us with 6 words made up of WhyTheCombOfHas21

That should cut down on brute forcing possibilities.