Web3js

如何使簽名在一段時間後過期

  • April 1, 2022

我正在做一些事情,我需要創建一個將在一段時間後過期的簽名。

好的。

我想我理解你的要求。您想要一個將在一段時間後(或特定使用次數後)過期的簽名

每個簽名都基於一個私鑰(如果我們談論的是 ETH 區塊鏈)

因此,您可以擁有一個智能合約,該合約將接受與擁有特定私鑰的使用者的互動。但是,您可以編寫智能合約以在特定時間或固定使用次數(或其任意組合)內接受來自所述使用者的呼叫

ShortAnswer:是的,您可以對 smartContract 進行程式,以根據預設條件(例如時間或呼叫次數)接受/拒絕來自特定私鑰的呼叫。

簽名基本上是您使用私鑰簽名的消息。沒有“本機”方法來設置簽名的到期日期,因此我們必須考慮其他事情。

使簽名“過期”的唯一方法是在消息本身中添加時間戳。通過簽署消息,您表示您接受在時間戳(到期)之前使用的消息內容。如果有人試圖在時間戳之後使用該消息,那麼任何人都可以證明該操作無效,因為時間戳已經過去。

這不是一個簡單的實現,它的工作情況取決於上下文。例如,如果消息直接在智能合約中使用,很容易添加一個過期消息不能使用的檢查。

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