Wallets

是否有設計模式來保護 Multi SigWallet 中的私鑰?

  • July 15, 2021

我為我的公司開發了一個 MultiSig 錢包。由於時間原因,我將 BitGo 的 Ethereum Multi Sig Smart Contract 用作​​“程式碼庫”(這裡是儲存庫的連結:https ://github.com/BitGo/eth-multisig-v4 )。我已經對其進行了一些編輯,以便按照我的需要自定義其中的功能。我已經對其進行了測試,並且一切正常。

我的問題更多地與一種可能的設計模式有關,用於儲存有權直接在智能合約上操作的賬戶的私鑰。

我的 Wallet Multisig 是 2/3 簽名者,這意味著要進行提款操作,兩個簽名者必須給予他們的許可,以便將資金從發送者(錢包 multisig)轉移到接收者(您想要的任何地址)。

現在,由於我有一個後端將成為提款操作的發起者,我需要從外部來源恢復我的私鑰(將私鑰直接儲存在後端或數據庫中並不安全,因為如果有人入侵我的伺服器可以是一個安全問題)。所以我的想法是將私鑰單獨儲存在 3 個外部安全源(例如 AWS)中以解決問題。

為了恢復私鑰,我需要呼叫這個外部服務,但這並不能解決問題,因為如果我被某人入侵,黑客可以直接從我的後端撥打電話,以檢索私鑰並將它們竊取給我。

所以,這就是場景,我的問題如下:是否存在我可以遵循的設計模式以保護我的私鑰,即使黑客破壞了我的後端程式碼?

如果有人可以幫助我也使用不同的方法,我會很高興聽到建議。謝謝

如果一方能夠從一個位置檢索所有私鑰,而不管您將私鑰儲存在多少個地方,多重簽名就會失敗。在這種情況下,一方將成為單點故障。如果黑客能夠破壞您的後端並獲得 3 個所需私鑰中的至少 2 個,那麼您將無法保護錢包。

為了保護您的錢包,請在不同方之間拆分私鑰。這可能是不同的人,每個人都持有一個密鑰,或者是不同的完全隔離的系統,無法通過單個系統發送交易。

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