Replies: 2 comments
-
Update Krux
I've already tested here, if dashes are removed from entropy, Krux seed will match SeedSigner's SeedSigner
Than, as Krux does:
Iancoleman
|
Beta Was this translation helpful? Give feedback.
-
re: the new dice entry method, that looks great! You have a knack for making good UX decisions :) re: dice entropy: We take a similar approach to ColdCard and SeedSigner here, accumulating rolls as a string and hashing that string with sha256 to create a fixed-size result of 256 bits of entropy, of which either the first 128 or the full 256 bits will be used depending on the number of rolls and the state size (50 rolls of D6 == ~128 bits of entropy, 100 rolls of D6 == ~256, 30 rolls of D20 == ~128, 60 rolls of D20 == ~256). These hashed bits go directly into the The only difference between Krux and ColdCard/SeedSigner is that Krux's string includes dashes between each roll number. For example, Krux will use the sha256 hash of Here are ColdCard's and SeedSigner's methods so you can compare: In terms of bit biasing (which I think is what you're hinting at), here's the issue that led to Ian Coleman changing his dice input method to replace 6's with 0's: It's a great discussion worth reading through fully to better understand the problem. The difference between Ian's implementation and ours is that his is taking the "raw" user input and directly generating a mnemonic from it without hashing, so the rolls are stored as a large base-6 number that "loses" some bits of entropy when converted to bits for mnemonic generation. In our case, the hash we're generating from the input string won't suffer from this bias and is basically the "Option 2" Ian mentioned here as an alternative: Hope that clears things up! Let me know if anything seems off or wrong with what I said. |
Beta Was this translation helpful? Give feedback.
-
Input
Yesterday I wrote some code to make dice entry faster. I was quite simple with the
Pad
class I created before.Entropy
I think there's no standard on this, but I'm taking a look at entropy generation algorithm now. From what I understood it does ´sha256` with entropy numbers as they were 16 base (hex), but they are not. Shouldn't them be converted first?
Iancoleman seems to replace 6 with 0 to make a base 6 number from dice rolls. One could also subtract 1 from each roll to make base 6 too.
A 6 base number could be converted to hex, then run sha256.
I don't have enough knowledge on sha256, but I just would like to make sure we're using all "resolution" the dice rolls can give us.
Beta Was this translation helpful? Give feedback.
All reactions