Monero (XMR)

From Trezor Wiki
Jump to: navigation, search


Monero.png

Monero (XMR) is an open-source cryptocurrency based on CryptoNote protocol that focuses on privacy, fungibility and decentralization. Fungibility is a simple property of money such that there are no differences between two amounts of the same value.

Overview[edit]

Firmware (device) support Trezor Model T 2.0.8
Available in Trezor Wallet? No
Third-party wallets Monero-Wallet-cli

Monero in Trezor[edit]

Trezor protocol is in line with Monero cold-wallet signing protocol. This protocol was already present in Monero so it was the best approach to integrate Trezor. Trezor implementation works with Bulletproofs. If the number of outputs is 2 (vast majority of transactions), Trezor does all of the Bulletproofs calculations. For more than 2 outputs, the calculation is offloaded to host (in the wallet) and then Trezor device performs a check of the calculation. There is no Trezor limit for number of inputs/outputs so these are the same as in Monero (16 for both).

How to use Monero with Trezor on Linux[edit]

Note This guide is for advanced users and it is the same guide as described in Monero GitHub, it is recommended to wait for next Monero release which will include Trezor support.


1. Update your Trezor Model T to firmware 2.0.10 using beta-wallet.trezor.io, be sure to have your seed with you during update, it is also recommended to check your seed (dry-run) before update.

2. Update and install all dependencies:

sudo apt update && sudo apt install build-essential cmake pkg-config libboost-all-dev libssl-dev libzmq3-dev libunbound-dev libsodium-dev libunwind8-dev liblzma-dev libreadline6-dev libldns-dev libexpat1-dev doxygen graphviz libpgm-dev

3. Clone monero:

git clone --recursive https://github.com/monero-project/monero

4. Go to monero directory and run:

git submodule init && git submodule update
git checkout master

5. Build:

make

(slower build with only one cpu)

make -j<number of cores to use>

(faster using multiple cores)

6. Go to build/Linux/master/release/bin directory.

7. Synchronize the monero blockchain using ./monerod command.

8. Run Monero Wallet - Command line tools:

./monero-wallet-cli --hw-device Trezor --generate-from-device ./<name of your wallet> --restore-height 1692975 
ImportantIf you are recovering a Monero wallet with a Trezor device which has already been used with Monero, you need to use the hw_key_images_sync command after wallet sync to prevent double spending, which the monerod deamon would reject.

9. After creating your wallet you can try to receive and send moneroj with Trezor device.

For more information about OS X and Windows installation guide please see also Monero GitHub page and this blog.

Technology[edit]

CryptoNote[edit]

CryptoNote protocol was introduced by an unknown person or group of people under the name Nicolas van Saberhagen and published in 2013. It brought several improvements such as:

  • blockchain obfuscation, confidential transactions
  • self-adjusting variables (eg., block size or fees)
  • anonymous transactions and ring signatures

Monero is fork of Bytecoin which was the first cryptocurrency which implemented Cryptonote protocol.

Ring signatures[edit]

In cryptography, a ring signature is a type of digital signature that can be performed by any member of a group of users that each have keys. Therefore, a message signed with a ring signature is endorsed by someone in a particular group of people. One of the security properties of a ring signature is that it should be computationally infeasible to determine which of the group members' keys was used to produce the signature.

Since 10 January 2017, Monero uses Ring CT technology which not only hides the amount being sent, but also hides the funds from the public blockchain, only letting the recipient and the sender know how much was sent.

Stealth addresses[edit]

Stealth addresses are an important part of Monero inherent privacy. They allow and require the sender to create random one-time addresses for every transaction on behalf of the recipient. The recipient can publish just one address, yet have all of his/her incoming payments go to unique addresses on the blockchain, where they cannot be linked back to either the recipient's published address or any other addresses of the transaction. By using stealth addresses, only the sender and receiver can determine where a payment was sent.

Tail emission[edit]

Monero does not have a cap in total supply like Bitcoin, which means that Monero block rewards will never drop to zero. Block rewards will gradually drop until tail emission commences at the end of May 2022. At this point, rewards will be fixed at 0.6 XMR per block.

Kovri[edit]

Kovri is a C++ implementation of the I2P network. Kovri is currently in heavy, active development and not yet integrated with Monero.

Kovri will protect Monero users from:

  • Node partitioning attacks
  • Associations between a particular txid and your IP address
  • Mining or running a node in highly adversarial environments
  • Metadata leakage (e.g., OpenAlias lookups)

Bulletproofs[edit]

Monero confidential transactions hide the amounts involved. To ensure that inputs and outputs balance properly in a way that can be verified by anyone, monero uses commitments that have useful algebraic properties. It is also needed to ensure that each amount is a positive value that will not risk an overflow, and this is where range proofs come in. A range proof allows anyone to verify that a commitment represents an amount within a specified range, without revealing anything else about its value. Range proofs scaled linearly in size with the number of outputs and the number of bits in the range meaning they made up the bulk of a transaction size. Furthermore, this means that a transaction with multiple outputs needs multiple separate range proofs.

Bulletproofs are a new non-interactive zero-knowledge proof protocol with very short proofs and without a trusted setup. The size of a bulletproof increases only logarithmically with both the size of the range and the number of outputs. This technology brought space savings, better verification times, and lower fees.

Like Trezor? Get one here!