Let's do a quick illustrative dive into a new #bitcoin payment protocol I've been working on: Discrete Payments through Wabisabi coinjoins and #Nostr encrypted communication.
The protocol is built on top of the new(ish) Wabisabi coinjoin protocol, which was released and used in @wasabiwallet 2.0. All examples within this thread are overly simplified.
Let's start off with showcasing what a normal coinjoin looks like.
Many Bitcoin users connect to a coordinator and create a coinjoin together.
Zooming in on a user, a user proves he owns some coins to the coordinator and in exchange, the coordinator provides the user a "credential" with the same value, equivalent to an IOU, but only valid within the scope of this coinjoin.
The user then submits the credential back to the coordinator and splits it up into smaller credentials.
The user then uses these credentials to register where and how much to receive his bitcoin within the coinjoin transaction.
Zooming out again, wabisabi coinjoin transactions are huge, and your coins' ownership gets obscured within a great anonymity set.
Cool, so how do payments fit in here? Let's go through a normal payment scenario where a sender needs to send 0.05BTC to a receiver at address A.
A normal payment transaction is simple. But the privacy implications are that the sender knows where the receiver got his bitcoin and the receiver knows where the sender sent his bitcoin from.
With Wabisabi, we are no longer restricted to having outputs of a specific amount, which revives the capabilities of the old concept of payment batching within a coinjoin. This protects the sender from the receiver learning the sender's coins. Great!
But can we do better? YES! Wabisabi is more than a simple transaction builder, it is also a state of the start anonymous ecash system. What if we can share credentials of a coinjoin round, to transfer value? And what if we use the incredibly simple powers of Nostr to do that?
Let's go back to our payment example, sender needs to send receiver 0.05BTC. The sender and receiver communicate and determine they both support Wabisabi coinjoins. The next part is choosing a coordinator that they can both join to make this payment happen.
And now the sender registers his coins in exchange for credentials as before.
and splits his credentials into let's say 0.05 and 0.45 credentials.
Now that he has a credential of the amount needed to pay the receiver, he uses Nostr and sends the credential to the receiver.
Now both sender and receiver have credentials to register outputs in the coinjoin. They go to the coordinator, and split them into even more credentials.
And finally, they register the outputs of where they wish to receive their bitcoin in the coinjoin.
And again, this is in huge wabisabi coinjoins, where you gain great anonymity sets.
Now, the sender has sent his payment without knowing where he sent it to, the receiver has received their payment without knowing where the sender sent it from, and both have gained anonymity sets on their Bitcoin. Awesome!
The great thing about ecash systems is that they allow instant transfers between multiple users. Wabisabi's credential system enable the same thing.
Imagine if multiple users used the same coinjoin to forward funds between each other multiple times, reducing the number of on-chain transactions needed. This essentially creates a private, non-custodial, layer 2 scaling solution.
Thanks for coming to my TED talk.
You can find the initial flow draft at gist.github.com/nopara73/bb17e… and keep an eye out for what comes from me on @BtcpayServer. I promise it won't be boring.

• • •

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

Keep Current with Kukks (Andrew Camilleri)

Kukks (Andrew Camilleri) 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!

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!

:(