Компания ACME продает своим пользователям услугу за 1 AcmeToken.
Когда пользователь хочет купить услугу, компания ACME генерирует для пользователя новый Eth-адрес, поэтому в базе данных компании существует связь между EthereumAddresses и Users.
К сожалению, у этого распространенного сценария есть одна проблема :
Когда компания хочет снять токены со всех адресов, которые они сгенерировали, она может потратить много ETH, чтобы покрыть затраты на цену GAS.
Компания получает все токены на один адрес Ethereum и запрашивает хэш транзакции у пользователя, но... таким образом пользователь может взять хэши старых транзакций на тот же адрес, поэтому я не рассматриваю этот путь как безопасный и безопасный.
Как бы вы безопасно идентифицировали одну транзакцию, не создавая множество адресов?
Попросите людей зарегистрироваться с их Metamask/Cipher/и т. д. как это делают такие сайты, как cryptokitties, отправляя им случайное сообщение для подписи, чтобы убедиться, что у них есть закрытый ключ для этого адреса. Затем пусть все они отправляются на один адрес, и каждый раз, когда происходит новая транзакция, просто проверяйте, у какого пользователя есть этот адрес.
Гопал Оджха