Part 1: Hello HOLa!
An introduction to HASHWallet’s operation language.
This article introduces a series of posts that we will be sharing to explain HASHWallet’s operation language: HOLa.
HOLa (pronounced with a silent h, “o-la”) stands for HASHWallet Operation Language and, in turn, means “Hello!” in Spanish. In a nutshell, HOLa is the programming language with which HASHWallet operates by interpreting a securely signed series of low-level instructions. These instructions, or macros, are sent from an external source (e.g., the HASHWallet Manager app) and are executed by the HASHWallet’s processor.
But, before explaining the features that make it unique, let us share with you a bit of the origin of HOLa.
HASHWallet: a non-programmable device
Electronic devices work with embedded or installed software, known as firmware. For example, in the case of a hardware wallet, firmware is responsible for operating with tokens, communicating with specific ports, controlling the GUI if it features a display, and so on.
But, as time passes, potential security flaws or bugs in firmware may pop up; process performance may require optimizations; the overall user experience may expect improvements; or a new feature might be added, such as supporting a new cryptocurrency. A firmware update is then required to implement these changes.
Although these upgrades are usually developed to strengthen the device’s security, the update process may involve some risks. It typically needs an internet connection and opens a gate to save and execute the renewed firmware installer. From unintended bugs that may cause device malfunctioning or security breaches to malicious firmware hacks capable of manipulating or stealing sensitive data, sadly, problems and malware injections occur regularly. Continued patching of operating systems is evidence of this recurring problem.
“There are two types of companies: those who have experienced a firmware attack, and those who have experienced a firmware attack but don’t know it.”
– Azim Shafqat, Partner at ISG and Former Managing VP at Gartner
From the beginning, protecting the device from these attacks was the main reason why HASHWallet was conceived as a non-programmable device. As a result, HASHWallet’s firmware cannot be upgraded, and, therefore, there is no need for the wallet to ever connect to the internet or riskily open any gate. But, what about future enhancements or if a new coin is required to be supported? How does HASHWallet handle these changes if there are no firmware upgrades?
Here is where HOLa shines.
Goodbye limitations; Hello HOLa!
To quickly illustrate how HASHWallet works with HOLa and its macros, imagine a musician with a hard time reading sheet music: he would learn new songs by ear and practice them at home for hours while watching some YouTube videos. Once he feels comfortable and sure he has learned the song, he might add it to –or upgrade– his repertoire. Now, to the contrary, what if he is good at reading scores? He will have no problem performing any song accurately even without having listened to it before; he doesn’t need a limited repertoire as his song archive is practically limitless. So, in a manner of speaking, music scores are like the macros, and HASHWallet did attend music school.
As stated earlier, all processes that run on a HASHWallet are securely signed external instructions sent to the device using HOLa macros. These macros consist of stacks of operations (arithmetic, hardware, conditionals, or cryptographic functions) that may accept parameters, making this approach flexible enough to handle any process without compromising the device’s integrity. From managing what is displayed on the device screen, generating and splitting keys, signing transactions, and even instructions concerning the recovery process, every operation in a HASHWallet runs on HOLa. Although it may appear complicated, these macros consist of simple sets of basic functions and are therefore easily analyzable. Thus, attempts to introduce any fishy operation will be detected with ease. Furthermore, if any update is needed, all it takes is to program a new macro with the desired adjustments without changing the HOLa interpreter embedded in the device.
So, it might be wiser to rephrase the question from what currencies does HASHWallet support to how it supports them? For a hardware wallet to operate with cryptocurrencies, the cryptographic operations on which these currencies perform must be followed. Typically, these definitions are programmed in the firmware of the devices. In the case of HASHWallet, these instructions are created externally using macros and sent to the device for its execution. As long as the corresponding macro is created, HASHWallet can operate with any coin, regardless of its protocol.
HOLa macros are open, and the execution is secure.
Every macro intended to be executable by HASHWallet is publicly published and will require verification by our community and team of engineers. This approach is our commitment to the security by transparency concept. Once verified, every macro will be signed by eSignus, as HASHWallet will reject any instruction lacking this signature.
As for today, we are finishing the development of the HOLa Builder, a web-based set of tools that visually helps our global collaborators to build, test, and verify any HOLa macro. More in-depth information about the HOLa Builder will be provided in the upcoming posts.
As we have seen, HOLa allows unlimited possibilities to transparently and securely operate with HASHWallet.
Thank you for your interest, and please stay tuned for the upcoming publications on this series about HOLa and HASHWallet.