Вам нужно развернуть простой контракт для каждого пользователя (который проголосовал) и вычислить адрес (детерминированный) для голосования пользователя магазина. В вашем основном контракте будут храниться только подсчеты. Нравится: да - 313, нет - 131
Если пользователь хочет изменить голосование, пользователь должен отправить транзакцию в пункт личного голосования (вы можете подготовить его в своем ddap), и этот элемент изменит голосование по основному контракту
Вы можете увидеть простой пример здесь - https://github.com/Tonstarter/simple-vote чтобы понять, как это может работать для большого количества пользователей без большого хранилища