I was thinking about different smart contract uses cases.
Imagine a service that classifies images. It takes an image of an animal (e.g. a cat) as input and determines the type of the animal.
This kind of classification problem is solved using machine learning. The image recognition service uses training data to create a machine learning model. This model is open to the public via a prediction api. Users pay a fee to query this api. The machine learning model is not immutable. As new images are provided the model is retrained to improve future predictions.
To get a prediction following steps are required:
- input image
- check account balance, when enough money is available, proceed, else abort
- wait for image recognition service to deliver output
- receive output
So my question is, can this idea/ business transaction be implemented as a smart contract? Does it make sense?
Since a smart contract is immutable, for each (retrained) machine learning model, a new smart contract must be created. And one must keep track of old smart contracts, because they will deliver worse predictions. Or is there an option to destroy "old" smart contracts?
Having a highly mutable service, would it not be better to use a service like oraclize.it to implement API calls to the external service?