Launch HN: Sparkswap (YC S18) – Buy Bitcoin Instantly over the Lightning Network
Hi everyone!

I’m Trey, the founder of Sparkswap (https://sparkswap.com). We've built a new desktop app to purchase Bitcoin with USD directly into your wallet using the Lightning Network, instantly. This is not Bitcoin held in your name by an institution - it’s your wallet, and your private keys.

Today, the vast majority of the billions of dollars worth of Bitcoin^1 traded on a daily basis is done on custodial exchanges, meaning users deposit their currencies with the exchange, trade within the system, and then withdraw their new currency balance at a later time. This runs counter to the original goal of Bitcoin, which was to give users full control of their money through a system without central authorities or middlemen. Unfortunately, users historically haven’t had much of a choice, as using custodial exchanges has been the only way to get reliable pricing, use a bank account, and achieve reasonable settlement times for transactions.

Then came the Lightning Network (LN), first introduced in 2016 in this white paper: https://lightning.network/lightning-network-paper.pdf. One of the original goals of the LN was to solve Bitcoin’s scalability problem. It works by creating a second local consensus layer between two parties on top of the main Bitcoin blockchain, only going back to layer 1 for final settlement or dispute resolution, thereby decongesting the main blockchain and enabling faster transaction speeds. At Sparkswap, we’re taking advantage of Lightning’s fast transaction speeds to build an alternative to existing custodial exchanges: for the first time, you can have fast, convenient trading without custodial trust.

I started working on Bitcoin after two years in wealth management technology at BlackRock, where I got to see how the financial system operates at a mechanical level. As an engineer, looking at the antiquated way that money actually moves around the system (you’d be surprised how many FTP uploads and CSVs are involved) and how reliant it is on a small group of institutions that have to trust each other, it was immediately clear to me that we can do much better. Bitcoin offers a way to re-architect our financial system in an internet-native way that removes reliance on those central parties, opening opportunities for more people to access it, and for new service providers to thrive like they have on the internet. But there is still a lot of work to be done to solve fundamental problems like custody - and that's why I started working on Sparkswap.

After almost two years of hard work, we’ve just launched Sparkswap Desktop, our Lightning-powered app for buying Bitcoin. With the app, because every purchase is executed on the LN, it’s both instantaneous and you never have to give up control of your Bitcoin private keys. As the saying goes, not your keys, not your coins^2.

Here's how it works. When you deposit USD via ACH in the open source Sparkswap app (https://github.com/sparkswap/sparkswap-desktop), it is sent to a US-domiciled bank account that Sparkswap (the company) doesn't own or control. Then later when you buy Bitcoin in the app, the Bitcoin payment to you is put in escrow (called a Hash/Time-lock Contract, or HTLC) locked by a cryptographic hash on the Lightning Network. This means that if you can produce the preimage of the hash, you get the Bitcoin, but at this point only Sparkswap knows the preimage. Then the app creates an escrow payment to Sparkswap for the USD price of the Bitcoin locked by the same hash using our payment partner. Since Sparkswap has the preimage, we can then immediately claim the escrowed dollars by sending the preimage to our payment partner. This gives you access to the preimage through our payment partner’s API, which the app then uses to claim the BTC on your behalf. The escrows also have timeouts so that they can be canceled if they aren't executed after a certain time. This whole process results in USD being swapped for BTC with a level of security that popular services don't provide, and in most cases swaps complete in just a few seconds.

In addition, every Bitcoin you buy with Sparkswap is instantly available in a channel on the Lightning Network. That means that you can easily spend that Bitcoin on the dozens of games, apps, and merchants building Lightning-powered services. And since Sparkswap opens Lightning channels to you, after initial setup you can transfer funds from your bank, buy Bitcoin, and spend it on the Lightning Network all in a matter of seconds, making it one of the easiest ways to get started on Lightning.

The first version of the app is designed for users that run LND (a popular Lightning node, https://github.com/lightningnetwork/lnd) already. If you don’t, we recommend Zap (https://github.com/LN-Zap/zap-desktop/releases), a desktop Lightning Wallet that lets you run a light client so you don’t have to sync the full blockchain. The current release of Sparkswap Desktop also only supports purchasing Bitcoin with USD. However, we have plans to support selling Bitcoin, as well as other Lightning implementations and clients (and mobile!), so stay tuned for updates.

We know cryptocurrency certainly has its issues, and we’re working to try to fix one of them. In just the first half of 2019, almost $500M^3 was stolen from custodial exchanges. We believe it’s critical to the value and future success of Bitcoin to establish trustless, non-custodial trading. We don’t have a token, and we’re not selling vaporware - we’ve shipped a real product that solves a real problem and enhances the biggest proven use case in the cryptocurrency industry: buying Bitcoin.

We'd love feedback on the product from all — Lightning Network enthusiasts, critics, and those that don’t know much about it. If you have any trouble getting started, please ask us for help! (support at sparkswap.com)

Thanks!

Trey

[1] https://www.coindesk.com/bitcoin-trading-volume-tops-11-bill...

[2] https://www.coindesk.com/2018-a-record-breaking-year-for-cry...

[3] https://www.coindesk.com/exit-scams-swindled-3-1-billion-fro...