Bitcoin Forum
April 26, 2024, 06:22:32 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: RPi Zero Physical Wallet (personal project)  (Read 218 times)
This is a self-moderated topic. If you do not want to be moderated by the person who started this topic, create a new topic.
DiamondCardz (OP)
Legendary
*
Offline Offline

Activity: 1134
Merit: 1112



View Profile WWW
October 17, 2019, 11:24:24 AM
Merited by DaveF (2), hugeblack (2), ABCbits (1), o_e_l_e_o (1)
 #1

Hey everyone,

I've had a Raspberry Pi Zero and a 128x64 OLED display for it hanging around for a little while so I'm thinking of making an implementation of a Bitcoin wallet for it!

For those who don't know, the Adafruit 128x64 OLED display looks like this (stock image)



I've already soldered it onto my RPi Zero as I was tinkering with it previously, but as I'm at university right now and my RPi Zero is at home, I won't be able to take a picture of my actual version until this weekend.

The RPi Zero I have right now is using a microSD card with Raspbian installed on it. Adafruit's display libraries use Python, so I'm planning to modify a light-weight Bitcoin wallet such as pywallet, to use as a form of cold storage that can be navigated using the joystick and buttons.

Obviously when I'm done with this project I'll upload the Bitcoin wallet onto github or something similar.

Feel free to watch this thread if you want updates, low-effort spammy stuff will be deleted - i.e. if I feel you're just farming posts rather than offering ideas or feedback Smiley

BA Computer Science, University of Oxford
Dissertation was about threat modelling on distributed ledgers.
The trust scores you see are subjective; they will change depending on who you have in your trust list.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
DaveF
Legendary
*
Offline Offline

Activity: 3458
Merit: 6235


Crypto Swap Exchange


View Profile WWW
October 17, 2019, 01:48:29 PM
 #2

Kind of goes nicely with what I am working on.

https://bitcointalk.org/index.php?topic=5191398.0

Once you get it up I might mod the case to include a display once I work out everything else.

-Dave

█▀▀▀











█▄▄▄
▀▀▀▀▀▀▀▀▀▀▀
e
▄▄▄▄▄▄▄▄▄▄▄
█████████████
████████████▄███
██▐███████▄█████▀
█████████▄████▀
███▐████▄███▀
████▐██████▀
█████▀█████
███████████▄
████████████▄
██▄█████▀█████▄
▄█████████▀█████▀
███████████▀██▀
████▀█████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
c.h.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀█











▄▄▄█
▄██████▄▄▄
█████████████▄▄
███████████████
███████████████
███████████████
███████████████
███░░█████████
███▌▐█████████
█████████████
███████████▀
██████████▀
████████▀
▀██▀▀
ABCbits
Legendary
*
Offline Offline

Activity: 2856
Merit: 7407


Crypto Swap Exchange


View Profile
October 17, 2019, 07:03:59 PM
Merited by DiamondCardz (1)
 #3

Interesting project, do you plan to add battery pack since you use word "Physical Wallet" ?

pywallet hasn't been updated in a year, so you might want to try other library such as https://github.com/ofek/bit.
It's easy to use (even though i never try cold storage feature) and claim to be fastest Bitcoin library.

█▀▀▀











█▄▄▄
▀▀▀▀▀▀▀▀▀▀▀
e
▄▄▄▄▄▄▄▄▄▄▄
█████████████
████████████▄███
██▐███████▄█████▀
█████████▄████▀
███▐████▄███▀
████▐██████▀
█████▀█████
███████████▄
████████████▄
██▄█████▀█████▄
▄█████████▀█████▀
███████████▀██▀
████▀█████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
c.h.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀█











▄▄▄█
▄██████▄▄▄
█████████████▄▄
███████████████
███████████████
███████████████
███████████████
███░░█████████
███▌▐█████████
█████████████
███████████▀
██████████▀
████████▀
▀██▀▀
DiamondCardz (OP)
Legendary
*
Offline Offline

Activity: 1134
Merit: 1112



View Profile WWW
October 17, 2019, 07:35:01 PM
 #4

Interesting project, do you plan to add battery pack since you use word "Physical Wallet" ?

pywallet hasn't been updated in a year, so you might want to try other library such as https://github.com/ofek/bit.
It's easy to use (even though i never try cold storage feature) and claim to be fastest Bitcoin library.
You can easily hook up an RPi Zero to a battery pack. I probably won't fuss around with creating one to be attached to the physical wallet, because you can plug it into a portable charger at any time and get the same effect.

Thanks for the suggestion on the improved library, it looks really good so I will try that instead!

BA Computer Science, University of Oxford
Dissertation was about threat modelling on distributed ledgers.
DiamondCardz (OP)
Legendary
*
Offline Offline

Activity: 1134
Merit: 1112



View Profile WWW
October 18, 2019, 08:35:31 PM
 #5

It's a little dusty but I found my old soldered RPi Zero + bonnet and so I quickly whipped up a menu as a kind of concept for what I plan for it to look like.

https://streamable.com/8xbkk

Planning for the following behaviour:

- When started the software will check to see if there's already an address saved. If there isn't one it will generate it and give the user its appropriate seed phrase. It will also prompt the user to enter a passphrase which will be used to encrypt the file on the device containing the wallet's private key.
- To begin with this wallet will only be designed to use one address at a time. Mainly trying to avoid having to display multiple addresses on a tiny 128x64 screen.
- There will be only four options:
1. Receive - shows the Bitcoin address currently loaded onto the cold wallet
2. Sign (called Send in the video) - planning to have this option scan for a file in the device's home directory which will contain details of an unsigned transaction, and sign it appropriately. I'll need to decide how the user creates this unsigned transaction file, which they'll then need to load onto the microSD card used by the RPi. Will require the user to type in their passphrase to sign, of course.
3. Passphrase - will allow the user to change their passphrase
4. Generate New - after entering the user's passphrase, will allow the user to generate a new address, which will overwrite the old one (obviously there will be warnings about this).

This is more of a personal project and so I'm not planning on putting a lot of features into this, it's more supposed to be a cool gadget than something I expect to use to store a lot of Bitcoin on. If you guys see any issues with those options let me know, I'm a bit rusty as I've been out of the community for quite a while.

BA Computer Science, University of Oxford
Dissertation was about threat modelling on distributed ledgers.
DiamondCardz (OP)
Legendary
*
Offline Offline

Activity: 1134
Merit: 1112



View Profile WWW
October 23, 2019, 02:48:48 PM
 #6

Small update - after a silly amount of configuration required to get my RPi Zero able to receive an internet connection over micro-USB, and an even sillier amount of configuration required to get all my packages running, I've got the Python bit package running successfully. Pretty tight for storage right now - all in all I'm using 1.8GB of my 2GB microSD card that's being used as secondary storage for it!

(obviously when this wallet is 'ready' for use, the RPi will be wiped completely and only the completed software will be placed on it, and it won't be connected to the internet anymore)

All I've done so far after that is confirmed that private key generation works and that you can get an address from it:



But I'm ready to make actual progress on this project now so stay tuned Smiley

BA Computer Science, University of Oxford
Dissertation was about threat modelling on distributed ledgers.
DaveF
Legendary
*
Offline Offline

Activity: 3458
Merit: 6235


Crypto Swap Exchange


View Profile WWW
November 29, 2019, 02:00:19 PM
 #7

Have you made any progress with this?
I have been stuck on my RPi project getting some things to work and decided to take a week or so away from it to stop driving myself nuts.

Everything seems so simple till you actually start doing it.
Then...less simple.

-Dave

█▀▀▀











█▄▄▄
▀▀▀▀▀▀▀▀▀▀▀
e
▄▄▄▄▄▄▄▄▄▄▄
█████████████
████████████▄███
██▐███████▄█████▀
█████████▄████▀
███▐████▄███▀
████▐██████▀
█████▀█████
███████████▄
████████████▄
██▄█████▀█████▄
▄█████████▀█████▀
███████████▀██▀
████▀█████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
c.h.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀█











▄▄▄█
▄██████▄▄▄
█████████████▄▄
███████████████
███████████████
███████████████
███████████████
███░░█████████
███▌▐█████████
█████████████
███████████▀
██████████▀
████████▀
▀██▀▀
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!