Is there a unique ID like the mac address for each iPhone / iPod Touch?
Do I have to ask the user for permissions to transmit such a unique id?
Yes, you can get it using UIDevice's uniqueIdentifier property:
A unique device identifier is a hash value composed from various hardware identifiers such as the device’s serial number. It is guaranteed to be unique for every device but cannot publically be tied to a user account. You can use it, for example, to store high scores for a game in a central server or to control access to registered products. The unique device identifier is sometimes referred to by its abbreviation UDID.
Edit: uniqueIdentifier property is deprecated in iOS5 and you should not use it now. As an alternative you can generate your own unique ID (for example check this questions).
Also in iOS6 Apple added 2 new methods to get unique identifier (as an instance of NSUUID class):
UIDevice -identifierForVendor:
The value of this property is the same for apps that come from the same vendor running on the same device. A different value is returned for apps onthe same device that come from different vendors, and for apps on different devices regardles of vendor.
ASIdentifierManager -advertisingIdentifier:
Unlike the identifierForVendor property of the UIDevice, the same value is returned to all vendors. This identifier may change—for example, if the user erases the device—so you should not cache it.