Не думаю, что контракт может запретить майнеру заносить в блокчейн
транзакцию. Для данной задачи это и не нужно.
Л билет это квиток содержащий ссылку на ставку и адрес получателя
выигрыша (магазин принимающий к оплате лотерейные билеты)
и подписывается закрытым ключом.
Магазин проверяет валидность лотерейного билета и подписывает его
своим закрытым ключом. Эта подпись должна удовлетворить заданному условию.
Это и есть вскрытие билета. Билет не удовлетворяющий условию является пустым.
Вскрытый билет(дважды подписанный квиток) заносит в транзакцию и посылается
в блокчейн. Пустой билет также может быть занесен в блокчейн, но смысла в
этом нет. Выигрыш можно получить только за билет, который удовлетворяет
заданному условию. Магазин не будет посылать транзакции с пустыми
билетами и не будет засорять как блокчейн так и хеш транзакций
и не будет платить лишнюю комиссию.