聊聊以太坊助记词

902 阅读2分钟

转载自知乎@saqing

原文链接:zhuanlan.zhihu.com/p/494246303

以太坊助记词

以太坊的助记词有24个,它的生成算法是从 2048个单词列表中随机取出23个(不能重复),再对前面23个单词计算得到第24个单词,第24个单词的作用是用于校验这组助记词是否合法。

我们在使用 Metamask 、Tokenpocket、Coin98 等钱包软件创建以太坊钱包的时候,都会生成一组助记词,钱包软件会要求我们记在纸上,然后再验证我们是否真的记在了纸上。这一流程非常烦琐,因为很多钱包不允许截屏(为了安全),我们真的需要找到一支笔一张纸,花个几分钟把这24个单词记下来,然后再验证。

但即使写在了纸上也并不安全,它可能会丢失,笔记可能会褪色,导致你彻底丧失钱包的控制权;也可能泄露,导致钱包中的资金被他人盗取。

有什么办法可以既记住这些助记词,又防止丢失和泄露?

我想到了一个方式,用大脑去记忆,没有人可以偷窥你的记忆(不要杠 "催眠术"),所以它是防泄漏的;用大脑去记忆24个没有规律的单词,是很难记住的,但是去记忆一段有规律的句子,我相信每个人都能很容易记住(不要杠 "老年痴呆"),这样就做到了防止丢失。为此,我开发了一个叫做脑钱包的工具,通过一段你很容易记住的暗号文本来生成 24个助记词。记住了暗号文本,也就记住了助记词,从而记住了通过助记词衍生出来的成千上万个私钥。

使用脑钱包工具时,建议打开脑钱包网页后断网生成钱包,这样可以确保生成出来的助记词或私钥不可能通过网络泄露出去。

非常不建议在一个钱包软件通过直接导入助记词的方式来创建钱包,因为这样暴露了这组助记词能衍生出来的所有钱包私钥。如果要导入到钱包软件,建议通过私钥导入,如果钱包软件作恶,也只会影响这一个私钥对应的钱包,从而将安全风险降低到最小。

当然最好的方式还是通过离线钱包签名,在线钱包发送交易的方式进行转账或合约交互,这样最安全。我正在开发离线钱包签名和在线钱包发送交易的工具,欢迎留言交流。

好久没写作文了,逻辑有点乱,不喜轻喷,欢迎交流。  

参考列表

1. 脑钱包工具