Today we are launching a new website for MAIA 🙂
Taking advantage of the occasion, I will explain you how MAIA works. To do this I will copy here some information from the website (this entry will last forever, but the content of the website will be modified in the future…).
IOTA uses Witernitz hash-based cryptography signatures. This has two implications:
- IOTA is resilient to quantum computing.
- An IOTA address should not be reused for payments.
IOTA addresses are 81 trytes long and are created using seeds of 81 trytes long too.
If you want to transfer X iotas from the address Ai to the address B, it is necessary to prove that you are the owner of Ai. How? Signing the transaction with the private key of Ai. Obviously, it is also necessary that Ai has associated at least X iotas.
Since you should not re-sign with the private key of Ai, when you transfer X to B, you must transfer the change Z, Z=(iotas in Ai)-X, to your new address Aj, j > i.
One reason why many of us love IOTAs is because it allows feeless transactions. Do not you think it is great?
Thanks to this, it is possible to make transactions with zero value. In this case, since it is not necessary to sign the transaction we can use the field for the signature of the message to store any other data.
But, what happens if it is necessary to demonstrate the authorship of the data? Well, in this case a possible option is to use MAM, a second layer data communication protocol which adds functionality to emit and access an encrypted data stream.
MAM provides several modes to control visibility and access, in particular it is possible to define private, restricted and public channels. The easiest to understand, and the ones that interest us are the public ones.
In a public channel anybody who knows the address of the channel will be able to read the messages published in it, but only the owner will be able to publish new messages.
To achieve the above, the operation of a public MAM channel is similar to the one used to generate addresses from the seed (similar != the same):
- Create a random seed, S’.
- Initialize index, k=0.
- Create address Sk. Note that S0 is used to create the address of the channel
- Create message k, Mk. It includes:
- The payload.
- The address Sk+1.
- Create a bundle to transfer Mk and sign it using Sk private key.
- To publish a new message, Mk+1:
- Increase k, k=k+1
- Go to 3.
A possible use case for a public MAM channel is to provide the most recent version of a data. To do this, just read the channel until you get the last published message.
If the data is your valid IOTA address, the channel is your MAIA.
That’s all. In case you want to donate some IOTAs to support my work, send them to my
MAIA donation address. (we are making changes to the protocol and sometimes the node that we use is down, so for now it is better that we do not take risks :’) ).
Note that MAIA has its own
MAIA address, so if you want to donate some IOTAs to support the project send them here.