PowerPool
  • powerpool overview
    • PowerPool
      • PowerPool DAO Story
      • Value Proposition
      • Use Cases
      • CVP Token
      • Vision 2027
    • Blockchain Automation
      • Glossary
    • PowerAgent Stats
    • How to contribute
    • Contracts and Links
  • Power Agent
    • đŸŽ¯PowerAgent features
    • đŸ›ī¸Architecture
      • â„šī¸Agent
      • â„šī¸Keeper
      • â„šī¸Job
        • Full Specification
    • 📜User Guides and Instructions
      • ❓I Want to Automate my Tasks
        • Job Registration Guide
      • ❓I Want to Become a Keeper
    • â„šī¸Scenarios
    • ⌛Old Pages
      • Installation Guide (Old)
        • Prerequisites
        • DAppNode Installation
        • Registering in PowerAgent
        • Installing PowerAgent Package on DAppNode
        • Standalone Installation
        • Chain-specific configs
      • Keeper (Old)
        • Keeper Registration and Update
        • Keeper staking, withdrawal, and deactivation
          • Keeper activation and deactivation in PPAgentV2RANDAO
        • Keeper assignment and release in RanDAO realisation
      • Job (Old)
        • Job Registration & Update
        • Job funds deposition and withdrawal
      • Agent (old)
        • Page
        • Execution
      • Technical Implementation (Old)
        • Hooks and helper functions
        • Errors
        • Modifiers
          • Flags
      • Job Registration Guide (Old)
      • 📑Testnet Rules
      • Slashing
        • Copy of Slashing
      • Task Reward and Gas Compensation
        • Fees and income sources
        • Copy of Task Reward and Gas Compensation
  • PowerPool Incentives
    • PowerPool Points Program
  • Security
    • Bug Bounty
    • Security Audits
  • Research
    • Automation Networks Research
      • Approaches on Keeper Selection
      • On-chain Random Number Generation
      • Keeper Weighing
      • 🌊PowerPool & PowerAgent Automation Network
      • Value Proposition-PowerPool
    • PowerAgent v2.1
      • Keeper Selection
      • Hooks
  • Resources
    • Website
    • Twitter
    • Medium
    • Discord
    • Github
    • Telegram
    • Governance Voting
    • Governance Forum
  • Legacy & Deprecated
    • Index Products
      • $YLA: Yearn Lazy Ape
        • Invest (ZAP) in YLA with low fees
        • Instant YLA mint via USDC
        • $CVP Boost Program
        • Redeem YLA
        • YLA Onsen Liquidity Mining [deprecated]
      • $BSCDEFI: BSC DeFi Pool/Index
        • Guide: Mint $BSCDEFI with $BNB
        • Guide: Multi-Asset $BSCDEFI Mint
        • Guide: PancakeSwap LM Farming
        • Add $BSCDEFI to MetaMask.
        • Redeem $BSCDEFI
      • $ASSY: Aave, SushiSwap, Synthetix, and Yearn Index
        • $CVP Boost Program
        • Underlying Token Staking
      • $PIPT: PowerIndex Pool
      • $YETI: Yearn Ecosystem Index
      • Market Price vs Fair Value
      • About ZAP
    • CVP reward program
      • How to create a DCA flow in Partitura
Powered by GitBook
On this page

Was this helpful?

  1. Research
  2. Automation Networks Research

Keeper Weighing

PreviousOn-chain Random Number GenerationNextPowerPool & PowerAgent Automation Network

Last updated 1 year ago

Was this helpful?

The usual approaches for weighting employs simple algebraic functions, commonly linear or square root. Though simple and rather efficient to compute (e.g., for square root the seven-iteration Newton-Raphson method is common in Solidity mathematical libraries under the sobriquet of the Babylonian method), they have two flaws in that they are unbounded from above and that their derivatives either do not diminish or diminish slowly. This skews the distribution very disproportionately towards the whales, and employment of square-root weighting only dilates the scale at which this occurs. Weighing keepers by this method will yield the probability of keepers with the largest stakes to be chosen almost always, and those with the lesser stake - almost never. We think that it would be highly desirable to find a function that is algebraic, not much more expensive that a square root, possesses a saturation property at a parametrically controlled point, and is Lipschitz. Studying functions that behave sigmoidally (like a hyperbolic tangent), we constructed by demanding a number of properties from the derivative of the weighting rule an algebraic sigmoid function, reading

where the parameters are the scaling factor a, the order n and the shift s. If one restricts n to equal 2, one immediately sees that the cost of computing such a function is not much higher than for the square root (indeed, the naive overhead over the square root consists in five multiplications, a division, and three summations, and can be improved to three multiplications, one summation, and one division). One also finds that this function is Lipschitz, nondecreasing, and saturating at a finite value (it tends to a finite limit at infinity). Moreover, one can easily adjust the parameters to make the function saturate at a demanded value. Though the ability to do so is somewhat impaired at great intervals, such inconveniences can be ameliorated by rescaling the weights relative to the sample maxima.

Other weighing functions are in development, incuding those optimized for extreme gas efficiency.