One of the main challenges of Bitcoin has been to create interfaces that improve the user experience when interacting with this protocol. This, of course, is related to the intrinsic security of payment applications. Nobody wants to lose their bitcoins because of a mix-up or poor design.
With the advent of new ways of expressing commands or scripts Bitcoin, it is necessary to continue updating the user interfaces, adapting them to the new functionalities or capabilities of the protocol.
This is the intention behind a new proposal from developer Salvatore Ingala, who seeks make it easier for users to understand instructions to hardware wallets (hardware wallets)since these devices play an important role in safeguarding funds and transmitting transactions.
The developer considers that the hardware wallets must allow the user the correct visualization of certain procedures. For example, Taproot programming, which introduces new scripts or commands to Bitcoin, as well as output descriptors (output descriptors) and miniscripts.
The Bitcoin Optech Newsletter [que llegó a su edición número 200]summarizes Salvatore Ingala’s proposal in this way:
Transaction signing devices are particularly focused on verifying Bitcoin policies. Users need to know what will happen if they approve a transaction but should not require more information than is necessary to ensure their funds are safe.
Due to the small size of screens on many devices and the difficulty of verifying information, it is important to display this information as compactly as possible. […].
The bulletin notes that devices should shorten and make the information more readable for the benefit of the user, and that hardware wallets should include cryptographic mechanisms to ensure that this information is correct and remains the same every time the device is started.
To achieve this abstraction of the instructions that a hardware wallet can receive and execute, the developer explains the concept of wallet policy or wallet policy.
A “wallet policy”, according to Ingala, allows the abstraction of a large amount of information concerning the usage choices that a person makes when registering or signing a wallet, without affecting the security of the protected bitcoins.
“A wallet policy is made up of a descriptive template of the wallet, along with a vector that leads us to the key information about the user’s keys,” he explains.
A solution to address the security aspects and part of the user experience (UX) aspects is to build a flow of steps to register the wallet policy [wallet policy] in the hardware wallet. The wallet policy must contain enough information to generate all the relevant addresses and scripts, and also for the hardware wallet to identify the keys it controls that are needed to spend the funds. [bitcoins] that are in those directions.
Salvatore Ingala, Developer
In practice, Ingala notes, the hardware wallet software would initiate a policy registration process, and assign a short, unique name to that policy.
Then, the hardware wallet would show on the screen what its “wallet policies” are, so that the user can verify and approve them. Once the process is complete, the wallet should store said policy in its physical memory, in order to have it quickly in the future.
With this policy in place, the hardware wallet can generate addresses to receive bitcoins, display those addresses on the screen, sign transactions to spend bitcoins in a wallet, and estimate network fees.
This has enormous benefits in practicality of use of hardware wallets, since a user could make complex transactions such as Taproot or multisignature, which require several steps, with a single previously registered process.
There is currently a demand for hardware wallets that are simple to use and even appear to be conventional devices such as cell phones.