Back to blog list
Liana Connect
Electrum
UX
Taproot
Coldcard
Specter DIY

Published on Mon, Sep 16, 2024 by Manuel Gatti

Liana 7.0: "Liana Connect", Electrum and much more!

This post introduces Liana Connect, Electrum support and other important novelties found in version 7 of Liana

Blog image cover

Version 7 of Liana is a great leap forward in terms of user experience, especially in the wallet setup process. The aim of this work was to both increase the capability of using Liana in a self-sovereign way by adding Electrum support and at the same time allowing less privacy-oriented users to be able to easily bootstrap Liana thanks to the new Liana Connect service. This also builds the foundation for possible future very cool services on top of it that we are currently exploring. In addition to that, which was our main focus, other important additions, such as new signing devices supporting taproot and some features/fixes highly requested by our users, are shipped in v7. We hope you’ll enjoy trying it and you’ll give us feedback!

Liana Connect and Electrum: two new “backend” options

Before explaining what these features accomplish, we need to clarify why a user needs a “back-end” in the first place. As you surely know, to function properly a Bitcoin wallet needs to talk to the blockchain in order to send and get information about transactions, spending, “balances” and so on. To put it simply, with the term “back-end” here we basically mean the Bitcoin node your wallet is connecting to to get such information (even if it’s more nuanced than that). We can distinguish two basic ways of doing it with a generic wallet:

  • The fully self-sovereign way is to run your own node and let your wallet gather the network information through it;
  • Alternatively, you can connect to one or more nodes of someone else and hope that they will be trustworthy.

Liana has been built since its conception to follow the self-sovereign principles of minimizing trust towards third parties. As a matter of fact, until version 6 (released last July) the user could select the following two options in the back-end choice step:

  1. To connect to an already existing Bitcoin Core instance (i.e. node) running on the user’s machine.
  2. To let liana install a pruned node on the user’s machine and connect to it.

These 2 options are still available in version 7, allowing to keep full control and self-sovereignity. However, talking with users or potential ones and listening to their feedback, we realized that they presented some issues in terms of user experience:

  • The self-sovereign individual who already possesses a node often wants to connect to an Electrum server. The requirement of having specifically Bitcoin Core running on the same machine was excluding a portion of these potential users.
  • Users who don’t already possess a node are not always eager to accept the trade-offs implied in option 2), since it requires to wait for an Initial Block Download (IBD) - which could take some days with the current size of the blockchain - and dedicate significant disk space to it - currently ~30GB for the pruned data and the UTXO set. This is a significant obstacle to running Liana, especially if we consider that the reason for not running their own node for these users could well be that they are not particularly interested in doing it in the first place.

Version 7 of Liana greatly improves the user experience by adding two very different options in this regard:

  1. Users can now connect their Liana wallet to a local or remote Electrum server. This makes much more likely for the privacy-oriented people to be able to connect to their existing node. For example, it suits very well with connecting to the out-of-the-box Bitcoin nodes present in the market, such as Umbrel, Start9, myNode, RaspiBlitz and so on.
  2. Users will now have the possibility to use “Liana Connect” when choosing the node to connect to. Using “Liana Connect” means basically to connect to Wizardsardine’s infrastructure to talk to the blockchain and store the wallet data required to make it functional, while keeping the full and exclusive control of your own keys, as with every other liana option. The trade-off of this solution is that while users gain much easier and faster accessibility even without running their own node, they leak privacy towards us (Wizardsardine), since we can potentially know their balance and addresses. To use Liana Connect, though, no personal information is required; only an email address is needed to login to the service. The signing up is useful since Liana Connect allows for additional interesting services on top of it: some are already included in version 7 while others are planned to be built. In particular, with Liana Connect the user will already be able to synchronize labels and Partially Signed Bitcoin Transactions (PSBTs) between different computers and/or participants, very useful for multisig wallets and multi-device use. He will also be able to restore or participate in a wallet by logging in with the email address associated to it, without needing to insert the descriptor. Possible future services that will be built on top of Liana Connect can be notifications when recovery paths are going to be activated, advanced coordination mechanisms, the backup of the wallet’s descriptor for heirs and/or disaster recovery and others. It has to be remembered that this service is optional and Liana allows to mantain full self-sovereignity - and we strongly suggest users to do so - thanks to the different node options available. As a matter of fact and to sum up, with Liana you will now have a full range of solutions:
    • Connect to a node that you already run:
      • Use a local Bitcoin Core instance
      • [NEW] Use an Electrum server
    • Let Liana install a Bitcoin Core pruned node on your machine
    • [NEW] Use Wizardsardine infrastructure signing up to “Liana Connect” service

See the image at the beginning of this post for a better representation of the pros and cons of each choice.

A couple of notes regarding the new backend options:

  • Electrum: self-signed SSL certificates are not yet supported (they will be in the next release).
  • Liana Connect is available on Mainnet (the actual Bitcoin network) and Signet for testing purposes. Testnet and Regtest are currently not available with this solution.

Version 7 is setting a milestone for user experience improvement of Liana: thanks to Electrum support, we aim to broaden the options for people who wants self-sovereignity. At the same time - and in some way on the other end of the spectrum - Liana Connect allows people who don’t want to deal with their own node to take advantage of the advanced security of timelock superpowers while also putting the basis for additional useful services that we will build on top of it.

image

Taproot integration on Coldcard and Specter DIY devices

Coldcard and Specter DIY devices join Ledger in supporting tap-miniscript and consequently to be usable in Liana with taproot*. You will now be able to include them in taproot spending policies with the consequent advantages in terms of privacy and fees.

*: Please be aware that Coldcard has released miniscript support in both P2WSH and Taproot descriptors only in Beta as of this writing (i.e. it is only supported by the Edge firmware). To use it in Taproot descriptors you should use version 6.3.3 or higher. To use Specter DIY in Taproot descriptors you should use version 1.9.0 or higher. See the full signing devices support documentation here.

New Home page and wallet participation flow

With version 7, we simplified the landing page of the application. Launching Liana, you will now see:

  1. If you already created a wallet in one or more of the networks, the possibility to load (or delete) it. image
  2. If you don’t, the possibility of creating a new wallet or adding an existing one. image

You will be able to change the network in the top right corner, with mainnet (“bitcoin”) as priority on the others. The “Add an existing wallet” option is also a novelty of version 7, since until version 6 the user had the possibility, other than creating a new wallet, to restore a wallet or to participate in one. It will now be possible to do both things using this single “Add an existing wallet” functionality:

  • To restore an existing wallet, you have the option to use your own node/automatically install a new one or to use Liana Connect. If you rely on your own node, you will need to insert the descriptor of the wallet you want to restore. If you use Liana Connect, you can still do the same thing (without needing to deal with a node but with its privacy implications), but if you already have one or more Liana Connect wallets linked to your email address, you can easily find and restore them by just logging in and selecting them. image

  • To participate in a wallet, you will have the same choice with similar implications in terms of node selection. Specifically for the participation, Liana Connect option allows to receive invitations via email to join a wallet from another Liana Connect user to make the flow easier and faster. You will simply need to insert the invitation token in the “Load a shared wallet” option and you will be redirected to the wallet! image

Since for the participation flow you may need to share with the wallet creator the public key(s) - the Xpub(s) - that you control inside that specific wallet, in the home screen you will find the “Share Xpubs” function, which will let you find and copy the public key of your signing device (the so called “hardware wallet”) or to create a new hot seed and export its public key - which is NOT recommended to do with real coins for security reasons.

image

Other important changes

We made many other changes and fixes in this big version 7; you can visit the full list on the release notes document. Below you can find a list of the most worthy of mentioning:

  • We now display a wallet policy summary in human readable form both in the wallet creation flow - at the wallet descriptor registration step - and in the wallet settings when the wallet has already been created. In the former case, this will allow the user to check if the policy he is setting up is the one desired before finalizing it; in the latter to have a reminder of which keys can spend the wallet’s funds and when. This was a feature requested by our users and we are happy to ship it. image
  • When creating a spend transaction, Liana now implements an anti fee sniping algorithm based on nLockTime, i.e. the most common practice in the industry for such use case.
  • We bumped Bitcoin Core version to 27.1. This means that if you decide to let Liana download a Bitcoin pruned node (see the first paragraph on “back-end” choice for more information) to talk to the blockchain, you will rely on the latest stable version of Bitcoin Core.
  • A kind user on our telegram group discovered a bug related to how we tell the user that approximately 1 year is missing from the activation of the recovery timelock. Liana previously showed, for a limited number of minutes, an incorrect value which could be confusing. We decided to tackle the bug in the first possible release and now it is fixed.
  • We made some adjustments to the rendering of the amount of Bitcoin a user has in his Liana wallet, in particular on how we show the balances with at least 1.000 bitcoin (it was a nice issue to have, by the way). This fix is worth mentioning since it saw the first contribution of @aaroncarlucci to liana repository, which we are thankful for.

Another cool thing to mention is that we recently tested Ledger Stax and Flex support with Liana and it works totally fine! That allows us to have an even broader set of options in terms of signing devices, bringing to our users the possibility to choose among the following:

For Taproot spending policies:

  • Ledger Nano S
  • Ledger Nano S+
  • Ledger Nano X
  • [NEW] Ledger Stax
  • [NEW] Ledger Flex
  • [NEW] Coldcard MK4 (Edge firmware)
  • [NEW] Coldcard Q (Edge firmware)
  • [NEW] Specter DIY

For Segwitv0 spending policies:

  • All of the above
  • Bitbox02
  • Blockstream Jade

Please be aware that from now on, Edouard will be signing our new releases and be the point of contact for security disclosures. His PGP key can be found here (fingerprint: 5B63F3B97699C7EEF3B040B19B7F629A53E77B83).

Conclusion

Version 7 is a big step in improving the usability and experience of the application to make it more accessible for different kind of users while still keeping the main high-security value proposition. Having different node options can fit for very different needs and we hope that the Liana Connect introduction will help us both reach an additional portion of users and put the basis for a larger set of services that Wizardsardine can offer. This is a very strategic time for us and we are making the effort to understand what the users need most. If you want to help us in the mission and be part of the discussion feel free to jump in our Discord and Telegram groups and give feedback / get support, while also keeping an eye on our Github repository for updates.

Liana is an open source project and contributions in code, thoughts or documentation are always more than welcome! Feel free to start inspecting the “Good First Issues” list if you don’t know where to start.

We invite you to download and install Liana to try it out. For this purpose, you can also find a guide on our Github to quickly test it on Signet.