The lightning network offers interesting privacy properties compared to on-chain txs. However, the way routing works allows the sender to learn who the recipient is.

A proposal called Route Blinding aims to eliminate this drawback.

Let me break it down for you 👇
In my previous explanation of how routing works we learned that the sender is responsible for building up paths to use for routing a payment to the recipient of the payment.

This requires the sender to know who the recipient is.

I also explored how the recipient could gain privacy by using Rendezvous Routing:

Route Blinding is similar to rendezvous routing but provides a bit more flexibility.

To understand how route blinding works we should clarify what is meant by the term blinding.

You’ll see it often when reading about cryptography, bitcoin, and the lightning network.
Blinding might sound confusing but it’s pretty simple.

Blinding is a technique to hide some input from someone in a way that they can operate on it without learning anything about the original input and then later the output can be unblinded, revealing the actual information.
A popular use-case is for blind signing.

You might want an entity to sign something where they don’t actually know what they are signing.

You can blind the message to be signed and then unblind the signature revealing a valid signature for the original message.
Okay, so in route blinding what we want to blind are the public keys for the hops along a route.

This way we can give a blinded route to the sender in such a way they can construct the rest of the route and never learn the actual nodes involved.
This means the sender uses our favorite trick, Elliptic Curve Diffie-Helman (ECDH), to generate shared secrets for each node it’s trying to include in the blinded route.

It uses this shared secret to blind the node’s public key and then encrypt the next node’s public key.
From the senders perspective, they have no idea what nodes are involved in the last couple hops of the payment.

It only sees these blinded node ids and uses them to construct the onion exactly as it normally would.
A node in the blinded path generates the shared secret using ECHD on its private key and the ephemeral public key provided by the previous hop.

It can derive the blinding factor and the private key for its blinding public key the sender used to encrypt and wrap the onion.
Once the onion is decrypted it will reveal the encrypted data that will tell the node who the next hop is supposed to be.

The node can use the shared secret to decrypt the data and generate the next ephemeral public key to give to the next hop who then repeats this process.
So let's zoom out again.

The idea is that normally the sender encrypts and wraps the onion using a shared secret generated from each node’s public key and an ephemeral public key.

This means each node can generate the same secret using their private key.
In a blinded route the sender doesn’t actually know the public key of each node so it uses each node’s blinded public key that it got from the recipient when generating the shared secret used to encrypt and wrap the onion.
This is the key idea, the sender is able to perform the normal onion operations on a blinded public key such that each node is able to calculate the blinding factor used and unwrap the onion as normal.
TLDR; A blinded route is a way for the recipient to give a sender the last part of a path such that the sender does not learn the node ids for any of the nodes along that path.
So why is this any better than rendezvous routing? If you recall, in a rendezvous payment the recipient gives the sender the entire wrapped onion to use.

With blinded routes, the sender still constructs the entire onion.
Because the sender constructs the entire onion, they are able to include whatever data they might want to in the payload for each node.

This would not be possible in a rendezvous payment because they cannot alter the onion the recipient sends them in any way.
The only potential downside compared to rendezvous routing is that this flexibility to construct the onion opens the door to potential probing attacks the sender can do to try to expose some of the nodes along the blinded path.
I hope this helped you understand how blinded routes can enhance recipient privacy in a more flexible way compared to rendezvous routing.

Feel free to ask any questions you might have about onion, rendezvous, or blinded routing.
Oh and if you'd like more details you can review the proposal here:
github.com/lightning/bolt…

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with John Cantrell

John Cantrell Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @JohnCantrell97

Jul 26
Onion routing is a technique used by both the tor project and bitcoin’s lightning network to enhance user’s privacy.

How does it work?
Why is it useful?

I’ve been studying bitcoin for a decade, let me break it down for you 👇
To understand onion routing it’s important to understand what is meant by routing in general. Routing refers to how something gets from A to B.

A simplistic example would be google maps directions on how to drive from NY to Austin.
The route in this case is a series of instructions that tell you what to do at each step:

- Turn left at sesame street
- Drive for 25 miles
- Turn right at main street
- Drive for another 50 miles
- Your destination will be on the left
Read 15 tweets
Feb 8
Introducing Sensei: A lightning node implementation focused on making Bitcoin accessible to the entire world.

Sensei combines the utility of the @bitcoindevkit with the flexibility of the @lightningdevkit to produce a node ready to take on the world.

l2.technology/sensei
Sensei offers all the functionality you’d expect from a lightning node:

- creating and paying lightning invoices
- opening and closing channels
- on-chain transactions and utxo management
- authenticated http and grpc apis
- a cli tool

and so much more.
Sensei allows you to spawn and manage always-on lightweight child nodes.

They share resources with the parent node but appear no different to the rest of the network.

Help your friends, family, and community members manage their uptime and liquidity while earning routing fees.
Read 8 tweets
Jan 31
I’ve been studying Bitcoin for a decade.

I distill what I've learned into threads that explain Bitcoin using simple language.

I’ve covered the lightning network, supply schedule, mining, game theory, difficulty adjustment, proof of work, keys, utxos, htlcs, and so much more 👇
Onboarding 7.753 Billion People to Lightning
Read 25 tweets
Jan 30
Today is day 30 of my journey to develop a writing habit. It was successful then I ever imagined it could be.

Threads I wrote were viewed over 2.5 million times and over 7K new people decided to follow along.

Let me break down my process and what I learned on this journey 👇
You must make the habit a priority.

Schedule time on your calendar for it and don’t let it be interrupted.

For me I chose to write early in the morning. I would set my alarm for 6am, grab a cup of coffee, and go write uninterrupted for an hour.
Do not feel the need to over edit or stress out about what people will think.

Just write for an hour about the topic, read it over a couple times, hit publish and walk away.

This process is about building a new habit while breaking down old barriers to content production.
Read 11 tweets
Jan 29
The adoption and therefore price of Bitcoin might accelerate faster than most people realize.

What is game theory?
How does it apply to Bitcoin?

You probably heard the ideas thrown around but let me break it down for you 👇
Game theory is the study and analysis of the strategy used by rational actors within some environment.

In its simplest form you can think of as analyzing how each player should play in a board game.

The ideas can be applied more broadly to all types of ‘games’.
So what games are going on in Bitcoin?

There’s actually many separate but related games being played within the Bitcoin ecosystem.

There’s the mining ecosystem, development process, individuals, company treasuries, and even nation state games at play.
Read 14 tweets
Jan 28
I’m sure you’re aware that the main purpose of the lightning network is to help Bitcoin scale by enabling faster and cheaper payments.

Did you know it’s possible to use it to send arbitrary data along with a payment?

Why might you do that?

Should you?

Let me break it down 👇
Normally when you make a payment using the lightning network the receiver has to create an invoice for the specific amount and then get that invoice to you somehow.

You then instruct your wallet or node to pay that specific invoice and the money is routed to the recipient.
There’s a feature called ‘keysend’ that allows you to send money directly to a node's public key without an invoice.

This means instead of having to communicate with the recipient in order to send a payment you can now do so spontaneously as long as you have their public key.
Read 14 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(