Specific needs for increasing or removing chained Tx limit

(EDIT: I’ve had some problems with the forum software preventing me from posting it, so I posted a link to read.cash article as an answer, here’s the copy after these were resolved)

Ok, first you need to understand the difference.

There is a thing called “FreeTips”, it’s this:

and then there’s a thing called “tips”, it’s this:

100,000 transactions per day that we do are split approximately as 99,900 “FreeTips” and 100 “tips”.

First, let’s talk about FreeTips.

Ok, so here’s how you think it works, when user A “sends” a FreeTip to user B:

Or, if we look more generally, here’s how you think FreeTips work on all of noise.cash:

As I noted on every image - this is not how it works in reality.

User A has no money. We didn’t take posession of his money to do the “server-side signing” as you assume. User A merely recommends to us that user B should be rewarded and suggests that we should thank him (user A) with a 20% kickback.

So, here’s how it really works:

And now, the funds that noise.cash fund has must be sent to both user A and user B:

User A is the recipient of money, not the owner.

So, again, noise.cash doesn’t work like this:

It works like this:

It seems that all these users “tip” each other, but in reality they have no money! The merely recommend us to tip somebody and give them too. noise.cash fund had money originally, not users.

So, OUR wallet must send 100,000 transactions per day not because we took users money and do server-side signing, but because WE are where money is. (Or, actually, not “we”, but rather Marc de Mesel, we’re merely hosting his funds). So, basically this:

So, yes, we need to send to 30,000 wallets and no, we don’t need to “host” their wallets. Instead to avoid the limits we have to do this:

Finally, let’s get back to “tips”:

They are already implemented as “in-browser” tips and they don’t require any “server-side” signing.

As noted - they are probably less than 1% of all transactions that are happening on noise.cash. This situation.

This is actually implemented:

Note that it even says that it exists in this browser window only.
The reason for that is that we need to send to multiple addresses in the future (a commission to noise.cash, to affiliates that invited both the tipper and the recipient) and BIP-70(?) support is really bad in wallets. So we create an ephemeral wallet in browser to do that.

This is the situation that you were thinking about this whole time - where a user HAS money and wants to send money. This is absolutely a minority case and even for these users, 50-chained limit is a problem:

^^ this user talks about sending a transaction using that “QR tip” thing and the limit he stumbled is in his bitcoin.com wallet, while trying to send HIS money, not “noise.cash fund” money.

Does it make it any more clear why a “full-featured” noise.cash is not an answer, but rather a misunderstanding of how it works? noise.cash is “feature-complete” in this regard and no future changes will solve it. We will have to have more and more wallets as the fund increases. We are up to 100 wallets and will probably need 150-200.

4 Likes

Thanks for reaching out.
The problem you experienced was due to the system Discourse has to prevent spam (Trust Levels).
Based on your activity in this forum and the relevant discussion you are carrying, your Trust Level has been increased, and with them, your posting rights.
Please let us know if you face new issues, and thanks for using the forum.

1 Like

Thank you for putting the time in to explain things in a nice graphical way.

The understanding you give is basically identical to the one you gave before and what I based my text post on, and my suggestions still apply. You are free to take them, or not.

Let me just say this straight:

to have a website that generates on-chain activity for N users, you need to have approx N UTXOs.

To have a large number of users this very quickly will mean you need a dedicated wallet. Not some webservice or REST api, but an actual wallet.

Even should the chain-tx limit be raised a lot, this advice will solve a lot of potential problems. Long chains are simply much more fragile.

This one is really cool and very relevant! I mean, this guy is just brilliant…

Here’s one more use case that would be totally killed by 50-tx limit:

Basically, you have a UniSwap on BCH, it is implemented as a covenant. So, each time you “exchange” a token to BCH or back - the whole pool is spent to a new address. Which means that BCH’s UniSwap is possible, but will only be able to do 50 transactions per 10 minutes at most (0.08 tx/s).

Note though that he notes that this is not fully possible without some protocol changes (big numbers math I think), but even if we did that - 50tx limit would kill it.

6 Likes

I just want to thank everyone who participated in removing this limit! Thank you very much!

5 Likes