-
sethforprivacy
<UkoeHB> "This makes me so frustrated..." <- Documentation at it's finest... although to be fair, they don't have users so it's not missed.
-
nollied[m]
> <@rucknium:monero.social> nollied: This machine learning project by xmr-ack may interest you:
-
nollied[m]
-
nollied[m]
this is pretty interesting. i would imagine if this research was being done sooner, it might have been able to catch the bug where there was a higher predisposition for true txn receivers to be the last decoy.
-
nollied[m]
is there any need for a second pair of eyes/help?
-
xmr-ack[m]
nollied: Absolutely! Currently in the process of feature engineering, running experiments to make decisions on how best to simulate real users, and constructing different ML models. If any of those interest you, feel free to drop me a DM.
-
xmr-ack[m]
* of those tasks interest you,
-
slave_blocker
hello, good day :)
-
slave_blocker
i have a question, a normal xmr address is (K^v,K^s)... But there is always a 4 in front, is it therefore :
-
slave_blocker
(4, K^v, K^s) ?
-
slave_blocker
or is the calculation of a normal xmr address more complicated ?
-
moneromooo
It's the base58 represenation of a bitstring which has a magic, a pubkey, a pubkey, a checksum.
-
moneromooo
The magic is such that mainnet standard addresses always start with 4.
-
slave_blocker
oh so its :
-
slave_blocker
(4, K^v, K^s, checksum) ?
-
slave_blocker
where is this described in detail ?
-
moneromooo
Probably zero to monero.
-
slave_blocker
ztm in 4.1 page 37, says that it's (K^v,K^s) .
-
slave_blocker
it then as a side note refers to :
-
UkoeHB
slave_blocker: there is a citation that shows the way, on that page probably
-
slave_blocker
it then as a side note refers to :
-
slave_blocker
.../src/common/base58.cpp encode_addr()
-
UkoeHB
look for the citation (maybe in a footnote)
-
slave_blocker
well it's :
-
slave_blocker
The address of a user is the pair of public keys (K v , K s ).
-
slave_blocker
i guess the side note is suficient
-
slave_blocker
i will look into the source code then when translating to portuguese.
-
slave_blocker
there is also :
-
slave_blocker
-
UkoeHB
Dude it’s literally footnote 3 the second sentence.
-
UkoeHB
‘See 5 for more details.’
-
slave_blocker
-
slave_blocker
also from monerodocs i see that a normal xmr address is then 69 bytes in length?
-
slave_blocker
...
-
slave_blocker
-
slave_blocker
in ztm it says it's (K^v , K^s) ...
-
slave_blocker
anyway i found a way to translate it :)
-
slave_blocker
thanks
-
slave_blocker
:)
-
moneromooo
Spend goes first, I just checked.
-
UkoeHB
order only matters for serialization... ztm is not a document about serialization
-
slave_blocker
hum,
-
slave_blocker
-
slave_blocker
and it says that for a normal address the first byte is a network byte wich is 0x12, or the number 18...? when i decode that to base58 it does not give me only a 4 but rather 4kf or 4k9 ?
-
moneromooo
Almost as if 4 was not a valid address...
-
slave_blocker
hehe
-
slave_blocker
im trying here
-
slave_blocker
thanks for the patience :)
-
slave_blocker
so i read here that its treated in 8 byte blocks
-
slave_blocker
so the first 8 byte block is network byte + 7 bytes of the public spend key ?
-
moneromooo
Sounds probable.
-
slave_blocker
wich would give me the leading 4, and then im happy ...
-
moneromooo
The "network byte" might be... more than one byte.
-
moneromooo
ISTR a varint there.
-
moneromooo
Which would map 12 to 12.
-
» slave_blocker positive ++;
-
slave_blocker
:]
-
slave_blocker
...
-
slave_blocker
The pair of public keys are prepended with one network byte (the number 18, 0x12, for Monero). It looks like this: (network byte) + (32-byte public spend key) + (32-byte public view key).
-
slave_blocker
As a last step, this 69-byte string is converted to Base58. However, it's not done all at once like a Bitcoin address, but rather in 8-byte blocks.
-
slave_blocker
so for now im just dwelling on the leading 4...
-
slave_blocker
so a xmr address starts with 0x12
-
slave_blocker
wich in base58 is 4 something therefore i'm happy ?
-
slave_blocker
and what about subaddresses ? they start with a 8 ... so the network byte is different for subaddresses?
-
slave_blocker
guess not
-
slave_blocker
oh well
-
moneromooo
Is it. See cryptonote_config.h
-
moneromooo
It is. Nice swap there.
-
slave_blocker
uint64_t const CRYPTONOTE_PUBLIC_ADDRESS_BASE58_PREFIX = 18;
-
slave_blocker
dont see subaddress there ?
-
moneromooo
Look on other lines then.
-
slave_blocker
i see that it's // Bender's nightmare though
-
slave_blocker
boost::uuids::uuid const NETWORK_ID = { {
-
slave_blocker
0x12 ,0x30, 0xF1, 0x71 , 0x61, 0x04 , 0x41, 0x61, 0x17, 0x31, 0x00, 0x82, 0x16, 0xA1, 0xA1, 0x10
-
slave_blocker
} };
-
UkoeHB
The base58 prefix thing is the so-called 'network byte'. There are 3 prefixes for each network type (mainnet, testnet, stagenet): normal, subaddress, integrated address. When converted to base58, the prefix will turn into the leading digit of the address (4 for normal address prefixes on mainnet, 8 for subaddresses on mainnet).
-
rbrunner
slave_blocker: Do you already know my website where you can play around with Monero addresses interactively in several ways?
-
rbrunner
Maybe that will clear up some of the questions
-
rbrunner