“Can I get a witness!?”

Helium hotspot witnessing and Proof Of Coverage (PoC) explained.

Witnessing is an end-to-end transaction which validates the coverage another Helium hotspot provides, and fundamentally provides the proof in ‘Proof Of Coverage’.

Witnessing is a critical process on the Helium network which validates claims about network coverage by hotspots by actually testing the coverage. This helps root out those gaming the system.

How does this witnessing work on the Helium network?

Firstly, we need a few definitions:

  • A Challenger – a hotspot ‘somewhere’ on the Helium network – it could be literally anywhere
  • A Challengee or Transmitter – the hotspot that the Challenger challenges
  • Witness – hotspots that see the beacon that the a Challengee or Transmitter sends out

Let’s try and string this whole witnessing process together…

  1. A Challenger somewhere on the network, issues a challenge (a data request) to another hotspot on the network (the Transmitter) via the internet, more or less to ask the Transmitter to prove itself ie. prove the coverage it provides to the Helium network.
  2. The Transmitter then takes that request and broadcasts a ‘beacon‘ to any local hotspots that can ‘hear’ it. A beacon then, is a special data packet containing some of the information sent by the Challenger, and some information from the Transmitter.
  3. Other hotspots in the vicinity (Witnesses) of the Transmitter receive that beacon and process it. The Witnesses then send a Proof of Coverage ‘receipt’ back to the Challenger, confirming what they’ve heard, who they heard it from, when, and other important information to prove the coverage.
  4. The Challenger takes all of these Proof of Coverage receipts, processes them, validates them and then submits the required information to the blockchain.
  5. The Transmitter then receives a reward for the validated, witnessed coverage it has provided


Note that witnessing ISN’T a two-way process. That’s to say that a witness list is developed by the Transmitter of the beacon, and not by the witnesses that received it. The witnesses develop their own witness lists over time via separate transactions. They would need to receive their own challenges and issue beacons of their own, that are witnessed back by the same or other beacons.

Randomised Witnesses

Update: As of 21 September, there’s been an update to the Proof of Coverage method involving randomised witnesses. Previously, the Challenger would accept PoC/witness receipts from the first 25 witnesses to respond and record THAT information to the blockchain – this would unfairly reward those with faster internet connections. NOW the process involves forcing the Challenger to wait for the 20 blocks of data back from the witnesses and then randomises which witnesses are recorded to the blockchain – not simply the fastest to respond.

The ‘first 25 witnesses’ seems a bit of a ways off for us down under(!), but Helium see this as a fairer approach for those in more built up areas to record a more accurate picture of the coverage a hotspot provides.

Hope that helps. Still have questions? Post a comment below.

Cheers!

PS. The featured image is of Sam Brown – a pop artist from the 80s who had a hit with ‘Can I get a witness?’, a remake of Marvin Gaye’s original hit from 1964. 😉

We have a Problem with JSON here:
Either we got no JSON from the API. Or the basenode-parameter is not ok.
Switch on the Debugmode of the Plugin!

Need some help?

Buy me a coffee!?

Buy me a coffee!

If you find this content informative, or if it has helped you out in some way, here’s my Helium wallet address.  A coffee, a beer or a little bit of HNT to offset some of the operating costs is always appreciated! Thanks.