# EPF Cohort 5 - Week 17
Date: 07/10/2024
### Updates
1. Propotional Custody is designed by adding a `custody_size` parameter
2. Added a sybil attacks to the simulator
3. The spec markdown file can now be directly converted into a node implementation
4. Couldn't start on the score function of GossipSubv1.1. It is a race against time
> Note: Most of the work this week was done by Hopinheimer I just worked on the markdown converter, therefore I wouldn't be able to give any anecdotes. Except, I have a new testcase that might require altering the simulator design a bit.
5. Opened a PR on nimbus-eth2 for their faulty trustedNodeSync. View it [here](https://github.com/status-im/nimbus-eth2/pull/6598)
6. Opened another PR for doing some housekeeping in nimbus-eth1. View it [here](https://github.com/status-im/nimbus-eth1/pull/2704)
### A Probable Edge Case
The descendant score is derived as number of descendants contacted versus number of descendants replied. For node `A` if none of its descendants are contacted it has a score of 1.0. However, if just one of its descendants, say node `Z`, is contacted and does not reply the entire subtree(above node `Z`) will have a score of 0.
There are two arguments that try to eliminate this problem,
1. Other honest nodes in the subtree can contribute to a higher score -> This argument doesn't hold fully when the number of samples requested per slot is far lesser than the number of nodes in the network (I am taking a educated guess here, but I think this is true in the current state of DAS)
2. compute_node_score function uses the "best path score" and if honest nodes are present in other subtrees then this should not be a problem -> If just one malicious node can downscore the entire subtree (above it) then all it would have to do is maintain a constant set of neighbors to make sure the neighbors are always evicted.
Moreover, even if the above arguments are not falsified, the neighbors and ancestors of a malicious node would atleast suffer eviction till other nodes in the subtree are contacted for samples.
I might have missed something obvious and I hope that is the case. However, if the reasoning is sound then we probably need a mechanism to take into account the neutral scores of descendants that are not yet contacted. Here, failing to reply results in negative scoring, not being contacted is score 0 and succesful requests results in positive scoring.
### Next Steps
1. Finish implementing score function of the existing gossip sub network and get some comparable results from the simulator. Once this is done we will have a tangible deliverable for DevCon.