Scrum is certainly a popular technique that is used by many an organization for its software development teams doing cognitive work. However, it is poorly practiced as a method without emphasis on the underlying values and principles that it needs in order to succeed to be an extraordinarily effective tool.
Quick. Let me start you with a question first.
Question: How many Scrum Masters do you have in your organization?
Depending on the size of the organization, you might have come up with an answer like a few, or maybe 25, or 400 depending on the number of teams that one has in an organization.
Let me point out that you are plain wrong with any answer that you came up with. Why? Because of your perspective of what "Scrum" is and your underlying assumption of the term "Scrum Master"
A Scrum Master is anyone who masters Scrum. And assuming your teams do master the game of Scrum in order to practice it and play it each day of their work, then essentially every one who touches Scrum has an ability to be a master of Scrum.
Therefore, if you have 25 teams with 200 people in those teams, you have 200 Scrum Masters. If you had 400 teams with around 3,000 people in those teams then you have 3,000 Scrum Masters.
If I look at the question in the title, I didn't ask the question "Who is a Scrum Master?" The question is "What" and that is key to distinguishing that this is a role, not a position. And therein, is the answer to playing the game of Scrum well. Work to make each one of your team member a "Scrum" master so that they master its play and practice.
And those organizations that realize this and are able to put it into practice reaps the benefits from it. And those are few and far between. I am betting that yours might not be one of them... agility is a principle and values driven game and methods, tools and techniques come last, if at all. You might be doing "Scrum" faithfully as a repetitive method or process. Though useful, this does not lead to "Big payoff's"
If your teams are still dependent on a "Scrum Master" to help them and enable them, then you are still living the age of "Adult-Child" relationships between your "Scrum Master" and your teams. When will you start treating your "Adults" in your teams as "Adults"? You are missing out heavily on the human potential that exists and you are wasting that potential each day.