-
Insight
where are the debug logs usually stored
-
moneromooo
~/.bitmonero/bitmonero.log
-
moneromooo
Obviously if you set a different data directory, it'll be there.
-
koe
do 0-amount outputs have dummy one-time addresses, or are they considered `change' outputs directed to your address? This guy on reddit has an interesting idea
reddit.com/r/Monero/comments/ev8be7…eep_all_to_return_0_xmr_back_to_the
-
koe
also wondering, when proving you authored a transaction and the transaction has more than one transaction public key, is the message you sign using ALL the pub keys, or just one of them? or am I misunderstanding how that proof is done?
-
sarang
You mean the two-key Schnorr proof?
-
sarang
It's done on a single shared-secret/tx-pubkey combination at a time
-
hwgttm
Hi, I'm updating pages on monero outreach and I'm looking for info on planned work in 2020. Can anyone help?
-
koe
dEBRUYNE mentioned that a random address is used when sending 0-amount dummy outputs (e.g. since there is a 2-output minimum). Where might I find this in the code base?
-
koe
hwgttm as far as the protocol goes afaik now much is nailed down, although there are many items that need discussion on my list. Only thing for sure is enforcing exact block rewards (miners are currently allowed to accept less than maximum amount, although not one block has done so in years)
-
koe
not much*
-
koe
nvm lucky find in transfer_selected_rct()
-
sarang
There has been good support for getting CLSAG deployed
-
sarang
It's already coded
-
hwgttm
Thanks for your reply koe
-
sarang
Suppose we had 64 bytes of free space available in each transaction... what would be useful to include?
-
sarang
I mention this because bulletproofs can be used to store 2 proof elements arbitrarily, given a PRNG seed
-
Insight
what would you even want to include?
-
sarang
That's why I'm asking :)
-
koe
can someone help me understand what destination_split_strategy() is? Im very concerned that destinations are being sorted in a predictable manner
-
koe
which has serious implications for heuristics around which output is the change output for most transactions
-
moneromooo
It's obsolete (pre rct).
-
moneromooo
May still be used when sending unmixable outs though.
-
moneromooo
It's not consensus, so feel free to change the sorting.
-
moneromooo
sarang: whatever makes second layer easier :)
-
koe
problem is I cant track down how the original list of output addresses is created
-
koe
or if it gets rearranged between then and when the output index is assigned
-
koe
sd.splitted_dsts seems to be the list that gets passed into the index assignment (it just uses the order of sd.splitted_dsts directly)
-
koe
ok transfer_selected_rct() apparently puts change address (or dummy address for 0-amount) on the end of the list ;(
-
moneromooo
You could check some of your own txes for easy falsification :)
-
sarang
moneromooo: anything not second-layer related?
-
sarang
hehe
-
sarang
It's 64 bytes per bulletproof, not per output, FWIW
-
sarang
er, actually 32 bytes, sorry
-
koe
could make it a hash of something, then add the fee to it
-
sarang
Can't do 64 bytes without knowledge of mask
-
koe
couple bytes saved!
-
moneromooo
What next ? 32 bits ?
-
sarang
lol
-
moneromooo
Does DLSAG have something that could use it ?
-
koe
well even if it is random I want some reference to the code, so have to track it down either way
-
moneromooo
construct_tx_something shuffles, if it's told to. You'd have to check the relevant calls do.
-
moneromooo
The non shuffling case is for multiisg IIRC, where followup signers have to use the same order.
-
koe
yay found it in construct_tx_with_tx_key()!
-
koe
thanks mooo :)
-
koe
very good news lol i was a bit worried '=D
-
knaccc
quick random question: how hard would it be, from a coding perspective, to implement a method that could be called on the wallet to tell it to recognize ownership of a particular output (you'd either supply the output private key for full ownership, or supply the per-output shared secret for view-only 'ownership')
-
knaccc
just wondering if the wallet data structures are set up to easily accomodate that
-
koe
sarang fee is usually 4-5 bytes from what I can tell, and the transaction type is 1 byte, could put both in your extra scalar
-
moneromooo
It would suck to waste a perfectly good hidden 32 byte value for those things.
-
moneromooo
knaccc: annoying.
-
knaccc
moneromooo cool thanks
-
koe
could make it the janus mitigation base public key, although I'm hoping when janus is added that it's randomly indexed in the pub key list, which would be helpful for a join protocol
-
knaccc
sarang those bulletproofs are prunable, right?
-
knaccc
so it'd have to be data you wouldn't mind being pruned
-
knaccc
could use it for the return address scheme
-
knaccc
-
moneromooo
Why can you give it just that info ?
-
knaccc
moneromooo you talking to me? not sure i understand the question
-
moneromooo
Yes. I'm asking for the reason(s) why you could give it only output private key and per-output shared secret.
-
moneromooo
it being the wallet here.
-
knaccc
moneromooo oh right, i'm imagining the following scenario:
-
knaccc
you create a subaddress, but issue it as a regular address instead of as a subaddress. that means you have a one-time view key c which you can give out to a scanning service, in order to scan for only an incoming payment to that address for a limited period of time (e.g. 5-30 mins). that service then does a callback to the web app to let it know if a payment was successfully recevied. only a one-time view
-
knaccc
key is shared, so no privacy loss. but this would require the merchant wallet to be notified of an output it now owns, which it needs to be told where to look for. i guess the wallet could simply be told an alternate view key to be used for scanning just a single particular transaction with, to achieve the same result
-
knaccc
it means simple web apps that can privately accept incoming payments without giving away the full view key and without running wallet infrastructure locally
-
sarang
Note that the BP data thing was introduced in the context of rewinding for witness extraction (Mimblewimble etc.), so I need to make sure it's safe to include this
-
sarang
But it would be nice to get 32 bytes in this way (you'd have to run the BP verification to get this data, though)
-
knaccc
it's very elegant how in MW the bulletproof is used to allow wallet restoration, and it works perfectly because you don't need to know how to recover an output if it has been spent and the bulletproof thus pruned
-
moneromooo
And what is the reason you can't get other info ?
-
knaccc
moneromooo oh the txid or output global index etc would be easily told to it as well, if that's what you mean
-
moneromooo
Could you give it anything the wallet would normally get (like, the whole tx, say) ?
-
knaccc
sure
-
moneromooo
Then it becomes much less annoying.
-
knaccc
how does the wallet know the private key for an output when it's time to spend it? does it calculate it just-in-time? or is the output private key calculated once during scanning, and then stored in wallet data files?
-
moneromooo
It is calculated during scanning, if it's not view only.
-
moneromooo
If view only, when it imports the data from the other wallet.
-
moneromooo
If multisig... hairily.
-
knaccc
moneromooo oh nice, so if the wallet is storing global output index + output private key + output shared secret for later reference when spending, then that sounds like it would be easy to inject other outputs into that list that the wallet didn't scan for itself
-
koe
knacc wouldn't that one time view key compromise your spend key if they got a hold of your normal address view key somehow? would work if the subaddress index was a random huge number
-
knaccc
koe yeah you're right, that is a flaw. these are very early random thoughts, thanks for spotting that
-
knaccc
there are other ways to do it, other than literally creating a subaddress the usual way
-
knaccc
it could literally be via multiple seeds instead
-
knaccc
and that would solve the problem
-
knaccc
so you'd just do Hs(b||i) to get multiple seeds for one-time receiving addresses
-
knaccc
and Hs(Hs(b||i)) for the one-time private view key
-
koe
looking at how owned outputs are selected to be spent, and it seems highly random although the selection process is quite intricate; is there any risk of assigning heuristics to the order of inputs? e.g. lower indexed inputs are more likely to be larger amounts? moneromooo
-
moneromooo
For your own ? I don't think so.
-
moneromooo
Ceteris paribus anyway.
-
koe
I say that and immediately find "// sort ins by their key image"
-
moneromooo
IIRC the pick is equiprobable within a correlation class.
-
moneromooo
Correlation class being "same block", "within 10 blocks" and "other", I believe.
-
moneromooo
That comment is about sorting rings, IIRC.
-
moneromooo
Oh I had misread, I thouht you meant larger heights, not amounts.
-
koe
ah that's relevant too, sounds good!
-
koe
devil is in the details, and it's devilishly complex!
-
moneromooo
Theree is a first pass on selection where it'll try to get any two inputs that are enough to cover fee+outputs. That one is deterministic.