Towards Tokenization and Tethered Tokens

In this online world, how would we be able to spend something electronically, without being online? It works just now, as the Merchant can…

Ref: here

Towards Tokenization and Tethered Tokens

In this online world, how would we be able to spend something electronically, without being online? It works just now, as the Merchant can check with your bank to authorize a transaction. But, let’s say if you are in a place where there is no Internet connection, what could we do? Also, how could we give someone a gift token to redeem something, and then for it to be checked by the provider of the token? Well, this can be solved using an accumulator and witness statements. We will see that we could also create tethered fiat currency tokens, and where we could redeem them without requiring a credit card.

A gift token

Let’s say you received a gift token for your Christmas from ToysRGifts.

With this, ToysRGifts creates an electronic token for you with a number of preloaded gift IDs. For example, they could create one with a GID of “6e87a2f7–5d9a-485a-b7fa-3c746d9040d8” and match it to a $100 gift. All of the preloaded gift tokens could then then loaded onto an electronic token and created as an accumulator value. This accumulator adds data together but does not reveal any of the details of the data contained in the accumulator. Thus it will not be possible for us or the seller knowing the gift IDs. When you go to the store, you purchase the goods and the seller then passes the accumulator value to ToysRGifts.

Through the magic of cryptography, and with the secret key of ToysRGifts, they can then create a witness statement that proves that the token contains one of their gift IDs. They will then pay the seller, and mark the gift ID as used. In fact, if you are using an electronic wallet, ToysRGifts could remove the gift ID, and update the accumulator value. If the same ID is presented again, there will be no proof of the existance of the GiftID. In this way we can create a lock on any double spend (and which is one of the core problems in any financial system).

The model we present here is a way that we could create fiat currency tokens, and then add them to an electronic wallet. My bank could make debit my account for pre-paid tokens, and then allocate fiat currency value onto the token. When spent, the bank can then debit the account for the amount spent. Each token, though, would have a limit on its use, and which has been reserved for a spend. If not used, the user can then just redeem back to the bank.

Creating the accumulator

I will now example the method used for accumulators and the witnessing of the gift ID. First, let’s look at the adding of data onto an accumulator:

Next, we need to provide a witness statement on the presence of the GiftID in the token:

If it all checks out, Bob leaves with his gift, and the seller is happy. Here is the running code using Kryptology:

https://asecuritysite.com/kryptology/witness

We can also, remove the GiftID from the accumulator once it has been spent, and then restore the new accumulator in the user’s wallet.

I appreciate that this may be a bit difficult to follow, but if you are interested in pairing-based cryptography, try here:

https://asecuritysite.com/pairing/

The maths are really interesting, and I’ve sketched them out here: