this post was submitted on 09 Dec 2023
13 points (100.0% liked)

Monero

17 readers
4 users here now

This is the lemmy community of Monero (XMR), a secure, private, untraceable currency that is open-source and freely available to all.

GitHub

StackExchange

Twitter

Wallets

Desktop (CLI, GUI)

Desktop (Feather)

Mac & Linux (Cake Wallet)

Web (MyMonero)

Android (Monerujo)

Android (MyMonero)

Android (Cake Wallet) / (Monero.com)

Android (Stack Wallet)

iOS (MyMonero)

iOS (Cake Wallet) / (Monero.com)

iOS (Stack Wallet)

iOS (Edge Wallet)

Instance tags for discoverability:

Monero, XMR, crypto, cryptocurrency

founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] dragonsidedd@sciencemastodon.com 2 points 11 months ago (1 children)

@mister_monster No, MW does not make for infinite throughput.

It saves some disk space and some bandwidth. It’s a good tool for certain use cases.

It is not at all clear to me that those use cases are central to the problem of a Peer to Peer Internet Cash System

[–] mister_monster@monero.town 2 points 11 months ago

It saves no bandwidth. And yes, it does make for infinite transaction throughput, or more accurately, throughput is not constrained by block size. Understand, this isn't some theory I came up with in my head, this is a core feature of the original MW paper that everyone involved already knows and is well understood, I will try to explain it to you so that you understand.

What is the limiting factor for bitcoin transaction throughput? It's block size, right? And why is block size constrained? Because you have to keep all of them forever. Having to only keep unspent transactions would mean that you could scale throughput without having to worry about block size at all, the thing that grows the blockchain is only the number of outputs created in all the transactions being put into that block. Sweeping multiple outputs into a single output actually shrinks the size of the blockchain. This means you could have any size blocks you want, you can put any number of transactions in a block you like, they don't take up space forever, only while the outputs are unspent. Eventually you reach an equilibrium where the size stays within some range as outputs are created and combined constantly every block. This might be large, but the point is it doesn't grow perpetually and so the size of the blocks don't matter at all, and therefore the number of transactions per block doesn't matter.

This changes the limiting factor for transaction throughput. The limiting factor then becomes how fast you can propagate transactions across the network, how many transactions can reach all miners within the block time to ensure that they are mined in the next block. We can even go further and allow for them to reach some miners within the next block and all miners within a set number of blocks, say 2, and be OK with some transactions waiting for 2 blocks to be mined, we do this already when blocks fill up in bitcoin. So throughput will be limited, but it will be significantly larger, by orders of magnitude.