Premultiplied alpha
Storing colour already multiplied by its alpha value, rather than alongside it — which makes compositing mathematically correct and removes dark edge fringes.
With straight alpha, RGB and alpha are stored independently. The problem appears the moment the values are interpolated: when blitting, bilinear filtering or mipmap downsampling blends a visible edge pixel with a fully transparent neighbour, that neighbour's arbitrary RGB gets weighted in and leaves a dark or coloured halo around the sprite's edge.
Premultiplied alpha (also associated alpha) folds the alpha into the colour at storage time, so transparent pixels go black and carry no stray colour into a blend. It follows directly from Porter and Duff's 1984 compositing algebra, where the "over" operator is simpler and faster in that form. The cost is one multiply up front and having to track which convention a texture is stored in — mixing the two up is a classic source of bugs.