Surrogate key vs Natural key
Use the surrogate key as the primary key for the moment. When natural keys become available, make them non-nullable unique constraints. 

By the YAGNI principle, you should only code for "real-life" current requirements - a primary key that may (or may not) arrive in 5 years is not worth considering now!

Surrogate keys are very widely used in practice, much to the horror of purists: the rest of us just use them! See this Stack Overflow answer (as well as the rest of the thread).