The double spend problem is not solved.
And how could it be if it works offline. If I have a phone in some state s. Then I can just do the transaction and revert the phone's state back to s and spend the money again.
Every time you create Euros, you simply create a negative balance. If you offline sign multiple I Owe You contracts, you accumulate debt. Just like in the real world, if you sell your house to 12 different banks, you have a (felony-level) problem. We ensure that double spending is detected with certain guarantees. Each micro-block with a transaction within Trustchain needs to be signed by two parties, so each copy is valid. Block hiding attacks wont work then.
The proof-of-work system is very elegant. The emergent properties of mining have created an amazing ecosystem. But slow finality might be a showstopper for mass uptake. Our alternative with instant finality using multiple legally binding signatures might offer a way out.
Various mechanism can be used to ensure integrity. What we implemented specifically is that various witnesses can inspect your Trustchain blocks and co-sign your balance. So any node can act as a digital notary. You can also use a reputation or trust function.
Here is a master thesis from Mathematics on distributed accounting systems. It contains numerous new mathematical proofs around integrity without strong identity assumption; .PDF "On the Sybil-Proofness of Accounting Mechanisms in P2P Networks", https://repository.tudelft.nl/islandora/object/uuid:6b4011c6...
Reputation and trust can be gamed. Also requiring reputation will slow down adaptation.
I will read this paper in the evening but I don't think you can have Sybil-Proof Accounting on P2P without some tradeoffs.