-
monerobull[m]
-
monerobull[m]
Is this just fud?
-
ofrnxmr[m]
Thats from tevador
-
ofrnxmr[m]
Not fud
-
DiegoSalazar[m]
Ok so we looked at the updated preprint
-
DiegoSalazar[m]
And unfortunately this is difficult to estimate how much time it will take.
-
DiegoSalazar[m]
On first read of the updated preprint, there appear to be areas where they generically offload parts of arguments
-
DiegoSalazar[m]
So we have a couple of options here.
-
DiegoSalazar[m]
We can do a partial audit, in the sense that we assume offloaded arguments are safe and correct, and proceed with those assumptions.
-
DiegoSalazar[m]
Or a full one wherein we go and check each of these offloaded arguments which would be a non-trivial effort.
-
UkoeHB
Are the offloaded arguments unconventional/new?
-
DiegoSalazar[m]
It is certainly possible to do such a partial audit. And while overall safety can never be guaranteed, in such a case it can _absolutely_ not be guaranteed. And there is a possibility that this nuance would be lost to most. And we predict there would be several areas in the audit whose conclusions would end up being "we are not fully confident in the correctness of this argument or line of reasoning"
-
UkoeHB
A full audit would be necessary in the long run
-
Rucknium[m]
What do you mean by "offload"? Maybe the full arguments are in the unreleased "full" version:
libera.monerologs.net/monero-research-lab/20230419#c238808
-
DiegoSalazar[m]
So maybe we wait to see the full version then?
-
Rucknium[m]
Everyone complains about page limits with these conferences. Haven't they figured out appendices yet? 😑
-
UkoeHB
DiegoSalazar[m]: did you mean the offloaded arguments have not been written yet?
-
UkoeHB
yeah let's wait until the full paper is available
-
kayabanerve[m]
What's the time complexity of the multisig?
-
kayabanerve[m]
O(n!) ? O(n(n+1) / 2) ?
-
kayabanerve[m]
I assume UkoeHB is the best to answer
-
kayabanerve[m]
*where n is the amount of missing participants
-
kayabanerve[m]
... well, that defines each sign round as 1, where each sign round is O(n) to amount of participants...
-
UkoeHB
'the multisig'?
-
kayabanerve[m]
The multisig implementation in the Monero codebase
-
kayabanerve[m]
It looks like O(n) sign, with key gen being the issue
-
UkoeHB
the implemented signing is also O(n) since it's round robin
-
UkoeHB
or O(M) I guess
-
UkoeHB
key gen is O(N - M + 1)
-
kayabanerve[m]
UkoeHB: I see it does t rounds, yet what's the complexity of reach round?
-
kayabanerve[m]
*each. Is each round n**2? There's no way this is linear.
-
UkoeHB
key gen is not time-linear per round but signing is time-linear (but not space-linear since you are accumulating partial sigs)
-
UkoeHB
well hmm maybe not
-
UkoeHB
it's some n choose k complexity..
-
kayabanerve[m]
Right. I see key gen does t rounds. In each round, it does n ecdhs.
-
kayabanerve[m]
But it can't be n**2 as that wouldn't be so inperformant. It has to be doing n**2 ecdhs, or relevant to the n choose k function which I'm still interpreting
-
UkoeHB
are you talking about key gen or signing now?
-
kayabanerve[m]
Key gen. Sorry for any confusion. I do believe signing is O(n), but I'll take contradictions.
-
kayabanerve[m]
Key gen appears to do n-t+1 rounds, where each round is an ECDH involving n*round_num keys. I believe it's cubic accordingly.
-
UkoeHB
key gen requires an n choose k pyramid
-
UkoeHB
the most complex round is round N - N/2
-
kayabanerve[m]
Overtly simplified, it's n**3, right?
-
UkoeHB
well N-of-N requires no ecdh, N-1 of N requires N-1 ecdh, N-2 of N requires.. something
-
kayabanerve[m]
Where it's actually
-
kayabanerve[m]
N-T rounds
-
kayabanerve[m]
round_num * n pieces of data
-
kayabanerve[m]
For an actual run time of (n-t+1) * ((n-t/2)+1) * n, I think
-
kayabanerve[m]
For n-of-n, that evaluates to 1 * 1 * n
-
UkoeHB
-
kayabanerve[m]
I'm just looking for a rough complexity to include in a list of details. I'm not going for an academic publication :p If that formula looks right, I'm fine handwaving it as cubic.
-
kayabanerve[m]
... ` n! / (k!(n-k)!)`
-
kayabanerve[m]
Oh god
-
kayabanerve[m]
That's what the boost function returns
-
kayabanerve[m]
Signers! / (round!(signers-round)!)
-
UkoeHB
boost function?
-
kayabanerve[m]
The lambda internally calls boost::math
-
kayabanerve[m]
boost::math documents its binomial coefficient function as following the above formula
-
UkoeHB
well that's the standard formula yep
-
kayabanerve[m]
Tens of thousands of elements 0_o
-
kayabanerve[m]
Thanks for helping me piece it together
-
UkoeHB
I guess complexity would be the largest round
-
UkoeHB
that's why I hardcoded a limit of 16 group members
-
kayabanerve[m]
Yep. I get that
-
kayabanerve[m]
Thanks again for the help :)
-
UkoeHB
sure :)