MAM, Masked Authenticated Message, is one of the most remarkable features of IOTA. Let us speculate the world full of small IoT devices, where their small jobs, flow of microscopic data, and nano-payments come and go all over the globe.
IOTA, whose goal is to become the very fundamental layer of such society, is the most provident project of the time that challenges looming paradigm shift. And MAM is its core driving force, which distinguishes IOTA from other distributed ledger by making data flow and transactions much cheaper, more secure and ubiquitous.
However, despite the fact that MAM is immensely important in IOTA and its future, since it is still under development stage, only limited amount of information is available to public with regard to its technical implementation.
This article reveals it in as comprehensible way as possible such that more people could wrap their head around this next technology.
Like Youtube and other media, MAM also has Channel, where owner who publishes and viewers who subscribe meet. Viewers subscribe channel to get data that’s available. And channel owner publishes new data on their own channel. This ownership is implemented and secured in IOTA by Seed. If you tell others your seed, they can publish their whatever messages on your channel. Again, Seed holds all privacy and property right in its 81 trytes. Never, expose it and store securely.
There are three options publishers can choose from when posting new message on their channel. Public: everyone can view, Private: only you (i.e. seed owner) can view, and Restricted: you can specify your viewers by telling them a key. This key is named as sideKey in source code. So, in this article, I’m also going to call this key sideKey. And, for any modes, root, which works as message identifier, is given to viewers so as to find message from tangle.
Public: Masked-message is decrypted using root.
Private: address＝hash(root). Masked message is decrypted usingroot.
Restricted: address＝hash(root). Masked message is decrypted using sideKey.
In IOTA protocol, like many other cryptos, people can attach arbitrary message to transactions. But, it’s feeless for IOTA! However, it limits sender to attach only one message at once and cannot publish consecutive related message with arbitrary context.
For example, if you want to post current temperature data every 15 minutes, without MAM, you have to post every message to same address. Because any distributed ledger including tangle is publicly accessible, it’s easy for attachers to identify such an address that updates every 15 minutes, and interfere it with spam transactions. Even though you decided to change address every time you post new data, you have to keep track of all address. And monitoring them is relatively costly in terms of just storing information online.
MAM, however, thanks to its design of Message Chain, we can protect our channel from any disturbing spam and let us free from managing cumulating addresses.
MAM posts every message to different address, but with verbose information that connects them. On this message chain, one generation to next generation, older message always lead to newer. Its flow is one way.
Basic Structure of MAM Bundle
Bundle of MAM has roughly two sections, Signature section and MAM section, each detail will be explained later in this article. Their data are stored as signatureFragment of transactions in the bundle. Signature is used to MAM’s ownership and thus its validity checking. MAM section stores an actual masked message.
For the latest cryptocurrency news, join our Telegram!