Today, we are launching Boltz — an instant, account free, and non-custodial digital asset exchange built on top of the lightning network. After months of development work and testing, we are finally ready to unveil Boltz to the world.
Like fellow Bitcoiners in the community, we are excited about the prospect of the lightning network helping with Bitcoin’s mass adoption by enabling fast and cheap transactions. At some point, we found ourselves deep down the rabbit hole trying to find ways to contribute and further expedite this process. We came out with a realization — while the lightning network does help with scaling Bitcoin, it comes with its own set of challenges — it isn’t well suited for infrequent transactions and transactions with random, ill-connected nodes are susceptible to route failures. To mitigate these glaring issues, we concluded that on-chain transactions need to be seamlessly working in conjunction with the lightning network. By acting as a catalyst, on-chain transactions can help propel the growth of the lightning network by equipping it with the escape velocity required for reaching a point, where the network effect becomes strong enough to alleviate these issues to a larger extent.
Building on the previous work done by Alex Bosworth on Submarine Swaps, Boltz helps bridge the two layers and provides an option for users to exchange coins in the most trust minimized way possible. The nature of lightning channels is such that you need inbound capacity in channels in order to receive funds. The initial release of Boltz aims to tackle the pain point of acquiring inbound liquidity for lightning node operators with a trust-minimized solution. A new merchant starting to use the lightning network have few options to get inbound liquidity —s/he can either manually ask others to open channels with his or her node or use a service like Loop or Boltz. Boltz allows for swapping the inbound liquidity merchants need without requiring them to trust a third party or spend time growing the capacity organically.
How Boltz works
In order to achieve the trust minimized properties of Boltz, it is using so-called Submarine Swaps to exchange coins from a lightning channel to the chain and vice versa. A Submarine Swap is a HTLC (Hashed Time Locked Contract) that ties the ownership of a UTXO to whether an invoice on the lightning network got paid. If you want to know more about the technical details of these kind of swaps have a look at this article, where we describe the way the HTLC works step by step and explain a little bit what is happening behind the scenes when exchanging coins on Boltz.
This alpha release is focused on releasing Boltz to the lightning community for testing and hunting out bugs. Boltz comes with a simple frontend — which makes it easier to use for regular users than the command-line only interface Loop (shout-out to them for beating us to market!) by Lightning labs currently comes with. Also, swaps on Boltz already work in both directions (LN -> on-chain & on-chain -> LN) on Bitcoin and Litecoin. Just like the lightning network itself, boltz is an experimental software — while we have necessary limits in place, we strongly advise our users to not go too reckless while using it. In trades where users have to send on-chain transactions first, s/he will be prompted to download a
refund.json file, which can be used to claim back the sending amount - if the trade doesn't work as intended for some reason. We encourage everyone in this community to try out Boltz and send us feedback — we are reachable on our Discord. Alternatively, you can also reach us on Twitter or open issues on our GitHub.
In the future, we will improve the user experience on our platform and offer tools to minimize the trust required for swapping coins on Boltz even further (allow users to get data from their own node instead of our backend, a version of the frontend that can easily be self-hosted and verified, …). If you have any other suggestions or some feedback feel free to reach out to us!