What is Monero? Let’s start learning about Monero
After Bitcoin prices are are skyrocketing, people start asking: “Ok with Bitcoin, got it, but what is Monero?“. Monero markets itself as a secure and private currency system that is virtually untraceable. It uses a unique cryptography to keep all transactions 100% untraceable and unlinkable. In a world where transparency has become commonplace, it’s quite easy to understand why a system such as Monero is essential. In this guide, we’re going to walk you through Monero, its mechanics, and the features that make it so special.
Let’s go back to Monero’s simple beginnings
It was back in July 2012 when Bytecoin was launched. It was the first ever actual implementation of CryptoNote, the application layer protocol responsible for the operation of several decentralized currencies. Although it can be considered similar to the application layer in Bitcoin in a number of aspects, there are actually a lot of key differences.
Although Bytecoin was shown to be initially promising, there were a lot of shady stuff going on and around 80% of the coins were already available. Hence, it’s decided to fork the Bytecoin blockchain and call the new coins in the new chain as Bitmonero. This later on changed to Monero which is Esperanto for “coin”. In this Monero blockchain, a single block is mined and added every two-minute interval.
Monero is created by a group of 7 developers, 2 of which are David Latapie and Riccardo Spagni, also called “Fluffypony”. Meanwhile, the other 5 developers have chosen not to reveal any personal information. The project is available as open source and is backed by crowdfunding.
Also interesting to know is the fact thata well known group of musicians such as Marilyn Manson, Mariah Carey, Slayer, G-Eazy, Sia, Weezer, Fallout Boy and more also accept the privacy oriented cryptocurrency.
What is with Monero that makes it incredibly popular and in-demand? What are the special properties given to it by the CryptoNote algorithm? Let’s find out:
#1: You control your currency
With Monero, your currency and transactions are all completely under your own control. Typically, you are the one responsible for your funds. Since your identity is kept private, your transactions will remain hidden from the public.
#2: It’s Fungible
Fungibility is yet another special property that Monero has. If you’re wondering, fungibility is defined by Investopedia as the ability of a good or asset to interchange with other similar goods or assets. So, what does it mean to be fungible and non-fungible?
Let’s assume you borrowed $20 from a friend or family. If you return what you borrowed with another $20 bill, it’s completely okay. In fact, you can also choose to return the borrowed money in 2 $10 dollar bills, and that is also completely fine. This illustrates the dollar as being fungible (although it’s not applicable at all times).
However, if you borrow your friend’s car for a few days and give him another car in return, he will definitely get mad at you. In fact, even if you borrow a black Lamborghini and return with another black Lamborghini, it can’t still be called a deal. In this case, the cars are non-fungible.
What does fungibility have to do with cryptocurrency?
Let’s take a look at Bitcoin. It prides itself as an open ledger. However, as an open ledger, it will also mean any transactions made can be seen by the public. More importantly, every detail involved in a transaction is clearly visible to everyone.
This would mean that in the event you own a Bitcoin that was used in any illegal transaction such as drugs, the details of that transaction will forever be displayed. In essence, it negatively impacts the integrity of your Bitcoin and “taints” it.
Coins that are “tainted” will suffer a decrease in value as compared to those that are “clean”, especially in various Bitcoin exchanges. This rids of fungibility and is one of the commonly used criticisms against Bitcoin. After all, why should you deal with the consequences of the previous owners of your Bitcoin who used it for some illegal transactions?
This is where Monero enters the picture. Basically, all transactions and data are private and secure. This means any transactions performed in your Monero will never be displayed to the public. Moreover, since transaction history is not shown, it simply means the “transaction” trail didn’t exist. Due to this, there’s no such as thing as “tainted” or “clean” Monero, and that’s what makes them fungible!
#3: It is dynamically scalable
The scalability of Bitcoin is a topic that has gained major interest in the crypto circles over the past few months. To give you an idea of the situation, Bitcoin was created with a block size limited to just 1 Mb. Initially, Bitcoin didn’t have any block size limit. However, in an attempt to prevent spam transactions, the size limit has been implemented.
Meanwhile, Monero doesn’t come with any size limit. This makes it possible for malicious miners to take advantage of the system by clogging it with huge blocks. In order to prevent such thing, a block reward penalty is implemented. The penalty works like this:
First, the median size of the latest 100 blocks is taken and is called M100. Now let’s assume that miners have discovered a new block with a particular size and mined it. The size of that new block is called “NBS” or New Block Size. If the NBS > M100, the block reward decreases depending on how much NBS has exceeded M100.
Therefore, if the NBS has a greater value than M100, the block reward is reduced exponentially. Generally, blocks that have a size greater than 2*M100 are not allowed. Meanwhile, blocks that are less than or equal to 60KB won’t suffer from any block reward penalty.
#4: Resistance to ASIC (Application Specific Integrated Circuit)
Before anything else, let me clear things for you. Monero is not actually resistant to ASIC. However, the manufacturing costs for Monero ASICs are so high that it’s not even worth it. Why is that?
Remember when we mentioned that Monero was based on the CryptoNote system making it different from Bitcoin? Well, the hashing algorithm that CryptoNote based systems use is known as the “CryptoNight”.
The CryptoNight was designed to create a fair and more decentralized currency system. Any cryptocurrency that has the CryptoNight can only be mined using CPUs. It is hoped that it can somehow prevent mining pools from being created, therefore resulting in a more even distribution of currency.
So, what exactly makes a CryptoNight ASIC resistant? (These are the answers from “user36303” in a thread in monero.stackexchange.com).
- CryptoNight needs at least 2MB of fast memory to function. This limits the parallelizing hashes by the amount of memory that can fit in a chip while keeping it relatively cheap. In case you’re wondering, 2MB memory actually requires a lot more silicon than the SHA256 circuitry.
- CryptoNight is designed as CPU and GPU friendly mainly because of its structure, which is specifically designed to maximize the use of AES-Ni instruction sets. Basically, some functions done by CryptoNight are already being performed in hardware on modern machines.
- There are speculations of moving Monero from proof of work algorithm into the “Cuckoo Cycle”, another type of proof of work hash. If it does happen, any work done in the R&D of Monero-friendly ASICS will be rendered useless.
#5: The use of multiple keys
One particular aspect of Monero which you might find confusing is its multiple keys. In other cryptocurrencies such as Bitcoin and Ethereum, you only have one public and one private key. In Monero, it gets complicated.
View Keys: Monero has view keys which are public view key and private view key.
- The public view key creates the one-time public address where the funds are sent (we’ll talk more about this later).
- The private view key is used for scanning the blockchain as a means of tracking the funds sent to the receiver.
This is just the overview of the process. The public view key is the one that makes the first part of your Monero Address.
Spend Keys: While the view keys are used mainly for the receiver, the spend key is all about the sender. Like a view key, spend keys are also categorized in public spend key and private spend key.
- The public spend key is the one that assists the sender in ring transactions. It also confirms the key image’s signature (we’ll also talk about it later).
- The private spend key will help in creating the key image that allows a sender to send transactions.
The private spend key will make up the second part of your Monero Address. By the way, a Monero address is a string consisting of 95 characters from your public view and public spend key.
This is quite confusing as of now, but it’s important to keep this information for you to clearly understand the following sections.
How a cryptocurrency transaction works
There are mainly two sides to any transaction: the input and output side. Supposed you are required to send some Bitcoins to your friend, Alex. How will it look like?
In order to perform a transaction, you will need to acquire some Bitcoins which you get from previous transactions. Don’t forget, as I mentioned before, each and every Bitcoin in your account is accounted for through a transaction history. Hence, you can make your outputs from previous transactions as the input for the new one. When we talk about “outputs”, particularly those that are within the ring signature section, we’re referring to the outputs from the old transactions which were converted into the inputs for the new transaction.
The output typically has several numbers of Bitcoins which Alex will receive right after a transaction. Anything that remains is sent back to you. Hence, those remaining change is then converted to your input value for any succeeding transactions in the future.
As a reference, this is what the output side looks like:
Now, this a simple transaction featuring only one output, aside from the change. You can also find transactions that have multiple outputs.
A bitcoin transaction takes place due to public key cryptography. To understand how it works, here’s a flowchart as a guide:
A user will first choose his private key, from which his public key is derived. Afterward, the public key is hashed to come up with a public address which everyone can see. Therefore, if you plan to send some Bitcoins to Alex, you only need to send the funds to his public address.
Now, there exists a major problem with the system. The public address is public, which means they can be seen by everyone. This makes it easier for everyone to know who owns a particular address and even check his entire transaction history and the current amount of Bitcoins owned. Although Bitcoin performs really well as a decentralized cryptocurrency, it performs poorly with it comes to privacy.
According to the team behind Monero, this is referred to as the “Electronic cash triangle”.
The way they put it, an ideal Electronic cash must be:
With Monero, they are trying to meet all 3. The philosophy behind Monero is complete privacy.
- The privacy of the sender, which is possible through Ring Signatures.
- The receiver’s privacy through Stealth Addresses.
- The transaction’s privacy through Ring CT or Ring Confidential Transactions.
#1: Ring Signatures
To fully understand the concept behind ring signatures and how they maintain a sender’s privacy, let us use some real-life examples. When you send a check to someone, you will need to sign it with your signature right? However, anyone who can see your check and your signature will be able to find out that you are the one who sent it.
Now, what if you gather 3 or 4 random people and combine your signatures with them to create a unique signature? Through this, it won’t be possible for anyone to find out if that’s your signature or not.
That is how ring signatures work. Now let’s see its application in Monero:
Suppose you want to send 1000 XMR (Monero) to Alex, how will the system hide your identity through ring signatures? To make things a lot more simple, let’s take a pre-ringct implementation case.
First of all, you will determine your “ring size”. It refers to random outputs that are taken from the blockchain and have the same value to your output (1000 XMR). The bigger your ring size is, the bigger the transaction will be. This, in turn, will lead to higher transaction fees. You will then sign these outputs using your private spend key and send it to the blockchain.
One more thing you have to take note: You don’t need to ask permissions from the owners of the previous transactions just to use the outputs.
Therefore, if you choose a ring size of 5 (it consists of 4 decoy outputs and your own transaction) for an outsider, the transaction will look like this:
In a transaction with ring signatures, any of the decoys have the same tendency as that of the actual output to become an output. This is because anyone who is outside the transaction has no means of knowing who the sender is.
Now, this comes with an issue.
Miners have an important role in preventing any possible case of “double spending” from happening. In case you’re wondering, double spending refers to the spending of the exact same coin on several transactions at once. This problem is avoided with the help of miners. In a blockchain, a transaction will only occur when miners place the transactions in the blocks they mined.
Therefore, if A wants to send 1 Bitcoin to B, while at the same time sends the exact same coin to C, miners will place one transaction inside the block. As such, they can overwrite the other one, which in return keeps double spending from happening. However, this is only possible as long as the miners can figure out the sender and the inputs of the transaction. In Monero, everything is hidden due to ring signatures. So, how is double spending prevented?
The answer is through the use of a more innovative cryptography. Each transaction made in Monero has its own unique key image. Due to the key image being unique in every transaction, all miners have to do is check it out and have a glimpse of whether double spending occurred.
Typically, this is how Monero ensures the privacy of a sender with the use of ring transactions. Up next, we’re going to find out how Monero can protect the identity and information of the receiver through stealth addresses.
#2: Stealth Addresses
One of the major unique selling propositions of Monero is transaction unlinkability. Hence, if someone sends you 100 XMR, anyone outside the transaction has no means of knowing that such amount will arrive at your address. So, if you are to send money to Alex, only you should know that Alex is the receiver of your money.
However, how does Monero ensure Alex’s privacy?
Keep in mind that Alex has two public keys: the public view and public send key. In order to successfully complete a transaction, your wallet will use Alex’s public view and public spend keys to create a unique public key which can only be used once.
A one-time public key (P) is calculated using this formula:
P = H(rA)G + B
H() = refers to the Keccak hashing algorithm that is used by Monero
r = the random scalar you have chosen
A = the public view key of Alex
G = cryptographic constant
B = Alex’s public spend key
The computation will create a one-time public address which is referred to as the “stealth address” in the blockchain where you send your Monero to Alex. The question: how can Alex unlock his Monero from data that is randomly distributed?
Remember that he also has a private spend key?
Using the private spend key, Alex will be able to scan the blockchain and track his transaction. Once he finds his transaction, he can then calculate a corresponding private key to the one-time public key and receive his Monero. Throughout the process, you were able to send Monero to Alex without anyone knowing.
How Key Images are Calculated
Before we go further, let us talk about key images and how they’re calculated.
We now know the formula used to calculate a one-time public key (P). Also, we have the sender’s private spend key as “x”.
i = xH(P)
What you should consider from this equation.
It’s not possible to get the one-time public address (P) from the key image (i); therefore, your identity won’t be exposed. P will always have the same value if it’s hashed, thus H(P) remains the same. Typically, it means that you won’t be able to create multiple “i” values as the “x” is always constant. This is what makes the key image unique during each transaction.
#3: Ring CT (Confidential Transactions)
Now, we have found out that your identity as the sender will remain anonymous as well as the receiver. But how about the transaction? Is it also hidden?
Before Ring CT was introduced, transactions were like this:
If you want to send 15.5 XMR to Alex, the output is broken down into 3 different transactions of 15, 5, and .5. Each of them will have its own ring signatures which are then added to the blockchain.
Although the privacy of the sender is protected, the problem is that it made the transactions visible to the public.
In order to resolve the issue, Ring CT was introduced. This was based on a research conducted by Gregory Maxwell. The RingCT makes sure to hide the transaction amounts within the blockchain. This also means that it’s no longer necessary to break down transaction inputs into denominations. A wallet is now able to pick up ring members from a ring CT output.
So, how does it affect the privacy of any transaction?
Due to the number of options to choose a ring from, not to mention that the value isn’t even known, any transaction becomes completely anonymous.
The said factors work hand in hand to develop a system that ensures complete privacy. However, this wasn’t just enough for the developers of Monero. What they need was another layer of security.
Kovri and I2P
The I2p, which is an acronym for invisible internet project, is a routing system allowing various applications to communicate with each other in complete privacy. Kovri is the implementation of I2P in C++. It’s supposed to be integrated into the code of Monero.
When you use Monero, Kovri will mask your internet traffic; therefore, any transaction you make with Monero won’t be revealed by your passive network monitoring. In fact, it won’t even reveal that you use Monero at all!
For this to work, your Monero traffic is routed and undergoes encryption through the I2P nodes. These nodes act like blind gatekeepers. They know that your messages are going through; however, they have no idea which direction they’re heading to as well as what the messages contain.
It is envisioned that the I2P and Monero will create a symbiotic relationship because of the following:
- Monero can get another layer of protection.
- The number of nodes in the I2P is expected to rise after it is implemented.
Kovri is currently in development and isn’t implemented yet.
Value and transaction cap for Monero
There’s been an impressive growth for Monero, as what this graph illustrates:
As of now, there’s a total of 15,054,759 XMR in circulation with each Monero worth $114.83. This means that the total market cap is at $1,728,798,235.
All in all, there are 18.4 million XMR and the mining is set to continue until May 31, 2022. Afterward, the system has been designed so that it can get fed with 0.3 XMR every minute. This is implemented in order to allow miners to continue their mining efforts without the need to depend on transactions fees once all mineable Moneros are depleted.
Tips in storing Moneros
In order to store Monero the easiest way, you have to go to “mymonero.com”.
- Create your account by clicking “Create a new account”.
- Make sure to record your private login key.
- After successfully creating an account, simply type in your private login key to get your public address.
The process is that simple. You just have to make sure your private login key isn’t revealed to anyone. In the event you forget your key, you can just click on Account then “Review Login Key”. This will show you your private login key.
Differences between Monero and Bitcoin
It’s quite obvious that Monero will eventually get compared to other cryptocurrencies, particularly Bitcoin. Let’s find out how these two coins differ.
Bitcoin has an open transparency system. This means it acts as an open ledger that is accessible by anyone, anywhere. Due to this, anyone can look at all transaction histories. The blockchain is relatively easy to use and access.
On the other hand, Monero is designed to provide complete privacy. All transaction histories are kept secret. Moreover, the process involved is a little completed, and accessing the blockchain might be difficult for beginners.
In this table illustration posted by Linda Xie in her Medium article, she has created a comparison between Monero and Bitcoin.
UPDATE: The current market cap for Bitcoin is $68,242,637,715 while Monero is $1,728,798,235.
What are the pros and cons of Monero?
As we handled the topic “What is Monero?” let us jump over to some of the pros and cons:
- It’s a system that offers a high level of privacy.
- It features transaction unlinkability.
- Transactions can’t be traced.
- It doesn’t have a block size limit and features dynamic scalability.
- The system is fed with a continue 0.3XMR/min supply for the miners to incentivize them even if the supply gets depleted.
- It is transparent only to selected individuals. Anyone who performs transactions in Monero can choose to make them visible to selected individuals by simply giving them their private view key. As such, Monero becomes auditable.
- It has achieved a massive financial growth.
- It has massive potential which is developed by a team of dedicated and talented developers.
- Despite the fact that Monero is designed to be ASIC resistant to avoid centralization, around ~43% of the Monero hash rate is currently owned by 3 mining pools.
- Any transactions are typically larger as compared to other cryptos such as Bitcoin due to encryption.
- Monero isn’t really compatible with various wallets. In fact, you can’t store your Monero in any hardware wallets.
- It’s complicated for beginners, and it’s not yet adopted by the majority.
- As it’s not based on Bitcoin, Monero has complicated issues particularly in adding things to it.
Where Monero will head to
It can’t be denied that the future will get more decentralized. As such, Monero will become an indispensable blockchain due to the amount of privacy it provides. What makes it quite interesting is that it’s one of the few coins that are not based on Bitcoin. It has massive potential to make it big. With the significant growth experienced by Monero, it’s no doubt that a bright future lies ahead. And once Kovri gets implemented, things will become a lot more interesting.
Leave use some comments and let us know your oppinion about Monero!