Solidity

是否可以將solidity 函式呼叫僅限於特定的DApp?

  • March 19, 2021

我想開發一個solidity合約和一個DApp。但是,如果他們不使用與智能合約關聯的 DApp,我不希望任何人能夠執行某些公共功能。此外,我希望前端使用者支付所有 GAS 費用。

可以做到這一點,如何做到?

你可以在你的合約中包含一個只有你的應用程序知道的密鑰,但是……乙太坊網路公開了智能合約程式碼,那麼我不知道你如何避免解密應用程序和合約之間的通信。

也許如果你不驗證契約,它的程式碼就會隱藏起來。

我能想到的其他解決方案是創建 2 個合約,其中第二個合約函式只能在條件發生時從第一個合約函式呼叫。(例如, msg.sender 它在以前的映射中註冊……)

希望它也有幫助:)

合約評估來自使用者的簽名交易。他們不評估使用者如何組成交易或簽署交易。從人類的角度來看,如果 UI 引導使用者、編寫交易並將其提供給簽名,這將很有幫助,但通常這與契約無關。

合約需要保護其內部完整性,無論任何 UI 向它們發送什麼。如果合約的內部安全依賴於將使用者限制在某個界面上,那麼它始終表明可能存在設計缺陷。這是一種策略的變體,試圖阻止其他合約使用該合約,這同樣幾乎總是一個錯誤。

如果合約對有效交易的來源漠不關心,並且拒絕所有不允許的內容,那麼使用哪個介面或使用者的性質都無關緊要。這種方法可以保護系統免受未來前端可能出現的開發人員錯誤。它可以與其他合約(組合)進行新穎的互動,甚至可以由第三方創建 UI 和 API,這通常是牽引力的標誌。

希望能幫助到你。

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