Abstract

Given the current state of software development, it does not seem that we are nowhere near vulnerability-free software applications, due to many reasons, and software developers are one of them. Insecure coding practices, the complexity of the task in hand, and usability issues, amongst other reasons, make it hard on software developers to maintain secure code. When it comes to cryptographic currencies, the need for assuring security is inevitable. For example, Bitcoin is a peer-to-peer software system that is primarily used as digital money. There exist many software libraries supporting various programming languages that allow access to the Bitcoin system via an Application Programming Interface (API). APIs that are inappropriately used would lead to security vulnerabilities, which are hard to discover, resulting in many zero-day exploits. Making APIs usable is, therefore, an essential aspect related to the quality and robustness of the software. This paper surveys the general academic literature concerning API usability and usable security. Furthermore, it evaluates the API usability of Libbitcoin, a well-known C++ implementation of the Bitcoin system, and assesses how the findings of this evaluation could affect the applications that use Libbitcoin. For that purpose, the paper proposes two static analysis tools to further investigate the use of Libbitcoin APIs in open-source projects from a security usability perspective. The findings of this research have improved Libbitcoin in many places, as will be shown in this paper.

Highlights

  • The success of Bitcoin as an alternative way of paying money online sparked considerable interest and research in the area of Blockchain, with more interest in Bitcoin’s most prominent technologies, such as the proof-of-work scheme

  • The paper proposes two static analysis tools to further investigate the use of Libbitcoin Application Programming Interface (API) in open-source projects from a security usability perspective

  • We evaluate two overly important points; firstly, as Table 4 shows, how Libbitcoin complies with the API usability heuristics defined before by Mosqueira-Rey et al (2018)

Read more

Summary

Introduction

The success of Bitcoin as an alternative way of paying money online sparked considerable interest and research in the area of Blockchain, with more interest in Bitcoin’s most prominent technologies, such as the proof-of-work scheme. While some research has been done on the usability of Bitcoin’s applications from an end-user’s point of view, as far as the authors of this paper know, there is no research yet that addresses usability aspects from a developer’s point of view. From a developer’s point of view, Bitcoin is a software system that implements digital money. A software system’s functionality can be made available to other software systems using Application.

Methods
Results
Conclusion

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.