This document will maintain and continually update the release notes of each version of Rosetta. If you have questions or comments, please contact us via rosetta@latticex.foundation.
-
Support multi-tasking concurrency, that mean different privacy protocols can be executed simultaneously.
-
Nodes can be configured with roles, supporting calculation node, data node and result node, and data nodes can be configured in any number according to requirements.
-
Refactoring code to make the code highly cohesive and low coupled.
-
Added SecureExp, SecureSqrt, SecureRsqrt, SecureReciprocaldiv secure operations.
-
Adding audit logs, which are turned off by default and can be turned on according to business scenarios.
-
Efficient third-party io modules can be integrated into Rosetta by implementing specific interfaces.
-
Optimize back-end unit tests to provide more friendly test cases.
-
Some known bugs are fixed.
-
Added
PrivateTextLineDataset
,PrivateInput
secure operations. -
Added
SecureLogicalAnd
,SecureLogicalOr
,SecureLogicalXor
,SecureLogicalNot
secure operations. -
Speedup some backend operations.
-
Uses related python classes such as PrivateTextLineDataset and iterators to load large data sets, thereby reducing memory usage.
-
Some known bugs are fixed.
-
Support 128-bit integer data type, which enables big integer and high precision float-point operations.
-
Refactor python directories of dynamic libraries and use
ROSETTA_MPC_128=ON
to enable 128-bit privacy computation.
-
Refactor the whole architecture so that each layer has a clearer boundary. Especially, an abstract protocol layer is added to decouple cryptographic protocols and TensorFlow Ops, so that TensorFlow does not depend on specific protocols and vise verse.
-
Support custom data types by mainly utilizing
tf.string
. This will enable us to have arbitrary length and format of internal ciphertext. -
Some APIs, such as
activate
, are added and refined to support better control on selection and configuration of backend protocol. In this version, you can configure IP ports, host addresses, save mode flag and protocol precision as JSON string by callingactivate
in your program. -
Some known bugs are fixed.
- Binary installation of TensorFlow is supported.
-
Secure Multi-Party Computation (MPC) is supported, the underlying protocol is SecureNN. This is a
$3$ -party protocol, which is secure in the semi-honest model with honest majority. -
Developers could transfer traditional TensorFlow codes into a privacy-preserving manner with minimal changes (import latticex.rosetta).
-
Static Pass is supported to replace TensorFlow native operations with MPC operations before the execution of the graph.
-
Dynamic Pass is supported to replace TensorFlow native operations with MPC operations when the graph is executed.
-
The following MPC operations and related gradients are supported.
MPC OPs MPC Gradient OPs MpcAdd MpcAddGrad MpcSub MpcSubGrad MpcMul MpcMulGrad MpcDiv MpcDivGrad MpcTrueDiv MpcTrueDivGrad MpcRealDiv MpcRealDivGrad MpcMatMul MpcMatMulGrad MpcSigmoid MpcSigmoidGrad MpcLog MpcLogGrad MpcLog1p MpcLog1pGrad MpcPow MpcPowGrad MpcMax MpcMaxGrad MpcMean MpcMeanGrad MpcRelu MpcReluGrad MpcEqual - MpcLess - MpcGreater - MpcLessEqual - MpcGreaterEqual - MpcSaveV2 - MpcApplyGradientDescentOp - -
Support the combination of supported MPC operations to implement arbitrary models, such as: linear regression model, logistic regression model, etc.
-
Support for specifying the type (plaintext or ciphertext) of model to save;
-
Support for specifying where to save the model (Party0\Party1\Party2\all Parties);
Rosetta has only been extensively tested on Intel X64 machines running Ubuntu 18.04.
This section contains all known problems with the Rosetta system, listed by component. As new problems are discovered, they will be added to these sections.
More details of Rosetta could be found in the documentation fold. If you have any questions or comments about Rosetta, please feel free to contact us via rosetta@latticex.foundation.