Скажем, я биржа, у которой много пользователей. Когда я прошу пользователя внести ETH, я даю ему уникальный адрес, чтобы я мог приписать ему ETH.
С биткойнами это легко. Программное обеспечение биткойн-кошелька справляется с этим, и я могу иметь BTC на нескольких адресах, и они рассматриваются как одна учетная запись.
Я понимаю, что с Эфириумом все по-другому.
Я нашел 2 варианта для достижения этого:
Разверните смарт-контракт пересылки один раз для каждого пользователя, дайте адрес пользователю. Когда смарт-контракт получает ETH, он пересылает его на мой основной адрес ETH.
Плюсы :
Минусы :
Создайте учетную запись для каждого пользователя. Не давайте закрытый ключ пользователю. Периодически просматривайте все «учетные записи пользователей», которые я контролирую, и отправляйте ETH на «основную учетную запись».
Плюсы:
Минусы:
Какой из этих двух подходов будет стоить мне больше газа? Интуитивно я думаю, что второй будет стоить меньше газа, потому что развертывание смарт-контрактов обходится дороже, чем отправка ETH. Но первый подход, кажется, более популярен на биржах. Это почему?
Я должен отметить, что я не ожидаю, что пользователи будут вносить ETH более одного раза. (Или, скорее, для каждого депозита я бы дал им новый адрес, чтобы было легче отслеживать их депозиты)
Скажем, я биржа, у которой много пользователей. Когда я прошу пользователя внести ETH, я даю ему уникальный адрес, чтобы я мог приписать ему ETH.
С биткойнами это легко. Программное обеспечение биткойн-кошелька справляется с этим, и я могу иметь BTC на нескольких адресах, и они рассматриваются как одна учетная запись.
Я понимаю, что с Эфириумом все по-другому.
Не уверен, что понимаю, чего вы пытаетесь достичь. Если вы хотите, чтобы люди вносили эфир в ваш контракт, разве вы не можете просто поддерживать сопоставление адресов с балансами? Вы получите адрес отправителя с помощью msg.sender
Вы бы контракт, который создает контракты. Ваш основной контракт создает новые «дочерние кошельки» для ваших пользователей.
Затем вы можете попросить детей слушать данного владельца, созданного при создании нового кошелька. Таким образом, у них есть определенный адрес, который вы контролируете. Если вы хотите просто мгновенно отправить деньги на свой собственный кошелек, у вас может быть только одна функция в новом контракте, которая является резервной функцией, которая отправляет все ETH на определенный адрес.
Нулик
Нулик
Юрай Петрик
Нулик