Solidity

如何使用乙太坊公共地址加密文件並使用私有地址解密?

  • September 7, 2019

預期的結果非常簡單:

使用者將他們的 ERC20 發送到智能合約。根據數量,每個使用者將獲得一個專門為他們創建的文件。我想以分散的方式分發這些文件,而不需要使用者在智能合約互動中發送他們的電子郵件地址。

因此,我希望擁有這些文件(每個使用者都有一個 .tar.gz)。該文件將使用使用者的乙太坊公鑰加密,並且只能使用他們的私鑰解密,因此只允許他們訪問 .tar.gz 中的內容

我已經調查了潛在的解決方案,我發現老實說我覺得與解決我的問題無關,或者不清楚。他們正在使用乙太坊智能合約進行驗證(我猜這應該發生在客戶端)。

有人建議在這裡使用乙太坊公鑰加密消息這 是否意味著我可以簡單地使用只能由他們的私鑰解密的使用者公鑰創建 .tar.gz 秘密密碼?在這種情況下 .tar 有多安全?

歡迎任何建議

編輯:如果這樣的解決方案可行,我也會喜歡使用web3.eth.personal.sign的解決方案

我找到了一個相關的答案,但我還不會接受我的答案,因為我想得到其他回复。

使用GPG 似乎$$ be $$1相對容易以相對安全的方式加密文件。根據這個來源:

John 想要將 PDF 文件上傳到 IPFS,但只允許 Mary 訪問他將他的 PDF 文件放在他的工作目錄中並使用 Mary 的公鑰對其進行加密他告訴 IPFS 他想要添加這個加密文件,這會生成加密文件的雜湊 他加密文件在 IPFS 網路上可用 Mary 可以檢索它並解密文件,因為她擁有用於加密文件的公鑰的關聯私鑰 惡意方無法解密文件,因為他們缺少 Mary 的私鑰

在我們的例子中,公鑰是區塊鏈公共地址。使用者必須使用他們的私鑰才能訪問文件。我很想知道是否有人可以想到其他方式

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