How does the Amazon Appstore verify its apps? A few times after I've downloaded an app from the Amazon Appstore, I get an error pop-up similar to the following when opening the app:


  Amazon Appstore
  
  There was a problem verifying this application.  Please download it again.


It hasn't occured on the first launch of an app, but rather the second (or possibly later).  Uninstalling it and then downloading it again always solves the problem; it never occurs again for the same app (except Gentle Alarm. I couldn't shut it off because Amazon wouldn't let the app run, just the service. Gah).

My question is, why does this happen?  If the app works fine, it shouldn't be corrupted, so I don't see why it couldn't be verified (especially since it was verified fine on the first launch).  Is there some extra data downloaded?  Is it managed by the app or the appstore?  (I.e., would clearing data for one, the other, or both solve the issue without needing to re-download?)
According to their dev blog, the appstore does download a small token for DRM'd apps which it uses to validate them at launch:


  How can you verify that the user has an entitlement to the app without internet access?
  
  During the installation process for an
  app, the Amazon Appstore client
  downloads a small token that grants
  the user the right to access the
  application. A valid token permits the
  user that purchased the app to access
  their app offline. The Amazon Appstore
  client will periodically communicate
  with Amazon servers to refresh the
  token.


My guess as to why you see the error is that the token is either out of date or just got corrupted somehow (bug in the appstore maybe). Re-downloading probably refreshes the token since it's originally retrieved at install time, but it sounds like you may also be able to clear the appstore data and sign in to get a valid token, or possibly just launch the appstore and let it connect/refresh itself (haven't tried these myself as I haven't had this error yet).