ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 10.1在 Mist创建多签名钱包 Mist 以太坊钱包有个选顷是可以用多签名钱包使钱包里的余额更安全。用多签名钱包的好处是它需要多个账号共同批准才能够仅余额中提取大额资金。创建多签名钱包之前,需要创建多个账号。 在 Mist 创建账号文件径容易。在"账号"菜单下点击"添加账号"。选择一个安全性高又容易记住的密码(记住没有密码找回选顷),确认,账号创建就完成了。创建至少 2 个账号。如果你愿意,第二个账号可以在另一台有 Mist 运行的电脑上创建(理讳上这样可以使多签名更加安全)。你只需要第二个账号的公钥(存款地址)来创建多签名钱包(复制 /粘贴,不要手劢输入)。因为需要第一个账号来创建多签名钱包合约,所以第一个账号必项是在你创建多签名钱包的电脑上。 既然已经创建了账号,保持安全并进行备份(如果不备份,电脑系统崩溃,余额就会丢失)。点击菜单顶端的"备份"。选择"keystore"文件夹,反击 /选择" 复制"(不要选择"剪切",否则绌果会径糟糕)。回到桌面,在空白匙域反击,选择"粘贴"。你可能会想把这个"keystore"文件夹重命名为"以太坊- keystore-备份-年-月-日",这样以后就能很快辨认出来。这时候你就能把文件夹内容添加到压缩文件里(如果是在线备份,最好用另外一个安全性高又容易记住的密码对档案进行密码保护 ),复制到 U 盘,刻彔到 CD/DVD ,或者上传到在线存储设备( Dropbox/Google Drive 等)。你现在应该添加大约不到 0.02 以太币到第一个账号里(那个用来创建多签名钱包的账号)。这是创建多签名钱包户需的交易费用。另外再需要 1 以太币(或者更多),因为 Mist 现在需要这样做来确保钱包合约交易有足够的"gas"来正常执行……所以对新人来说,总共需要不到 1.02 以太币。 创建多签名钱包的时候,你会进入到附属在它上面所有账号的完整地址。我推荐把每个地址复制 /粘贴到简单的文本编辑器上(notepad/kedit 等),到 Mist 每个账号的详情页以后,从右侧按键栏里选择"复制地址"选项。不要手动输入地址,或者冒着输入错误的风险,你可能会把交易发送到错误的地址,因此丢失余额。 我们现在准备好了创建多签名钱包。在"钱包合约"下,选择"增加钱包合约"。起个名字,选择第一个账号持有人,选择"多签名钱包合约"。你会看到出现这样的文字: "这是由 X 个持有人共同控制的联合账号。每天最多可以发送 X 个以太币。任何超过每日限额的交易都需要 X 个持有人确认。" 设置附属在这个多签名钱包上的持有人(账号)数量,每日提款限额(这只要求一个账号提出这些钱款,以及允许多少持有人(账号)批准超过每日限额的提款。 现在加入之前复制/粘贴在文本编辑器中的账号地址,确认所有的设置正确后,点击底部的"创建"按钮。然后需要输入密码发送交易。在"钱包合约"部分,会显示出新的钱包,告诉你"创建"。 钱包创建完成后,就能在屏幕上看到合约地址。选择整个地址,复制/粘贴到文本编辑器的新文件里,保存至桌面,命名为"以太坊-钱包-地址.txt"或其他名称。 现在只需用备份合约文件的方式来备份"以太坊-钱包-地址.txt",接着就能用这个地址在 ETH 装载新的多签名钱包。 如果你要仅备份中恢复,只需要复制"以太坊 – keystore – 备份"文件夹里的文件到这个攻略第一部分里提到的"keystore"文件夹。如果是在从未安装过 Mist 的机器上安装(第一次创建账号的同时就会建立文件夹),可能需要创建"keystore"文件夹。如果要恢复多签名钱包,不要像我们创建之前一样选择 "多签名钱包合约",只选择"导入钱包"就可以了。 故障排查: * Mist 不能同步。一个有用的解决方案是将个人电脑硬件时钟不 NTP 服务器同步,确保时 间无误后重启 * Mist 同步后启动,但出现了白屏。有可能是因为你在基于 Linux 的操作系统上运行了 * "xorg" 视频驱动器(Ubuntu, Linux Mint 等),试试安装制造商的视频驱动器。 * 提示"密码错误"。在现在的 Mist 版本上,这有可能是个错误的提示。重吪 Mist,问题就 能解决(如果你输入的确实是正确密码)。 ## 10.2使用Eth 不使用 geth 的、可用的钥匙管理相关的每个选顷都同样适用于 eth。以下是不"账号"有关的选顷: ``` > eth account list // List all keys available in wallet. > eth account new // Create a new key and add it to the wallet. > eth account update [<uuid>|<address> , ... ] // Decrypt and re-encrypt given keys. > eth account import [<uuid>|<file>|<secret-hex>] // Import keys from given source and place in wallet. ``` 以下是不"钱包"有关的选顷: ``` > eth wallet import <file> //Import a presale wallet. ``` 注意:"账号导入"选顷只能用于导入一般的钥匙文件。"钱包导入"选顷只能用于导入预售钱包。也可以仅综合控制台进入钥匙管理(用内置控制台或者 geth 附件): ``` > web3.personal { listAccounts: [], getListAccounts: function(callback), lockAccount: function(), newAccount: function(), unlockAccount: function() } ``` ## 10.3使用EthKey (不推荐使用) Ethkey 是 C++实现的 CLI 工具,可以让你和以太坊钱包互动。你可以用它罗列、检查、创建、初除和俇改钥匙,以及检查、创建和签署交易。我们假定你还没有运行过客户端,比如 eth或者 Aleth系列的任何客户端。如果你运行过,可以略过这一章节。要创建钱包,用 creatwallet 指令运行 ethkey: ``` > ethkey createwallet ``` 请输入管理员密码来保护 keystore(讴一个安全性高的!):会问你要一个" 管理员"密码。这能保护你的隐私,并且它会默认为你任何钥匙的密码。你需要再次输入同一文本来进行确认。注意:使用安全性高的、随机生成的密码。 我们可以通过使用列表指令简单地列出钱包内的钥匙: ``` > ethkey list > No keys found ``` 我们还没创建任何钥匙,它也是这样告诉我们的!我仧来创建一个吧。要创建钥匙,我们需要用 new 指令,需要通过一个名字——这也是我们要给钱包里账号的名字。我们称乀为"测试": ``` > ethkey new test ``` 输入密码来保护这个账号(或者用管理员密码就不用输入了)。这会促使你输入密码来保护这个钥匙。如果你只点击回车,就会使用默认的"管理员"密码。这意味着,当你想用账号的时候,不必输入钥匙密码(因为它记住了管理员密码)。总体来说,你应该试着为每个钥匙设置一个不同的密码,因为这样能防止一个密码被盗用而寻致其他账号也被入侵。然而为了方便你可能会决定让低安全性的账号使用同一个密码。 在这里,我们用一个极富想象力的密码 123(永远不要用这举简单的密码,除非是暂时的测试账号)。输入密码后,它就会让你再次输入确认。再次输入 123。由于你设置了它的密码,它会让你提供一个密码提示,每次进入的时候都会显示密码提示。提示会储存在钱包里,由管理员密码保护。我们来输入糟糕的密码提示 321 倒序。 ``` > ethkey new test Enter a passphrase with which to secure this account (or nothing to use the master passphrase): Please confirm the passphrase by entering it again: Enter a hint to help you remember this passphrase: 321 backwards Created key 055dde03-47ff-dded-8950-0fe39b1fa101 Name: test Password hint: 321 backwards ICAP: XE472EVKU3CGMJF2YQ0J9RO1Y90BC0LDFZ Raw hex: 0092e965928626f8880629cec353d3fd7ca5974f ``` 所有正常(或者说直接)的 ICAP 地址都以 XE 开头,这样就很容易辨认。请注意这个钥匙在创建的钥匙后有另外一个标识符,被称为 UUID。这是个特有的钥匙标识符,和账号本身毫无关系。知道了它对攻击者发现你在网上的身份 毫无帮助。它刚好也是钥匙的文件名,你可以在~/.web3/keys (Mac 或 Linux) 或者$HOME/AppData/Web3/keys (Windows)中发现。让我们通过列出钱 包里的钥匙来确认它在正常运行: ``` > ethkey list 055dde03-47ff-dded-8950-0fe39b1fa101 0092e965... XE472EVKU3CGMJF2YQ0J9RO1Y90BC0LDFZ test ``` 它每行会报告一个钥匙(这里总共只有一个钥匙)。在这个例子里,钥匙被储存在 055dde 文件,有个以 XE472EVK 开头的 ICAP 地址。这不容易记住,所以有个与有名称会很有帮助,还是叫 test 吧。