|
Autodesk Fusion 360Autodesk
|
|
|
arduino IDEArduino
|
Bitcoin ring with Attiny85
I’ve started to think about a project that could take advantage of DigiSpark board features (reduced size, USB, HID, integrated led) and I came out with this experimental BTC crypto ring.
How does it work?
A Bitcoin wallet is basically a pair of keys, one public, used to receive money, and one private, used to send money. The idea is to store those keys inside a ring, without batteries or complicated circuits. Whenever you need to use the funds, you just plug your ring to any computer and the ring will “type” the keys as a keyboard. So, no specific software is required from the computer side.
How are keys typed through USB?
Digispark board is an HID (human interface device), so it is able to act as a mouse or keyboard. In this case the ring will be recognized as a keyboard and it will “type” the Bitcoin keys to the computer.
Software and drivers
There are no parts to solder or connect but you have to install drivers and configure the board.
Download and install https://github.com/digistump/DigistumpArduino/releases/download/1.6.7/Digistump.Drivers.zip
Open Arduino IDE, File, Preferences and add Additional Boards Manager URLs http://digistump.com/package_digistump_index.json
Go to the “Tools” menu and then the “Board” submenu - select “Boards Manager” and then from the type drop down select “Contributed”:
Select the “Digistump AVR Boards” package and click the “Install” button. Finally select Digispark (Default – 16.5mhz) board.
More info at http://digistump.com/wiki/digispark/tutorials/connecting
Download the .ino file to a clean, offline compter.
Select the .ino of the mode you want. Edit your crypto keys, click Upload and now you have 60 seconds to insert the Digispark to the USB for uploading.
Note: after uploading, remove the ring, otherwise it will spit the keys to the Arduino Ide.
What about security?
This ring should be considered as cash or a paper wallet. If someone gets it, it will get the money. But… I have also included the source code for a second mode with a small obfuscation, which of course it does not qualify as security but it is better than nothing.
In this mode the device will put some random chars before and after the keys. How do you know how many chars to remove? They will be announced right in the board with led blinks. For example, if you count 6 blinks, you have to remove “asjhf7” and “8urjak”
asjhf712345678908urjak
Consider that the number of blinks changes from execution to execution.
How to load the keys
Keys are hardcoded. You have to copy and paste using a clean, offline computer with Arduino IDE installed. Why a clean and offline computer? Because otherwise it could be hacked and your funds stolen before you get the chance to even use the ring.
Mode 1 keys
// split private key in 3 lines, up to 18 chars each
DigiKeyboard.println("XXXXXXXXXXXXXXX");
DigiKeyboard.println("XXXXXXXXXXXXXXX");
DigiKeyboard.println("XXXXXXXXXXXXXXX");
Mode 2 keys
static String pubKey="";
static String prKey ="";
How to print and mount the ring
Use PLA with support. In Slicer program, rotate 180 degrees around Y axis.Then use a glue pistol to fix the board to the ring. Maybe in the future I will design a multi piece ring with no glue involved. (You ca rush up this by sending a BTC donation, LOL to )
Could this ring store multiple keys?
You are welcome to use all those remaining 6k after bootloader to store multiple keys.
Other BTC Arduino projects
Check out the Alt curiously cold Wallet, made with an Altoids tin.
Demo
Bitcoin ring with Attiny85
- Comments(0)
- Likes(1)
- Engineer Sep 29,2024
- 0 USER VOTES
- YOUR VOTE 0.00 0.00
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
More by Roni Bandini
- Swatch Retro Internet Time Clock with Xiao TFT Round Display Internet Time is a decimal time concept released in 1998 by the Swatch corporation. Instead of hours...
- Joule Thief Components:Ferrite torroid (You can make one with an old low consumption Lamp and 2 copper wires)1k ...
- Fall Detection client-server system with Machine Learning Falls could be dangerous in any situation but for certain working scenarios, consequences are defini...
- Bhopal 84, detect harmful gases with machine learning and Arduino Industries working with chemicals are always subject to leaks that could harm workers. Sometimes tho...
- Ibarrola, anti facial recognition servo glasses These are simple servo glasses designed to fool facial recognition software with manual and automati...
- Bitcoin ring with Attiny85 I’ve started to think about a project that could take advantage of DigiSpark board features (reduced...
- Dry Martini WiFi operated neon led sign English CC captions availableI like Dry Martinis. Maybe due to the cocktail glass design or to the f...
- Vespa Diorama ESP32 NTP clock I love Italian motorcycles. I have a Ducati, I’ve rided a Guzzi to travel around Europe and I even f...
-
-
Helium IoT Network Sensor Development board | H2S-Dev V1.2
116 0 0 -
-
-
-
-
-
3D printed Enclosure Backplate for Riden RD60xx power supplies
181 1 1