-
br-m
<kiersten5821:matrix.org> did the miner have to modify their client to mine these?
-
br-m
<yushanren:matrix.org> I still don’t understand how you use AI to audit code. Just switch models to do the same work again.
-
br-m
<jpk68:matrix.org> AFAIK most of these happened before the AI audits began (?)
-
DataHoarder
kiersten5821: for this one, Monroe gathers txs even ones that don't normally decode tx extra. Tx extra is a convention only if you want the wallet to decode it OOB I guess
-
br-m
<gingeropolous> DataHoarder: , @jpk68:matrix.org "Standard serialization is 04 <varint pubkey-count> <keys> with no byte-length. Whoever built this tx TLV-encoded the field (tag, length, value) — so a standard parser reads 65 as "65
-
br-m
<gingeropolous> pubkeys", expects 2,080 bytes, and fails. Notably, the payload inside the wrapper is well-formed (2 additional pubkeys for a 2-output tx, consistent with a subaddress payment),
-
br-m
<gingeropolous> which points to a deliberate but buggy third-party wallet serializer, not corruption. A likely culprit is the misleading comment in monero's own tx_extra.h
-
br-m
<gingeropolous> (
github.com/monero-project/monero/bl…ter/src/cryptonote_basic/tx_extra.h), which describes the field format as "varint tag; varint size; varint data[]" — implementing
-
br-m
<gingeropolous> from that comment produces exactly these bytes. Consensus doesn't validate tx_extra contents (see the long-running discussion in monero#6668[... more lines follow, see
mrelay.p2pool.observer/e/19u6oZQLM2RFWDRN ]
-
br-m
<gingeropolous> i thought it might be from opus's work on the explorer
-
DataHoarder
> the payload inside the wrapper is well-formed (2 additional pubkeys for a 2-output tx, consistent with a subaddress payment),
-
DataHoarder
it's not, it says 65 bytes of length for +65 bytes
-
DataHoarder
so there's already extra bytes
-
DataHoarder
but indeed it's varint size, just in this case the size is *32 :D
-
plowsof
can validate_address detect a burn address? e.g. the abbey * 25 word seed produces a primary address of
monerotech.info/Home/AddressInfo?ad…cALdcZev4QXGGuoLh2x36LhaxLSxCc2YDhi which is a valid address but...
-
plowsof
abbey wallet _is_ a burn address right? or anyone can spend from it? confused
-
DataHoarder
plowsof: do you have the spend private key this derives to?
-
DataHoarder
is that private key of 0?
-
DataHoarder
funnily that fails on my checks against torsion and small orders
-
DataHoarder
afaik you cannot multiply by 0 :)
-
DataHoarder
(or well, every scalar mult of a point would land on the identity element
-
plowsof
DataHoarder yes zero'd spend private key
-
plowsof
so abbey is not a burn address*
-
DataHoarder
well, it can't be spent, yet can be viewed
-
DataHoarder
from what I understand you cannot make a proper proof
-
plowsof
iirc sech1 knows about abbey
-
DataHoarder
sadly I do extra checks on the address so can't add to explorer to see stuff
-
DataHoarder
that one gets used in samples as well
-
sech1
abbey wallet is not something you can just sync and spend whatever is there
-
DataHoarder
plowsof: from what I look at cryptonote derivation this is true as long as it got sent to the main address, the extension is also zero. zero+zero = zero, x G + y T where both x and y are zero, too
-
sech1
but you can modify the wallet's code to ignore the zero spend key, and still spend money from there
-
sech1
I think I recovered something like 0.1 XMR from there at one point :D
-
DataHoarder
but yeah, it then gets mixed with other scalars, so it should still be possible to sign indeed
-
DataHoarder
for subaddresses it's easier :D
-
sech1
I don't remember exactly, but if you try to restore abbey wallet, it will see incoming transfers, but you can't spend it - the wallet gives an error. Find where in the code this error is triggered, comment it out, and voila :)
-
DataHoarder
well yeah it's a degenerate condition where some values shouldn't add up to zero
-
DataHoarder
lemme sync up, I want to get this added to the explorer
-
plowsof
if i put a 'weird' address accidentally on purpose, and withdraw a large amount, but claim the sender is at fault for sending to a "burn address" / not validating it, and request a refund but secretly have already swept from that address - should validate_address stop this? and DataHoarders "checks against torsion and small orders" would stop
-
plowsof
this?
-
DataHoarder
I think that is way more strict in FCMP++/Carrot times
-
DataHoarder
so many Failed to derive subaddress public key / Failed to generate key derivation from tx pubkey, skipping :)
-
DataHoarder
the right way to make a burn address is to just expose a way to derive the spend/view pubkeys from a public value so it can't be reversed
-
DataHoarder
while allowing a view private key to exist for example
-
DataHoarder
thanks for the 0.64 XMR reminder sech1 plowsof :)
-
DataHoarder
I ended up scanning using my libraries... and ALSO building a transaction by hand using my libraries + CLSAG signing + BP+ proofs
blocks.p2pool.observer/tx/8367d8b97…5a60f152b139a3dc0cea6d4a6e9a95a9d60
-
DataHoarder
-
sech1
Looks like someone mined a block to abbey wallet? :D
-
DataHoarder
none tx I can see do
-
sech1
Just the amount is suspiciously close to the block reward (+some fat transactions in that block)
-
sech1
Maybe someone mined a solo blocked and tried to withdraw it
-
sech1
*solo block on a solo mining pool
-
DataHoarder
anyhow plowsof definitely not a burn address
-
plowsof
thnx
-
plowsof
and congrats!
-
br-m
<jpk68:matrix.org> This is probably a dumb question, but you can't spend money from the abbey wallet because... the spend key is itself invalid though you can still derive valid one-time addresses from it?
-
DataHoarder
you can
-
DataHoarder
lemme try to build a spend proof :)
-
br-m
<jpk68:matrix.org> I am syncing the wallet right now, for no particular reason
-
sech1
Both me and DataHoarder already spent money from the abbey wallet :)
-
DataHoarder
it's cleaned atm except two dust outputs
-
DataHoarder
I use my own utilities/library/code though
-
DataHoarder[m]
txid 8367d8b97545a884881817b74b3105a60f152b139a3dc0cea6d4a6e9a95a9d60
-
DataHoarder[m]
SpendProofV13z5B1xFDPvLHxDgSv9s9kHKh68MmjoDzWKGNdYiNiXjzBhQB3o49DEiPiBXv5APtmChQVWR3LLfvSd4VdncgkARHXXYHTUBxJ253jX43EjbG2QhZSQAAwvewHMtTDwey2NSTAAj1xpvPg9hWE1wUcZLFXVYrupibDY3ijJKaL6Z56ZHUEBKFaaVEXt2LZy4EGkHsKeT89P3b69ViZ6mUUjuc6cRo7WY3xJXXxMagz2bJZwQRH2feCN4GghQDg7nWrdKHmBXu5GhQHyRLwHoiAsn58bCBQ9B3SxCYWmx92K9WaVmZuU1XTC58HVW [... too long, see
mrelay.p2pool.observer/e/xoO1tZQLWEpsQzho ]
-
DataHoarder[m]
verifies as good in Monero GUI on Check Transaction / Reserve :)
-
DataHoarder[m]
(also generated with my own tools!)
-
DataHoarder
if you are wondering it's ring member #10 (2f9b...) with x = 2bb2f071cfbfcefad6180aad0cfd64ce41bd2556a206995d3e06c8a56569f705
-
DataHoarder
but yeah a lot of scalar additions and whatnot just cancel out or are also 0, the default wallet doesn't like this stuff too much so it can't track spends either
-
br-m
<jpk68:matrix.org> On my end, it has 20 XMR in it?
-
br-m
<jpk68:matrix.org> But the outputs are invalid
-
DataHoarder
all the images been spent
-
DataHoarder
lemme see
-
br-m
<jpk68:matrix.org> I'm just using Feather
-
DataHoarder[m]
it'll fail
-
DataHoarder[m]
-
DataHoarder[m]
and account/index in wallet
-
DataHoarder[m]
spent status = 0 are unspent, only some dust :)
-
br-m
<jpk68:matrix.org> Thanks for the 30 cents ;)
-
DataHoarder
well you have to figure out how to spend them directly
-
DataHoarder
but x value and the blind commitment is there, that is all you need really
-
br-m
<jpk68:matrix.org> Maybe this isn't worth 30 cents, lol
-
br-m
<jpk68:matrix.org> Time to just try and find a quarter on the street :)
-
DataHoarder
it doesn't cover its own fee with whatever suggested one it has :)
-
br-m
<jpk68:matrix.org> Yeah, that's what I ran into
-
DataHoarder
I built the tx by hand and including those two dust as inputs was a bother so I didn't
-
br-m
<untraceable> "Can't create transaction. Unexpected error. Not enough usable money in top 128 inputs. (186.018271163767). To fund minimum output sum: (333.00050800000)."
-
br-m
<untraceable> Whats this mean exactly...? wallet says spendable funds are 1581.666
-
br-m
<untraceable> trying to send funds to spam wallet
-
br-m
<boog900> @untraceable: Sounds like there is a limit on the number of inputs (128) and you don't have enough combined XMR in your top 128 outputs by XMR value to send that much XMR in 1 tx
-
br-m
<kiersten5821:matrix.org> didnt the limit used to be like 146?
-
br-m
<boog900> @kiersten5821:matrix.org: The limit was on the size of the tx rather than the number of inputs, you can have a tx up to 150 kb, IIRC that gives you around 200
-
br-m
<ofrnxmr:xmr.mx> @untraceable: Yes, max inputs for fcmp is 128
-
br-m
<ofrnxmr:xmr.mx> We only contruct txs in.. powers of 2? 2 4 8 16 32 64 128(max)
-
br-m
<ofrnxmr:xmr.mx> You can try transfer_split, which will construct more than 1 tx, or reduce the amount being sent
-
br-m
<kiersten5821:matrix.org> so i cant spend 3 inputs after the upgrade?
-
nioc
I believe dummy inputs are added
-
br-m
<untraceable> Oops I thought I was typing in the stressnet channel. And ok thanks I get it now.
-
br-m
<jpk68:matrix.org> @ofrnxmr:xmr.mx: Is this just a relay rule that coencides with the fork, or does it have to do with tree building or something
-
br-m
<torir:unredacted.org> @jpk68:matrix.org: The 128 input limit for FCMP is a concensus rule, added to prevent DOS attacks since large FCMP transactions take a long time to verify.
-
br-m
<jeffro256> @ofrnxmr:xmr.mx: Not true, the input selection code prefers powers of 2, but any number of inputs in [1, 128] can be spent in a single tx.
-
br-m
<jeffro256> nioc: Dummy inputs are not implemented in the current FCMP++ codebase
-
br-m
<kayabanerve:matrix.org> Large-input TXs take a long time to verify, and that isn't unique to FCMP++.
-
nioc
jeffro256 thx for the clarification