What is actually the role difference between ProductOwner and StakeHolder ?
A stakeholder is anyone that is potentially affected by the outcome of the project. The term is usually used to name the management or the customers.
The product owner is a stakeholder by defintion (just like the developers in fact), but is generally the person that represents the stakeholders (given the general usage described before).
When we say that stakeholders can assist to the daily scrums & reviews, it is because one of the biggest aim of Scrum is to put lot of visibility on what is being done. That increased visibility helps impediments to be identified & solved quickly. It also helps every party to understand each other's constraints & interests.
Product owner is responsible for creating and ordering the product backlog and to maximize the value of the product. product owner is a scrum team member.
On the other hand, according to scrum glossary, a stakeholder: a person external to the Scrum Team with a specific interest in and knowledge of a product that is required for incremental discovery. Represented by the Product Owner and actively engaged with the Scrum Team at Sprint Review.