Data retrieval slashing
This section of the documentation will explore the slashing mechanism used on DA Nodes during the data retrieval process. Every node in the DAC has a stake of 32 ETH, which can be reduced (either partially or completely) if it engages in misconduct. The implementation of the slashing mechanism guarantees that every node is motivated to engage in honest participation, discourages disruptive actions, and preserves the network's integrity by ensuring the availability of data even in adversarial situations.
For data retrieval slashing, we consider an adversarial that controls nodes, which are therefore also considered non-responsive. will try to bribe the remaining node in to fail the data retrieval process. The slashing mechanism considers the economic power of and will ensure the data retrieval process will succeed.
The penalty
The slashing mechanism is triggered by a client making a data retrieval request over the network. In a highlevel overview, the steps are as follows:
Client Request
The client sends its query to all DAC nodes over the network.
Response evaluation
If at least nodes respond, the client can reconstruct the original data. Here, represents the minimum number of encoded chunks (data points) required to accurately reconstruct the original data using Polynomial interpolation.
The data is encoded as a polynomial of degree . The value corresponds to the number of original data points, which equals the degree of the polynomial plus one. To reconstruct , the client must retrieve at least distinct encoded chunks , where each .
The original polynomial can be reconstructed using interpolation with the following formula:
In this formula:
- are the distinct evaluation points.
- are the corresponding encoded values.
- The product term forms the Lagrange basis polynomials.
Since each node stores a determenistic unique evaluation of the polynomial, the client has sufficient information to reconstruct the original polynomial , thereby recovering the original data and terminating the protocol if enough nodes respond.
Smart contract request
If the client does not received responses by a certain timeout, it escelates the procedure by posting the query on-chain in an Ethereum smart contract. The client must make a base payment to deter spamming, which can be 0 if the gas fee is high enough.
Fair on-chain response evaluation
To avoid slashing or penalties, all nodes respond to the query with their assigned data chunk within a certain time window.
Note: as the network grows in size, step 4 will require to use a determenistic random function to query only a subset of node to avoid spamming the blockchain and DA network. Additionally, there will be a veto contract that can veto slashing when a malicous client is attempting to force slashing by spamming the blockchain.
Slashing conditions
Nodes that respond to the on-chain request will never be slashed or penalized, noting that an invalid response is treated as a non-response. There are 2 conditions under which a node can be slashed. In below conditions, let be the nodes that respond with a valid response.
- The node does not respond, but enough other nodes did so that
- In this case, the fault of the non-responding node is likely not adversarial and does not pose a significant risk to the data retrieval process. Therefore, it will only be penalized for a small amount. At genesis, this will equal , which is the reward of the attested chunk.
- The node does not respond, and not enough other nodes responded so that
- This case is more severe and could indicate a large scale attack on the network. This therefore also requires a harsher penalty.
Considerations
When fewer than nodes respond to the client's request and thereby jeopordize data availability, it suggests that adversial controls a substantial fraction of the total nodes. Specifically, if , it indicates that the economic power of is so substantial, it prevents the honest nodes from being able to achieve the threshold.
Calculating the probability of complete slashing
To better understand that the slashing mechanism ensure robustness of the DA network against these sort of adversarial attacks, we will calculate the probality that an adversarial can successfully bribe enough nodes and control the network. This probability involves the economic power required to both stake behind enough nodes and to bribe enough remaining honest nodes.
The probability of an adversary achieving success is approximately:
is simply the economic power to bribe nodes minus the amount to control nodes with staking:
refers to the minimal amount of honest involvement and economic incentives necessary to withstand bribery attempts and maintain the security of the data retrieval process against adversarial attacks. It is written as , where is the number of honest nodes remaining and the total value at stake for each node, minus the cost of participating the game: .
The equation provides the relationship between the adversary’s budget, the number of adversary-controlled nodes, and the economic incentives that influence the likelihood of a successful attack.
The adversary must not only have a high stake at risk to control enough nodes, but also have sufficient economic power to bribe enough honest nodes so that can not be reached. With a significant enough and , attempting an adversary attack on the DA becomes economically infeasible for . Rational nodes are incentivized not to accept bribes considering is large and the assets at risk are therefore large too.
Given this equation, nodes can be confident that complete slashing is impossible to happen when participating honestly, extremly unlikely to happen in the event of a node malfunction, and virtually impossible as the network grows. Clients can be certain that their data availability is guaranteed, even if not all nodes participate in the query game.
No reward on responses & avoiding on-chain queries
DA Nodes that respond honestly to a query request on-chain are not rewarded or reimbursed for the gas fee. This ensures that the nodes prefer to respond over the network, which provides the client with a low-cost, low-latency method of requesting data. As seen before, nodes are incentivized to respond to on-chain queries, as failing to do so will lead to penalties.
Whistleblower rewards
When a client creates an on-chain game where , the client is rewarded with a whistleblower fee, which is deducted from the slashed amount. The whistleblower fee is small enough to prevent self-slashing, but large enough to incentivize clients to police the network, so that the reward is calculated as:
Preventing spam
The on-chain game should only be triggered when a client does not receive a result over the network. To prevent the DA nodes from incurring large gas fee costs from repeated unnecessary games, the client is obliged to pay a fee when creating a game. This fee is large enough to deter clients from making unnecessary query requests, but smaller than the whistleblower reward as to not prevent anyone from policing the network.