-
kayabanerve[m]
I'm not personally a fan of ROAST, due to resource intensity by eager execution, yet it's somewhat comparable to how Monero currently handles multisig. Monero will preprocess for all possible combinations and then... This preprocesses for all combinations with a specific inclusion criteria such that is doesn't spawn n * t sessions yet (n - t + 1). It's why I flagged it to koe during my recent review.
-
kayabanerve[m]
Regarding blame, Monero's KEX would need every key to have a verification share known by all other parties (which I don't believe it does). With that requirement, there's no reason sign couldn't be edited to include blame.
-
kayabanerve[m]
... unless the n-1 behavior causes that to form an exponential space requirement. That would make having verification shares impossible. I'd have to double check there.
-
kayabanerve[m]
Regardless, modernization of the multisig algorithm to FROST should be a no-brainer at this point.
-
UkoeHB
kayabanerve[m]: the n - t + 1 looks like it's just for selecting the coordinator for signing. ROAST still expects every permutation of signer groups (that contain no flagged malicious players) during a message signing attempt. It seems like a decent generalization. However, in practice you usually have a fixed coordinator (i.e. whoever originally proposes 'lets sign this message'), and depending on use-case, you can remove some
-
UkoeHB
members from consideration during signing (that's what my 'signer set filters' enable) to reduce network/computation costs (i.e. non-malicious players who may not be the targets of a signing attempt).
-
kayabanerve[m]
<UkoeHB> "kayabanerve: the n - t + 1 looks..." <- I believe it only tries n-t+1 simultaneously which is the point
-
kayabanerve[m]
Not that it isn't theoretically capable of trying a specific combination
-
kayabanerve[m]
That's why it even applies to large groups whereas monero caps at 16
-
kayabanerve[m]
> ROAST starts at most π β π‘ + 1 concurrent
-
kayabanerve[m]
signing sessions of an underlying semi-interactive threshold signa-
-
kayabanerve[m]
ture scheme Ξ£, making it practical even for large choices of π and
-
kayabanerve[m]
π‘.
-
kayabanerve[m]
To be clear, 16 is needed for a few reasons. One of them being the preprocessing for all possible combinations. I think 33-50 generates 400 TB of data.
-
UkoeHB
kayabanerve[m]: oh I may be misreading it "Since ROAST initiates at most πβπ‘ +1 signing sessions before successfully producing a signature, the coordinator will deliver a signature after at most 1 + 2(π β π‘ + 1) = 2(π β π‘) + 3 asynchronous rounds." (section 4.3). I guess it is n - t + 1 sequential sessions each for a signing group of size t, to iteratively find a group of t honest signers. Instead of just
-
UkoeHB
trying all possible groups in parallel.
-
UkoeHB
Ah, section 4.4 says to use n - t + 1 parallel coordinators if your coordinators are untrusted
-
kayabanerve[m]
Right
-
kayabanerve[m]
UkoeHB: AKA leaderless. Just have everyone be a coordinator.
-
UkoeHB
I feel like their model doesn't really take into account nuances around the meaning of 'not honest'. A signer could be intermittently responsive, could have a fickle opinion about a message to sign, etc. Their model only guarantees success if there are t 'always online and cooperative' signers.
-
UkoeHB
Though I guess 'eventually terminates' covers those possibilities... I'm mostly left wondering under what conditions their model would actually be useful.
-
kayabanerve[m]
I personally just prefer a x second timeout :p