Skip to contents

The single call the protocol runner makes on a site. Implementations return the site's contribution already encrypted, using the public parameters the site was given when it was configured, so an individual site's cleartext contribution never reaches the aggregator — that is the property the whole protocol rests on, and master_aggregate() refuses a reply that is neither an encrypted value under this protocol's key nor NA.

Usage

contribute(site, ...)

Arguments

site

a LocalSite, or a user-defined subclass of RemoteSite.

...

method-specific arguments; both built-in methods take theta, the parameter value being queried.

Value

an encrypted contribution, of whatever type the site's own public parameters imply, or NA if theta is non-evaluable here.

Details

The computation is entirely local. A site needs nothing at call time beyond theta, its own data, and what it already holds.

The only permitted plaintext reply is NA, signaling that theta is non-evaluable at this site; CKKS has no representation for it, so it cannot be encrypted. A site that cannot be reached must signal site_unavailable() instead of returning NA.

See also

RemoteSite for the contract a remote implementation must honor.