TV licence system collapses on "Black Friday"

On the highly artificial (recently introduced) shopping event known as "Black Friday", the otherwise not very reliable SABC reports that "the TV Licence validation server was overwhelmed by the abnormal increase in validation requests from retailers due to the Black Friday deals which resulted in the server timing out between 07:00 and 10:30". Of course, there were no reports of point-of-sales systems or mobile networks going down... I will try to explain here why this breakdown was complete unnecessary.

Retailers have to see an SA ID document (or, sometimes, photocopy or photo of one) and verify that the person to whom the ID number belongs has a valid television licence. Now, this information is not updated frequently since a licence is valid for one year and, frankly, I don't think many new licences are being issued. It would therefore be sufficient to publish (and distribute) a list of ID numbers for which a valid licence exists but this presents two problems.

  1. It might be a bit too easy for someone buying a television set to just pick a number from the list and use it (in cooperation, probably, with retail staff).
  2. There might be (mild) privacy concerns.

Both issues would be addressed by publishing a list of hashed ID numbers and allowing retailers to store a local copy. A hash function is a one-way function f that would work as follows. First, the SABC publishes a list of all f(x) where x runs over the ID numbers of persons with a valid licence. For technical reasons, we might prepend the digit 1 to the ID number. The essence of the one-way function is that if you are given f(x) (the hashed value), it is in practice impossible to compute x from it although the forward calculation is quite easy.

The list of hashed ID numbers cannot be used therefore to extract any specific ID number but the holder of a valid licence could present their ID number x to the retailer who would quickly compute f(x) and compare f(x) to the published list, a copy of which the reailer will have. If this f(x) is on the list then there is a valid television licence and the retailer can go ahead to make the sale without consulting the SABC server.

It would be necessary to update the list with some (not very specific) frequency but this could be done at any time and will not disrupt sales to customers. In a follow-up post, I shall describe an example of such a one-way function. The image of the sometimes SABC CEO and high-school dropout above is used without permission but under the assumption that it constitutes fair use under SA copyright law. In fairness, I should say that I once had good service from the SABC when I needed to cancel a licence but my friends regard this as unusual and strange.