I’m building a confidential PoolTogetherDapp where individual deposits and time-weighted balances remain encrypted.
To avoid iterating through every depositor during draw closure, the contract generates randomness using FHE.randEuint32, then evaluates each user’s deposit-weighted eligibility onchain when prize IDs are settled. The eligibility comparison uses the user’s encrypted time-weighted balance.
This follows the PoolTogether V5 model: accounts may win multiple prizes, and a prize opportunity can statistically have zero or multiple winners. Retained yield acts as a reserve against payout variance.
Would this claim-time onchain FHE eligibility model satisfy the requirement for deposit-weighted winner selection over encrypted balances, or must winner addresses be selected and materialized during draw closure?
The draw seed and aggregate pool balance-time are public, while individual balances and outcomes remain encrypted.