In the past two weeks, we focused on finalizing the rated-list specification, and this part of the project is now complete. On the practical side, our team worked on the simulator for the rated list and random peering. We also obtained the dataset from the codex team and used it for the simulation.
Next week, we plan to delve deeper into the security analysis, which will include examining security assumptions, node security properties, and network simulation assumptions. The details are outlined as follows:
## Main Functions of Rated List Specifications:
The following functions are defined in details
```
@dataclass
class NodeRecord:
node_id: NodeId
children: List[NodeRecord, MAX_CHILDREN]
parents: List[NodeRecord, MAX_PARENTS] # creates a doubly linked list
```
- ScoreKeeper: Data type to keep the score for one DAS query (corresponding to one block)
- RatedListData: Data type to keep all information required to maintain a rated list instance
- compute_descendant_score: To compute node score, which is the main function
- on_get_peers_response: Function that is called whenever we get the peer list of a node.
- on_request_score_update: This function should be called whenever a node sends a request for a data sample to another node found using rated list
- on_response_score_update: This function should be called whenever a node receives a response to a request for a data sample from a node.
## Security Analysis Overview
Next week, we will conduct a comprehensive security analysis focusing on several key areas to ensure the robustness and resilience of our system. This analysis will encompass the following components:
1. Security Assumptions
- Adversary Model: Define the capabilities and limitations of potential adversaries. This includes the types of attacks they can perform (e.g., Sybil attacks, Eclipse attacks, DDoS, etc.), their computational power, and their network reach.
- Trust Assumptions: Specify the assumptions about which entities in the network are trusted, partially trusted, or untrusted. This includes assumptions about the honesty of nodes, the integrity of data transmission, and the reliability of communication channels.
- Cryptographic Assumptions: Outline the cryptographic primitives in use (e.g., hash functions, digital signatures, encryption schemes) and their assumed security properties, such as collision resistance or the infeasibility of certain attacks (e.g., breaking RSA or ECC).
2. Node Security Properties
- Node Authentication and Authorization: Examine the mechanisms in place to ensure that only legitimate nodes can join the network and participate in consensus. This includes methods for authenticating nodes and defining their roles and permissions.
- Node Resilience: Assess the ability of nodes to withstand attacks or failures, including how nodes handle malicious inputs, recover from crashes, and maintain integrity during unexpected conditions.
Data Confidentiality and Integrity: Ensure that data processed or transmitted by nodes is protected from unauthorized access and tampering. This includes the use of encryption, checksums, and digital signatures to secure data.
- Node Communication Security: Analyze the security of communication channels between nodes, focusing on preventing eavesdropping, man-in-the-middle attacks, and ensuring the confidentiality and integrity of messages exchanged within the network.
3. Network Simulation Assumptions
- Network Topology and Dynamics: Define the assumed network topology, such as the structure of connections between nodes (e.g., mesh, star, or hybrid). Include assumptions about network dynamics, such as node churn (i.e., the rate at which nodes join or leave the network) and latency.
- Fault Tolerance: Specify assumptions about the network's ability to tolerate faults, including node failures, network partitioning, and delayed or lost messages. Assess how these faults affect overall network performance and security.
- Attack Simulation: Plan to simulate different types of network attacks, such as DDoS or routing attacks, to evaluate how the network responds under stress and whether the security measures in place are sufficient to mitigate these attacks.
- Consensus and Sybil Resistance: Examine the assumptions underlying the consensus mechanism, particularly its resistance to Sybil attacks (where a single adversary creates multiple fake identities to gain influence). This includes analyzing how consensus protocols handle varying levels of node participation and potential collusion among malicious nodes.
This is a very brief outline, the more details will be expended next week.