Solidity

檢索合約所有者的地址並呼叫所有智能合約方法

  • October 20, 2021

伙計們需要一些幫助,以在我的智能合約中更多地執行身份驗證方面的安全性。

所以我有一個智能合約,其擁有者作為部署者的地址。該所有者將能夠使用 web3 庫呼叫智能合約中的任何方法。我的問題是,如果某個惡意使用者能夠辨識所有者的地址,反過來,他可以用所有者的地址替換自己的地址,並使用相同的 web3 庫進行方法呼叫。這些方法本質上非常關鍵,因為它們轉移了資金。我明白只有所有者才能呼叫某些方法,但在這種情況下,攻擊者知道所有者的地址。

如何確保我的方法不受此使用者的影響,我需要為我的智能合約實施什麼樣的安全機制?還是我缺少一塊拼圖?

合約所有者地址是 msg.sender。msg.sender 與橢圓曲線密碼學一樣安全。乙太坊使用與比特幣相同的曲線和密鑰大小。每個人都知道 msg.sender,但只有擁有私鑰才能讓某人以該 msg.sender 的身份簽署交易。所以,簡而言之,即使有人知道地址,他們也不會有私鑰。

交易實際上不包含發送者。發件人的地址來自交易上的簽名。

如果您查看代幣合約,您會發現它們通常使用密鑰為 msg.sender 的餘額映射。

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