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 these assumptions? …
You know that your Bitcoin Address is what you share to the world to get paid.
You probably know that your wallet software uses a private key to spend the money you received on this address.
The keys are not stored on the network and they can be generated without access to the Internet.
From the private key, we use a one-way cryptographic function, to generate a public key.
There are two Bitcoin networks:
You can acquire testnet coins quickly by using faucets, just google “get testnet bitcoins”. …
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.
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 first place. But in the long term it pays out.
The classic argument is that open source brings more eyes on your code, which makes it more secure and more contributors, which makes your software generally better.
The counter arguments are that sharing the source code makes it easier for attackers to attack your system, thus it makes the system not more, but less secure and that, unless your project is very successful, you will most likely not get any contributors and even if you do, it is likely that they won’t make any difference. …
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
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.
The answer to the question: what’s the right thing to do becomes even more controversial when user space break happens, because of a zero day exploit. …
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:
Chaumian E-Cash (shall I say as-envisaged?) is a centralized anonymous payment system. I argue calling it centralized does it a disservice, because it is more decentralized than our legacy banking system. While in the legacy banking system the information of who pays who is centralized, too, in ecash it is not the case. Only the receiver and the sender of the payment knows who pays who. While the data is (not always), the information isn’t stored in a central location, like in the traditional banking system. This is important, because an ecash bank cannot pinpoint a specific user to steal its money, which increases its censorship resistance. …
I have a pen.
I have an apple.
I have a box.
I have a lock.
I have a key.
And I choose either the apple, or the pen and I put it in the box and seal it with a lock. However I don’t tell you which one I chose. Finally I give you the box and the result is:
Umm, Cryptographic Commitment.
You have one guess. If you figure out if I put an apple or a pen in the box then I give you 10_000 bitcoins. Did you make your guess? Good. Notice that I cannot change my mind based on what you guessed for in order to avoid paying you out. So now I have to give you the key to open the box and reveal to you the answer for the million dollar question: What did I commit to? …
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.
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, third parties can only verify that the transaction is correct. …
Implemented in PR #3245, moving coins from one wallet to another wallet of yours through coinjoins is possible.
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:
export DOTNET_CLI_TELEMETRY_OPTOUT=1on Linux and macOS or
setx DOTNET_CLI_TELEMETRY_OPTOUT 1on Windows.
git clone https://github.com/zkSNACKs/WalletWasabi.git
dotnet run -- mix --wallet:MyWallet1 --destination:MyWallet2
dotnet run is what you use to build & run Wasabi,
-- is escaping out the argument list of
dotnet command and tells it to let the software parse the rest of the arguments itself. The software is Wasabi and its command is
MyWallet2 are the names of your wallet files. …
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.
At the first glance, KYCP’s analysis is just strange. Let’s uncover the real mapping by looking at the transaction in another block explorer…
I’d like to briefly introduce a 2017 paper, the idea of Knapsack mixing, as I believe this concept was kinda lost and was not properly explored.
I am Alice and a long time ago Satoshi gave me 1 BTC, so I have a coin with the value of 1 BTC.
Yesterday I bought some alpaca socks from Bob for 0.1 BTC. So I created a Bitcoin transaction that looks like this:
Where did the 0.9BTC go? Turns out I’m stupid and I accidentally paid it as a miner fee, because the difference between the 1BTC input coin and the 0.1BTC output coin is the miner fee. But you aren’t as stupid as me, you would add the 0.8999BTC as an output coin to the transaction. An output that you control, so you can use it later. And if I look at the Bitcoin blockchain, I quickly realize that nobody is as stupid as me, thus, this is how a normal Bitcoin transaction looks…