How are secret shares related to an account's state(it's token balance for instance), are those duplicated across all the network nodes?


#1

Is each secret share copied multiple times on diffeerent nodes? or are there just a bunch of unique secrets generated during the generation phase?


#2

Guy Zyskind: „There are several ways to manage this. The simplest is to have a quorum (I.e., a randomly selected group of nodes) that handles the state of a contract at any given time (e.g., a token contract holding balances). The shares of the state are spread across the nodes in the quorum. We could also have other versions of the shares kept in other quorums for redundancy.

Another solution is to have the state data split across the users themselves. For example, Alice would store her account balance locally (or at least the encryption key to it) with a commitment on chain to prevent tampering. When a computation needs to happen that involves Alice and Bob, they Secret share their state with each other and do a state update using MPC. They then store a commitment to the new state on chain.

The second solution doesn’t generalize as well, is more complex, but have a few benefits. We’ll probably start with the first approach, since it presents less open questions"