What Aspects Should Players Know?
Fred Hicks and Lenny Balsera (the guys behind the game) on the mailing lists have generally advocated the view that aspects should be known to the Players (not necessarily the characters) unless there is a compelling reason not to (such as giving away a plot point). The characters have knowledge of any aspects that are observable (such as, in most cases, a river).
Furthermore they have said that aspects are there to give a mechanical representation of narrative realities. The fact that there is a river present means there is a de facto aspect named river. To freeze the river the player just announces his character's intention and rolls.
Now let's say you didn't put a river there but you don't really care whether one is present or not:
Option A: Use Create an Advantage to create an aspect.
The Player announces "My character is looking for a source of water" and rolls Create an Advantage with his Notice. On a success there is now the aspect River on the scene which represents the fact that yeah, there's a river right over there and he has a free invoke on the aspect which he can use for a +2 on his next turn when he creates an aspect of slippery ice.
Option B: Use a fate point to declare a story detail.
The player announces "By the way, I'm going to use the river that's been right here all along and freeze it" while handing you a Fate Point. He then proceeds to roll Create an Advantage of slippery ice
The difference between A, and B is that in B the player is indicating he really wants the river there and is willing to use some of his control over the story to ensure there is a river there. In A, he's willing to use a river if one exists but if not he'll think of something else.
Because a created aspect is true retroactively, they have intentionally left the lines between creating an aspect and discovering an aspect blurry. For instance, in Option A the player is creating the aspect, but the character is discovering it.
When the issue is a plot point, the rules suggest you create indirect aspects that hint at what you're trying to not say.
In other words, the character who is secretly a vampire has aspects such as night owl, and unnaturally tough.
The benefit of doing so is that it gives the characters clues to investigate further (If he's a night owl, what does he do at night?) while not spilling the beans precisely, it also gives the NPC aspects to invoke which are part of the nature you're trying to hide.
Rather than invoke his sneaky vampire aspect when defending he can just invoke unnaturally tough and all the players will know it's because he's a actually a bloodsucking undead monster.
How to make the Players discover aspects
Now we come to what to do when you want the players themselves to have to figure out what to look for and investigate. This will be mostly useful in mystery type stories.
The short answer is that you hold the cards with those aspects to yourself and the characters can do a Create an Advantage action when narratively they are looking for evidence of (make them fill in the blank). If their roll succeeds, and what they are looking for is close enough to a real aspect the character has, then you reveal that aspect.
For instance, the players decide to investigate a government official suspecting he is behind some missing money. They Create an Advantage on an aspect of new and expensive buying habits which the character doesn't have but he does have recent large charity donations so you reveal that instead since it's fairly similar.
Depending on the success of their dice roll you could let them discover aspects which are not so closely related, or give them a boost which represents someone they could ask about another matter.