jujugoboom



Offline



Activity: 383

Merit: 250







Sr. MemberActivity: 383Merit: 250 [UPDATED] Bitduino: Generate bitcoin addresses randomly using Arduino December 23, 2014, 02:51:52 AM

Last edit: February 05, 2015, 03:32:35 AM by jujugoboom #1 https://github.com/jujugoboom/Bitduino







I am proud to share with you what I have been working on.



This is code that works with a computer and an arduino board to generate bitcoin addresses. It uses a random number generated from hardware on the arduino and uses that to generate a bitcoin address.



This is my first bitcoin code ever and I hope you guys enjoy it. If anyone that has experience with arduino or python wants to help, message me.



A reminder that the actual addresses are converted and stored on your computer so they are only as secure as your computer, but I am looking into generating and storing on arduino.



If you enjoy please let me know and if you have any questions or complaints just tell me. Thanks.



EDIT: This now includes a more secure entropy library that has been tested and shown to be random. The program also now stores private keys in the EEPROM of the arduino. It stores it from address 0-31. If you run the Random Address sketch, this overwrites any private keys currently stored on the arduino. The Read EEPROM sketch can be used to write the private key to a serial monitor, or to the generate.py script. This is the program you should have loaded on your arduino if you want to use the same address over and over. Also added a seperate generate.py file that only generates the public key. This makes sure that the private key is never written to your computer. Please leave feedback here, or feel free to e-mail me at I am proud to share with you what I have been working on.This is code that works with a computer and an arduino board to generate bitcoin addresses. It uses a random number generated from hardware on the arduino and uses that to generate a bitcoin address.This is my first bitcoin code ever and I hope you guys enjoy it. If anyone that has experience with arduino or python wants to help, message me.A reminder that the actual addresses are converted and stored on your computer so they are only as secure as your computer, but I am looking into generating and storing on arduino.If you enjoy please let me know and if you have any questions or complaints just tell me. Thanks.EDIT: This now includes a more secure entropy library that has been tested and shown to be random. The program also now stores private keys in the EEPROM of the arduino. It stores it from address 0-31. If you run the Random Address sketch, this overwrites any private keys currently stored on the arduino. The Read EEPROM sketch can be used to write the private key to a serial monitor, or to the generate.py script. This is the program you should have loaded on your arduino if you want to use the same address over and over. Also added a seperate generate.py file that only generates the public key. This makes sure that the private key is never written to your computer. Please leave feedback here, or feel free to e-mail me at jujugoboom@gmail.com

jujugoboom



Offline



Activity: 383

Merit: 250







Sr. MemberActivity: 383Merit: 250 Re: Bitduino: Generate bitcoin addresses randomly using Arduino December 24, 2014, 01:11:56 AM #4 To test the rng, I am running it on a loop right now to generate 100,000 private keys. When it finishes in a few days, I will upload the results to pastebin and put them here for everyone to see and test.

benjamindees



Offline



Activity: 1330

Merit: 1000







LegendaryActivity: 1330Merit: 1000 Re: Bitduino: Generate bitcoin addresses randomly using Arduino December 25, 2014, 04:36:59 PM #6 depending on the environment. Your testing the code by generating 100,000 keys would only verify your particular environment, at that particular time.



Since all this code does is act as a source of randomness, don't you think you should look into adding some other sources, or some improvement? There are



My other advice is, before releasing a version of this capable of storing Bitcoin keys, please look into enabling the appropriate Arduino memory protection lock bits described in section 27 of the atmega328p datasheet. I like this idea. But I'm a bit disappointed that you didn't take the advice in your Reddit thread seriously. Polling an analog input for random numbers can be compromised by the presence of EM radiation,. Your testing the code by generating 100,000 keys would only verify your particular environment, at that particular time.Sincethis code does is act as a source of randomness, don't you think you should look into adding some other sources, or some improvement? There are much better sources of entropy on an Arduino than the one you are using.My other advice is, before releasing a version of this capable of storing Bitcoin keys, please look into enabling the appropriate Arduino memory protection lock bits described in section 27 of the atmega328p datasheet. Civil Liberty Through Complex Mathematics