This is something that has always puzzled me. When you finish a battle and you encounter connection problems, you're given two choices - to retry, or to re-log. Up until today, I'd always just clicked the retry button until it worked. Logically, this makes sense - all it is doing is waiting until the connection becomes available, and then transmitting the information across to the server.
The re-log one didn't make sense to me, and I just sorta assumed it didn't work. Today, I tried using it, and much to my surprise, it actually did accept the results of the battle. This implies that the combat results are actually stored locally and then transmitted. That, to me, seems a massive security vulnerability. If the data is stored locally, it becomes simply a question of brute-forcing it until you can crack through whatever encryption they've put on the contents, and then modifying them to your own tastes.
I'm not going to say I'm an expert on this topic - I am a programmer, and have quite a lot of experience, but this specific area is one I've never dug into too deeply. But from a purely logical perspective, it seems almost trivially easy to exploit. The vast majority of security algorithms operate under the principle of limited attempts. The reason you can't just brute-force guess passwords on a login system, for example, is because most of them prevent you from making more than a handful of guesses before locking you out. But. by extension, the reason why gaining access to a database of user accounts is so damaging is because once you strip away that protection, all you need to do is employ rainbow algorithms or the like, and you have all the time and attempts in the world - you'll eventually break through.