Increasing Bitcoin-Privacy using the Lightning Network OR How to delete the origin of your Bitcoins
Since January 2018 the Lightning Network of the Bitcoin Mainnet grows continuously.
THE FAST GROWTH OF THE BITCOIN MAINNET LIGHTNING NETWORK OVER TIME (RECKSPLORER)
18. Jan 2018, 43 Nodes, 68 Channels, Capacity: 9931,08 USD
23. Jan 2018, 139 Nodes, 329 Channels, Capacity: 23093,67 USD
4. Feb 2018, 422 Nodes, 1058 Channels, Capacity: 36725,82 USD
4. Mar 2018, 947 Nodes, 1796 Channels, Capacity: 51552,64 USD
16. Apr 2018, 1569 Nodes, 5006 Channels, Capacity: 109253,01 USD
24. May 2018, 2401 Nodes, 7151 Channels, Capacity: 155221,32 USD (2.080.108.991 sat)
24. May 2018, 2046 Nodes, 6606 Channels, Capacity: 152092,52 USD (2.013.526.343 sat)
Always when the price of Bitcoin drops or media spread that Bitcoin is dead I just open Recksplorer. This usually is pure satisfaction. No matter how far the price drops. The number of Lightning Nodes is increasing.
The VISA Network is capable of sending 56000 transactions per second. Paypal’s maximum is currently at 400 transactions per second. At Consensus 2018 Christian Decker said that each Lightning Channel can process 500 tx/s. With the current 7151 channels that would be a maximum of more than 3.5 million tx/s if we assume that every node has the neccessary hardware.
WHAT DO I MEAN BY ‘DELETE THE ORIGIN/HISTORY OF YOUR BITCOINS’?
This weekend I thought about sending Bitcoins as far through the network as possible. I just wanted to see if the Lightning Network would manage the routing. It worked. But it also crossed my mind that it has to be extremely difficult to track my transaction. If the chain of HTLC’s (Hashed Timelock Contracts) gets longer it becomes even more difficult. When talking about deleting the origin of Bitcoins I mean laundering Bitcoins such that nobody can track them back to me.
Let’s Assume we hacked MtGox and want to ‘wash’ our Bitcoins. This is just an hypothetical example. The nodes I use for this example really exist in the network but have nothing to do with MtGox. Sorry, if you read this and one of these nodes is yours…
Let’s assume we have two addresses on the Blockchain. One with 10BTC and another one with only 0.001BTC. It is very important that the second address can not be identified with us. This shouldn’t be too difficult because the second address only needs a very tiny amount big enough for the creation of a channel. We could buy this little amount e.g. at a Bitcoin ATM.
Now we create a node called ‘skryre’ with our 10BTC-address and open a channel with a capacity of 10BTC to the node ‘freedomnode.com’. This one we select randomly. Of course Lightning Network is still in an early phase and you should only create channels with a tiny fraction of a Bitcoin. If you want to send the total 10BTC you can just repeate our process several times. But we still assume that we have a lot of BTC from our MtGox hack (which of course is not true) and 10BTC is affordable for us to loose.
Our next step is to create a second node called ‘GOLD’. The 0.001BTC just has to be enough as fee for opening a channel. This time we have to choose the node we want to connect with in a strategical way. We want to have as many nodes between our first node ‘skryre’ and our second one ‘GOLD’ as possible. Therefore we connect to ‘Alibaba’, which is at the opposite side of our Lightning Network map (which does not neccessarily guarantee us that the minimum number of hops is larger).
Now we have two nodes (skryre=upper left corner and GOLD=lower right corner). These two are connected as follows:
- skryre — freedomnode.com (9.9999BTC)
- GOLD — Alibaba (0.0099BTC)
(0.0001 fee for every channel creation)
Still everybody can identify us with our coins. But finally it gets serious.
We make a lightning transaction from skryre via the nodes freedomnode.com, cicekdagi, aspinall.io and Alibaba to GOLD. Our routing-chain is:
skryre — freedomnode.com — cicekdagi — aspinall.io — Alibaba — GOLD
If we would only send money to freedomnode.com everybody could follow the transaction as the channel creation is documented on the blockchain. But the more nodes there are between the nodes we have channels with, the more privacy we get. In this case we have two nodes for privacy as intermediaries (cicekdagi and aspinall.io).
Our lightning-transaction will only cost a few satoshi as fee. Onion routing, which masks all transaction data from the intermediaries makes this possible. The underlying protocol is called Sphinx. Thus, the chain intermediaries do not know who the sender or receiver is. They do only know the node in front and afterwards.
But we have to think properly before closing our channel. It doesn’t make sense to send all the 10BTC to GOLD and close the channel. This would be quite obvious. A better alternative would be to create several receiving nodes and send tiny fractions via different ways to these end nodes before closing them.
This is it. It’s that easy.
If you have some spare Bitcoins and you want to have them ‘cleaned’ this is a way to do it. Of course you need some technical knowledge to set up a node, but this will only get easier over time as more and more people use this new technology.
Right now there are a lot more features being developed for the Lightning Network, which could increase privacy further:
Atomic Multipath Payments (Transactions are split up and are sent via different routes. Sending huge amounts gets easier this way. 10BTC would need a lot of transactions in the Lightning Network right now.)
Atomic Swaps (Inter-chain transactions and decentralized exchanges)
Channel Factories (These include multiple addresses in one opening transaction, this could save a lot of blockchain-space when Schnorr-Signatures will be implemented, but it might take a while until we will be able to use Schnorr Signatures. Therefore a Soft Fork is needed.)
I have set up nodes on testnet and mainnet and tried a lot of things. But this only was another idea of mine which might contain mistakes. So please correct me! This way I can learn and others don’t make these mistakes.