{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/capc-learning-confidential-and-private-1","title":"CaPC Learning: Confidential and Private Collaborative Learning","arxiv_id":"2102.05188","date":"2021-02-09","proceeding":"ICLR 2021 1","authors":["Christopher A. Choquette-Choo","Natalie Dullerud","Adam Dziedzic","Yunxiang Zhang","Somesh Jha","Nicolas Papernot","Xiao Wang"],"abstract":"Machine learning benefits from large training datasets, which may not always be possible to collect by any single entity, especially when using privacy-sensitive data. In many contexts, such as healthcare and finance, separate parties may wish to collaborate and learn from each other's data but are prevented from doing so due to privacy regulations. Some regulations prevent explicit sharing of data between parties by joining datasets in a central location (confidentiality). Others also limit implicit sharing of data, e.g., through model predictions (privacy). There is currently no method that enables machine learning in such a setting, where both confidentiality and privacy need to be preserved, to prevent both explicit and implicit sharing of data. Federated learning only provides confidentiality, not privacy, since gradients shared still contain private information. Differentially private learning assumes unreasonably large datasets. Furthermore, both of these learning paradigms produce a central model whose architecture was previously agreed upon by all parties rather than enabling collaborative learning where each party learns and improves their own local model. We introduce Confidential and Private Collaborative (CaPC) learning, the first method provably achieving both confidentiality and privacy in a collaborative setting. We leverage secure multi-party computation (MPC), homomorphic encryption (HE), and other techniques in combination with privately aggregated teacher models. We demonstrate how CaPC allows participants to collaborate without having to explicitly join their training sets or train a central model. Each party is able to improve the accuracy and fairness of their model, even in settings where each party has a model that performs well on their own dataset or when datasets are not IID and model architectures are heterogeneous across parties.","url_abs":"https://arxiv.org/abs/2102.05188v2","url_pdf":"https://arxiv.org/pdf/2102.05188v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"capc-learning-confidential-and-private-1","repo_url":"https://github.com/cleverhans-lab/capc-iclr","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"tf","reach":null}],"tasks":[{"task_slug":"fairness","task_name":"Fairness"},{"task_slug":"federated-learning","task_name":"Federated Learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2102.05188","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2102.05188"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/cleverhans-lab/capc-iclr","reach":null}],"summary":{"ran_fixture":1,"ran_draft_wrong":4,"ran_violates":1,"unverified":3},"by_repo_kind":{"official":{"samples":9,"ran":6,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"ca29535886dce2f6","entry":"array_str","repo":"cleverhans-lab/capc-iclr","repo_kind":"official","path":"he_server.py","file_url":"https://github.com/cleverhans-lab/capc-iclr/blob/HEAD/he_server.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ca29535886dce2f6"}},{"code_sha256_prefix":"1aac2bdd0fc20a12","entry":"get_models","repo":"cleverhans-lab/capc-iclr","repo_kind":"official","path":"run_experiment.py","file_url":"https://github.com/cleverhans-lab/capc-iclr/blob/HEAD/run_experiment.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1aac2bdd0fc20a12"}},{"code_sha256_prefix":"4ca6cbd29699e632","entry":"get_rstar_server","repo":"cleverhans-lab/capc-iclr","repo_kind":"official","path":"he_server.py","file_url":"https://github.com/cleverhans-lab/capc-iclr/blob/HEAD/he_server.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4ca6cbd29699e632"}},{"code_sha256_prefix":"b577d0ec0af61398","entry":"load_pb_file","repo":"cleverhans-lab/capc-iclr","repo_kind":"official","path":"he_server.py","file_url":"https://github.com/cleverhans-lab/capc-iclr/blob/HEAD/he_server.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b577d0ec0af61398"}},{"code_sha256_prefix":"9f8912a4ea9ac1d4","entry":"round_array","repo":"cleverhans-lab/capc-iclr","repo_kind":"official","path":"he_server.py","file_url":"https://github.com/cleverhans-lab/capc-iclr/blob/HEAD/he_server.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9f8912a4ea9ac1d4"}},{"code_sha256_prefix":"0766946de8984a9b","entry":"server_config_from_flags","repo":"cleverhans-lab/capc-iclr","repo_kind":"official","path":"he_server.py","file_url":"https://github.com/cleverhans-lab/capc-iclr/blob/HEAD/he_server.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0766946de8984a9b"}},{"code_sha256_prefix":"cdfbf8e12fda903f","entry":"load_mnist_data","repo":"cleverhans-lab/capc-iclr","repo_kind":"official","path":"he_server.py","file_url":"https://github.com/cleverhans-lab/capc-iclr/blob/HEAD/he_server.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"cdfbf8e12fda903f"}},{"code_sha256_prefix":"7c0c257cb3c50d60","entry":"print_nodes","repo":"cleverhans-lab/capc-iclr","repo_kind":"official","path":"he_server.py","file_url":"https://github.com/cleverhans-lab/capc-iclr/blob/HEAD/he_server.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7c0c257cb3c50d60"}},{"code_sha256_prefix":"5656950c8d2c2223","entry":"run_server","repo":"cleverhans-lab/capc-iclr","repo_kind":"official","path":"he_server.py","file_url":"https://github.com/cleverhans-lab/capc-iclr/blob/HEAD/he_server.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5656950c8d2c2223"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}