— 撰文 |大掌柜 切入正题之前,掌柜想给大家介绍一下冰川协议(Glacier Protocol),也就是本篇教程的出处。 冰川协议是一套完备的冷存储方案,是一本足足78页的PDF操作手册。操作手册彻底践行了“not your keys, not your bitcoin”的理念,介绍了如何在尽可能不信任任一第三方的情况下,生成你自己的随机数,助记词,私钥,公钥,助记词;进而如何进行转币等操作。 为了能够做到“尽可能不信任某一第三方”,冰川协议对具体的实施进行了非常严格的规定: 比如,为了避免黑客远程攻击,保存私钥和进行签名的电脑必须是完全脱网的,冰川协议要求移除或者破坏掉电脑的网卡,这一点可能安全意识比较强的同学自己也能想到并付诸实践。 但是冰川协议的其他设定就有一点点“被害妄想症”了: 比如,为了减少对某一第三方节点的信任,冰川协议要求用户一定要自己维护全节点; 比如,为了避免使用某一台电脑保存私钥和使用其签名时被安装了后门,冰川协议要求购买两台不同品牌甚至不同操作系统的全新电脑(比如一台Windows,一台Mac),交叉验证两台电脑得到的结果再广播交易; 比如,在操作电脑时,为了避免电脑向外辐射的电磁波会泄露信息,冰川协议要求使用电脑时一定要用一个大的法拉第包把电脑罩住,并且要用另一台设备(比如离线手机)连续播放宽频的白噪音。 虽然冰川协议规定了大量的操作细节,但是因为这些流程一是要求用户有很强的动手能力,其次要做到足够的心细,才能在操作中不犯错。要知道,人为失误是除了设备故障或者被黑之外,最大的丢币原因,没有之一。所以,掌柜并不建议新手用户使用冰川协议来保护你的私钥和做交易签名。 但是,冰川协议里面也有一些我们可以借鉴的部分。比如,用掷骰子的方式来生成你的助记词。这样做的好处是,避免了信任软件HD钱包的伪随机数生成器,甚至是硬件钱包的安全芯片。通过手工的方式生成真随机数,进而保障私钥的随机性。 这里需要注意,因为普通骰子的六个面的重量不一致,从而会导致得到的随机熵值的概率不是严格的平均分布,掌柜的建议大家一定要使用六个面重量几乎完全一样的赌chang级骰子。 切入正题。 如何用骰子生成助记词 准备工具: ① 一颗赌chang级骰子 ② 离线工具(SHA256&进制转换) - 如何离线使用工具?联网电脑打开链接,右键菜单“另存为”文件,将文件拷贝到离线电脑,双击打开文件进行使用。 ③ BIP39-2048助记词表 ④ 纸笔或金属助记板 开始操作: 第一步,我们需要用到骰子和纸笔。 一共掷256次骰子,掷到1,2,3记录为0,掷到4,5,6记录为1,最终得到256位二进制数。 或者,利用进制转换工具,掷99次,把得到的记录作为六进制数据,然后转换为二进制,就可以得到一个256位的二进制数。 256位二进制: 操作过程中要确保骰子在空中得到足够的翻转,并且避免总是从骰子的特定面朝上进行投掷。 当然,如果你坚持要用筛盅,掌柜也不会拦着你。 第二步,我们需要用到SHA256算法工具。 1. 使用SHA256工具获取256位二进制的Hash值(转换为二进制,按Byte分组),取前面8位加到256位二进制后面,得到264位二进制数。 264位二进制: 2. 将264位二进制分成24组11位的二进制 第三步,我们需要用到进制转换工具和2048助记词表。 根据上面得到的24组11位二进制数,我们要在2048词表里找到对应的24个单词。 但是,二进制如何跟单词对应起来呢? 1. 我们将词表的2048个单词按a-z字母排序后标上序号,从“0”到“2047”。 2. 最大的序号“2047”用二进制表示刚好是11位“11111111111”。所以词表里的每一个词,我们都可以根据它的序号对应一个11位的二进制数。对于转换二进制后不满11位的,我们在它的二进制数前面补“0”,不影响数值大小,同时还满足长度要求11位。 比如,【dice】是词表的第492个单词,序号则为“491”,它对应的二进制是9位:“111101011”,我们把它补齐11位:“00111101011”。 为减少工作量,我们直接将24组11位二进制用离线进制转换工具转换成十进制,然后按照十进制数找到对应序号的单词。 以第一组11位二进制“11000011011”举例,转化为十进制,表示为“1563”。由于我们定义的序号是从0到2047,所以,序号“1563”实际对应的是词表中第1564个单词【sell】。 按照上面的方法,我们可以得到24组11位二进制数对应的24个单词: 如果不自信是否操作正确,我们可以直接将助记词导入硬件钱包,看能否通过校验。如果无法通过,则需要从第二步开始重新操作。如果通过,则表示操作正确。 目前市面上有个别钱包是不支持校验助记词有效性的,我们可以用一套无效助记词(如,24个cat)先试下是否提示助记词有误后再进行导入。如果报错,说明支持助记词校验! 关于助记词有效性的更多内容,可以参考掌柜这篇文章《导入助记词时,输入错误会发生什么?》 第四步,我们需要用到纸笔或者金属助记板,物理备份助记词。 将24位助记词抄在纸上,或选用金属助记板备份(如Cobo金钢匣),防水、防火、防腐蚀和抗压等性能会更好一些。切勿以拍照或其他形式存储在有可能联网的设备中(离线手机、离线电脑、U盘等都属于有可能联网的设备),以防恶意软件盗取隐私。 对于更多存储方法和技巧,可以参考掌柜这篇关于“深冷存储”的文章《偷不走的助记词》 冰川协议是使用62颗骰子掷出256位二进制,但是掌柜建议采用上述方法(1颗骰子)来减少复杂性。在掷骰子以及记录结果时,我们不需要担心出现人为错误。只需要确保最终正确存储了有效助记词,其他错误就不会影响私钥的随机性和安全性。 Cobo金库硬件钱包后面将支持使用101颗骰子掷出的256位二进制转换为私钥。通过掷101颗骰子,我们可以获得与256位二进制数一样大的熵值(一颗骰子可掷出6种结果,101颗骰子的熵值6??? > 2???)。 最后,给大家留个课后作业: Cobo金钢匣是一款全钢金属助记板,甚至连螺丝都是不锈钢材质的。备份24位助记词平均只需花费7分钟,字符块易找易取易操作~ 参考链接: [1]https://glacierprotocol.org/ [2]https://cryptii.com/pipes/hash-function [3]https://tool.oschina.net/hexconvert [4]https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt 本文来源:Cobo钱包 —- 编译者/作者:Cobo钱包 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
用骰子DIY真随机助记词
2020-03-20 Cobo钱包 来源:火星财经
LOADING...
相关阅读:
- 视频教程 | 如何在TronLink中将助记词转换为私钥?2020-07-27
- 三分钟了解以太坊 2.0 密钥结构与运行机制2020-07-01
- 币圈V说68期比特币远古大神转币引发“恐慌”为啥行业害怕中本聪现身2020-05-21
- 比特币赌场先驱LuckyBit通过新的实时互动骰子游戏提供高达15BTC的奖金2020-05-14
- Google拆除49个Chrome扩展程序劫持加密货币钱包-2020-04-16