Hi,
Acceptance criteria aren't mandatory in scrum. The guide mentions that test descriptions are often included to prove the completeness of an item when done. Those desciptions can be interpreted as acceptance criteria.
Sinds the product owner is responsible for ensuring the Development Team understands items in the Product Backlog to the level needed, in my opinion it's the product owner that defines the acceptance criteria.
When I look at my own projects, we write acceptance criteria for every item as part of the refinement. An item is "sprint ready" when it has acceptance criteria. We write them in a Given, When, Then form, so we can include them in our automated test scenario's.
The benefit of writing these scenario's during refinement is that the team and the PO are forced to realy think about what the done item should do.