{"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/arxiv-2606-27622","title":"FoggyTrust: Robust Federated Learning with Hierarchical Trust Networks","arxiv_id":"2606.27622","date":"2026-06-26","proceeding":null,"authors":["Emmanuel Rassou","Tomas Gonzalez"],"abstract":"Byzantine-robust federated learning seeks to protect distributed model training from malicious or corrupted clients without requiring access to their private data. FLTrust addresses this challenge by introducing a trusted server-side root dataset that assigns trust scores to client updates for more robust aggregation. In this work, we propose FOGGYTRUST, a hierarchical extension of FLTrust that localizes trust computation to fog nodes, allowing the framework to better handle globally heterogeneous data while preserving robustness within locally homogeneous client groups. We further show that this two-level architecture can simultaneously address distribution mismatch in trust estimation and client drift across groups by combining local trust-based aggregation with heterogeneity-aware global optimizers such as FedAdam and SCAFFOLD. Across benchmark datasets, FOGGYTRUST achieves its strongest gains on more challenging heterogeneous settings, particularly on CIFAR-10 under Krum and Trim attacks, where it achieves an over 50% improvement over FLTrust. We also test FOGGYTRUST in a real-world safari dataset to show the promise of hierarchical trust networks for robust federated learning in socially impactful, safety-critical settings such as distributed wildlife monitoring.","url_abs":"https://arxiv.org/abs/2606.27622","url_pdf":"https://arxiv.org/pdf/2606.27622","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2606.27622","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2606.27622"}},"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":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/emmanuel2406/FoggyTrust","reach":null}],"summary":{"ran":8,"unverified":2},"by_repo_kind":{"found_in_text":{"samples":10,"ran":8,"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":10,"samples":[{"code_sha256_prefix":"bc7e56381a838844","entry":"add_snapshot_safari_args","repo":"emmanuel2406/FoggyTrust","repo_kind":"found_in_text","path":"safari_helper.py","file_url":"https://github.com/emmanuel2406/FoggyTrust/blob/HEAD/safari_helper.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"bc7e56381a838844"}},{"code_sha256_prefix":"cb1a2e6f92cd562c","entry":"checkpoint_path_for_iteration","repo":"emmanuel2406/FoggyTrust","repo_kind":"found_in_text","path":"checkpoint_helper.py","file_url":"https://github.com/emmanuel2406/FoggyTrust/blob/HEAD/checkpoint_helper.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"cb1a2e6f92cd562c"}},{"code_sha256_prefix":"25db493e4140071c","entry":"checkpoint_schedule","repo":"emmanuel2406/FoggyTrust","repo_kind":"found_in_text","path":"checkpoint_helper.py","file_url":"https://github.com/emmanuel2406/FoggyTrust/blob/HEAD/checkpoint_helper.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"25db493e4140071c"}},{"code_sha256_prefix":"5aecb0c5e88721ff","entry":"flipped_labels_fltrust","repo":"emmanuel2406/FoggyTrust","repo_kind":"found_in_text","path":"byzantine.py","file_url":"https://github.com/emmanuel2406/FoggyTrust/blob/HEAD/byzantine.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5aecb0c5e88721ff"}},{"code_sha256_prefix":"59d7ac2645a31dc3","entry":"no_byz","repo":"emmanuel2406/FoggyTrust","repo_kind":"found_in_text","path":"byzantine.py","file_url":"https://github.com/emmanuel2406/FoggyTrust/blob/HEAD/byzantine.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"59d7ac2645a31dc3"}},{"code_sha256_prefix":"a5d83cdce425e61a","entry":"parse_accuracy_log","repo":"emmanuel2406/FoggyTrust","repo_kind":"found_in_text","path":"plotting/plot_accuracy.py","file_url":"https://github.com/emmanuel2406/FoggyTrust/blob/HEAD/plotting/plot_accuracy.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a5d83cdce425e61a"}},{"code_sha256_prefix":"948250df2493bb99","entry":"resolve_model_type","repo":"emmanuel2406/FoggyTrust","repo_kind":"found_in_text","path":"model_helper.py","file_url":"https://github.com/emmanuel2406/FoggyTrust/blob/HEAD/model_helper.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"948250df2493bb99"}},{"code_sha256_prefix":"8d4f05bef3da7d8d","entry":"state_checkpoint_path","repo":"emmanuel2406/FoggyTrust","repo_kind":"found_in_text","path":"checkpoint_helper.py","file_url":"https://github.com/emmanuel2406/FoggyTrust/blob/HEAD/checkpoint_helper.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8d4f05bef3da7d8d"}},{"code_sha256_prefix":"0c8bd387109cd4f3","entry":"get_resnet20","repo":"emmanuel2406/FoggyTrust","repo_kind":"found_in_text","path":"model_helper.py","file_url":"https://github.com/emmanuel2406/FoggyTrust/blob/HEAD/model_helper.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"0c8bd387109cd4f3"}},{"code_sha256_prefix":"616acac070010e5b","entry":"load_snapshot_manifest","repo":"emmanuel2406/FoggyTrust","repo_kind":"found_in_text","path":"safari_helper.py","file_url":"https://github.com/emmanuel2406/FoggyTrust/blob/HEAD/safari_helper.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"616acac070010e5b"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.LG","source":"arxiv_2026.jsonl"},"syntology_extracted_results":null}