Pages:
Author

Topic: Bitcoin Visual private key generator - page 4. (Read 1989 times)

sr. member
Activity: 443
Merit: 350
September 25, 2019, 02:06:20 PM
#8
You use Javascript's math.random function for generating random keys.... Please, don't do this... I'm not a JavaScript Dev, but I'm pretty sure that's not cryptographic secure...

https://www.google.com/search?q=javascript+math.random+vulnerability

Thank you for the comment. You probably right that the math.random is not secure. However actually my project doesn not need this function.

The idea is to create the private key manually, putting each bit to the cell of square 16x16 (256 bit in total). The most secure way is to flip a coin 256 times and fill every cell to receive the final 256 digit bin number. This 256bit number is immediately converted to the public key and bitcoin address with corresponding QR codes and WIF for private key.

math.random is used once to randomly fill all the 256 cells; it is also used in coin mode (0 or 1 for every cell). But of course I do not recommend to generate private keys with this random way (random function of the project). It was added just for educational purposes, or for more convinence making the starting point for key creation.

So the recommended ways to generate the key are:

1) Flip the coin 256 times and write down each outcome by filling the cell of the 16x16 square;
2) Use random, but with later manual intervention: received the filled square of the bits, manually change any cell you like to the opposite value, and do it manual changing as many times as you want.
3) Manually fill all the cells randomly chaning the cell and clicking the mouse to fill/unfill the cell.
4) Use visual patterns (visual in the context of bits presentation in the form of 16x16 square). This way could be done also for gift pusposes: for example draw a heart, generate the key with the address using this pattern, transfer some BTC to this address and present such key to the person you like.
legendary
Activity: 3388
Merit: 4919
https://merel.mobi => buy facemasks with BTC/LTC
September 25, 2019, 01:30:14 PM
#7
You use Javascript's math.random function for generating random keys.... Please, don't do this... I'm not a JavaScript Dev, but I'm pretty sure that's not cryptographic secure...



https://www.google.com/search?q=javascript+math.random+vulnerability
legendary
Activity: 2212
Merit: 5622
Non-custodial BTC Wallet
September 25, 2019, 01:20:18 PM
#6
Nice job OP.

I believe your private key generator is fantastic for educational purposes, however I certainly would not recommend anyone using the generated keys to store bitcoin, for security reasons of course. Anyway, it is very interesting

Your website reminded me of an interesting video (https://www.youtube.com/watch?v=ieHoQ4sGuEY), which is inspired in a idea that Antonopoulos had in his book mastering bitcoin. He suggests that we can create private keys just by flipping a coin 256 times, and taking note 0 or 1.
And that guy made a video doing that. Very boring lol

Another very visual private key generation method.

Congrats on your project.
sr. member
Activity: 443
Merit: 350
September 25, 2019, 09:05:51 AM
#5
Awesome work. Sent you 3 sMerits and I think this is a wrong board for the discussion about your project. I suggest you to move the topic top the Project Development section. You will find other experts to share your knowledge to improvise the project.

Do you know how to move a topic? Feel free to ask if you need any assistance.

Yes, you are right about the board topic. Done.
legendary
Activity: 2464
Merit: 3878
Visit: r7promotions.com
September 25, 2019, 07:28:53 AM
#4
Awesome work. Sent you 3 sMerits and I think this is a wrong board for the discussion about your project. I suggest you to move the topic top the Project Development section. You will find other experts to share your knowledge to improvise the project.

Do you know how to move a topic? Feel free to ask if you need any assistance.
sr. member
Activity: 443
Merit: 350
September 25, 2019, 07:22:05 AM
#3
Is this a tool you developed or you have just posted for the site? Just curious to know about the author. It seems a very good job.

Thank you. Yes, it was developed by me.
legendary
Activity: 2464
Merit: 3878
Visit: r7promotions.com
September 25, 2019, 07:07:06 AM
#2
Is this a tool you developed or you have just posted for the site? Just curious to know about the author. It seems a very good job.
sr. member
Activity: 443
Merit: 350
September 25, 2019, 02:09:21 AM
#1
This is the visual bitcoin private key generator.

The square 16x16 (=256) is used for generation purposes, where each cell represents one bit. The idea is that the filled cell represents "1" bit in the key, and not filled cell represents "0" bit in the key. Such presentation allows creating visual keys which could be easily memorized by human, but hardly understood by machines. You can draw pictures, logos, figures, favorite symbols and so on. You can also make your own patterns and designs and use them as your key. The benefit from such presentation is that you can "store" this key in your memory, just remembering the way you made the drawings.

There is also the option to generate the key in coin mode. It is known that the most secure way to generate bitcoin key is to flip a coin 256 times, and write down each outcome as 1 or 0 depending on the coin side. Visual private key generator can assist you in doing it. Just start flipping the coin and filling the cells line by line from 1x1 to 16x16 and after 256 outcomes you will have a nonsense "picture" represented your unique private key. You can be sure that nobody in the world have ever generated the same key or would generate in the future. The probability of such collision is so small that it is really equal to 0 for all of us and many other future generations.

All the private keys are generated on client side, in the browser. The site does not copy or store the generated information. But for better securitty it is recommended to download the whole site and generate the key offline.


Visual private key generator: https://btckeygen.com

Video instruction (private key generation by flipping a coin 256 times): https://youtu.be/WyBdYhwweaE
Educational visual pattern keys: https://youtu.be/0Ug4YBEyRFQ

Project structure:

Code:
1) index.html               ---> main  HTML file with the objects and references to scripts and styles
2) css/visualPrivKey.css    ---> Styles sheet
3) js/visualPrivKeyMain.js  ---> Main script with canvas calculations and object functions
4) js/bitcoinJS-lib.js      ---> BitcoinJS-lib v0.1.3-default (ECDSA formulas)
5) js/QRcode.js             ---> QR Code Generator for JavaScript

GitHub repository: https://github.com/MrFreeDragon/VisualBTC

Some screenshot examples of the keys and their visualization from the project:

1) Pattern 1 and the corresponding key + address (compressed):


2) Pattern 2 (heart) and its key + address (uncompressed):


3) Visualization of custom HEX key (the key was taken from the public internet, and it corresponds to the uncompressed BTC address with the transactions):


WARNING: The pattern/logo/figure used in bitcoin key generation could be vulnerable, so use these keys only for educational purposes, for fun or for small gifts to others. For real money storage employ a physical coin to fill every bit of your key flipping it 256 times.
Pages:
Jump to: