-
Notifications
You must be signed in to change notification settings - Fork 9
Description
Problem
The Sampling Protocol of the Fisherman (according to the spec) is able to be manipulated by ServiceNodes. According to the spec, there is a Consistent Sampling Delay between every benchmark/sample of all the service nodes in a session. An attacker could monitor his incoming requests, figure out the delay, and only give service to the Fisherman instead of to all applications.
The aim of the Sampling Protocol is to be discreet, so ServiceNodes do not know which requests are from the Fisherman or an application, and they are forced to give equal service to all requests. However, this is not the case.
How to attack the current system
- Wait till two or more of your nodes are in the same session.
- Monitor all incoming requests and send them to a shared server
- Identify requests that came in at the same time
- Identify another set of requests that came in at the same time
- Subtract and determine the consistent sampling delay
- Ignore all other requests between now +
Consistent Sampling Delay
Solution
Change the Consistent Sampling Delay to a Random Sampling Delay, created from a private source of randomness.
Origin Document
https://docs.pokt.network/v1/utility#3.3-fisherman-protocol
Creator: DragonDmoney (Pierre)
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
