Estimation should be done by those who are supposed to do the work. This is done by the Development Team.
The Development Team is the second role in Scrum (the first one was the Product Owner). There are 3 to 9 developers. “Developer” is a term referred to analysts, designers, programmers, testers, UI designers, and anyone else who has a part in the production of the solution.
When the Product Owner creates a new item in the Product Backlogs, he will go to the Development Team, explain the meaning of the item, and asks for the estimate. The developers then discuss it and come up with the estimation. The Product Owner adds the estimate to the Product Backlog item. This is called Product Backlog grooming, or Product Backlog refinement.
So, what should be the unit for the size of items?