I was looking into RFID tags, you can write to them a few bytes to it, and Shamir’s shared secrets.
By BIP-39 specs, it’s composed by a fixed list of 2048 words, with the first four characters to be unique for each word.
This allows to store your seed with 4 characters per word, but we can compress it further by assign a number for each word, 1 to 2048, and store it as 3 hexadecimal characters, 0x001 to 0x800 (suppressing the 0x header).
This way we get a string small enough (36 bytes for a 12 words seed, 72 for a 24) to be easily split by SSSS shares.
So, the final version is:
Get the line number of each word from BIP-39 wordlist (English), 1-2048, convert it to hexadecimal, padding with zeros, so that each word is now 3 characters long.
Split it into n out x shares using Shamir’s shared secret. Eg, 3 out of 4 – this means how many shares you need to decrypt the output out of how many shares you created. You can set any n out of x (6 out of 10, 10 out of 10, 2 out of 5… Anything).
Burn each share to a RFID tag and store them on separated places.
When you need to reverse the process, collect the RFIDs needed to the threshold, decrypt it to get its data. Now split the data in blocks of 3 characters, convert it from hexadecimal to decimal and check the wordslist line number to know which word it means.
Alternatively to RFID, this method also produces strings small enough to be encoded as small QR codes.
(Footnote: you can use other languages wordlist, but, for instance, the portuguese language wordlist present at Electrum repository doesn’t match BIP-39 standards; have less than 2048 words and the 4 first characters of each word aren’t unique.)
submitted by /u/SirArthurPT [link] [comments]r/CryptoCurrencyRead More
You might also be interested in reading European Blockchain Sandbox announces the selected projects for the third cohort.
