【问题标题】:Can a server "impersonate" an user account on Ethereum blockchain?服务器可以“模拟”以太坊区块链上的用户帐户吗?
【发布时间】:2022-10-21 05:34:53
【问题描述】:
我有一个问题,也许是一个新手问题,但是,如果你们帮助我,我会很高兴。
好吧,我希望通过服务器端进行所有智能合约交互,例如:用户想要创建他的令牌,所以他输入数据(名称,刻度,小数......)并将其发送到将部署的服务器ERC20 的一个实例,到目前为止一切顺利。该交易有我的服务器需要支付的费用(gas)才能发送交易,但我想将此费用“转移”给打算创建令牌的用户。我想知道是否有任何方法可以让我的服务器“代表其他人”发送此交易,并由该地址支付交易费用?也许在客户端签署交易并在服务器端发送(我需要在这里再次付款对吧)?
【问题讨论】:
标签:
blockchain
ethereum
solidity
【解决方案1】:
但我想将此费用“转移”给打算创建令牌的用户。我想知道是否有任何方法可以让我的服务器“代表其他人”发送此交易,并由该地址支付交易费用?
不,这不是以太坊的运作方式。你需要设计系统,让用户直接与区块链交互,而不是你的服务器,这是将 gas 成本推给用户的唯一方法。
【解决方案2】:
参加聚会似乎为时已晚。但一种解决方案是创建一个可靠的代币工厂合约,它可以根据用户输入部署代币。在这里,gas 费用将由用户支付(因为用户将直接与您的合约进行交互)。这种方法的一个好处是,您可以收取用户费用加上额外的金额(取决于您的业务逻辑),但另一方面是根据您最初的问题,用户不会与您的服务器交互,而是一个聪明的链上合约。