Monero (XMR)

From Trezor Wiki
Jump to: navigation, search


Monero.png
Monero logo

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[edit]

Update your Trezor Model T to the latest firmware using beta-wallet.trezor.io, It is recommended to check your seed (dry-run) before update.

Monero GUI[edit]

1. Download the latest Monero GUI from https://www.getmonero.org/downloads/.

2. Run monerod to sync your Monero blockchain.


Note It is also possible to run Monero Wallet using remote nodes.


3. Run monero-wallet-gui.

4. Choose "Create a new wallet from hardware"

Monero1.png


5. If you used your Trezor device with Monero client before choose "Restore a wallet from device. Use this if you used your hardware wallet before." (Use restore height 1692975). Otherwise, choose "Create a new wallet from device".

Choose Trezor from the dropdown menu at the bottom.

Monero2.png


6. If enabled, type in your Passphrase and confirm exporting watch-only credentials on your device.

7. Give your wallet a password. In this step, you're required to create a password to access your wallet. Please remember that this password cannot be recovered and you will be using it every time during signing in or sending transactions via Monero GUI. In case you forget the password, you can recover your wallet using your Trezor device.

Monero3.png


8. If you are using your node, choose "Start a node automatically in background (recommended)". If you want to use remote node choose "Connect to a remote node".

Monero4.png


9. You are all set up! You can now send your moneroj using Monero GUI wallet. Please check your Trezor device during the syncing, as you might be prompted to proceed with the refresh.

Monero5.png

See also How do I generate a trezor monero wallet with the gui monero wallet

Monero CLI[edit]

1. Download the latest Command-Line Tools Only release from https://www.getmonero.org/downloads/

2. Synchronize the monero blockchain using following commands:

Windows:

monerod.exe

Linux:

./monerod

3. Plug in your Trezor device, run Monero Wallet - Command line tools and generate your Trezor monero wallet:

Windows:

monero-wallet-cli.exe --hw-device Trezor --generate-from-device <name of your wallet> --restore-height 1692975 

Linux:

./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.

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

See also:

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!