Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
115 commits
Select commit Hold shift + click to select a range
64193df
First revision
No1-at-all Sep 6, 2024
b4ca75d
first revision
No1-at-all Sep 6, 2024
b001291
Update
No1-at-all Sep 6, 2024
6e87694
Change name
No1-at-all Sep 6, 2024
13025a8
change file name
No1-at-all Sep 6, 2024
0bd802c
added comments
No1-at-all Sep 6, 2024
f9e4df5
Add some more details
No1-at-all Sep 6, 2024
595c5d0
format update
No1-at-all Sep 6, 2024
6d3808b
Fix errors
No1-at-all Sep 6, 2024
e21605d
Add explanations
No1-at-all Sep 8, 2024
1f542ed
Formatting changes
No1-at-all Sep 8, 2024
e63e9a1
Formatting changes
No1-at-all Sep 8, 2024
f0fb602
Spelling
No1-at-all Sep 8, 2024
474c7c9
More explanation
No1-at-all Sep 8, 2024
1335b21
formatting
No1-at-all Sep 8, 2024
929014f
more changes
No1-at-all Sep 8, 2024
785cab0
changes
No1-at-all Sep 8, 2024
25ec0bd
invalidated with reason Redundant Coverage' thx groot!
No1-at-all Sep 8, 2024
8558afe
edits
No1-at-all Sep 8, 2024
55f80f8
minor edits
No1-at-all Sep 8, 2024
3f6af78
minor edits
No1-at-all Sep 8, 2024
7fe6326
Add more explanation
No1-at-all Sep 8, 2024
11d7f3b
explain better
No1-at-all Sep 8, 2024
fd68d13
i keep changing things
No1-at-all Sep 8, 2024
149cb0f
Spelling
No1-at-all Sep 9, 2024
3c58bca
clarifications
No1-at-all Sep 9, 2024
324b6a8
clarifications
No1-at-all Sep 9, 2024
c2ce71a
clarifications and changes
No1-at-all Sep 9, 2024
09ee7fe
format changes
No1-at-all Sep 9, 2024
831d395
clarify
No1-at-all Sep 9, 2024
be0f610
edits
No1-at-all Sep 9, 2024
06997d9
edits
No1-at-all Sep 9, 2024
db958df
clarify
No1-at-all Sep 9, 2024
1b6eb94
edits
No1-at-all Sep 9, 2024
7dcbb84
edits
No1-at-all Sep 10, 2024
8e97773
format changes
No1-at-all Sep 10, 2024
390d7de
issue with format
No1-at-all Sep 10, 2024
fd0efd1
formating
No1-at-all Sep 10, 2024
160cb47
spellin errors
No1-at-all Sep 10, 2024
adf2068
format
No1-at-all Sep 10, 2024
a02af37
edits
No1-at-all Sep 10, 2024
6356e73
format
No1-at-all Sep 10, 2024
a00a130
edit
No1-at-all Sep 10, 2024
b3930fe
edits
No1-at-all Sep 10, 2024
fa06c19
edit
No1-at-all Sep 10, 2024
b6d40b3
edits
No1-at-all Sep 10, 2024
0d62346
edits
No1-at-all Sep 11, 2024
2c916a3
edits
No1-at-all Sep 11, 2024
f2dc496
oops
No1-at-all Sep 11, 2024
dc78b48
edits
No1-at-all Sep 11, 2024
af01bb3
edits
No1-at-all Sep 11, 2024
9492c09
edits
No1-at-all Sep 11, 2024
68da235
edits
No1-at-all Sep 11, 2024
d008bf2
edits
No1-at-all Sep 11, 2024
07cff85
added map, test
No1-at-all Sep 11, 2024
89b26ad
test
No1-at-all Sep 11, 2024
bbebdb1
tst table
No1-at-all Sep 11, 2024
15c85ae
fix
No1-at-all Sep 11, 2024
5528772
fix
No1-at-all Sep 11, 2024
7c1574f
tst
No1-at-all Sep 11, 2024
54260a4
revert back
No1-at-all Sep 11, 2024
04d5f74
fix
No1-at-all Sep 11, 2024
41ecca4
test colors
No1-at-all Sep 11, 2024
ba889dc
oops
No1-at-all Sep 11, 2024
a3234d7
no colors for now
No1-at-all Sep 11, 2024
9df447b
edits
No1-at-all Sep 11, 2024
cca3b1b
fix
No1-at-all Sep 11, 2024
fe9a087
spelling
No1-at-all Sep 11, 2024
e443836
edits
No1-at-all Sep 11, 2024
4e0eef7
edits
No1-at-all Sep 12, 2024
6167bc4
edits
No1-at-all Sep 12, 2024
001a8e8
edits
No1-at-all Sep 12, 2024
1abd970
format
No1-at-all Sep 12, 2024
6ca2aad
spelling
No1-at-all Sep 12, 2024
c3f8c3e
edit
No1-at-all Sep 12, 2024
0f3c568
spelling
No1-at-all Sep 12, 2024
ac60da2
change a word here and there
No1-at-all Sep 12, 2024
546d9fa
edits
No1-at-all Sep 12, 2024
8408a84
edit
No1-at-all Sep 12, 2024
488bfe6
edit
No1-at-all Sep 12, 2024
f60e157
spelling
No1-at-all Sep 12, 2024
acb36a4
edit
No1-at-all Sep 12, 2024
9a6a0cb
edit
No1-at-all Sep 12, 2024
47b8112
oops
No1-at-all Sep 12, 2024
01ef972
edit
No1-at-all Sep 12, 2024
48f68ad
spelling
No1-at-all Sep 12, 2024
38108ef
edit
No1-at-all Sep 12, 2024
3477365
spelling
No1-at-all Sep 12, 2024
811c4c7
Update HIP with existing vs new definitions
waveform06 Sep 12, 2024
dd8164f
Merge pull request #1 from waveform06/patch-48
No1-at-all Sep 12, 2024
a219657
formating
No1-at-all Sep 12, 2024
c460a81
format
No1-at-all Sep 12, 2024
4c9b5b9
format fixes
No1-at-all Sep 12, 2024
c4f9ec9
format
No1-at-all Sep 12, 2024
e924a95
clean up
No1-at-all Sep 12, 2024
a040678
edit
No1-at-all Sep 12, 2024
dd0512d
spelling
No1-at-all Sep 12, 2024
e4693d8
edits
No1-at-all Sep 12, 2024
c3daf6b
update author
No1-at-all Sep 12, 2024
17c6c75
edit
No1-at-all Sep 12, 2024
3dee3e8
edits
No1-at-all Sep 12, 2024
3f01e93
clean up
No1-at-all Sep 12, 2024
64af27a
more cleanup
No1-at-all Sep 12, 2024
f25f38d
change map and table
No1-at-all Sep 12, 2024
6bfa362
Reverted to previous
No1-at-all Sep 12, 2024
1ce77fe
Correct spelling error
No1-at-all Sep 13, 2024
888a899
Added a new alternative
No1-at-all Sep 13, 2024
e2a092d
Edit Alternatives
No1-at-all Sep 13, 2024
0584613
Change title
No1-at-all Oct 2, 2024
619812e
Added new title line
No1-at-all Oct 2, 2024
33e15a4
Remove extra file
No1-at-all Oct 2, 2024
b14b207
fix title line
No1-at-all Oct 2, 2024
fe0019d
Edits suggested by Waveform
No1-at-all Oct 4, 2024
400aa41
spelling
No1-at-all Oct 7, 2024
cd38437
Update 0000-Eliminate-Rewards-for-IOT-Redundant-Coverage.md
waveform06 Oct 16, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
120 changes: 120 additions & 0 deletions 0000-Eliminate-Rewards-for-IOT-Redundant-Coverage.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
# HIP ####: Eliminate Rewards for IOT Redundant Coverage
- Author(s): [@No One At All](https://github.com/No1-at-all) & [@waveform](https://github.com/waveform06)
- Start Date: 2024-09-06
- Category: Economic, Technical
- Original HIP PR:
- Tracking Issue:
- Vote Requirements: veIOT

## Summary
Currently hotspots receive rewards for providing Redundant Coverage where other Hotspots are also rewarded for covering the same are. This proposal intends to only reward the *First to Witness* in areas with *Redundant Coverage* when there are greater than *Maximum Witnesses* to a beacon.
## Motivation
- Hotspots that are less than *Minimum Distance* hexes apart are providing *Redundant Coverage*.
- Disuade people from installing multiple hotspots per location when additional rewards are the motivation.
- Encourage people to spread out to under served areas.
- Some people believe Proof of Coverage rewards are broken and alternatives should be developed.

## Stakeholders
- All IOT Hotspot owners will be affected.
- Will require NOVA involvement and development.

## Detailed Explanation

This proposal intends to make several changes to the existing IOT Proof-of-Coverage implementation.

Rewards for PoC events that have equal to or less than *Maximum Witnesses* (1-14) will not be affected by this HIP.

### Redundant Coverage

After removing any Hotspots due to previous invalidation reasons (e.g, within *Minimum Distance* from the beaconing Hotspot, invalid due to Antenna Classifier, etc.), each witnessing Hotspot is evaluated for whether they are providing *Redundant Coverage*. This *Redundant Coverage* is defined as being within the *Minimum Distance* of another witnessing Hotspot and is the same distance as the minimum *Witness Distance Limit* from a beacon from [HIP 15](https://github.com/helium/HIP/blob/main/0015-beaconing-rewards.md#witness-distance-limits). *Minimum Distance* is currently defined as eight (8) resolution size 11 h3 hexes, approximately 350 meters.

Ordering of evaluation will use the *First to Witness* function defined in [HIP-83](./0083-restore-first-to-witness.md).

Identified redundant witness events will be marked with the invalidation reason "Redundant Coverage" and removed from reward calculation. After removals, the remaining witnesses, up to the *Maximum Witnesses* defined as `14` through the `max_witnesses_per_poc` variable, will be considered for rewards.

The intent is to have all of the Maximum Witnesses to a beacon be greater than or equal to Minimum Distance apart from any other witness. Hotspots less than Minimum Distance apart from any other are invalidated.

### Example Invalidation Function

Given a PoC event with more than *Maximum Witnesses* (15 or more), the following process should be followed to determine validity.

1. Remove and mark all invalid witnesses for other invalidation reasons.
2. Order all witnesses by the *First to Witness* function.
3. For each witnessing Hotspot:
a. Iterate over the later Hotspots to determine whether they are within the *Minimum Distance* from the selected Hotspot.
b. If they are, mark the later Hotspots as ineligible for reward due to *Redundant Coverage*
4. Once *Redundant Coverage* has been evaluated, also mark any Witnesses in excess of *Maximum Witnesses* as ineligible for reward.

Developers are free to implement this logic in a way that optimizes for data processing as the above description implies an `O(n²)` implementation which can be inefficient. The intention of this example is to also confirm that the number of invalidated witnesses do not count towards the total number of witnesses in a PoC event.
### Example map - 3 hotspots in a resolution 11 hex with 7 rings
![3 hotspots res 11 ring 7.png](/files/0000/3-hotspots-res-11-ring-7.png)

### In this scenario ###
**A** and **B** are within *Minimum Distance*, **B** and **C** are within *Minimum Distance*. None of the other witnesses to the beacon are within *Minimum Distance* of each other. There are more than *Maximum Witnesses* to the beacon.

### Example #1
**A** and **B** witness a beacon, but **C** does not.

If **A** is *First to Witness* before **B**, then hotspot **B** is invalidated with reason *Redundant Coverage*. Likewise, if **B** is *First to Witness* **A** is invalidated.

### Example #2
**A**, **B**, and **C** all witness the same beacon.

If **B** were *First to Witness*, then both **A** and **C** would be invalidated with reason *Redundant Coverage*.

### Example #3
**A**, **B**, and **C** all witness the same beacon.


If **A** is the *First to Witness*, this would cause **B** to be invalidated with reason *Redundant Coverage*. **C**, would then be evaluated for *Minimum Distance* and be validated

### Example #4
**A**, **B**, and **C** all witness the same beacon.
As Example 3 but there are other witnesses not shown within *Minimum Distance*.

If **A** is the *First to Witness*, this would cause **B** to be invalidated with reason *Redundant Coverage*. **C**, would be evaluated for *Minimum Distance* and *First to Witness* for further rewards eligability with the other witnesses.

### PoC events with 14 witnesses or less ###
Given a PoC event with less than or equal to *Maximum Witnesses* (14), then all PoC witnesses including A, B and C are eligible for reward.

## Drawbacks
- May encourage false assertions: Many owners may want to falsely assert their location. The current Antenna Classifier may catch many of these, but it also may be possible to update the classifier's parameters to align with this HIP.
- May encourage owners to turn off Hotspots rather than compete: This is an acceptable outcome as the goal of the network should be to align incentives towards expanding network coverage not deploying redundant coverage.

## Rationale and Alternatives
### Decrease the amount of witness redundancy
If two or more hotspots are within *Minimum Distance*, they are more or less in the same place and they are providing *Redundant Coverage*. If those same hotspots witness the same beacon, and they are both to be rewarded according to [HIP 83](https://github.com/helium/HIP/blob/main/0083-restore-first-to-witness.md#detailed-explanation), then they are providing the same coverage as each other and both being paid for it.

Denying earnings for these redundant Hotspots give other Hotspots, that may be slower to witness but provide more unique coverage, an opportunity to compete to be selected and decrease the amount of witness redundancy when there are greater than *Maximum Witnesses* to a beacon.

Multiple Hotspots within *Miniumum Distance* should not be rewarded for providing more or less the same location coverage at more or less the same time.

### Aligns with previous standards
New Hotspot owners are advised to install their hotspots at least 350 meters apart from one another to receive PoC rewards. This is the distance represented by *Minimum Distance*. Hotspots that are asserted less than this distance apart do not earn by witnessing each other's beacons. This HIP extends that concept to only rewarding the *First to Witness* Hotspots which are less than *Minimum Distance* apart and providing *Redundant Coverage*.

Keeping this distance ensures Hotspot deployers do not have a grievance if the minimum distance advice given them over the years changed via this HIP.

### Multiple hotspots per location
Many deployers want to install multiple hotspots per location for various reasons or use cases. This proposal still supports these installations, yet it discourages rewards based reasons by removing PoC rewards for the slower responding hotspots in dense locations.

### Alternatives
#### Antenna Classifier
Changing the Antenna Classifier to Denylist all hotspots in the same location regardless of asserted location would solve some of the same issues as this HIP. It would also Denylist legitimate use cases which require multiple hotspots per location.
#### Split rewards for redundant hotspots
Instead of invalidating witnesses with *Redundant Coverage*, rewards could be split equally among the hotspots. This would not decrease *Redundant Coverage*.
## Unresolved Questions
- Discussion may bring up additional questions..
- Evaluation of possible gaming vector scenarios needs to be considered and likely configurations of gaming deployment.
- Deployers may just reassert Hotspot locations and not physically move them. Denylist classifers may be the way these reasserts are prevented from continuing to receive rewards from faking unique coverage.

## Deployment Impact
- Deployers of Hotspots providing *Redundant Coverage* in dense areas will likely see a reduction in rewards.
- Other Hotspots deployers may see an increase in rewards because of this reduction in rewards for Hotspots rewarded for *Redundant Coverage*.
- This HIP comes with no code and Nova-Labs would be requested to develop the code for this HIP.

## Success Metrics
Success can be measured by
- Observing that hotspots within *Minimum Distance* of each other are rewarded less for witnessing the same beacon if there are more than *Maximum Witnesses* to the beacon.
- A decrease in rewards to overly dense areas of Hotspot deployment.
- An increase in the reassertion of hotspots in dense areas to those less dense measured by evaluating the change in hotspots in larger resolution Hexes.

Binary file added files/0000/3-hotspots-res-11-ring-7.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.