Hey Terry,
When creating a snapshot it causes a new COW layer to be created over the current layer.
All write actions performed after a snapshot is taken are written to the new COW layer.
The format that supports the option of "growable" disks is sparse, therefore, when creating a snapshot of the disk, the format must support the option to add another layer and maintain the difference between them.
Regard to the snapshot size, it should contain all the changes between the "old" disk layer (the snapshot) and the new layer (active snapshot) and in order to achieve that, we should be able to mark each diff (note that this is a qcow2 disk and not all the space is allocated).
You can look and search for another information here -