Ethereum-Wallet-Dapp
如何為使用使用者選擇的任何密碼註冊並下次使用相同密碼登錄的使用者創建錢包地址(例如)?
我希望我的 dapp 在送出註冊時允許新使用者使用他選擇的密碼創建一個乙太坊地址,並且下次他登錄 dapp 時,他必須能夠使用他必須能夠使用的密碼登錄做交易。我知道使用者需要擁有私鑰才能簽署交易。我很困惑他的密碼如何僅在他需要時幫助他獲取他的私鑰。我正在建構一個基於 html/js 的 dapp,它與 ethers.js 通信到 ethereum rinkeby 測試網。
您正在解決(網路)dApp 開發的主要痛點之一。
因此,基本上要實現您想要做的事情,您需要將私鑰儲存在某個安全的地方並使用密碼保護它(正如您自己提到的) - 一個典型的 Web 應用程序只會使用伺服器來執行此類操作。所以實現這一點的一種方法是添加一些伺服器端程式碼來儲存和獲取密鑰,但是誰想要在分散的世界中擁有伺服器,對吧?
因此,解決此問題的一種方法是將私鑰儲存在瀏覽器的本地儲存中,並使用密碼對其進行加密,以解決該問題的不安全性——不幸的是,這裡的問題是沒有真正的持久性保證,因為本地儲存可以被擦除和這也僅適用於您設置的瀏覽器。
另一種方法是讓使用者在每次訪問您的應用程序時插入他的私鑰,這很不方便。
總而言之,做這些事情的唯一真正安全的方法是使用本地應用程序,該應用程序在本地儲存數據並且根本不公開私鑰。