Pages:
Author

Topic: [Open Source] Coin Flipped Seed (coin flip, dice roll, rubik's cube mixing) - page 2. (Read 507 times)

legendary
Activity: 1512
Merit: 7340
Farewell, Leo
Major update:

Added dice roll option.


Each dice result corresponds to its analogous bits, exactly as o_e_l_e_o wrote. I consider this, a better solution than the coin flip. You'll need to roll between 64 and 128 times. Specifically, you have 33.3% chance for 5 and 6 that will add only 1 bit and 66.6% chance for 1, 2, 3 and 6 that will add 2 bits. Thus, on average you'll have to roll 64 + (1/3)*64 ~= 85.3 times.

Release (binaries): CoinFlippedSeed-v0.2.zip (0.98MB)
SHA-1: AC4FB9FE510D067F759B1D36CE67263A38D83866




Code:
-----BEGIN SIGNED MESSAGE-----
I, BlackHatCoiner, publish the v0.2 of CoinFlippedSeed in 20th of March 2021.
SHA-1: AC4FB9FE510D067F759B1D36CE67263A38D83866
-----BEGIN SIGNATURE-----
advance concert visit awesome neglect fire dizzy club deny danger disease sign rebel donkey tone educate dumb desert mosquito happy crane jungle grit near
IEAdSD1AxjsB0CzTdrQPmCLpRD4yh5iffOaH1lNWp54dbPq8KHATJI7LKiaiIR0LUNT78jbv8hAXEBubyQgxX/g=
-----END SIGNED MESSAGE-----
legendary
Activity: 2268
Merit: 18748
How could this be done with a dice?
If you use iancoleman's site with the "Show entropy details" checked you can see that he maps it as follows:

Code:
1 = 01
2 = 10
3 = 11
4 = 0
5 = 1
6 = 00

The reason 00 appears at the end is because it is based on the Base 6 encoding which has 0 = 00, which makes more logical sense.

This is a more random way of doing things than the way of mapping a 3 bit number to 6 possibilities, since you were missing out the possibilities of 000 and 111, and therefore reducing the randomness of your entropy.
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
How could this be done with a dice? I guess by representing every dice result to binary. I don't know if this is a solution, mainly because 128 isn't divisible with 3. (128/3 = 42.66)
Dice results in binary:
Code:
01
10
11
00
(code in quote edited)
I can think of different ways, the easiest is probably to just omit the 5 and 6, and interpret 1-4 as binary. That's still a bit faster than coin flips.

I'd want to check this for 2 reasons
I understand that anyone who would try a newly written software would be afraid of these reasons. Yes, I said newly written. You would never do that on electrum. Instead, you'd use electrum to confirm that my software works properly.
I've also checked addresses generated by a hardware wallet using Ian Coleman's site (running from RAM offline of course). For Electrum (or Mycelium, or Coinomi) I don't bother indeed, but I only use those for daily spending amounts.
legendary
Activity: 1512
Merit: 7340
Farewell, Leo
I've often thought about creating my own seed from dice
How could this be done with a dice? I guess by representing every dice result to binary. I don't know if this is a solution, mainly because 128 isn't divisible with 3. (128/3 = 42.66)
Dice results in binary:
Code:
001
010
011
100
101
110

Assuming that your results are "1" 42 times on row, then you'd get:
Code:
001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001
Which is 126 bits. Sure, the computer could generate randomly the two remaining bits, but it ruins the purpose of this software. The other, better, solution is to differentiate 1-3 and 4-6 as ones and zeroes for the last two bits. I'm not sure, but I think that this isn't that strong since "000" and "111" can't be inserted (that easily). If you've found a way to achieve this theoretically, by having the same strength with the coin, tell me and I'll implement it.

Edit: This can't work since 128 ones or 128 zeroes will never come up.

I'd want to check this for 2 reasons
I understand that anyone who would try a newly written software would be afraid of these reasons. Yes, I said newly written. You would never do that on electrum. Instead, you'd use electrum to confirm that my software works properly.

That's okay, where there are bitcoins, there should always be a double-check of the funds' safety with the older programs that have gained the users' trust. I'll answer to both of your questions, even if I don't tend to use this phrase when I want to convince someone:  The software is open-source and simple. Everyone is allowed to read it and judge it. I'm using the popular NBitcoin C# library, which has been used in the past for a lot of bitcoin applications. Focus on "simple". My code is literally only 174 lines long. I didn't intend to attract those that have no experience on coding, but even those can understand that the private keys generated derived by Coin Flipped Seed aren't compromised.

Nice, thanks for sharing.. but why not using Bip39Tool? https://iancoleman.io/bip39/
Well, iancoleman surely provides better functionalities than my newly written program. I may add such features in the future, although I doubt. I don't compete ian. Sure, implementing an app that is useful is a pleasure, but even if it's not that useful, it was fun doin' it.  Wink
member
Activity: 90
Merit: 91
Nice, thanks for sharing.. but why not using Bip39Tool? https://iancoleman.io/bip39/

- if you tick "Show entropy details" you can input your own entropy in many ways
- you can choose many derivation paths
- QR generation
- fully auditable (you can download sources from github and use it offline after compiling)
- hashed releases: for each new version, the author publishes the compiled page hash on twitter (so a different medium, an attacker has compromise two different platforms accounts to forge a fake release)

I don't want to devalue your software but I have thought it's important for you (and us Wink ) to know about others as well

best regards

EDIT
LoyceV stressed the importance of double checking with different softwares ....Got it... so my two cents for a mixed use with Bip39Tool Smiley (I'm not linked with BIP39Tool, I just honestly think it's a very good product)
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
I've often thought about creating my own seed from dice or coins, but never done it. I tried to find a list with 2048 seed words with binary numbers, but found Learnmeabitcoin.com instead.
If I'd really use this, I would like to use more than one piece of software to check if it gives the same results. The seed words I can check manually, but not the address derivation. I'd want to check this for 2 reasons:
  • Can a different piece of software recover the same private keys?
  • Am I sure this software doesn't just give me pre-created compromised private keys that aren't derived from my seed?
So far, all my tests with recovering private keys worked as expected. It's comforting to know my thorough checks weren't needed (but I'll keep doing it anyway).

The usual disclaimer: don't use any online site to create private keys for storing real coins!
legendary
Activity: 1512
Merit: 7340
Farewell, Leo

Coin Flipped Seed


This program may be considered as "useless" by some people. In a way, it doesn't provide anything different rather than a strong proof of the randomness. I got inspired by MrFreeDragon on his visual private key generator. Flipping a coin 256 times is a little too much, but the problem was that you could only create one address at a time. Instead of tossing a coin for one address, it'd better to do it for the seed's entropy. Thus, you can now derive a nearly unlimited number of addresses by only tossing a coin 128 times. Without having to worry about RNGs and their strength.
[Concern about RNG]

Introducing: Coin Flipped Seed.



Release (v0.3)Source code

By default, I've set to derive the first 20 addresses and at the moment you can only create a mnemonic that is twelve words long.
Pages:
Jump to: