There is surprisingly little discussion about the actual spec here. It looks really good to me! - Advertisements change every 15 minutes, are not trackable unless keys are shared. - The only central bit is a repository of "infected" daily keys. - No knowledge about contacts is shared with a central authority. Nothing is shared unless you are infected and decide to share your keys, which are only valid for one day. I…
So my suggestion for a minimal fix would be to also reveal all advertised rolling IDs for the current day in addition to the keys for the past days.
A better fix would be to generate ID in a hierarchical fashion from the daily keys with power-of-two-length time slots, so that you only need to share O(d + log(n)) values where d is the number of days and n is the number of subdivisions in a day.
Another potential fix is to use public-key cryptography and only reveal the daily public keys; however, this requires twice as large IDs and matching requires to try to decrypt/signature-check all received IDs instead of being able to generate and lookup.