Как получить транзакции только на один адрес Ethereum?

Представьте себе этот сценарий:

Компания ACME продает своим пользователям услугу за 1 AcmeToken.

Когда пользователь хочет купить услугу, компания ACME генерирует для пользователя новый Eth-адрес, поэтому в базе данных компании существует связь между EthereumAddresses и Users.

К сожалению, у этого распространенного сценария есть одна проблема :

Когда компания хочет снять токены со всех адресов, которые они сгенерировали, она может потратить много ETH, чтобы покрыть затраты на цену GAS.

Итак, я преобразовал сценарий таким образом:

Компания получает все токены на один адрес Ethereum и запрашивает хэш транзакции у пользователя, но... таким образом пользователь может взять хэши старых транзакций на тот же адрес, поэтому я не рассматриваю этот путь как безопасный и безопасный.

Как бы вы безопасно идентифицировали одну транзакцию, не создавая множество адресов?

Судя по вашему вопросу, у каждого пользователя есть собственный кошелек и отдельная учетная запись? теперь вы хотите перенести все токены из учетной записи пользователя в одну учетную запись. Неясно, что такое «определить одну транзакцию». не могли бы вы уточнить это.

Ответы (1)

Попросите людей зарегистрироваться с их Metamask/Cipher/и т. д. как это делают такие сайты, как cryptokitties, отправляя им случайное сообщение для подписи, чтобы убедиться, что у них есть закрытый ключ для этого адреса. Затем пусть все они отправляются на один адрес, и каждый раз, когда происходит новая транзакция, просто проверяйте, у какого пользователя есть этот адрес.

Но я не пытаюсь проверить, что люди владеют адресом, вовлеченным в транзакцию. Я пытаюсь назначить свой адрес (только один) нескольким людям, чтобы они могли платить по этому адресу, но как я могу узнать, какой пользователь отправил токен на мой адрес?
Если вы получаете токены в транзакции, отправителем транзакции является адрес, на который вы получаете токены.
Но у меня в базе нет ассоциации User -> Address, также у одного пользователя может быть больше адресов.
Вот почему я сказал: «Попросите людей зарегистрироваться с помощью своей метамаски/шифра/и т. д.». Таким образом, у вас есть ссылка на то, какие адреса принадлежат кому
Что, если у пользователя должна быть возможность отправлять больше транзакций с одного и того же адреса?