I've been doing SCRUM for four years now. I've heard various ways of describing it, various rules and guidelines. It is my belief that there are many BKMs to SCRUM, but very few rules. And here they are:
1. Short iterations. At the end of each such iteration the Product owner should be able to announce which new features had been added during that sprint.
In order for the latter to happen, we probably need some sort of definition of done.