iBeacon is a wireless technology to measure proximity, not location. Unlike GPS, it doesn't answer the question "where am I?" iBeacon simply uses signal strength between the device and the receiver to measure proximity, so the question it best answers is "how close am I to this thing?"
iBeacon specifies the data to be contained in each broadcast via Bluetooth Low Energy (BTLE). There are only 3 values that are required by the iBeacon specification: a UUID, a Major value, and a Minor value.
The UUID is meant to be an umbrella identifier for your app, and is used when setting up your app to listen for iBeacons. It's a value that's meant to be unique to your app or distribution, so other apps don't maliciously, or by mistake, detect a beacon meant for your application. The Major and Minor values act as other identifiers to help organize a beacon distribution.
In the classic retail scenario*, all the beacons for a retailer would share the same UUID, all the beacons in a store or branch would share a similar Major value, and each beacon inside the store would have its own minor value. It's up to you to map the Major and Minor values to something you understand in your application.
The difference between a beacon and an iBeacon
iBeacon is a specification, not a device. While you'll commonly hear people refer to a piece of hardware as 'an iBeacon', that isn't quite correct. The hardware is just a beacon, and the specification it conforms to is iBeacon. For practical purposes though, if you hear someone refer to 'an iBeacon,' you can assume they're talking about a piece of hardware that conforms to the iBeacon specification.
The accuracy of a beacon depends on the distance between the beacon and the receiver. It can be very accurate up close, but the further you get from a beacon, the less confidence you can have in the accuracy of its proximity reading. iBeacon relies on BTLE to deliver send out its information. When the information is received, the signal strength is measured, which is where the proximity estimation comes from. Bluetooth signals are easily obstructed and absorbed by very common things, like human beings, walls, and water. You're in good shape if you have line-of-sight to a beacon, but even something as simple as having the phone in your pocket can throw off its accuracy.
iBeacon is best used for fuzzy proximity monitoring, like determining which beacon a user is closest to. If you try to set up a scenario where you need to determine whether someone is a very precise distance from a beacon, you will be disappointed.
* I'm really trying to move the conversation away from retail examples, but in this case it was the best way to illustrate the use of the UUID and the Major and Minor values.