zkMLとfheMLの違い
そもそもモチベは一緒なの?→異なる
トレーニングの正当性を保証するのがzkMLで、推論の過程を秘匿化するのがfheML
zkML
zkMLはあるデータセットをもとにあるモデルをトレーニングしたことをデータセットの具体的な値をrevealせずに証明する
(private info = dataset, public info = model’s parameters such as weights, biases, etc)
fheML
便宜上Concrete MLとする
Concrete MLはモデルのトレーニングは普通にplaintext datasetを材料にやる
できたモデルをFHEサーキットに変換して、encrypted data (predictionを行いたいunseen data)をそのFHEサーキットにつっこんだらprivateにinferenceできる
inferenceのoutputもencryptされてて、encryption key持ってる人しかdecryptできない
zkMLは私もなにがしたいんだ?って疑問だったんだけど、、例えば、マッチングアプリのレコメンデーションのモデルを、ある人種だけ不当にデータセットから弾いてトレーニングしてたとしたら、その人種は一生サジェストされないわけじゃん、そういう不当なことをしてないということをマッチングアプリ側が証明できる、みたいな感じ?(すごい変な例だけど)