This article is a light exploration and discussion of ideas by Yuval Kogman.

Image for post
Image for post

Bitcoin Transaction

You got 50 bitcoins from a friend and 23 from another. But now you want to spend 73 bitcoins on alpaca socks. So you create a transaction:


Fiat is terrible, so why don’t you fix it?
Nah, it cannot be fixed, Bitcoin FTW!

Bitcoin still has problems, so why don’t you fix it?
Nah, it cannot be fixed, altcoin FTW!

Altcoin still has some privacy leaks, so why don’t you fix it?
Nah, it cannot be fixed, another newer privacy altcoin FTW!

Newer privacy altcoin still scales poorly, so why don’t you fix it?
Nah, it cannot be fixed, but there’s a research we could build a better currency with!

Research doesn’t use secure cryptography, could we do that with ECC instead so we don’t rely on…


Image for post
Image for post

You know that your Bitcoin Address is what you share to the world to get paid.


Harry Potter is raised in a muggle family where he did not belong to. He’s been constantly punished for his virtues and this makes us the reader feel sympathy for him. There’s no larger injustice than being blamed for wanting to do the right thing. Harry is the classic hero archetype.

Image for post
Image for post

Transparency

The best example of adhering to principles in the context of software development is the open source movement. You’re instantly punished by writing open source code, because you will have a much harder job to monetize it than if you wouldn’t have shared the source with anyone in the…


Mauro, SHUT THE FUCK UP!

It's a bug alright - in the kernel. How long have you been a
maintainer? And you *still* haven't learnt the first rule of kernel
maintenance?

If a change results in user programs breaking, it's a bug in the
kernel. We never EVER blame the user programs. How hard can this be to understand?

The above extract is Linus Torvalds’s infamous explanation to Mauro Carvalho Chehab on the why, unintuitively, fixing a bug that results in upstream breaks is not a good idea.

Responsible Disclosure

The answer to the question: what’s the right thing to do becomes…


Something is centralized and something else is decentralized. Such binary thinking is prevalent in the Bitcoin community. Here I’d like to present a scale that describes reality in a better way. Our contenders are: Legacy Banking System, Chaumian E-Cash, Wasabi Wallet, JoinMarket, Bitcoin, and Bitcoin-as-envisaged.

I recall an article that brainstormed on a decentralization scale in the context of payment systems. I am intending to do the same in the context of anonymous payment systems. The article can be summarized with the following depiction:

Image for post
Image for post

Chaumian E-Cash

Chaumian E-Cash (shall I say as-envisaged?) is a centralized anonymous payment system. I argue calling it…


Recently I’ve been working with the same cryptographic primitives that Confidential Transactions are using. In this quick article I’ll show you what Confidential Transactions and Bulletproofs are and how they are supposed to be used in Bitcoin. All this without going into the cryptographic formulas as I am afraid I would make a mistake and I would never recover from the eternal shame that would come with it.

The Blackest Box

From the highest level you can think about Confidential Transactions, as Bitcoin transactions, where the amounts are confidential. This means only the sender and the receiver know what the actual amounts are…


Implemented in PR #3245, moving coins from one wallet to another wallet of yours through coinjoins is possible.

Image for post
Image for post

I assume you already have 2 wallets setup in Wasabi. One of them may or may not be a hardware wallet.
Since the feature is not yet released, we’ll proceed with building Wasabi from source code:

1. Get The Requirements

2. Get Wasabi

git clone https://github.com/zkSNACKs/WalletWasabi.git
cd WalletWasabi/WalletWasabi.Gui
dotnet build

3. Mix To Another Wallet

dotnet run -- mix --wallet:MyWallet1 --destination:MyWallet2

dotnet run is what you…


Wasabi produced a coinjoin with only 5 participants . This opens the door for a unique opportunity: it is possible to take a look at KYCP’s analysis on this transaction and compare it with the real mapping of the transaction, which is obvious just by looking at it in any block explorer.
Larger Wasabi transactions are problematic, not only because figuring out what’s going on manually is difficult, but also because analyzing them without sophisticated assumptions and heuristics is impossible, due to the exponentially growing complexity in solving subset sum problems.

Image for post
Image for post

At the first glance, KYCP’s analysis is just strange…

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store