Nano How 1: Seeds and Keys

Guilherme Lawless
Nano Education
Published in
3 min readApr 4, 2019

tl;dr — Nano uses a private/public key system to sign send and receive blocks, therefore ‘Your Keys, Your Nano. Not Your Keys, Not Your Nano’. A seed is a long number which can be used to generate lots of private keys (the same keys each time). ‘xrb/nano’ account addresses are just a public key and a checksum and are linked to the original private key.

What are private and public keys?

Private and Public keys are a vital part of cryptocurrencies and provide a method of ownership of the coins/tokens/assets. They are simply unique, unpredictable large numbers (though often displayed in different formats) which act as ‘keys’ and give access to the user. There is a misconception that your Nano are stored in your wallet; your Nano actually just exists on the network and your wallet contains the keys to allow you to ‘manipulate’ them.

Nano uses a well established standard design of private and public keys. A private key is used to ‘sign’ transactions in the block lattice; this private key has a corresponding public key which is linked directly to an account address (xrb… or nano…, more on this later). The only way to create a transaction on an account’s chain is to sign this block with the private key (see fig. 1) — in Nano this can be to send or receive.

Fig. 1 Signing blocks

As the private key is unique, when combined with the block itself it creates a unique signature. The linked public key can be used to check that the signature is correct — therefore if you try and create a signed block with the wrong private key it is easy for the network to reject the block. This design means that users don’t need to give out their private key for this to be checked, only the corresponding public keys.

Fig. 2 Checking if a signed block is valid

What is a seed?

A seed is just an easy way to manage lots of private keys. Instead of having lots and lots of private keys you have a single long number called a seed and you run this through another algorithm which generates unique private keys (and the corresponding public keys). The private keys are generated in sequence so the 1st will always be 1st, 2nd always be 2nd and so on — this is how you can recover your keys and therefore your Nano with a single seed. You can also generate a specific private key at any time if you know its index.

Fig 3 The seed always produces the same private keys in order

How are xrb/nano account addresses generated?

Your Nano account address (starting with xrb_ or nano_, which are interchangeable) are just your public keys (with a bit of formating) and a checksum. The checksum makes it easy to check that the account address is valid. It is possible to go from a public key to an account and vice-versa. An account address is linked via the public key to the original private key. On the Nano block lattice, each private/public/account has its own blockchain. This is in contrast to some other cryptocurrencies and is the reason why you can reuse your address.

Your Keys, Your Nano. Not Your Keys, Not Your Nano.

--

--