From 4fef7571efd4ee5dfe390283a0263ce9fe6e55d9 Mon Sep 17 00:00:00 2001 From: Lucas Soriano del Pino Date: Tue, 8 Nov 2022 16:07:23 +1100 Subject: [PATCH] feat(stories): Add Bitcoin integration blog post --- docs/assets/add-custom-output-ln-protocol.png | Bin 0 -> 49063 bytes .../remove-custom-output-ln-protocol.png | Bin 0 -> 33588 bytes docs/stories/bitcoin-integration.md | 109 ++++++++++++++++++ 3 files changed, 109 insertions(+) create mode 100644 docs/assets/add-custom-output-ln-protocol.png create mode 100644 docs/assets/remove-custom-output-ln-protocol.png create mode 100644 docs/stories/bitcoin-integration.md diff --git a/docs/assets/add-custom-output-ln-protocol.png b/docs/assets/add-custom-output-ln-protocol.png new file mode 100644 index 0000000000000000000000000000000000000000..63042ffb519a29ad0a47446a57e7883bccf542a5 GIT binary patch literal 49063 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 uUZ2>2~E88!gtOI)D4pn*#HtW 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 literal 0 HcmV?d00001 diff --git a/docs/assets/remove-custom-output-ln-protocol.png b/docs/assets/remove-custom-output-ln-protocol.png new file mode 100644 index 0000000000000000000000000000000000000000..f72ebc6ffc7aa77e56b0f7263f8677d4fe1aeb82 GIT binary patch literal 33588 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 literal 0 HcmV?d00001 diff --git a/docs/stories/bitcoin-integration.md b/docs/stories/bitcoin-integration.md new file mode 100644 index 00000000..79e03e19 --- /dev/null +++ b/docs/stories/bitcoin-integration.md @@ -0,0 +1,109 @@ +In this post we will explain how we are using Bitcoin and Lightning to build 10101, our non-custodial mobile wallet. +Our vision for 10101 does not stop at providing near-instant Bitcoin payments on your phone. +We are building a platform that will let you _use_ your favourite digital currency. +On 10101 we will provide **derivatives trading** for the risk-tolerant investor; **sports betting** for the die-hard fan; and **Bitcoin savings accounts** for all you satoshi stackers out there. + +Since we only started building 10101 a few weeks ago, we had to define a realistic but ambitious scope for our [Legends of Lightning](https://makers.bolt.fun/project/10101) [project](https://makers.bolt.fun/project/10101). +My teammate [holzeis](https://makers.bolt.fun/profile/408/holzeis) already shed some light on what that means for the UX and frontend in [his post on user journeys](https://makers.bolt.fun/story/your-lightning-powered-journey-to-non-custodial-cfd-trading--268). +And I will now address what we are doing in the guts of the application. + +## Expanding the capabilities of Lightning + +You already know that Lightning's killer feature is the ability to make quick payments using Bitcoin. +Instead of having to wait for a transaction to be mined every time coins are transferred, Lightning nodes collaborate to build off-chain state which is unilaterally enforceable by all parties involved. +After a series of Lightning payments between two parties, either one can effectively cash out and move the state on-chain. + +Payments are a basic building block of any wallet, but 10101 wants to do more. +For the tournament, we want to offer Contract for difference (CFD) trading _on Lightning_. +You may have heard of [ItchySats](https://www.itchysats.network/), a product of ours which already offers trustless CFD trading on RPi and desktop. +For ItchySats, we chose to use [our custom implementation](https://github.com/comit-network/maia/) of [_Generalized Bitcoin-Compatible Channels_](https://eprint.iacr.org/2020/476.pdf) to allow the CFD to be perpetual. +The CFD is represented by a [Discreet Log Contract](https://bitcoinops.org/en/topics/discreet-log-contracts/) (DLC) which is periodically rolled over to keep the contract alive. + +Since 10101 will be built on top of Lightning, it is only natural that we would now use Lightning channels to host the CFDs. +In the name of #BuildInPublic, we documented our thought process behind this design decision [here](https://github.com/itchysats/10101/issues/8#issuecomment-1284973135). +We considered [other alternatives](https://github.com/itchysats/10101/issues/8#issue-1411563111) which also involved Lightning in different ways, but we settled on something that will see us building a full-fledged Lightning node that also supports DLCs. + +## DLCs on Lightning + +We are not the first people to propose [adding DLC support to Lightning](https://hackmd.io/@lpQxZaCeTG6OJZI3awxQPQ/LN-DLC). +The fantastic [dlcspecs](https://github.com/discreetlogcontracts/dlcspecs) project has generated [conversations](https://github.com/discreetlogcontracts/dlcspecs/issues/3) around this topic over the last few years. +There have even been [attempts](https://github.com/lightningdevkit/rust-lightning/pull/619) at adding DLC support to working implementations of Lightning. +That is to say that what we are building today is only possible thanks to the excellent work of the Bitcoin dev community. + +As previously mentioned, our approach will be to integrate DLCs directly into the Lightning channel. +We were blessed to find a production-ready Bitcoin Lightning library written in Rust: [`rust-lightning`](https://github.com/lightningdevkit/rust-lightning/pull/619). +We saw this library as an excellent fit because it is written in our preferred language and it has already been used to build Lightning wallets for mobile. +With all this in mind, our plan involves extending `rust-lightning` to support DLCs. + +### Adding _custom outputs_ to a commitment transaction + +Because the DLC protocol involves a few things that are completely orthogonal to Lightning (interacting with an oracle, generating many CETs), we decided to reframe the goal from "adding DLCs to Lightning" to "adding _custom outputs_ to Lightning". +The motivation here is to be able to minimise the changes that we need to make to `rust-lightning`. +Effectively, the library will not need to understand the DLC protocol. +It will just need to support the creation of outputs with _arbitrary scripts_. + +By default, a Lightning commitment transaction can contain: + +- Simple outputs that pay directly to Alice or Bob. +- Revocable outputs that pay to Alice or Bob after a timelock expires. +- Revocable HTLCs to route payments. + +This means that a Lightning commitment transaction expects its outputs to be of a particular kind. +With our extensions, the commitment transaction should be able to host a new kind of _revocable_ output with arbitrary spend conditions. +In our current design, the arbitrary spend conditions are external to the library and Lightning is oblivious to them; but the output should be revocable using the same mechanism and keys that are used for the other outputs in the transaction. + +![](../assets/add-custom-output-ln-protocol.png) + +Contrary to the other types of output, the coins that make up the new custom output can come from _both_ parties. +This is a necessary requirement for DLCs and other interesting protocols, where both parties lock up coins in a shared output. + +The 10101 wallet application that uses will therefore have to handle all the DLC-specific transaction building and signing, using the shared custom output as the DLC. + +### Settling your CFD into the Lightning channel + +One huge advantage of the 10101 approach to CFD trading versus what we previously built with ItchySats is that the CFD can be settled directly back into a Lightning channel! +This means that the off-chain state doesn't have to be committed on-chain and that the coins are readily available to make payments or do whatever else 10101 lets you do in the future. + +![](../assets/remove-custom-output-ln-protocol.png) + +This protocol is analogous to how a HTLC would be removed from a commitment transaction after a payment is claimed. +Except for the fact that the coins in the custom output can be _split up_ between the two parties. + +### Force closing a channel containing a custom output + +There should not be anything inherently different about force closing a Lightning channel containing a custom output. +The commitment transaction will be published on-chain and all the outputs will have different spend conditions. + +The effect on the custom output will be different, as the `rust-lightning` library will not ensure that the output is split among the two parties Bitcoin wallets. +It will be the responsibility of the application built on top of `rust-lightning` to spend the custom output. +For the 10101 wallet that will mean publishing a CET according to what the oracle attests. + +If you want to learn more about how a CFD protocol using DLCs works in the context of ItchySats, earlier in the year we wrote a [blog post](https://comit.network/blog/2022/01/11/cfd-protocol-explained/) about it. +It should still be relevant to what we are building today. + +## Compatibility with other Lightning nodes + +The point of building 10101 on Lightning is to become part of the Lightning Network. +We are excited to cater to its large and constantly growing userbase. +To this end, it is very important for us to build a Lightning wallet which is compatible with the rest of the network. + +Our modifications to `rust-lightning` should just extend the capabilities of the 10101 Lightning node, without compromising its ability to route payments to and from any other node. +As such, the 10101 wallet will only be able to do CFD trading with compatible nodes, but it should be able to pay for your coffee at your favourite cafe. + +## Reduced scope for the tournament + +Our goal for the tournament is to demonstrate that what we are building is possible and extremely cool. +Whilst we would love to ship flawless Lightning CFD trading to your phone in less than 2 months, we have decided to cut some corners in the interest of time: + +- Our changes to `rust-lightning` do not need to be polished for the purpose of upstreaming. + We are taking these weeks as an opportunity to better understand the problem space, but we are building fast. + The code might not be reused in the future, but the ideas surely will. + If you're curious, you can follow the status of our `rust-lightning` fork [here](https://github.com/itchysats/rust-lightning/). +- We will build ephemeral CFDs. + As previously mentioned, CFDs are inherently perpetual, but this would complicate matters considerably for little benefit for the purpose of the tournament. + We know how to build this, but it would take too much time. +- We will not solve the problem of dual-funded channels yet. + This is already being [worked on by the community](https://github.com/lightning/bolts/pull/851) and it is out of scope. + There are ways to mitigate this problem (trusting your counterparty, using [submarine swaps](https://docs.lightning.engineering/the-lightning-network/multihop-payments/understanding-submarine-swaps)) and for the tournament we will not spend too much time on this. +- Multi-hop custom outputs (DLCs, CFDs) are not supported. + Given what we said about the Lightning library not even knowing how to spend the custom output directly, it may not even make sense to support multiple hops for these types of outputs.