Verifiable Randomness Documentation

Verifiable Randomness Systems

View the Project on GitHub blockrand-api/blockrand-js

Progressive Probability Curves (Pity Systems)

The Real Problem

Many games promise:

“You are guaranteed a rare item after enough attempts.”

This is commonly called a pity system or progressive probability curve.

But most implementations:

Players cannot prove whether the guarantee was actually honored.

What Is a Progressive Probability Curve?

A progressive probability system increases the chance of success after each failure.

Example:

This reduces long losing streaks.

Used in:

Why Fixed Probability Is Often Not Enough

Pure fixed probability causes extreme variance.

Example: 1% drop rate.

Possible outcomes:

Even if mathematically fair, this feels unfair.

Pity systems reduce perceived unfairness.

The Hidden Trust Problem

In most systems:

This allows silent manipulation:

Players have no audit capability.

What Must Be Verifiable

A fair progressive probability system must expose:

Without these, the guarantee cannot be proven.

Deterministic Implementation Model

A verifiable pity system uses:

At each attempt:

  1. Derive a uniform random value
  2. Compare against probability for that step
  3. Decide success or failure
  4. Reset or increment counter deterministically

Anyone can replay the sequence.

Example Curve Table

Attempt Probability
1–9 0.01
10–19 0.03
20–29 0.08
30 1.00

The curve must be:

Common Implementation Mistakes

Hidden Dynamic Difficulty

Changing probability per user segment:

This creates undisclosed manipulation risk.

Incorrect Counter Handling

Bugs often:

This breaks guarantees.

Using Non-Uniform Random Inputs

If the random value is biased:

Example: Modulo bias increases or decreases real drop rates.

Attack Surface Without Transparency

If pity logic is server-only, operators can:

These changes are almost impossible to detect afterward.

Verifiable Pity System Requirements

A provably fair system should publish:

With these: Any third party can recompute whether the item should have dropped.

UX Benefit

Transparent pity systems:

Some modern games now display:

“Current drop chance: 12%”

But still do not provide verification.

Deterministic Replay Example

Given:

Anyone can:

  1. Recompute random value
  2. Compare with probability
  3. Confirm result

This converts:

“Trust the game” into “Verify the math”.

Regulatory Direction

Several regions are moving toward:

Future systems will likely require:

Design Recommendation

Separate:

  1. Probability definition
  2. Randomness generation
  3. Outcome evaluation

Each must be independently auditable.

Never mix economy logic with RNG logic.

Key Takeaway

Pity systems are designed to improve fairness perception.
But without verifiability, they introduce more power to manipulate outcomes than fixed probability systems.

A trustworthy implementation must make:

All reproducible by anyone.