What would be necessary to make a functional physical Anoma coin? By “Anoma coin”, I mean a physical object that can store the private information corresponding to a particular kudos resource (or something else, but kudos is a sufficient example), and display a face value, in a sufficiently secure manner that folks can accept the coin for its face value in most practical situations without actually needing to send the funds (immediately) or even be online. Practically, this means that it must be sufficiently difficult to manipulate the coin (to display a face value different than the actual redemption value) that the benefits of doing so are not worth the cost (which, considering that we’re talking about low-value coins here, may not be a terribly difficult bar to hit).
Suppose a physical design something like the following:
- The coin consists of a small microcircuit encased in metal with a low-power (e-ink?) display on the face of the coin.
- Typically, the display displays the face value (“2 XAN”).
- A phone or similar can send a low-power RF transmission (NFC?) to ask the coin to display the private key (or there could be a small physical button). When the coin receives this request, it displays the private key on the screen and wipes the internal memory of the previous face value. Another signal (or button press) clears the screen, after which the coin will show a face value of 0.
- The coin can then be reloaded by (a) sending another message, which will cause it to display a new public key, (b) sending funds to that public key, and (c) sending a proof to the coin (this is a tricky part, and would by default require a full light client on the coin…).
- Repeat ad infinitum.
Of course, a very skilled user could try to take the coin apart and alter it to display a different face value. However, micromanufacturing and sealing can probably make this quite difficult, and additional logic could be added to allow for spot checks (which require network access), by having the coin support an additional message in response to which it would provide proof-of-funds.
Two tricky questions:
- What kind of computational power is required for the coin to be able to verify new funds upon being loaded? A full light client is a lot – can we reduce this at all?
- How should the coin be powered? Maybe some kind of wireless charging… What happens if it runs out of power? Ideally, the e-ink display can continue showing the face value (but no operations are possible until you charge it a bit again).
Assuming that we can find a way to build this, it seems very appealing to me: reusable, flexible w.r.t. asset and amount, capable of offline-use, and capable of circulation without any network transactions (most of the time) (similar to regular fiat paper currency). The coins can also be manufactured without any face value, avoiding any potential legal concerns around “money issuance” – users can load them as they wish. One could imagine such coins used in concert with a mutual credit application such as Circles or Cycles as a convenient, offline-friendly way to track “lunch debts” or similar which can then be periodically credit-cleared (and the coins reloaded).
/cc @apriori