Solidity

伺服器是否可以執行合約呼叫但使用者支付gas費用?

  • January 19, 2022

我有一個智能合約,其中包含一個名為“提款”的功能 - 它基本上將使用者餘額增加 X 數量的 ERC20 代幣。使用者可以通過將變數“數量”傳遞給函式來決定提取多少。但是,中心化應用程序必須檢查以確保使用者可以“提取”此金額。我希望使用者基本上可以簽署他們希望“撤回”X令牌的交易,將此簽名傳遞給伺服器,然後伺服器將執行檢查並執行該功能。這樣使用者支付gas費用,但伺服器可以確保他們被允許執行該功能。這種流量可以嗎?理想情況下不使用像 Chainlink 這樣的預言機

這聽起來像是在部署契約後修改業務規則的努力。你會發現這很困難或不可能。

可以將簽名的 txn 發送到伺服器,但是當使用者可以直接訪問合約時,無法確保他們這樣做。您不能依賴使用特定 UI 或後端的使用者來執行業務規則或安全原則。

可以以這樣一種方式編寫合約,即只允許伺服器與合約互動,並且伺服器可以通過檢查簽名來確定每筆交易涉及的使用者。這將重新引入集中化和單點故障,這可能不是可接受的設計決策。在任何情況下,它都不能用於已經部署的以另一種方式工作的合約。

希望能幫助到你。

引用自:https://ethereum.stackexchange.com/questions/119333