About a month ago, @AndrewB , @rake, @hinchy and I considered the requirements for ECASH. Among them, change without access to the internet stood out as core need for ECASH. Something we cannot do today.
@hinchy and I would like to present to you Flexible Phonons:
The purpose of Flexible Phonons is to make it possible for two parties to settle transactions without the internet, using assets both parties trust, and not relying on a 3rd party to issue change.
Though the inspiration for this construct was ECASH, we believe Flexible Phonons can open up a world of possibilities for the protocol:
- Gaming: Debiting hit points, armor damage, mana or experience for characters/equipment/stuff in games.
- Punch Cards: debit coffees, train or bus rides, anything today that has a “loadable card” mechanic
- Cash: Enabling offline exchange for any currency/medium perceived as backed by a trusted party (governments, banks, credit unions)
Flexible Phonons are designed to use most existing applet functionality. We want them to behave much like any other standard phonon when possible.
How are they different from a standard phonon?
- They are attested by the issuer/authority on creation. I call this feature “branding” (like branding a cow) because they are marked by their creators upon creation with a stamp that cannot be faked or changed. Read more about Branded Phonons here.
- Their value is not fixed (like a backed phonon whose asset immutably awaits on chain) but can increment and decrement
- After being instantiated at creation by the issuer, the value cannot be edited by a user. Instead, the phonon’s value can only be updated by the card itself when making payments.
We have prototyped the design, and have workable code for the ‘repl’. You can play with the code yourself with this PR.
See the Technical Change Summaries in the links above to see what may need to be adjusted in the client and applet to support this implementation.
Also, I’ve submitted this for @deviator and @nate to review, but they’ve been super duper busy getting testnet going (yay) so let’s not bombard them with questions now for a few more weeks
Excited for the discussion!