Blockchain or block chain? Double-spend or doublespend?
Solution 1:
I think your goals should be clarity and simplicity. Every new term is one that everyone else has to learn and understand, so don't introduce new terms unless they convey meaning more clearly and/or simplify communication. With that in mind, I'd stick with separate words in both cases.
The main concept in block chain is block, and it seems to make sense to modify that term rather than introduce new ones. So block chain is a chain of blocks, but presumably you could also have a block archive or a block source, and the meaning of those is clearly related back to the term block. Things get muddier if you have a lot of different terms: blockchain, blockarchive, blocksource.
The same goes for spend. If one knows what spend means, then double spend seems obvious. I suppose it could happen that someone might even try to triple spend or quadruple spend or reverse spend, and it doesn't seem to make sense to introduce a new term for every possible variation on the spend theme.
Finally, the practice of combining words to create new words, like doublespend, carries with it a strong Newspeak vibe – something you ought to avoid when introducing a new payment system.
Solution 2:
Not a general rule, see Using hyphenated words in technical writing? - generally new words are formed from pairs -> hyphenated -> single word as they become more common