Just whistle it!

Our signature scheme is inspired by the way dolphins identify each other. Whistles are the core for authentication and authorization on Jeshka. We all have different seed whistles that nobody else in this universe can ever forge.

A seed whistle on Jeshka is a 174 character string of random letters A-Z and the number 9. We can derive everything we’ll ever need to participate in the network from this seed whistle.

For instance, we sign Quests with quest specific private whistles that we derive from our original seed whistle. It is the first thing we do to prove to everyone in the universe that our signatures are authentic and that by consensus on the network the author of the Quest has to be the WhistleID connected to our permanent address, i.e. us.

We can also derive whistles that help us decrypt messages and files. The seed whistle is in the same format as IOTA seeds, so the first 81 characters can just be my IOTA seed, etc, etc. Literally every key we’ll ever need can be derived from this seed whistle.

Our WhistleID is a collection of important data about us. It is connected to all the whistles we generate to sign Quests on network. While we interact on Jeshka, we collect signatures that prove our WhistleID is indeed ours. The most important piece of data in our WhistleID is our unique and human readable permanent address.

Our address inherently describes how we can be found if someone loses sight of us and helps to verify unique one time whistles. Our addresses start with a list of all the parent domains down to our Home Domain from left to right.

For me this is jeshka://universe.vec1.sol1.earth.jeshka.collective.rainbow

and since we are all on the same planet here, most Jeshka apps allow a shorthand version and internally compute the full address, like so: jeshka.collective.rainbow or rainbow@jeshka.collective

This is my receiving address for all Quests directed at me. It can be used to send anything from encrypted text messages, financial transactions to terabytes of data. It’s not to be mixed up with old-timey email addresses.

For more information see:

https://jeshka.readthedocs.io/en/latest/protocol.html#whistles

I’m on a Quest!

Every piece of information that leaves our devices is wrapped up in something we call a Quest. This can be a simple text message, a financial transaction or references to an extremely complicated problem with many different moving parts that you are looking to get solved. Not just theoretical problems that is, we can even start Quests to build and furnish houses!

Imagine a Quest like a box with a set of instructions and in some cases with many different (financial) rewards. Whoever helps to resolve this Quest or parts of it will be able to unlock some of the instructions and some of the rewards from it. Well, maybe that example is not so great. If you can think of a better one, please let me know! ;-)

A regular financial transaction on Jeshka, “bring this amount of this currency that I own to this other person” is always a Quest signed with a unique one time whistle and your unique and permanent address.

Quests resolved in less than 5 seconds.

The five-second rule. If you start a Quest with a target that’s accessible within your economic cluster/domain, and a financial transaction or text message hasn’t resolved (is not confirmed) within 5 seconds*, we consider it failed or rejected.

With a modern laptop, a Quest for a financial transaction usually resolves within 500–2500ms within a given domain/economic cluster.

* refers to the timeframe during which a Quest is considered hot. A Quest is considered hot, starting when it has reached the first peer we connect to. We expect simple Quests to resolve within a maximum of 5000ms from now.

Once a Quest has resolved anywhere on the network it is considered resolved and the countdown stops. It may still take some time until we are informed that it resolved.

For more in-depth technical information see:

https://jeshka.readthedocs.io/en/latest/protocol.html#quest