-
monerobull[m]
I want serai to work but not mordinals
-
UkoeHB
ceetee[m]: both subaddresses and payment IDs are more-than-reasonable current uses of the tx_extra
-
ceetee[m]
Don't those things now have their own fields?
-
UkoeHB
No
-
UkoeHB
They will have specific fields in seraphis, but look a bit different than they do now thanks to a lot of refinement.
-
ceetee[m]
so removing tx_extra now would break both subadresses and payment ids?
-
UkoeHB
yes
-
UkoeHB
well, it would break all balance recovery since the tx pubkey for normal addresses is also stored there
-
ofrnxmr[m]
Break > change
-
UkoeHB
ofrnxmr[m]: only if new fields are added
-
ofrnxmr[m]
Right
-
ceetee[m]
If we change the tx_extra field (either A or B3), we could add new fields
-
ofrnxmr[m]
Removing without adding properly used fields for the data currently contained there isnt an option id ever imagine
-
UkoeHB
ceetee[m]: the tx_extra debate is about how it will look in seraphis, there hasn't been much enthusiasm for updating the current protocol
-
ceetee[m]
Well then its even less of a question
-
UkoeHB
my point is, without the tx_extra it's not a guarantee we'd have subaddresses right now
-
ceetee[m]
I don't question the historic relevance at all
-
ceetee[m]
but think the current state of XMR is advance enough that we know much better where we are going
-
ceetee[m]
Compared to a few years ago
-
UkoeHB
that is very optimistic
-
ceetee[m]
If the question were what is more likely: we desperate need txextra for a feature or txextra will be abused for some bs, I'd bet on the second option
-
politicalweasel[
I think some people in this conversation are forgetting what exactly tx_extra is. We're not talking about smart contracts or even bitcoin-style scripting, instead just some arbitrary bytes. There is no additional functionality added to Monero by it, except for things like subaddresses which... (full message at <
libera.ems.host/_matrix/media/v3/do…62e7b153e7e53e8ef4f560dd5650e46cf3e>)
-
Alex|LocalMonero
<ceetee[m]> "If the question were what is..." <- And even if it *just* isn't abused for some BS, for example, even if there are developers making actually useful wallets that give additional features to their users assuming other users also use the same wallets, all this creates a plethora of mutually incompatible subecosystems, with the complexity and incompatibility only increasing over time.
-
Alex|LocalMonero
This is the current state of the Bitcoin ecosystem.
-
politicalweasel[
But does removing tx_extra actually solve this? They'd just stuff outputs instead, which is way more harmful to us than a dedicated field
-
Alex|LocalMonero
politicalweasel[: It doesn't solve this but it closes one of the doors that allows this.
-
Alex|LocalMonero
And the outputs door is much less efficient to use, which naturally disincentivizes it.
-
politicalweasel[
A lot of use cases would only need 32 bytes anyway, as a commitment. And you're underestimating how much people will pay to do useless shit - loot at ordinals
-
politicalweasel[
look*
-
ceetee[m]
And also it worsens the senders privacy, if I understood correctly, so users are disincentivised to uses services that need bit stuffing
-
Alex|LocalMonero
ceetee[m]: Correct, unless there's full range proofs, as per kayabanerve
-
politicalweasel[
People don't care. And it worsens privacy for everyone, ie those using the bloat outputs as decoys, not just the sender.
-
Alex|LocalMonero
*membership proofs, not range proofs.
-
Alex|LocalMonero
politicalweasel[: You're right but having tx_extra doesn't eliminate this issue.
-
Alex|LocalMonero
It merely diverts most of the honest actors not to exploit it.
-
politicalweasel[
and how is that not a good thing? and what's the disadvantage of keeping it?
-
Alex|LocalMonero
If you enable easy arbitrary data storage you enable not just use but abuse, as ceetee🇧🇪 alluded to. We have no way to predict how an arbitrary data field will be used, what sort of subchains and subecosystems will develop. Look at Bitcoin right now with hundreds of BIPs, incompatible wallets, multisigs, addresses, someone's stuffing NFTs, someone's mixing, others are rejecting those who are mixing etc etc.
-
Alex|LocalMonero
I feel like Monero should be as narrowly-defined as possible, the protocol as strict and efficient as possible, for one purpose: decentralized, electronic, fungible (private) digital cash.
-
politicalweasel[
Bitcoin's situation is a product of refusal to do a proper (hard fork) update to clean itself up. And again, data storage is still possible without tx_extra. They'll just choose to do it in a way which is much more expensive to the network as a whole.
-
politicalweasel[
tx_extra doesn't expand Monero's functionality. It only makes it more extendable. Both for spam and legitimate uses which we don't know of yet. In both cases removal will either result in output spam or holding Monero back from its potential. Relying on Core to hard fork every possible use case into Monero is not a desirable future
-
Alex|LocalMonero
To make an analogy, if you have two leaks in your boat you wouldn't make an argument that closing one leak is pointless because there's another leak, right? I understand that there doesn't exist a solution for the outputs exploit at the moment, but I haven't seen proof one way or the other that this is a solvable/unsolvable issue.
-
Alex|LocalMonero
Point is, you're making an argument from is, not from ought. I'm making an argument from ought.
-
Alex|LocalMonero
Tx_extra is a big but easily pluggable leak of arbitrary data. The outputs exploit is a much smaller leak, but more difficult to plug as well.
-
ceetee[m]
<politicalweasel[> "Bitcoin's situation is a product..." <- WE are also refusing to clean up. I was surprised that the data for sub addresses and payment ides don't have their own fields yet, and are still in the tx extra. We should sort that out
-
Alex|LocalMonero
ceetee[m]: I believe that this is implied in the seraphis upgrade assuming tx_extra is removed. Right UkoeHB ?
-
politicalweasel[
I could use the boat analogy back on you. Attackers can still spam regardless (a leak), but honest users would be forced to spam w/o tx_extra (a leak). You've been arguing that patching the latter doesn't have merit.
-
politicalweasel[
We can't force users to use Monero in the way we strictly define. Regardless that's arguably not even a good idea in the first place. Arbitrary data storage will always be possible. And I still don't understand why tx_extra is anywhere near as bad as output spam.
-
politicalweasel[
ceetee[m]: fair enough, those should have been given their own fields long ago
-
ofrnxmr[m]
They dont, because of Txextra. Its like a junk drawer. Allows laziness
-
politicalweasel[
if Monero's dev team is lazy to the extent that it's legitimately causing harm to Monero, then that's not something which will be fixed by removal. besides it's not that "lazy", there just isn't a real reason to "fix" that which would frankly be a waste of dev power which coud've been used elsewhere. Doing it when we overhaul the tx format is a reasonable time
-
politicalweasel[
it's preferable to have dedicated fields, but not really a big deal
-
ofrnxmr[m]
Im not calling ANYONE lazy. Lets make that clear first.
-
ofrnxmr[m]
Leaving it in Txextra is lazy. Leaving depreciated addresses alive is lazy.
-
politicalweasel[
oh yes I agree
-
politicalweasel[
i guess i misinterpreted
-
monerobull[m]
as a user, i am against nfts on monero. yet im still currently spinning up a morbinal node just for the novelty of it. i shouldnt be able to do that.
-
politicalweasel[
mordinals would instead just exist by spamming outputs. Then we'd have the same problem at an even higher cost. yay?
-
Alex|LocalMonero
> <@politicalweasel:matrix.org> I could use the boat analogy back on you. Attackers can still spam regardless (a leak), but honest users would be forced to spam w/o tx_extra (a leak). You've been arguing that patching the latter doesn't have merit.
-
Alex|LocalMonero
>
-
Alex|LocalMonero
> We can't force users to use Monero in the way we strictly define. Regardless that's arguably not even a good idea in the first place. Arbitrary data storage will always be possible. And I still don't understand why tx_extra is anywhere near as bad as output spam.
-
Alex|LocalMonero
Yes but again, you're arguing is rather than ought. Do you believe that arbitrary data storage is desirable?
-
politicalweasel[
in some cases, yes, but in the case of ordinals and similar, no
-
ofrnxmr[m]
No. Mordinals would be harder to develop and wouldnt be public on chain.
-
Alex|LocalMonero
politicalweasel[: How would you police the cases absent a hard fork?
-
politicalweasel[
we don't live in a perfect world
-
politicalweasel[
you dont. only mitigate damage
-
Alex|LocalMonero
Precisely.
-
politicalweasel[
you can't police use cases
-
politicalweasel[
its impossible
-
ofrnxmr[m]
Its not policing.
-
politicalweasel[
ofrnxmr[m]: "harder" to what extent? And why wouldn't they>
-
politicalweasel[
?*
-
monerobull[m]
can morbs be pruned out? should be easy to do righ
-
monerobull[m]
s/righ/right/
-
ofrnxmr[m]
Pruning takes io
-
politicalweasel[
tx_extra can (?) be pruned. outputs cannot, without manual blacklisting
-
monerobull[m]
if we have to have morbs id like them to be as pruneable as possible
-
Alex|LocalMonero
politicalweasel: it's one thing to say "let's extend the Monero protocol because feature X is useful", it's another thing to say "let's make a dedicated field for anyone to be able to morph the protocol into whatever they like", which will lead to the same state as Bitcoin is at right now. It's true that if you want to write arbitrary data on the chain then it will become harder and more costly, but that's also kinda the
-
Alex|LocalMonero
point of having a hyper-focused project: any usage of XMR outside of its primary usage is to be as inefficient as possible to maximize the efficiency of the primary usage. This is especially important given Monero's need to be fungible (hence, homogeneous)
-
ceetee[m]
^^^
-
ofrnxmr[m]
-
Alex|LocalMonero
Like, it's true that I can encode the entire bee movie by registering a long-enough chain of twitter accounts. Doesn't mean Twitter should cater to being a file sharing service.
-
politicalweasel[
You can't have the first thing without the second*, that's the nature of flexibility. And you still haven't addressed the fact that removal doesn't stop spam, only makes it more harmful to the network.
-
politicalweasel[
*it's not really "whatever they want". Again, we're not talking about smart contracts.
-
merope
^^^
-
ofrnxmr[m]
It doesnt make it more harmful.
-
Alex|LocalMonero
> <@politicalweasel:matrix.org> You can't have the first thing without the second*, that's the nature of flexibility. And you still haven't addressed the fact that removal doesn't stop spam, only makes it more harmful to the network.
-
Alex|LocalMonero
>
-
Alex|LocalMonero
> *it's not really "whatever they want". Again, we're not talking about smart contracts.
-
Alex|LocalMonero
Removal doesn't stop spam, but neither does keeping it. I don't need to fix the outputs issue to argue against tx_extra.
-
ofrnxmr[m]
Thats absolute fear mongering. (Or an accusation that good actors ate actually bad)
-
politicalweasel[
-
merope
If steg+output spam is worse than a small tx_extra field, and neither option stops abuse, then it's logically better to have a small tx_extra field
-
ofrnxmr[m]
One incentives spam by making it a tool. The other ruins the blockchain.
-
politicalweasel[
Spam outputs harms everyone's privacy and bloat the enote set. Way more harmful than a few arbitrary bytes which can be ignored or even pruned
-
Alex|LocalMonero
ofrnxmr[m]: Exactly. Tx_extra is a systemic issue while outputs are a rather minor exploit that's only feasible for some use-cases.
-
politicalweasel[
Alex|LocalMonero: But removal doesn't actually solve anything. It's not "patching" any "hole", just forcing water into the other one. Legit users would be forced to spam.
-
merope
The damage to ring privacy is not "minor"
-
ofrnxmr[m]
politicalweasel: those arent orbot users
-
Alex|LocalMonero
By minor I meant arbitrary data storage.
-
politicalweasel[
Keeping it DOES patch a hole, that being legit users not having to spam
-
ofrnxmr[m]
Keeping it doesnt patch anything.
-
ofrnxmr[m]
It just names people use more tx to write their script
-
politicalweasel[
I just explained what it patches
-
nikg83[m]
politicalweasel[: That can be done without removal of tx_extra
-
ofrnxmr[m]
And anyone who would, is, by definition, an attacker.
-
politicalweasel[
nikg83[m]: yes but why force honest usecases to do it? Would you rather 100 people die or 50?
-
merope
ofrnxmr[m]: But that comes at a higher cost, which is an active incentive against it. System working as intended
-
nikg83[m]
politicalweasel[: Legit users doing tx need to spam ?
-
ofrnxmr[m]
Not a good actor that is being forced to mixer babies
-
ofrnxmr[m]
Murder*
-
ofrnxmr[m]
merope: Steg does too
-
Alex|LocalMonero
politicalweasel: but I believe that once you zoom out to the bigger picture, you'll see that keeping it will lead to the bitcoinization of Monero (by bitcoinization I mean that the ecosystem will be splintered, mutually incompatible in a lot of ways, many different address types and multisig and wallet setups and NFTs and so on like the Bitcoin ecosystem is now, where the harm for Monero is much worse because unlike
-
Alex|LocalMonero
Bitcoin Monero has a goal of being fungible)
-
politicalweasel[
nikg83[m]: legit usecases for arbitary data, I mean. Or even non-legit ones, ie ordinals which don't explicity want to attack the network but also aren't really "legit"
-
nikg83[m]
politicalweasel[: Who is using tx_extra rn ?
-
ofrnxmr[m]
Exchanges
-
politicalweasel[
nikg83[m]: see my earlier reply
-
ofrnxmr[m]
And bad actors
-
BusyBoredom[m]
I don't really buy the argument that removing tx_extra will cause people to spam useless outputs.
-
BusyBoredom[m]
I'm sure there's the occasional motivated spammer who really wants their favorite meme on the blockchain no matter that it takes, but I'd bet most will just think "oh, there's nowhere to put it" and give up.
-
Alex|LocalMonero
So yes politicalweasel I would rather that kaya uses outputs for his DEX than open the door for the bitcoinization of Monero
-
nikg83[m]
politicalweasel[: Is monero a currency or data storage network ?
-
ofrnxmr[m]
Its ipfs
-
ofrnxmr[m]
Alex | LocalMonero | AgoraDesk: agreed. But he wont.
-
politicalweasel[
Alex|LocalMonero: tx_extra doesn't do this though, that's a strawman. Nor does it harm fungibility, at least not any more than output spam.
-
merope
nikg83[m]: A transaction data storage network. We are now arguing what types of data constitute "valid" transaction data, which includes an optional field
-
ofrnxmr[m]
Yes sir
-
nikg83[m]
merope: A option field which can bloat the chain ?
-
politicalweasel[
nikg83[m]: currecy, but do you think people actually care and will respect that? And regardless, some data storage isn't mutually exclusive to a currency... if that were the case then we'd have to remove subaddresses, etc
-
Alex|LocalMonero
politicalweasel[: Why do you think that it doesn't do that when we already have mordinals?
-
ofrnxmr[m]
No we wouldnt have to remove subaddresses !
-
ofrnxmr[m]
Let that be clear
-
ofrnxmr[m]
Thats nonsense.
-
politicalweasel[
Alex|LocalMonero: they can and will spam outputs instead, if it's actually a serious project that has serious intentions of doing what it's designed to
-
politicalweasel[
ofrnxmr[m]: that's my point
-
ofrnxmr[m]
Its like "putting the dishes away", who would suggest just tossing them in the trash. .?
-
merope
nikg83[m]: It can also be used to add features without requiring a hardfork every time someone wants to implement a new service thay requires it. And since chain bloat can be acheived even without tx_extra, the chain bloat argument loses value
-
Alex|LocalMonero
politicalweasel[: That may be true, but you're, again, arguing how things *are* rather than how they *should* be. You're arguing that arbitrary data is desirable, but only when it's not mordinals.
-
ofrnxmr[m]
I do t agree endor00: the arguement doesnt lose value. Quite the opposite
-
Alex|LocalMonero
merope: If output exploits happen with or without tx_extra then the discussion should be focused purely on whether we want tx_extra or not.
-
politicalweasel[
Not really... I'm saying data storage is inevitable, though desirable in some cases. tx_extra just defines a way to do that while causing the least harm
-
ofrnxmr[m]
A. Bad actors do bad actor things
-
ofrnxmr[m]
B,3. A+ good actors think they are doing a good thing and will push more a d more
-
merope
> <@ofrnxmr:monero.social> A. Bad actors do bad actor things
-
merope
> B,3. A+ good actors think they are doing a good thing and will push more a d more
-
merope
B3 bad actors have a "lower hanging fruit" way of doing bad things that actually reduces their harm, and good actors are not forced to act like bad actors to do the things they want
-
politicalweasel[
again, i'm not convinced that there's any real argument in favor of removal, aside from "following" vague principles according to one's own interpretation. There's not actual harm caused.
-
Alex|LocalMonero
politicalweasel[: Would you also be against removing tx_extra if the outputs exploit didn't exist?
-
politicalweasel[
A. Legit users AND illegit users AND attackers all "attack" the network
-
politicalweasel[
B. Legit users AND illegit users don't attack, attackers still do
-
nikg83[m]
<merope> "It can also be used to add..." <- New service ? A 3rd party tool? Should monero blockchain be even used for that , for new core features I am sure we can always hf
-
nikg83[m]
Now that hf are so slow that most of these features would be well planned in advanced and won’t need such experimental fields
-
merope
Alex|LocalMonero: If chain bloat happens with or without tx_extra, but its harm can be minimized *with* tx_extra, then tx_extra is the least harmful option
-
ofrnxmr[m]
politicalweasel: what insane world do you live in where legit users to illegit things ?
-
Alex|LocalMonero
merope: Chain bloat isn't the only variable when it comes to keeping/removing tx_extra. You're forgetting about the bitcoinization argument that I described.
-
politicalweasel[
Alex|LocalMonero: maybe. there's an argument to be made that data storage in general should not be outright banned in the first place
-
ofrnxmr[m]
Thats what you call greed
-
politicalweasel[
ofrnxmr[m]: depends on how you define that
-
merope
ofrnxmr[m]: That would be the case of Serai using output steg to encode their data
-
ofrnxmr[m]
nikg83: 2 hard forks coming over the next 2-3 years
-
nikg83[m]
merope: Are you in the opinion we keep tx_extra but cap the size?
-
monerobull[m]
> <@busyboredom:monero.social> I don't really buy the argument that removing tx_extra will cause people to spam useless outputs.
-
monerobull[m]
>
-
monerobull[m]
> I'm sure there's the occasional motivated spammer who really wants their favorite meme on the blockchain no matter that it takes, but I'd bet most will just think "oh, there's nowhere to put it" and give up.
-
monerobull[m]
i think this way
-
ofrnxmr[m]
And after seraphis we should be good for a while
-
Alex|LocalMonero
nikg83[m]: No, I'm very much in the "remove" camp.
-
merope
nikg83[m]: Yes, option B3
-
Alex|LocalMonero
Oh, he was addressing you.
-
ofrnxmr[m]
> That would be the case of Serai using output steg to encode their data+
-
ofrnxmr[m]
endor00: precisely.
-
ofrnxmr[m]
That is a bad actor by definition
-
nikg83[m]
Alex|LocalMonero: Yah I know your stance already 👍
-
merope
Alex|LocalMonero: Like politicalweasel said, it's a strawman argument
-
politicalweasel[
> <@ofrnxmr:monero.social> > That would be the case of Serai using output steg to encode their data+... (full message at <
libera.ems.host/_matrix/media/v3/do…8fac0d50c0b334789eecac81712156064df>)
-
ofrnxmr[m]
You cannot claim to support privacy, while intentionally harming it for profit, to the determent of tour customers
-
politicalweasel[
ofrnxmr[m]: forcing output spam IS harming privacy
-
ofrnxmr[m]
Forcing spam?
-
merope
ofrnxmr[m]: And here's an easy solution: relegate your harmful data in this nice optional tx_extra field! :D
-
politicalweasel[
(spam which could've otherwise been innocous tx_extra)
-
ofrnxmr[m]
Why would someone develop something that is BROKEN BY DWSIGN
-
nikg83[m]
politicalweasel[: Nobody is forcing 😂
-
Alex|LocalMonero
endor00: politicalweasel please answer the question: if output exploits weren't a thing would you be for tx_extra removal?
-
ofrnxmr[m]
You cant force someone to write broken software on purpose
-
merope
nikg83[m]: If there is no alternative to implement a needed feature, then you are effectively forcing people to break the system to get what they want
-
ofrnxmr[m]
Endor: what they want being impossible by breaking it
-
nikg83[m]
merope: You don’t harm others privacy to achieve your goal, that’s called a bad actor
-
politicalweasel[
Alex|LocalMonero: Right now, no, but I wouldn't be nearly as hardline. Also keep in mind that I'm assuming there's no other harmful data storage method is available. Meaning could possibly be convinced otherwise.
-
monerobull[m]
<monerobull[m]> "> <@busyboredom:monero.social> I..." <- i will bloat the chain with monerochans just because it is so simple to do -.-
-
Alex|LocalMonero
politicalweasel[: That's important because it demonstrates that there's a difference in values. You don't value Monero's hyper-specialization factor as much as I do, so I feel like this isn't something we can ever reach consensus on.
-
ofrnxmr[m]
Wen ccs to attack mainnet
-
ofrnxmr[m]
Forcing Kaya to do it, forcing me to do it, whats the differencio.
-
ofrnxmr[m]
Bad actors are going to act bad.
-
ofrnxmr[m]
Either I have 2 routes, or 1
-
merope
<Alex|LocalMonero> "endor00: politicalweasel..." <- No: like I said, leaving *some* room to implement features that can connect Monero to other ecosystems and implement advanced features. The risk of spam can be reasonably mitigated by designing tx_extra with some forethought (eg. size limits and/or fee cost).
-
merope
But the real answer is that until someone figures out how to actually prevent output exploits, the question remains a pure thought experiment - and can therefore have no bearing on real-world decisions *today*
-
ofrnxmr[m]
endor00: my full stance was remove in next hard fork, then possibly add back in a new /improved / studied form for Seraphis
-
merope
Oops, cut off part of the message: * I believe leaving some room is a good idea
-
-
politicalweasel[
That's fair. I understand your point, but my argument is one of being flexible and reducing damage caused by certain use cases, even at the cost of comprising a strict code of principles. Of course, I do still value fungibility, privacy, etc.
-
politicalweasel[
Alex | LocalMonero | AgoraDesk:
-
politicalweasel[
(forgot to quote)
-
monerobull[m]
monerobull[m]: im gonna do it guys. ill abuse tx_extra just because its so easy
-
ofrnxmr[m]
Its not removing any use cases aside from the ability to soft fork
-
ofrnxmr[m]
Dooooooo it
-
monerobull[m]
its morbin time
-
ofrnxmr[m]
Make em max size and dont stop for 6 months plz
-
ofrnxmr[m]
Rip
-
Alex|LocalMonero
You have to holes for arbitrary data. One gaping and easily-pluggable hole and one smaller hole. You have people who want to shove their arbitrary stuff through those holes. A bigger and free-to-access hole is much easier to shove stuff through, therefore it will be used extensively with massive amounts of stuff shoved through it. If that hole is closed the smaller hole will remain. Only the most determined hole-stuffers,
-
Alex|LocalMonero
malicious or not, will utilize it, therefore less stuff will be stuffed.
-
Alex|LocalMonero
If you believe arbitrary data is desirable then this argument won't convince you, but I would argue that if you believe that arbitrary data is desirable then perhaps Monero is not the best project for you.
-
Alex|LocalMonero
two holes*
-
monerobull[m]
ofrnxmr[m]: how much would that even cost
-
ofrnxmr[m]
I would thumbs up but only some people have that power in here #emojigate
-
ofrnxmr[m]
monerobull[m]: 0.01c per tx, 2160tx/day
-
ofrnxmr[m]
Send to yourself. Ie, almost nothing
-
monerobull[m]
wait what
-
merope
> massive amounts of stuff shoved through it
-
merope
Hence the proposal for a tight size restriction
-
monerobull[m]
no way arb data is that cheap
-
politicalweasel[
> <@alex:agoradesk.com> You have to holes for arbitrary data. One gaping and easily-pluggable hole and one smaller hole. You have people who want to shove their arbitrary stuff through those holes. A bigger and free-to-access hole is much easier to shove stuff through, therefore it will be used... (full message at <
libera.ems.host/_matrix/media/v3/do…22edef9f88846396f74d97d6204c573eb95>)
-
ofrnxmr[m]
Yes cheaper than read data
-
ofrnxmr[m]
Real
-
merope
Also, if plugging one hole causes the other hole to explode and break stuff around it, then having two small but controlled holes is better
-
monerobull[m]
wtf im gona use monero as cloudstorage from now on /s
-
DiegoSalazar[m]
Arbitrary data of literally any kind is harmful to fungibility. And if reducing or eliminating arbitrary data means we don't get to "interact with other ecosystems" then so be it. Monero does its job just fine on its own without other ecosystems.
-
politicalweasel[
DiegoSalazar[m]: output spam is way more harmful though, which is the alternative
-
monerobull[m]
do morbs even harm fungibility
-
monerobull[m]
they use preset outputs no?
-
politicalweasel[
yes
-
politicalweasel[
* yes they harm fungibility
-
Alex|LocalMonero
It only precludes interacting with other systems that absolutely necessitate data to be written into the Monero chain Diego Salazar . The overwhelming majority of other systems don't require that.
-
monerobull[m]
monerobull[m]: for ring members
-
merope
DiegoSalazar[m]: But that's the point: removing tx_extra would not eliminate harmful data. Rather, it would force people to put it in an even more harmful place, causing bigger damage overall
-
ofrnxmr[m]
It doesnt force people to.
-
Alex|LocalMonero
politicalweasel[: Malicious actors can spam outputs regardless of tx_extra, we need to fix that issue as well. Sorry for repeating myself but I'm exhausted that the two holes get merged.
-
politicalweasel[
ofrnxmr[m]: you know what we mean :/
-
ofrnxmr[m]
Bad actors arent going to spam using Txextra, they are going to do both.
-
ofrnxmr[m]
And good actors will unintentionally do more than bad actors simply by using the protocol the way it was designed
-
politicalweasel[
ofrnxmr[m]: explain.
-
ofrnxmr[m]
Example
-
ofrnxmr[m]
Kaya with 5000tx/day and view keys posted
-
Alex|LocalMonero
If I have two bugs, one is easy to fix and one is hard to fix, I won't refrain from fixing the easier-to-fix bug just because the harder-to-fx bug exists politicalweasel .
-
merope
ofrnxmr[m]: If they want to put it somewhere, they *will* put it there, because they can. So giving them a less harmful alternative is the preferable option
-
ofrnxmr[m]
endor00: if an xmr based exchange wants to put it there, it wants to die fast
-
ofrnxmr[m]
And kill monero with it
-
merope
It's like giving clean needles to drug addicts: they still have a drug problem, but at least they avoid giving hepatitis to eachother en masse
-
ofrnxmr[m]
So, its not even a realistic assumption
-
politicalweasel[
Alex|LocalMonero: but my point is that the easier-to-fix "bug" will just lends its "vulnerabilities" to the much more dangerous and harmful "bug"
-
ofrnxmr[m]
Security through obscurity
-
ofrnxmr[m]
Lets hope bad actors are nice and only use Txextra, and lets hope good actors are nice and dont steg
-
ofrnxmr[m]
Both of those thought involve drugs
-
merope
ofrnxmr[m]: You don't know that, and can't assume that
-
ofrnxmr[m]
Dont know what?
-
politicalweasel[
ofrnxmr[m]: most arbitrary-data-users don't wish harm to Monero. only explicit attackers.
-
merope
That it would die fast
-
ofrnxmr[m]
That it wants to die? Or that it wants to put view keys up?
-
Alex|LocalMonero
politicalweasel[: Yes but by leaving the easier-to-fix bug open you divert merely a subset of the damage away from the main damage-generating-bug. You just hope that the diversion of the good guys is enough to keep the damage by the bad guys below an acceptability threshold, which there is no reason to assume
-
ofrnxmr[m]
merope: If you ran an exchange and poisened 60% of outputs via steg. Are you really going to use xmr to secure your liquidity?
-
ofrnxmr[m]
Cmon now
-
ofrnxmr[m]
Thats like opening a vegan steakhouse
-
DiegoSalazar[m]
Lets put aside those who want to do harm for a minute. I'd think leaving it in signifies to a lot of people, even well meaning ones, that it's OK to build a lot of things that would harm fungibility further.
-
Alex|LocalMonero
DiegoSalazar[m]: Exactly!
-
merope
ofrnxmr[m]: Users gonna use services without knowing how things work under the hood. If that service gets popular, it will do so regardless
-
ofrnxmr[m]
Diego Salazar: I know it sounds like in poking at kaya but im not 😂.
-
ofrnxmr[m]
Just the best metaphor I can use
-
politicalweasel[
Alex|LocalMonero: again, the existence of bad guys isn't an argument against mitigating damage caused by good guys
-
politicalweasel[
i'll be gone for 10-15 minutes
-
ofrnxmr[m]
...... good...guys.... dont
-
ofrnxmr[m]
... premedite... bad...behavior...
-
merope
Diego Salazar: hence the proposal to keep the field but restrict its size to something like 128 or 256 bytes
-
Alex|LocalMonero
politicalweasel[: Yes, but neither is ignoring the existence of bad guys
-
Alex|LocalMonero
Unless you're arguing that the good guys are what will carry the output poisoning issue over the acceptability threshold, which I don't think you are.
-
Alex|LocalMonero
You're only acknowledging that this is an issue that needs to be fixed.
-
monerobull[m]
> <@ofrnxmr:monero.social> ...... good...guys.... dont
-
monerobull[m]
> ... premedite... bad...behavior...
-
monerobull[m]
ofrn can you help me get morb running
-
spackle_xmr[m]
The dynamic size limits are never more than 11 hours away from allowing ~30MB blocks, so long as the fees are paid to make it happen.
-
spackle_xmr[m]
I suppose it is not impossible for something like this to make that happen.
-
spackle_xmr[m]
My takeaway is to have a high performance node and mining rig ready.
-
spackle_xmr[m]
s/to make it happen//
-
politicalweasel[
<Alex|LocalMonero> "Unless you're arguing that the..." <- the "acceptability thresehold" is 0. But 1 is better than 2. And 2 is better than 3. And so on.
-
politicalweasel[
> <@spackle_xmr:matrix.org> The dynamic size limits are never more than 11 hours away from allowing ~30MB blocks, so long as the fees are paid.
-
politicalweasel[
> I suppose it is not impossible for something like this to make that happen.
-
politicalweasel[
> My takeaway is to have a high performance node and mining rig ready.
-
politicalweasel[
isn't there a long-term dynamic blocksize cap which prevents taht
-
nikg83[m]
<merope> "Diego Salazar: hence the..." <- 128, but enforced on all tx should be fine to keep uniformity & removal/further reduction to be studied till seraphis/w.e next big hf comes
-
politicalweasel[
* isn't there a long-term dynamic blocksize cap which prevents that
-
DiegoSalazar[m]
nikg83[m]: I was kind of thinking all tx extra should be padded then, yeah.
-
politicalweasel[
I'm not a fan of enforcing on all txn's. Needlessly increasing tx sizes
-
DiegoSalazar[m]
Fungibility above all else.
-
merope
DiegoSalazar[m]: That option was also considered, but most people seemed against it
-
politicalweasel[
DiegoSalazar[m]: Security? Censorship resistance? Reliability? Sustainability?
-
politicalweasel[
not that tx_extra directly impacts all of those, but still
-
DiegoSalazar[m]
32 bytes max. Anything they want to say can be said in that space. :P
-
DiegoSalazar[m]
politicalweasel[: Yes.
-
DiegoSalazar[m]
We already have "secure" blockchains (for some definition of secure)
-
DiegoSalazar[m]
We already have "reliable" blockchains.
-
DiegoSalazar[m]
We have no other fungible blockchains.
-
politicalweasel[
so then we should just remove the blockchain and have Monero operate on "I send you 1 XMR"? Completely fungible.
-
spackle_xmr[m]
<politicalweasel[> "> <@spackle_xmr:matrix.org..." <- That is the long-term cap taking effect.... (full message at <
libera.ems.host/_matrix/media/v3/do…7b92926b97f26a0b5618f269c0d1430d8c1>)
-
spackle_xmr[m]
Here's a simulation I wrote off that document, if you feel like checking my work:
github.com/spackle-xmr/Dynamic_Bloc…/blob/main/Dynamic_Blocksize_v16.py
-
DiegoSalazar[m]
politicalweasel[: Lol. Then it wouldn't be a blockchain. It must be a fungible blockchain. Not just a fungible.
-
politicalweasel[
spackle_xmr: wait so the long term cap is 50x? Am I reading that correctly?
-
politicalweasel[
Diego Salazar: fine, then we'll have a blockchain consisting of "XXX sends user XXX 'XXX' XMR"
-
spackle_xmr[m]
politicalweasel[: Once the penalty median M_N is no longer restricted by the short term median, it is restricted by 50 * M_L.
-
spackle_xmr[m]
Then the maximum possible block size is 2 * M_N, assuming that enough fees are paid.
-
spackle_xmr[m]
Note that the amount of fees required for this is absolutely massive.
-
politicalweasel[
* Diego Salazar: fine, then we'll have a blockchain consisting of "Unknown user sends unknown amount to unknown user"
-
DiegoSalazar[m]
politicalweasel[: This isn't the gotcha you think it is, as the goal is indeed to make it as close to this as possible to an outside observer who is not either party in the transaction.
-
politicalweasel[
DiegoSalazar[m]: Then let's do it. Hard fork next month to remove all this "cryptography" crap
-
DiegoSalazar[m]
I understand your hyperbole extends even to the parties in the tx, because then it is completely 100% fungible. But the concessions to let it be used as a currency mean the parties themselves must see what's going on.
-
DiegoSalazar[m]
Beyond the necessary concessions that let it be used as a currency, nothing else should be considered that would weaken fungibility.
-
DiegoSalazar[m]
Tx extra is not needed for currency functionality.
-
politicalweasel[
that's not the point. it's that a "currency" who's only property is fungibility is not really a currency
-
politicalweasel[
DiegoSalazar[m]: Again, output spam DOES weaken fungibility, which is the alternative to tx_extra.
-
DiegoSalazar[m]
"Fungibility above all else" doesn't mean we have nothing else in there. :P it means that when we come to a crossroads, and one path harms fungibility, we prefer the alternate path.
-
politicalweasel[
Okay that's at least a more reasonable statement
-
DiegoSalazar[m]
Ye. Sorry for my desire to be "twitter brief and punchy" robbed me of the nuance I needed to get the point across well.
-
ofrnxmr[m]
> that's not the point. it's that a "currency" who's only property is fungibility is not really a currency
-
ofrnxmr[m]
What properties must a currency have ?
-
ofrnxmr[m]
Currency is a service to be exchanged for goods and services.
-
ofrnxmr[m]
Currency as a service is fungible transfer of value.
-
politicalweasel[
well for one, security. currency is pointless if it is insecure, ie if it can be duplicated or trivially stolen. A fungible coin is worthless if I can magically steal it from you or magically turn it into 10.
-
ofrnxmr[m]
So turn up the hashrate
-
Alex|LocalMonero
<politicalweasel[> "the "acceptability thresehold..." <- 1 is better than 2 but 2 with no tx_extra that closes the biggest door on bitcoinization is better than 1 that swings the bitcoinization door wide open, would you grant me that? :)
-
politicalweasel[
You still haven't really solidly explained why tx_extra will result in "bitcoinization". There are 2 main "branches" of bitcoinization, as I see it.... (full message at <
libera.ems.host/_matrix/media/v3/do…e719f5a30e9e13ec32ca8829f2fc5eb7ce3>)
-
politicalweasel[
oops didnt finish #1: ...like I said, Monero should be simple and standard but extenable
-
politicalweasel[
s/extenable/extendable and flexible/
-
Alex|LocalMonero
When you say extendable and flexible, you mean on-chain, right? But you can't have a simple and standard and extendable chain at the same time, or am I misunderstanding something? It would seem to me that if you allow anyone to soft fork with tx_extra you inevitably reduce simplicity, do you not?
-
politicalweasel[
Monero's baseline format should be simple, but also flexible to be built upon and extended by external users
-
politicalweasel[
I guess that's a slightly better way to say it
-
Alex|LocalMonero
Right, but if you're talking about that capability being on-chain then I don't see how you won't end up in the same place that Bitcoin did. The xkcd about standards comes to mind:
xkcd.com/927 which is projected in the BIP library :)
github.com/bitcoin/bips
-
Alex|LocalMonero
So if a protocol can/will be used/abused to its maximum extent, it would seem to me that that abuse needs to be limited/discouraged/disincenticized to the greatest possible extent, by closing any potential doors. And while one may say that you can never really close all the doors that feels to me like making the perfect the enemy of the good.
-
politicalweasel[
I'm not really talking about standards though. There should be one standard address format, and one standard transaction format, with very little or no exception. Simple. I'm talking about things like DEX's or atomic swaps and so forth, where Monero itself isn't being changed but built upon to create something with it. Users generally shouldn't have to deal with non-standard "stuff" unless they explicitly seek it out.
-
politicalweasel[
(unlike bitcoin, with its several address/transaction formats)
-
politicalweasel[
* its several standard address/transaction formats)
-
Alex|LocalMonero
But if you allow tx_extra then you necessarily allow a similar address fragmentation to develop. Recall that integrated addresses are just base address + tx_extra.
-
Alex|LocalMonero
It would seem to me that you're not advocating for tx_extra (arbitrary data field) specifically but for a field that can be dedicated for, say, DEX interfacing.
-
Alex|LocalMonero
Also, recall that Haveno, a DEX, does not require tx_extra. And IIRC atomic swaps don't need it either.
-
politicalweasel[
Fair point, but I think subaddresses should have been made standard long ago, and integrated addresses disabled. It's probably not worth it at this point with Seraphis approaching, but whatever. That's something we need to do as a community, not something that should be preemptively blocked by strictly solidifying the tx protcol. Allowing subaddresses to be phased in via tx_extra wasn't the worst thing in the world, but
-
politicalweasel[
it should have been temporary.
-
politicalweasel[
You can't predict use cases, though. Just because what exists now doesn't require tx_extra, doesn't mean it can't be useful. But again, either way, there's an argument to be made that discouraging output spam alone is enough to justify tx_extra as a "put your crap here instead of outputs" thing.
-
politicalweasel[
in fact come to think of it, this situation has a parallel with OP_RETURN. Core tried limiting it to 80 bytes, so ordinal spammers just used the segwit loophole instead. Luckily for Bitcoiners, it isn't too harmful besides the raw blockspace, but that's not the case for us. On-chain ordinals won't fit on Monero either way, but smaller 32 or 64 commitments definitely could
-
politicalweasel[
people will find a way around restrictions if they want to
-
politicalweasel[
* in fact come to think of it, this situation has a parallel with OP_RETURN. Core tried limiting it to 80 bytes, so ordinal spammers just used the segwit loophole instead. Luckily for Bitcoiners, it isn't too harmful besides the raw blockspace, but that's not the case for us. On-chain ordinals won't fit on Monero either way, but smaller 32 or 64 byte\ commitments definitely could
-
politicalweasel[
* in fact come to think of it, this situation has a parallel with OP_RETURN. Core tried limiting it to 80 bytes, so ordinal spammers just used the segwit loophole instead. Luckily for Bitcoiners, it isn't too harmful besides the raw blockspace, but that's not the case for us. On-chain ordinals won't fit on Monero either way, but smaller 32 or 64 byte commitments definitely could
-
Alex|LocalMonero
Would you agree that defining the Monero protocol as strictly and simply as possible with maximizing transaction efficiency (in the sense of monetary transactions: medium of exchange, store of value, global monetary base) while maintaining decentralization and fungibility (which necessitates confidentiality and homogeneity) should be the prime directive?
-
politicalweasel[
I mean I don't think a flag to include either 0 or 256 bytes of tx_extra is a massive complication. We aren't talking about smart contracts here. I value simplicity, but also see value in the extensibility I was talking about earlier
-
politicalweasel[
(or 128 bytes, or however many)
-
politicalweasel[
that part doesn't really matter
-
Alex|LocalMonero
Well, as mentioned previously even 16 bytes is enough to have address fragmentation (IIRC integrated addresses use just 16 bytes of tx_extra).
-
politicalweasel[
well in theory you could do it with just 4 if you're ok with "only" having ~4 billion addresses to choose from. That kind of misses the point though
-
Alex|LocalMonero
So you can't have tx_extra, especially not one as large as 256 bytes, and not have the potential (or, perhaps more accurately, have the guarantee) for address fragmentation.
-
politicalweasel[
The *potential* yes. Though if we were really desperate for some reason then a new address format could also use spam outputs, but that's not my point.
-
politicalweasel[
Integrated addresses were hastily strapped onto CryptoNote, and it shows. We, as a community, are responsible for maintaining a clean protocol. If we can't do that then we're screwed anyway, tx_extra or not. The legacy system of CryptoNote and integrated addresses and wishy-washy tx_extra and so on wasn't kept clean, and Seraphis is a new start. We've cleanly solved the fundamental problem that integrated addresses poorly
-
politicalweasel[
solved, so that issue isn't likely to arise again.
-
politicalweasel[
After all Monero started out as another low-effort fork of ByteCoin. Even in post-RingCT Monero there are remnants of that. Seraphis will basically not have any
-
politicalweasel[
s/post-/current /
-
bit_thanos[m]
politicalweasel: are there any chains that eliminated the vulnerability of output spamming?
-
politicalweasel[
no, because it's impossible
-
politicalweasel[
well, not without just banning all transactions lol
-
bit_thanos[m]
So, this issue is separate to having tx_extra or don't. If someone seriously wants to attack Monero will do it no matter the cost
-
politicalweasel[
this was discussed already
-
politicalweasel[
there's more to it than that
-
bit_thanos[m]
Ok, I just wanted to be clear
-
Alex|LocalMonero
By the way politicalweasel , spamming outputs is only a privacy issue while we don't have full membership proofs, which may change soon. We're left with it being costly to stuff arbitrary data into the chain as opposed to arbitrary data costing the same as any other data in the case of tx_extra.
-
Alex|LocalMonero
s/We/Without the privacy issue, we/, s/tx_extra/tx\_extra/
-
Alex|LocalMonero
Which, to me, is a desirable outcome.
-
Alex|LocalMonero
So, if you have tx_extra then address fragmentation is not disincentivized. If in order to have a wallet app with address fragmentation you need to generate more outputs you'll have to pay a disproportionally higher cost than wallets that are using the standard Monero protocol, hence, your wallet is outcompeted by the standard implementation.
-
politicalweasel[
Do full membership proofs require accessing the enote set at all, or only a constant-sized "root" of some sort? If so, then that's still worse than tx_extra. If not then I'd probably be okay with removal, but we'll cross that bridge when we come to it. There is still a higher cost due to verifying rangeproofs, but that's not the end of the world.
-
politicalweasel[
Using tx_extra should be more expensive than not, so there's not really a significant change there. But again, that's a community responsibility.
-
politicalweasel[
"if so" as in still having to access the enote set
-
ofrnxmr[m]
I dont like that political weasel is making arguements based on feelings and mixing in alot of assumptions or "what ifs"
-
ofrnxmr[m]
Where there are real answers to some of said assumptions
-
politicalweasel[
like what? what's a "what if" I've used which isn't reasonable?
-
ofrnxmr[m]
Example
-
ofrnxmr[m]
Why are you voting "its ok because Seraphis is coming"
-
ofrnxmr[m]
When is Seraphis coming?
-
ofrnxmr[m]
Exavtly. Its not ok to just wait around
-
politicalweasel[
I didn't mean it's something to not care about, but that since Seraphis is approaching anyway it's likely not worth the effort to change anything unless we have a hard fork in-between anyway (ie for BP++)
-
ofrnxmr[m]
Exactly = you dont know.
-
ofrnxmr[m]
It could be 2 years, it could be 6, it could have been a year ago
-
ofrnxmr[m]
"Likely" not worth the effort. You're just speaking your opinion.
-
ofrnxmr[m]
Opinions are nice, but everybody has them. Most of your arguements for keeping it are because you have an opinion
-
politicalweasel[
Doing a full hard fork to restrict one singular field is absurd IMO. We could soft fork, because that change wouldn't affect any average user, but I'm not sure if the community would go with that.
-
ofrnxmr[m]
Not because you how anymore this works.
-
politicalweasel[
tx_extra should have been cleaned years ago, but we're in an akward position where Seraphis is "close"
-
ofrnxmr[m]
Arguing with, what I assume to be, the largest monero adopter outside of cex
-
ofrnxmr[m]
politicalweasel[: Should have? Never
-
politicalweasel[
ok, your point?
-
politicalweasel[
ofrnxmr[m]: wdym?
-
ofrnxmr[m]
It was a junk drawer and stuff gotnput in there and left there
-
politicalweasel[
so... you're saying it shouldn't have been cleaned up?
-
politicalweasel[
because that's what I'm saying
-
ofrnxmr[m]
It should have never been filled with junk!
-
politicalweasel[
oh sure, agreed
-
ofrnxmr[m]
Subaddresses made it in because if a sift fork. A hard firm would have added them properly.
-
politicalweasel[
I don't think subaddresses were a soft fork? Only a wallet-level adoption protocol, no consensus change
-
ofrnxmr[m]
Yes,soft fork
-
ofrnxmr[m]
> Alex | LocalMonero | AgoraDesk: subaddresses are in the tx_extra, and are not enforced by consensus afaik.
-
ofrnxmr[m]
^ koe
-
ofrnxmr[m]
<kayabanerve[m]> "Ordinals does not use OP_RET and..." <- ^ politicalweasel:
-
ofrnxmr[m]
"Doing a full HF to ...." - there are more (necessary) reasons to HF pre seraphis than Txextra. Txextra is just extra. Far from the main reason.
-
ofrnxmr[m]
> Integrated addresses were hastily strapped onto CryptoNote, and it shows. We, as a community, are responsible for maintaining a clean protocol.
-
ofrnxmr[m]
If we can't do that then we're screwed anyway, tx_extra or not.
-
ofrnxmr[m]
The legacy system of CryptoNote and integrated addresses and wishy-washy tx_extra and so on wasn't kept clean, and Seraphis is a new start.
-
ofrnxmr[m]
Txextra leans toward an excuse not to hard fork. We will have hard firms until we get it right.
-
ofrnxmr[m]
And I understand your and others perspective. I really do. It just isnt a business minded decision you guys are making. You're trying to appease everyone instead of trying to push towards progress
-
rbrunner
After reading the backlog I would like to explain something to the non-devs here:
-
rbrunner
I have seen repeated mentions of the following: "Stego and tx_extra are like 2 different holes on a boat, a small one and a big one"
-
rbrunner
Or, in other words, it gets claimed that writing something into tx_extra is easy, and stego is hard
-
rbrunner
This is misleading. Making stego, like creating fake outputs and putting bytes in there, is only one library away from becoming very easy
-
rbrunner
Somebody has to write that library, agreed, and it's not trivial, but once it exists, putting arbitrary bytes into
-
rbrunner
a Monero transaction using stego once again becomes as easy as using tx_extra
-
rbrunner
In your code you just call a very simple method: tx.add_with_stego("this is rubbish and only bloats the chain"
-
rbrunner
And that "add_with_stego" method will care about all the complexity of creating fake outputs, and so on
-
sech1
stego by its nature is less space-efficient, so the tx fee will be larger
-
sech1
which will reduce spam
-
rbrunner
Yes, correct, but that wasn't the argument that was used in the discussion
-
ofrnxmr[m]
It was used at least once and disregarded as "but we never know what we might need within the next year"
-
sech1
also, output count is limited to 16 per transaction
-
rbrunner
Again, a good point, but on the other hand proposal B3 comes with a pretty strict length limit as well. 256 bytes is one proposal.
-
gingeropolous
<plowsof11> Cant transfer ownership of an 'ordinal' on monero >> sure you can. just publish the true output in the tx_extra, right?
-
kayabanerve[m]
gingeropolous @gingeropolous:libera.chat: There's also the input side I don't care to comment the solution for.
-
plowsof11
gingeropolous the opinion i blindly parroted seems to be misinformed, please forgive
-
Lyza
<Alex|LocalMonero> "We're left with it being costly to stuff arbitrary data into the chain as opposed to arbitrary data costing the same as any other data in the case of tx_extra."
-
Lyza
reading most of the back log and thinking, maybe the issue is that fees, especially for tx_extra, are way too low
-
Lyza
we're talking about storing data on every node forever, I feel like if it's appropriately priced, spam discourages itself. isn't that like, a significant portion of the reason we have fees at all, to deal with spam issues?
-
Lyza
like Ik it doesn't solve the problem but it feels like everyone is talking around how CHEAP this data storage actually is and how much that incentivizes people to stuff data to begin with
-
ceetee[m]
<Lyza> "reading most of the back log and..." <- I thought about this too. If tx_extra is worth more per byte then a normal transaction, miners are incentivized to preferably include these transactions
-
ceetee[m]
not a problem right now, but it affects the economics of dynamic scaling
-
UkoeHB
ceetee[m]: a miner adds a tx to a block if the fee exceeds the marginal block reward penalty from adding that tx. Block reward penalty is a function of tx weight, not tx size. To increase the fee cost of tx_extra, we would increase the 'weight' of tx_extra bytes.
-
UkoeHB
So, whether or not a tx has a tx_extra would not be a factor miners care about
-
ceetee[m]
oh okey, that's is actually very good design
-
ceetee[m]
My mental concept had the normal size based tx fee + an extra fee for the extra data. Glad I was wrong
-
Alex|LocalMonero
<rbrunner> "Yes, correct, but that wasn't..." <- It was exactly that argument..
-
Alex|LocalMonero
<sech1> "also, output count is limited to..." <- Also, with tx chaining we can limit the number of outputs to 2 for each transaction, which, and correct me if I'm wrong, seems to almost completely close the "spam output" steg angle.
-
xfedex[m]
Increasing tx_extra fee might not be that effective, unless it's something like a 200x increase: Monero's fee per byte is very low
-
BawdyAnarchist[m
Rucknium: What would you think about the potential of using relays to enforce statistical tests rather than being hardcoded consensus?
-
Lyza
<xfedex[m]> kinda feel like the overall fees could be higher too, we're also talking about people using output spam for steg afterall
-
Lyza
I'm not super sure how things scale as XMR price increases since fees are priced in XMR without respect to dollar price but like, rn a standard TX is like 0.007 USD
-
Lyza
which if you compare the size of a Monero transaction to a bitcoin transaction, about 10x larger, that's on some level the same as if bitcoin had fees that were 7 hundredths of a cent
-
Lyza
it's ludicrously low imo
-
UkoeHB
it's very low because tx volume is still in the minimum-size buffer zone, which exists to ameliorate wide volume swings when adoption is low
-
Rucknium[m]
BawdyAnarchist: IIRC the loose proposal being discussed would do the statistical checks at the node tx relay level, not consensus. Just like min fee is now. So you are "on the right track" :)
-
BawdyAnarchist[m
Thanks for fielding my pleb questions
-
LyzaL
<UkoeHB> my understanding is that even when we get above minimum block size, the system is designed for fees to stabilize approximately where they are now, and for higher fees to be mostly during sudden TX volume increases. is that wrong
-
UkoeHB
that's correct
-
LyzaL
ok I'm not sure what you were trying to say about the minimum-size buffer zone then
-
moneromooo
There's plenty of space for everyone, and the max block size gets no shrinking pressure.
-
moneromooo
It would if it were above 300000.
-
LyzaL
true. so fees would average higher than now for that reason?
-
moneromooo
If there were pressure and people tried to pay more to get in first.
-
spackle_xmr[m]
During block size expansion fees are higher. The fees at a high and stable tx volume will be significantly lower than they are now.
-
spackle_xmr[m]
The fee per byte is proportional to 1/M_F, with M_F being the median for minimum fees calculated as min(M_N, M_L).
-
spackle_xmr[m]
For example: At a stable 10M block size I believe the fee per byte would be approx. 2.27e-9, compared to the approx. 1.9e-8 it is now.
-
moneromooo
If there's pressure and everyone's fine waiting some, fees don't go up.
-
gingeropolous
im having a hard time getting my head around "it's OK if we don't have tx uniformity"
-
spackle_xmr[m]
* During block size expansion fees are higher. The fees at a high and stable tx volume will be significantly lower than they are now.
-
spackle_xmr[m]
The fee per byte is proportional to 1/M_F, with M_F being the median for minimum fees calculated as min(M_N, M_L).
-
LyzaL
I think the situation is more like, we can't entirely prevent it, so should we keep the field for it to keep it from potentially poisoning outputs? also, less adaptable protocol
-
LyzaL
<spackle_xmr[m]> when you edit in matrix it reposts the whole comment on the IRC side
-
spackle_xmr[m]
Ahh, got it.
-
LyzaL
but thx for the explanation
-
gingeropolous
sure, but that would lean toward a mandatory tx_extra... if we can't prevent it.
-
LyzaL
random thought, I don't entirely understand how steg works in XMR, but would some sort of deterministic decoy selection close that hole
-
LyzaL
<gingeropolous> ok that's a fair take
-
gingeropolous
and the "keep it as it is because it is the way it is" seems.... silly. That's not how you make protocol improvements. If that logic were true, we would've kept variable ringsizes
-
LyzaL
I don't think that will happen as long as consensus can happen for something else
-
Alex|LocalMonero
You don't think what will happen?
-
gingeropolous
and presumably, if steg (i.e., data stuffing) is still possible even without tx_extra, theoretically the protocol would still be adaptable. you could mod the relay rules to allow some payload as long as its linked to some stegged hook in the tx
-
UkoeHB
LyzaL: steganography is basically impossible to prevent
-
spackle_xmr[m]
While the subject of the dynamic block size algorithm is being discussed... if anyone is interested in creating animations to help explain it, I've been working on that with the end goal of creating a interactive graphical simulation.... (full message at <
libera.ems.host/_matrix/media/v3/do…5560ca3d98954cc3406075cdbac3dcd7995>)
-
Alex|LocalMonero
<UkoeHB> "LyzaL: steganography is basicall..." <- But it's possible to limit its scope and increase its cost, right?
-
UkoeHB
I guess? it's pretty low priority from a protocol design standpoint
-
UkoeHB
and you aren't going to get more than like 2-3x higher cost no matter what, which is pretty insignificant
-
Alex|LocalMonero
UkoeHB: 2x-3x higher cost is already more than enough for the standard Monero implementation to outcompete anyone that wants to soft-fork through steg.
-
UkoeHB
this whole social engineering game does not excite me
-
LyzaL
any decision we make regarding tx extra, fees, etc potentially affects user behavior so I don't see how it would be avoided, or maybe exactly what you mean by it
-
Monegro
I know this sounds crazy ... could statistical checks be implemented by relays to check that outputs meet some very low threshold which all but ensures you'll avoid type I errors?
-
Monegro
So, remove tx_extra; and then relays basically prevent the propagation of transactions with outputs that are clearly non-random
-
Rucknium[m]
Monegro: Checking for what?
-
Monegro
Some of the statistical checks you mentioned
-
Monegro
Uniformity checks. Legit outputs should have a uniform distribution, no?
-
Monegro
(also, full disclosure, I'm Bawdy. I just decided to use IRC instead of Matrix rn)
-
Monegro
So the threshold would be set such that it's nearly guaranteed that there will be no false positives. But anyone trying to build extensibility via steg, wouldn't be able to reliably get their transactions through, because even tho some might get through, too many of them will be caught to be reliable.
-
Rucknium[m]
It's a can of worms, to start. And if the steg was encrypted or even XOR'ed with some other random parts of the tx like jberman suggested in the long tx_extra Github issue, then a statistical check wouldn't work at all.
-
Alex|LocalMonero
It's probably more robust to limit the outputs to two, which will also help with tx uniformity as per tevador
-
Alex|LocalMonero
This can't be done now, however, as tx chaining is only possible post-seraphis.
-
Rucknium[m]
Seraphis doesn't directly fix the 10 block lock by the way. Alex, I think you implied that above in arguing for limited to two outputs.
-
Alex|LocalMonero
Rucknium: tx chaining doesn't necessarily require fixing the 10-block-lock, those are distinct issues AFAIK.
-
Alex|LocalMonero
UkoeHB: would you comment? ^
-
gingeropolous
so with a post-ringsig proof (full membership), do the fungibility implications of tx_extra go away?
-
Alex|LocalMonero
gingeropolous: Only if tx_extra is mandatory and fixed size and somehow uniform.
-
gingeropolous
but when you go to make a tx in post-ringsig monero, you don't reference a specific set of enotes
-
Monegro
But if people using steg for extensiblity are now required to encrypt their outputs, doesn't that remove one of the primary negatives regarding output poisoning?
-
Rucknium[m]
gingeropolous: IMHO, not entirely because you can accidentally or purposely fingerprint yourself in tx_extra. Global membership or not, a unique user-level fingerprint would destroy privacy.
-
gingeropolous
sure, in the generation of txs, but in a global membership, you don't reference specific enotes ... (?)
-
Rucknium[m]
But yes if a user is using a standard not-fingerprinting wallet w/global membership proofs then they are not impacted much from the fingerprinting txs. There is not the output poisoning externality
-
gingeropolous
roight
-
Monegro
Or how about implementing a uniformity check when constructing rings? As a simple means of avoiding poisoned outputs?
-
Monegro
At the wallet level
-
gingeropolous
yeah i seem to be more concerned with tx linkability than fingerprinting in my thoughts on tx_extra
-
gingeropolous
or traceability. being able to tell which enote is the real one
-
Rucknium[m]
Monegro: You mean "avoid suspicious outputs"? Maybe there is already a spent outputs database builder in the code that could be extended. But recently I think tobtoht suggested it be removed.
-
Rucknium[m]
It's complicated since right now the daemon only tells the wallet basic info about the available outputs. Would require some engineering effort
-
jeffro256[m]
gingeropolous: Both of those measurements are intertwined: bad fingerprintability makes for bad linkability
-
Rucknium[m]
to do the picking on the wallet side
-
gingeropolous
right. which is why the thought "tx nonuniformity is fine" still makes my head hurt.
-
Rucknium[m]
(continuing to go out on a limb) with the statistical check of outputs, there would need to be a large enough sample of bytes/bits in the output public key(s). Are there enough? Probably not.
-
Monegro
Let's suppose for a moment that people using steg are more likely to use multiple outputs. It's starting to run into complexity, but supposing that such a uniformity check was applied only to transactions with say ... 4 or more outputs, and renders the check on the concatenated set of outputs.
-
Monegro
Now you're x4 on the number of bits.
-
Monegro
Again, only at the wallet level. A user-level mitigation against poisoned outputs, in the case that tx_extra is removed.
-
jtgrassie
One problem with pushing people who want to work-around a size constraint or
-
jtgrassie
removal of tx_extra (e.g. steganography in fake outputs), is that we
-
jtgrassie
may end up having to ensure all outputs are actually on the curve so as to
-
jtgrassie
avoid fingerprinting. That would be more problematic in terms of verification
-
jtgrassie
cost. Enforcing a uniform distribution of a constrained size tx_extra I posit
-
jtgrassie
would be preferable.
-
Rucknium[m]
jtgrassie: What is "the curve"?
-
jtgrassie
outputs are curve points
-
jtgrassie
Thus I now lean toward the various B (2,3,4) options.
-
jtgrassie
(e.g. encrypted tx_extra, though I have no strong preference to fixed size / optional)
-
Alex|LocalMonero
<jtgrassie> "avoid fingerprinting. That would..." <- In that case you should be in favor of limiting outputs to 2, not tx_extra.
-
jtgrassie
If we go with A (removal), I think we'll end up having to make steganography
-
jtgrassie
harder, which will mean more verification overhead at relay.
-
jtgrassie
And yes, restricting output count is one way to make steg harder.
-
jtgrassie
(harder / more costly)
-
Alex|LocalMonero
How would limiting outputs to 2 increase the verification overhead?
-
jtgrassie
It wouldn't. When I mentioned verification cost I was refering to checking outputs are actually valid curve points.
-
jtgrassie
Limiting to 2 outs makes doing steg harder, but removes the ability to perform batched transactions.
-
jtgrassie
(batched txs are commonplace for exchanges and pools)
-
hbs[m]
if the number of outputs is limited to 2, sweeping/churning will require a lot more txn
-
jtgrassie
hbs[m]: no it wouldn't, a sweep takes any number of inputs but creates 1 output.
-
jtgrassie
(1 and a dummy)
-
hbs[m]
sweep_all can be instructed to produce a specified number of outputs, very handy to split a large output into 16 smaller ones
-
hbs[m]
sweep_single sorry
-
jtgrassie
That's true, yes.
-
jtgrassie
I forgot!
-
jtgrassie
So, 2-outs restriction has 2 issues:
-
jtgrassie
1) no more batched txs
-
jtgrassie
2) no more ability to split a large output into multiple small outs
-
hbs[m]
it will also significantly increase the spent fees
-
hbs[m]
which is a consequence of the two points you mentioned
-
jtgrassie
yes, and for the honest user (e.g. someone using Monero as p2p cash)
-
bit_thanos[m]
-
jtgrassie
Hence why I now prefer keeping tx_extra, but encrypted + size constrained.
-
jtgrassie
We have to close the gap of (ab)use of the blockchain for non-financial txs, but not at the expense of honest users.
-
jtgrassie
By keeping the field but size constrained and encrypted, people can still ab(use), but not at the expense of privacy or cost to honest users.
-
hbs[m]
that would still allow to go the stego way and poison outputs right?
-
jtgrassie
yes, but it allows a safer way to experiment
-
politicalweasel[
Preventing steg is impossible. IIRC valid curve points aren't actually that rare to find in random 32 bytes (50/50 I think?), so ensuring that outputs are valid curve points doesn't help anything. And enforcing 2 outputs just delays the problem... people could still spam chained transactions. So you quite notably damage user experience while simultaneously increasing the load on the network due to having multiple
-
politicalweasel[
transactions which could have been batched as 1.
-
jtgrassie
politicalweasel[: indeed, steg would still be possible
-
jtgrassie
but an encrypted size constrained tx_extra provides a safer way to experiment
-
politicalweasel[
yes, I am strongly in favor of option B3 (optional, fixed-size tx_extra)
-
jtgrassie
my only hesitance with a fixed size (vs optional or 0-CAP) is it dictates growth where none may be required
-
politicalweasel[
Yeah I mean optional
-
politicalweasel[
transactions would either have 0 or 256 bytes
-
politicalweasel[
(or whatever arbitrary number is chosen)
-
jtgrassie
gotcha, yes, I still prefer even B4 to A, but B2 or B3 over B4
-
hbs[m]
B3 was optional fixed length encrypted by default, from the current discussion it seems it is rather mandatory encryption that has the greatest consensus, or at least with a satisfactory result to a yet to define statistical test
-
politicalweasel[
Encryption should be done by default and yes maybe we should even have some statistical check, but that won't actually stop anyone who really wants to put public data there. In practice it would be more of a "strong recommendation" rather than something which can be actually enforced.
-
jtgrassie
a statistical test shouldn't be that difficult or costly to enforce
-
monerobull[m]
ordinals allowed custom tokens on btc right
-
politicalweasel[
yeah but a simple XOR and that all goes down the toilet
-
monerobull[m]
monerobull[m]: can the same be done with the currend morbs
-
jtgrassie
politicalweasel[: true, but an enforced statistical randomness test certainly helps
-
jtgrassie
XOR maybe a weak form of encryption, but it's better than nothing
-
jtgrassie
point being, from a uniformity perspective, an enforced statistical test should suffice
-
politicalweasel[
I'm not opposed to a statistical test as long as it doesn't notably impact verification time. My point was just that it's not bulletproof.
-
jtgrassie
monerobull[m]: morbs would still be possible, yes, but at least they wouldn't harm privacy of others
-
monerobull[m]
im talking about "fungible" morbs like how there are tokens based on ordinals on btc now
-
jtgrassie
politicalweasel[: exactly and agreed. a statistical test over a small field (256 or 1024 bytes) is going to be fast
-
hbs[m]
XOR with a one time pad is the über form of encryption, which as a matter of fact can ne used extensively for plausible deniability, i.e. any tx_extra can be proven to be the encrypted form pf anything with the correct one time pad
-
jtgrassie
very true
-
jtgrassie
a statistical test of randomness will suffice our needs
-
jtgrassie
(for passing a sniff test of encryption that is)
-
Alex|LocalMonero
<jtgrassie> "Limiting to 2 outs makes doing..." <- Which is why I only suggest limiting to 2 outputs after we have chained transactions, which is possible in Seraphis as per UkoeHB