
Best practices for using the IOTA light wallet safely
IOTA is really a protocol created for use by IoT gadgets. The unit will happily follow any guidelines to utilize the protocol strictly, optimally and secure. Sadly, humans are not so excellent at following guidelines -if they understand them at all- plus they often have no notion of the results of certain actions. THEREFORE I decided to write a listing of guidelines and describe the why in this post.
Here will be the rules:
Guideline 1: NEVER generate your seed online.
Principle 2: NEVER provide your seed to anyone.
Guideline 3: ALWAYS shop a copy of one’s seed some place safe
Principle 4: NEVER re-use an address. NEVER. NO exceptions.
Guideline 5: ALWAYS attach a fresh receive tackle to the Tangle.
Principle 6: ALWAYS await a transaction to end up being confirmed before sending other things.
And listed below are the whys:
— — — —
Rule 1–3 all want to do together with your seed. The seed generally is the master crucial to your wallet. Whoever gets the key settings the wallet and the iotas therein. So it’s very important to truly have a few best procedures that assist you to keep your seed secure.
Guideline 1: NEVER generate your seed online.
Because iotas have value there are a great number of nasty people away there ready to try out and relieve you of one’s iota stash. A proven way they do that is by offering to create a seed for you personally. Don’t drop for it!!! Most, or even all on-line seed generators are created to create your seed vulnerable. They either will duplicate the seed or generate a seed from the limited amount of random seeds. So when we have noticed in the start of January many of them have plenty of patience. Suddenly over 4 million USD really worth of iotas obtained stolen by the operator of a favorite seed generator.
Generating the seed isn’t difficult. You merely need to know the proper method to use. Listed below are 3 methods to do-it-yourself:
Method 1. Constitute a string of random, unrelated phrases. Mix in weird phrases or foreign words. Actually, that’s the easiest and safest strategy to use. With 81 characters it really is impossible for anybody to guess them so long as you maintain them unrelated.
Illustration (spaces are for readability just): Floral BEER JE MAINTIENDRAI CLOCKWORK SHELDON ELDERBERRIES BLITZKRIEG OVENMITT AUTOCORRUPT
Method 2. Work with a individual finger and slowly kind 81 random letters. Simply let your finger bypass and around and sometimes ignore it down. Purposely trying to ensure it is random is okay. Just stay away from patterns, which explains why quickly mashing fingertips on the keyboard isn’t a good concept. If you want, it is possible to throw a 9 in occasionally for good measure. When you have 81 of these, replace some random letters with additional random letters, just to be sure you split any patters you unwittingly utilized.
Example: KUWVQZOVFENI9GTESKPLJKMVFTETTKGSWQBMOPHTJLOHRRGKOKNHKKECDSKNSFFHGKBPYU9NVDL9ECVMB
Method 3: Caution: This technique is only for those who actually know what they’re doing and what What i’m saying is. There are a local/offline protected random generators available with many major os’s. I won’t get into detail here to avoid the noob users from with them. You really wish to know what you are really doing. Mac and Linux for instance offer /dev/urandom. If this will not mean anything for you, just use method one or two 2 instead.
Principle 2: NEVER provide your seed to anyone.
Again, there are several predators out there. Many of them will pretend to be area of the IOTA base and offer to assist you if you require help with a issue in any of the assist channels.
Be paranoid within those cases where this type of person requests your seed. As soon as you give it they’ll quickly empty your wallet. Many problems you will encounter could be solved without ever quitting your seed to anyone.
Guideline 3: ALWAYS store a duplicate of one’s seed some place safe
Protect yourself from ever losing your iotas. Keep a number of copies of one’s seed in safe places. Be sure that it is not possible for anyone to get a fast peek at them. Remember, cellular devices are usually cameras and snapping an image of your seed is quite easily done. Best to individual your seed in two components and keep them stored from each other. I would recommend 2 financial institution safes at 2 various banks. Especially when the quantity of iotas becomes large that is no overkill.
And whilst you’re at it be sure that it offers a succession list in the event anything happens to you and perhaps include some trusted people which will help your heirs obtain their practical the funds. Absolutely nothing sadder than seated on a million really worth of iotas no one having the ability to access them once you die.
— — — —
Rule 4–6 all want to do with multi-spending. That is spending more often than once from the exact same address. The problem here’s that IOTA uses one-period signatures. After spending addresses aren’t supposed to be utilized any more because along the way of spending a random 50% of the private essential to the deal with gets exposed. This alone is not an issue, any funds arriving following a single spend remain pretty safe. Breaking another 50% of the key continues to be a daunting task.
But whenever a second spend happens on a single address a fresh random 50% of the personal key for that tackle gets exposed. Theoretically, stats will tell you that today 75% of the private important is exposed. But this is actually the difference between concept and practice. Since it is really a *random* 50% of the main element that gets exposed, you will be unlucky sufficient that both 50% exposures just possess a 10% overlap. In which particular case a whopping 90% of one’s key is exposed currently! In which particular case your private crucial is toast and broken not too difficult.
So in a nutshell: 2 or even more spends from exactly the same address is quite BAD!
Now allow’s notice what scenarios could take place that will result in a multi-spend and just why these rules are great:
Principle 4: NEVER re-use an deal with. NEVER. NO exceptions.
I may immediately hear some individuals say: “Nevertheless, you are permitted to receive multiple instances at a address!” Plus they are technically right. IoT devices can do this all the period. But they have the benefit of knowing just what the parties they are usually speaking with are going to do so when. So they can properly do that. Here is a situation that presents just one exemplory case of why this is a bad concept to send multiple moments to the same address:
Allow’s say We withdraw X iotas from a good exchange to address A within my wallet. The complete process takes a short amount of time, but I end up getting X iota in tackle A.
Encouraged by this success I opt to withdraw another Y iotas compared to that same address The. After all, I could send *to* an address several times, right? So I devote the order and the swap starts processing the order. Remember that this processing will often take hours as well as days.
Within the mean time I inform my friend about IOTA, also to encourage him I would like to send him several (let’s state Z) iotas. Therefore he installs the wallet and provides me a receive deal with B. I inform the wallet to deliver Z iotas to handle B. The wallet happily obliges and requires the iotas in tackle A, transmits Z iotas to handle B, and -to guard deal with A from multi-spending- in addition, it sends the rest of the X-Z iotas safely to a recently generated tackle C in my own wallet.
Everything appears okay up to now. But with one issue: The exchange didn’t process my withdrawal however. When it finally does procedure it, the Y iotas will undoubtedly be sent to address A exactly like I instructed. Except that deal with now already comes with an earlier devote to it! Oops!
This situation might have been simply avoided by generating a fresh address D for the next withdrawal and using that rather than address A.
So just to illustrate: NEVER re-use an address. Not for receiving.
RULE 5: ALWAYS attach a fresh receive address to the Tangle.
I can immediately hear some individuals say: “Nevertheless, you don’t really have to get this done!” And again, they’re technically correct. It really is perfectly fine to send iotas to an address that has been not mounted on the Tangle explicitly. They’ll arrive just fine. Again, IoT devices do that all the time, however they also keep an eye on what addresses they gave out as receive addresses.
The IOTA wallet does it differently. Since it is possible to install the wallet on different devices, and log in both wallets with the same seed, the developers are determining the state of the wallet directly from the Tangle. That way both wallets will respond the same to events. Otherwise one could have kept track of some important addresses and the other would have no knowledge of that. Pretty elegant solution.
But this solution includes a hidden cost. To comprehend this we have to look at the way the wallet decides which addresses have already been used already. It can that by asking the node it really is connected to for a summary of transactions that incorporate that address. If you can find no transactions yet it concludes that it have not used the address yet.
By attaching an address to the Tangle you explicitly develop a zero-transfer transaction for that address. Now the wallet will get that transaction in the Tangle, so that it knows it is used already. And yes, in the event someone sends iotas compared to that address, the wallet will get that transaction in the tangle and again sees that it’s used already. Therefore we don’t have to explicitly attach it, right? Bzzzzt! *Wrong*!!
Let’s say I’ve X iotas in address A. I opt to withdraw another Y iotas from the exchange to handle B. That’s what I learned from rule 1. Work with a different address. I don’t bother explicitly attaching address B to the Tangle, because I was told before that that has been not strictly necessary. THEREFORE I devote the order and the exchange starts processing the order. Which again does take time.
To spread more joy I opt to send Z iotas to my pal again. I initiate the transfer, which time the wallet may take from address A, send Z iotas to my friend’s address, and it wants to send the rest of the X -Z iotas to a fresh receive address. So that it looks in the tangle which address isn’t used already. Aha! Address B isn’t used yet. So that it merrily sends the results to handle B. Oh dear. Now we have been in the same situation once we were in with rule 4.
So if we have now decide to send another quantity of iotas to another friend, we are spending address B prior to the withdrawal to address B has executed. And we end up getting a guaranteed multi-spend again.
This situation might have been simply prevented by explicitly attaching address B to the Tangle. In which particular case the wallet could have seen it was used already, and it could have sent the remainder to a fresh address C instead.
So just to illustrate: ALWAYS attach a fresh receive address to the Tangle.
RULE 6: ALWAYS await a transaction to be confirmed before sending other things.
I can immediately hear some individuals say: “However the wallet could keep me from multi-spending!” And again, they’re technically correct. The wallet will check before spending if there already is a confirmed devote to the address, and won’t allow another spend if so. But think about the scenarios 4 and 5. In both cases the issue could also have been prevented by simply looking forward to the exchange transaction to be confirmed before sending to my pal.
So just to illustrate: ALWAYS await a transaction to be confirmed before sending other things.
Note that the majority of these circumstances are even muddier as you do not know what address(es) the wallet will pick as input(s) for sending iotas somewhere.
Also remember that I only provide one of these of where things can fail for every rule. Things become even muddier when snapshots happen. But that’s something for another article.
The development of supporting IOTA Tokens on the Ledger Nano Hardware Wallets has progressed very far and IOTA will be able to be stored and managed on the IOTA Hardware Wallet.

