Witness Chain
  • Introduction to Witness Chain
  • Infinity Watch
    • Proof of Location (Mainnet)
      • Introduction
      • Process flow
      • Architecture
      • Run a watchtower!
        • For Partner node runners
          • Running on Akash Cloud
          • Running on SuperNoderz
        • EigenLayer operators
          • Running a PoL Watchtower
          • Witness Chain AVS opt-in guide
        • At-home watchtowers
        • For DePIN/Validator Node provider
      • Demos
      • PoL Research
    • APIs
      • Campaign APIs
        • Key Terminologies
        • Authentication
        • Create Campaign
        • Edit campaign
        • Get Photo feed from campaign
        • Get Campaigns
      • Challenge APIs
        • Overview
        • Getting Started
  • Resources
    • Blogs
      • How Proof of Location Works
      • Redefining Geolocation Compliance: Witness Chain & Predicate
    • 🗞️Research
    • 🎙️Talks and Podcasts
    • 🤝Community
    • ⚖️Smart Contracts
    • File a bug
  • Archive
    • Introduction
    • Proof of Diligence Watchtower Protocol
      • How it works
      • Diligence Watchtower Roadmap
      • Watchtower Architecture
      • Chains watched
      • Smart Contracts
      • Quick Links
      • FAQs
    • For the node operators
      • Node requirements
      • Watchtower setup
        • [ARCHIVE] Mainnet Setup
          • L2 Archive Node Setup guide
        • Holesky Setup
          • L2 Archive Node Setup guide
        • Migration from archive to full node
      • Monitoring
    • Research
    • Keys Management
    • Proof of Bandwidth
      • Introduction
      • Architecture
      • For the node operators
        • Running a PoB Challenger Client
        • Running a PoB Prover Client
      • Demos
      • Research
    • 🤝Watchtower Protocol (Architecture v1)
      • 🗼How it works
      • 📅Watchtower Roadmap
      • 🏦Watchtower Architecture
      • 🔗Chains supported
Powered by GitBook
On this page
  • Challenger Selection Logic for Decentralized Proof of Location
  • Inclusion Criteria
  • Exclusions
  1. Infinity Watch
  2. Proof of Location (Mainnet)

Architecture

PreviousProcess flowNextRun a watchtower!

Last updated 3 months ago

Challenger Selection Logic for Decentralized Proof of Location

This technical note describes the logic and constraints for selecting challenger nodes in a decentralized proof of location (PoL) system. The selection process ensures that challengers are both active and capable of participating in the verification process.

The selection process is currently centralized, carried out by the Challenge Coordinator

Inclusion Criteria

1. Activity Status

  • Challengers must have been active within the last 60 seconds

  • This ensures only currently available nodes are selected for challenges

2. Wallet Requirements

  • All challengers must have an associated wallet address

  • Wallet address is used for:

    • Identity verification

    • Transaction signing

3. IP Address Rules

If Prover with Private IP

  • Only challengers with public IP addresses are eligible

  • This ensures reliable communication paths

  • Prevents potential NAT traversal issues

If Prover with Public IP

  • Both public and private IP challengers are eligible

  • Allows for greater network participation

  • Must still meet other selection criteria

Exclusions

4. Participation Status

  • Paused devices are excluded

    • Prevents selection of maintenance mode devices

    • Allows nodes to opt-out temporarily

  • Currently active challengers are excluded

    • Prevents concurrent challenge participation

    • Ensures resource availability

5. Geographic Constraints

  • Maximum distance: 2000 kilometers from the prover. Determined by the lat, long config

  • Distance calculation:

    • Based on registered coordinates in the initial setup phase

    • Uses great circle distance formula

  • Purpose:

    • Ensures realistic challenge timeframes

    • Reduces network latency impact

    • Maintains challenge credibility

6. Selection Limits

  • Maximum of 128 challengers per challenge

  • Self-selection prevention:

    • Prover cannot be selected as its own challenger

    • Verified via public key comparison