-
slave_blocker
hello good day :)
-
slave_blocker
-
slave_blocker
i don't see G and H nowhere there.
-
slave_blocker
i assume the "systemwide" G and H = H(g) is used, right?
-
moneromooo
They are defined in src/ringct/rctTypes.h.
-
moneromooo
A comment there also say how H is derived.
-
slave_blocker
i have seen that before.
-
slave_blocker
I'm just guessing that bulletproof_PROVE uses G and H; as defined in the rctTypes.h ?
-
slave_blocker
i don't know what a[] and b[] are .
-
moneromooo
Arrays (pointers really).
-
moneromooo
f(int a[]) means f(int*) really. Just expected to point to more than one.
-
slave_blocker
-
slave_blocker
page 16
-
slave_blocker
what is the a[] and b[] ?
-
slave_blocker
where is G[n] calculated?
-
UkoeHB
slave_blocker: they are in there: just search rct::H and rct::G
-
slave_blocker
const rct::key Gi = get_exponent(rct::H, i * 2 + 1);
-
slave_blocker
nice
-
slave_blocker
thanks
-
slave_blocker
:)
-
slave_blocker
so
-
slave_blocker
The :: operator is called the scope-resolution operator and does just that, it resolves scope. So, by prefixing a type-name with this, it tells your compiler to look in the global namespace for the type.
-
slave_blocker
rct::H
-
slave_blocker
is therefore systemwide:)
-
ooo123ooo1234567
slave_blocker: no, ::rct::H would be systemwide
-
slave_blocker
so what does the syntax for rct::H mean?
-
slave_blocker
rct is a struct ? and H is a part of the struct?
-
slave_blocker
or rct is a class?
-
ooo123ooo1234567
<slave_blocker> "so what does the syntax for rct:..." <-
en.cppreference.com/w/cpp/language/qualified_lookup, ::rct::H is doing global lookup (avoids any ambiguity), rct::H may fail if there is some ambiguity
-
UkoeHB
rct is a namespace, H is a static variable defined in a header rctOps.h in the rct namespace, when you include that header then your including file acquires rct::H as a file-scope static variable
-
UkoeHB
the scope-resolution qualifier without any prefix is the global scope, if there is a prefix then it is a namespace or class
-
slave_blocker
in ztm on page 137, the transaction has 7 entries for L and for R.
-
slave_blocker
why is that?
-
slave_blocker
is this size always the same for every type of tx?
-
slave_blocker
does L and R receive 3 entries ++; for every output?
-
UkoeHB
slave_blocker: section 5.5 footnote 11
-
slave_blocker
log 2 (64 · p)
-
slave_blocker
what does that mean ?
-
slave_blocker
p stands for the output amount?
-
slave_blocker
i mean the amount of outputs.
-
slave_blocker
yes
-
slave_blocker
i see
-
slave_blocker
so on page 137, there are 2 outputs hence p=2, log(128) = 7...
-
slave_blocker
?
-
slave_blocker
what ?
-
slave_blocker
so having 5 outputs or 6 outputs leads to the same size in L and R of 9 elements ?
-
slave_blocker
so when t(x) is calculated = l(x) * r(x), thats how much the expression evaluates to formally? how many elements are in t_0 t_1 and t_2 ?
-
slave_blocker
-
slave_blocker
aprime[i] = l[i];
-
slave_blocker
bprime[i] = r[i];
-
slave_blocker
i don't see how l[i] and r[i], is filled?
-
slave_blocker
but i < MN, so the number is static... that does not have to do with L and R...
-
slave_blocker
UkoeHB, l[i] is different from L[i] right? l has the size MN and L has the size log(64 * p)?
-
slave_blocker
but the proof leads to the verification itself, because of the fiat-shamir ...
-
slave_blocker
ah !
-
slave_blocker
so in the case of ztm v2, there are 7 "proofs" being done! and each proof is one element in each L and R ???
-
UkoeHB
slave_blocker: idk much about the inner workings of BP
-
slave_blocker
:|
-
slave_blocker
noooo
-
slave_blocker
:(...
-
slave_blocker
oh my
-
kayabanerve[m]
<slave_blocker> " const rct::key Gi = get_expo..." <- Right, yet this doesn't actually return an exponent. Instead it returns hash_to_point(H || i) or so