What are memos?
When Ravencoin was being conceived, one of the goals was to fix all the problems in BTC+Counterparty/OpenAssets. Among those problems was that the meta-data, which is just information about the token, went missing. Why? It was up to the token issuer to hold it forever on a website. A shortened URL to the website was all that went on-chain. These websites would disappear and all that was left was useless and informationless bitly URLs that all looked the same.
The solution used for Ravencoin was to put the meta-data in IPFS (InterPlanetary File System). If you don’t know what that is, then you’re in for a treat. They can describe it better, but the easiest way to think about it is to imagine that BitTorrent and DropBox had a baby. That baby is IPFS. IPFS lets you chuck any file, or even a directory full of files, into IPFS and get back a hash. This hash (IPFS Content Id) is the reference to the file. It can’t change. Why? Because then it wouldn’t reference the file, or if the file changed, the content would have a different hash. This two-way linkage is critical for how Ravencoin uses IPFS.
The hash (Content Id) is embedded into the Ravencoin blockchain when you create an asset. The embedded hash can never change because… well… blockchain. And the content can never change because any change in content and then the hash doesn’t reference that data anymore. So you have an immutable unchangeable record of what your asset represents. Awesome! Except, what if you want to change it? We’ve thought of this. You can leave your asset re-issuable, and then you can re-issue and change the meta-data. In this case, both instances of the meta-data (IPFS hashes) will be available to anyone who really wants to know, but the browsers will only show the last one. If you make your asset not re-issuable, then Ravencoin will prevent another transaction from setting the meta-data thereby guaranteeing that the token’s promise doesn’t change. Making humans fulfill that promise, that’s another thing.
For IPFS to work, somebody (anybody) has to “pin” the files. If thousands of IPFS nodes pin the file, it works best. Right now the community has a swarm of Raspberry Pis running Ravenland’s RavencoinOS that does it. But to be certain, you should pin your important files, or use a service that will do it for you. IPFS has this amazing ability to find the holder of the content a deliver it up via a URL. Here’s an example: https://cloudflare-ipfs.com/ipfs/Qmd286K6pohQcTKYqnS1YhWrCiS4gz7Xi34sdwMe9USZ7u
So, that answers the question of meta-data and why IPFS. The IPFS connection with Ravencoin has been super popular and used in so many interesting and surprising ways, so now the minds that brought you immutable meta-data bring you memos.
Ok, back to the original question. What are memos? Memos are IPFS hashes that can be included with every transaction. This allows you to include information of any type with your transactions and not just RVN transactions, but also with asset transfer transactions, and tagging transactions.
I can’t wait to see what happens.