Notes on Extended Specification#
Extended Specification are for SecretFlow only and not application to other privacy-preserving applications.
If you are looking for definition like DistData, NodeEvalParam, etc. They are part of SecretFlow Open Specification.
SecretFlow Cluster#
Defined in cluster.proto.
SFClusterDesc#
SFClusterDesc stores intrinsic properties of a SecretFlow cluster, including:
sf_version: SecretFlow version
py_version: Python version
parties: Parties participated in computation
devices: Security configs of secret devices like protocol of SPU devices.
ray_fed_config: Backend selection of RayFed.
The reason we regard SFClusterDesc as intrinsic properties is because SFClusterDesc is important to data security and integrity. For example, a DistData generated by one cluster could only consumed by another cluster only if their SFClusterDesc are compatible.
SFClusterConfig#
A SFClusterConfig contains all information to setup a SecretFlow cluster, besides SFClusterDesc, it contains public configs and private configs.
PublicConfig should be revealed to all parties, including:
ray_fed_config: Addresses for RayFed. Parties need this information to communicate to each other.
spu_configs: Addresses for SPU devices. SPU Runtimes of all parties need this information to connect.
PrivateConfig is unique to each party, including:
self_party: who am I?
ray_head_addr: The address of Ray cluster.
SecretFlow Data Types#
Defined in data.proto.
DeviceObjectCollection#
We usually use DeviceObjectCollection to represent an MPC models. We would provide more details for this part later.