¿Cómo obtener transacciones en una sola dirección de Ethereum?

Imagina este escenario:

La empresa ACME está vendiendo un servicio por 1 AcmeToken a sus usuarios.

Cuando un usuario quiere comprar el servicio, la empresa ACME genera una nueva dirección Eth para el usuario, por lo que existe una asociación entre EthereumAddresses y Users en la base de datos de la empresa.

Desafortunadamente, este escenario común tiene un problema :

Cuando la empresa quiere retirar los tokens de todas las direcciones que generó, la empresa puede gastar una gran cantidad de ETH para cubrir los costos del precio del GAS.

Entonces, transformé el escenario de esta manera:

La empresa recibe todos los tokens en una sola dirección de Ethereum y solicita el hash de la transacción al usuario, pero... de esta manera el usuario podría llevar hashes de transacciones anteriores a la misma dirección, por lo que no estoy considerando proceder de esta manera tan segura y seguro.

¿Cómo identificaría una sola transacción de manera segura sin crear muchas direcciones?

De su pregunta, ¿cada usuario tiene su propia billetera y tiene una cuenta individual? ahora desea transferir todos los tokens de la cuenta de usuario a una sola cuenta. No está claro que ` identifique una sola transacción ` . puedes por favor elaborarlo.

Respuestas (1)

Haga que las personas se registren con su Metamask/Cipher/etc. como lo hacen sitios como cryptokitties, dándoles un mensaje aleatorio para que firmen y verifiquen que tienen la clave privada de esa dirección. Luego haga que todos envíen a una dirección, y cada vez que haya una nueva transacción, simplemente verifique qué usuario tiene esa dirección.

Pero no estoy tratando de verificar que las personas sean propietarias de la dirección involucrada en la transacción. Estoy tratando de asignar mi dirección (solo una) a varias personas, para que puedan pagar en esta dirección, pero ¿cómo puedo saber qué usuario ha enviado el token a mi dirección?
Si recibe tokens en una transacción, el remitente de la transacción es la dirección que le proporciona los tokens.
Pero no tengo una asociación Usuario -> Dirección en mi base de datos, también un usuario podría tener más direcciones.
Es por eso que dije "que la gente se registre con su metamáscara/cifrado/etc." De esa manera, tiene ese enlace de qué direcciones son propiedad de quién
¿Qué pasa si un usuario debe tener la posibilidad de enviar más transacciones desde la misma dirección?