ABSTRACT The primary goal of our engineering project was the construction of a hardware wallet for the Bitcoin cryptocurrency, which utilises a modular architecture to secure the wallet’s secret. None of the solutions currently available on the market provide such functionality. The project comprises of both the software and hardware aspects because we want the final product to be released as ready-to-use. The hardware platform of our choice is Raspberry Pi Zero W - an affordable and popular System on a Chip, which is small in size with limited resources. One of the goals of our architecture is toprovide an universal interfacefor modules, allowing users to implement their own authentication factors. Every module must be able to encrypt and decrypt a given payload - a part of the user’s secret - needed to sign Bitcoin transactions. They can be simple or very complicated - implementation is left up to the developer to fit their needs. Modules are treated as standalone programs that must adhere to a given contract, provided as an abstract class. The end user can access our wallet through a web interfacewhich was built using modern technologies such as Java, Kotlin in which wehave implemented a lightweight HTTP server, Websockets for dynamic updates in the UI and a widely used React framework. To make the prototype functional, we have provided some example modules. While most of them are basic, one is distinctively complex and can be developed into a standalone project. Due to the very low restrictions to implement a module for our wallet, developers can use a diverse range of technologies to create a new one. We demonstrate such a possibility in one of our modules which utilizes a different technological stack. An importantproblem we encountered duringthe work on ourproject was the organization and management of a team of three developers. In the beginning, we wanted to use a classic methodology that we learned throughout our courses at the Gdansk University of Technology. Unfortunately, during the implementation phase, these methods began to slow us down. Because of that, we changed our approach to non-formal methodology, present in modern open source projects, that is inspired by an iterative process and based on Pull Requests. The GitHub platform aided us to effectively cooperate on the project. In the end, we created a working prototype of the wallet. The most important requirements assigned inthe beginning have beenachieved and the projecthas the potential tobe later developed. Keywords: cryptocurrency wallet, Raspberry Pi, modularity, Java, Kotlin, JVM, React, Bitcoin, cryptography, open source, GitHub.
Figures - uploaded by
Stanisław BarańskiAuthor contentAll figure content in this area was uploaded by Stanisław Barański
Content may be subject to copyright.