Are the protocol's "kfrags" possibly homomorphic in some way?

Concerning the example in the page:

You can see that Alice uses her private key to generate the kfrags:

let kfrags_alice = umbral.generateKFrags(
    alice_sk, bob_pk, signer, threshold, shares, true, true);

In my use case, Alice and Charlie both have part of the complete private key, with:

complete_sk = alice_sk + charlie_sk

If Charlie also generates kfrags on his side:

let kfrags_charlie = umbral.generateKFrags(
    charlie_sk, bob_pk, signer, threshold, shares, true, true);

Would it be possible to implement some kind of “combine” function to obtain the complete kfrags?

kfrags_complete = combine(kfrags_alice,kfrags_charlie)

Hi there! I believe the answer is no, you cannot combine kfrags in this way, but @dnunez would be able to provide a more thorough answer.

BTW, I’d recommend joining the Threshold discord ( to get more engagement on tech-related questions. This forum is for protocol/DAO governance proposals and also isn’t really active anymore now that NuCypher and Keep have merged into Threshold Network (the new governance forums are at