-snip-
Does the steps above seem OK? Is there anything that should be changed or added?
Follow Kefkius suggestion. Except step 2, all seems fine.
How does the blockchain know that the address's that were generated offline are valid?
Bitcoin address contain a checksum.