A very simple and straightforward example

You bought a high-end gym annual membership, which itself does not consume. During the membership period, you automatically unlock a certain number of training sessions each day. You must swipe a session to go to the gym. There are restrictions to prevent abuse: sessions can only be used by you and cannot be transferred to friends. If you cancel or resell the annual membership, any unused daily/accumulated sessions will quickly expire on the same day. The gym system strictly keeps track: the total number of sessions you've used in your life + remaining sessions ≤ the maximum total sessions that can be unlocked by the annual membership historically.

You hold 1000 NIGHT and have specified a DUST address.

The system is like a “solar panel,” slowly generating DUST for you every second, for each unit. Today you made a privacy transfer → some DUST was burned. Your DUST balance decreased, but because you still hold NIGHT, it continues to slowly replenish. The next day, you make a few more transfers → more DUST gets burned. How does it prevent double-spending? Every transfer you make must be backed by a real DUST balance. You can't conjure up extra DUST to make two identical transactions, because DUST is consumable + its total amount is strictly capped by the amount of NIGHT you hold. Even if you try to cheat, you first need enough “power” (DUST), and that power is generated in real time, not unlimited. To double-spend: first keep this pile of DUST, then quickly transfer NIGHT to a new address A → then designate a new DUST address B to continue

How does the system prevent this?

When you transfer NIGHT or unlink an old DUST address, the old address's DUST immediately starts decaying linearly. The decay is designed to be fast: if you don't use it quickly, it'll be gone in a few days/weeks. At the same time, the protocol enforces a global constraint: at any moment, the total available + consumed DUST across all linked addresses ≤ the maximum total amount that the NIGHT could have generated over its lifetime. After you switch addresses, the old DUST quickly disappears, and the new address starts accumulating from zero → so there's no way to build up “double” the resources.

#night $NIGHT @MidnightNetwork