微博:BTC达哥
时间:2021年11月20日
今天聊一聊囤饼人应该如何存饼的话题。
交易所提币手续费动辄就是几十万聪,如果是少量的饼,只能放在交易所里。
当年门头沟交易所被盗导致用户大饼丢失,这是很实际的安全风险。真正的囤饼人当然是要把饼提到自己掌握私钥的钱包地址中去的。
大饼是人类历史上第一个“生不带来,死能带去”可以完全私有的资产。首先要明确的是,拥有大饼,你必须成长为一个为自己负责的人,而不是一个丢失了私钥还想着去“挂失”的巨婴。
“你的私钥你的币”,私钥的安全性是尤为重要的。
大饼钱包从私钥泄漏的潜在安全威胁角度,分为冷钱包和热钱包:
掌控私钥的钱包软件(设备)“从不触网”,我们称之为冷钱包。
相反,掌控私钥的钱包软件(设备)如果“连接过网络”,则称为热钱包。
在《大饼的抗量子计算特性》一文中,我曾经提到,上古时代的大饼钱包教程甚至推荐用户将找零钱包设置为发送地址而白白浪费了中本聪的抗量子计算设计。
有的教程中煞有其事的在一个离线设备中生成转账的离线签名,使用手机拍照然后OCR出来,再使用热钱包进行广播,说这样一来,钱包地址“冷的不能再冷”。
他们不知道,一旦发送大饼,公钥已经全网广播。何谈什么冷不冷呢。这种虚假的冷有什么实际意义呢?
按照中本聪的设计,正确的做法是“一个地址只用(转出)一次”。一旦有转出操作,该发送地址就尽量废弃不用。如果只发送部分大饼,则一定要设置另外一个公钥没有暴露的冷钱包地址作为“找零地址”,接收剩余的部分。
需要转出操作时,将此地址的私钥导入一个安全的热钱包,按需求设置好找零地址,提交签名进行转账即可。只要转账确认数达标后这个地址就可以不再使用,根本无需离线签名。
一个安全的囤饼地址,就是一个公钥、私钥都没有暴露的地址。而已而已。
需要再次明确:大饼地址只是一个根据私钥计算得出公钥以后继续计算得出的字符串而已。这些计算一个开源js脚本就可以搞定(如@比特币布道者的https://weibo.com/6101281235/KDED7qlGN)。不需要任何硬件钱包、当然也无需Bitcoin Core软件同步全节点。
大饼地址好比你的家庭住址,大饼网络好比顺丰快递网络。虽然别人可以通过顺丰快递给你邮寄货物,但是你家住址和任何快递公司网络都没有任何关系。同理,“大饼地址和大饼网络的直接关系也为0”。
好,我们知道了大饼地址和网络其实是没有关系的。那么我们如何来生成大饼地址呢?
这就到了介绍钱包的环节。
从钱包的设备属性来看,大致分为硬件钱包、软件钱包、纸钱包和脑钱包(虚荣钱包、分裂钱包等属于纸钱包的进阶用法暂不讨论)。
一般硬件钱包设计成冷钱包,即使接入电脑或手机也只是传输签名。私钥并不会泄露到网络中。然而,如果该硬件产品不正确设置找零地址,则和前面所说的bitcoin core冷钱包使用方法走了同样的错误道路。该类产品一般使用BIP39标准的助记词系统,用户靠掌控助记词来管理私钥。
软件钱包,安装在电脑或者手机中,其冷热属性完全因为其是否一直没有连接网络而定。比如我们现在常见的TP钱包、IM钱包、safepal钱包等等,如果安装的设备永久断网,则可以称之为冷钱包。反之,哪怕一次联网,也立刻归为热钱包。此类软件一般也是提供助记词系统供用户管理私钥。
纸钱包,是根据随机种子生成私钥(以及对应的钱包地址),不需要助记词,将私钥抄在纸上,即可直接管理私钥。
脑钱包,根据用户设定一个足够强度的口令(复杂又好记)作为种子,生成私钥和钱包地址。并只需要将口令记在脑中,无需记忆私钥和任何“助记词”,即可直接管理私钥。比较科学的使用脑钱包的方法,在本微博置顶文章中讨论过。https://weibo.com/7572313926/KBtXAF9Ib
纸钱包和脑钱包都可以利用开源JavaScript比特币钱包工具(https://github.com/pointbiz/bitaddress.org)来安全生成。当然前提条件是,运行js脚本文件的电脑是离线的。这样生成的纸钱包、脑钱包地址才是真正的冷钱包。
开源JS工具
我们可以看出,同样是安全的冷钱包,硬件钱包、软件钱包使用“BIP39助记词”管理私钥;纸钱包是直接管理私钥;脑钱包是使用“自定义助记词”的方式管理私钥。
对于三者的优缺点我们从以下几个角度来评估:
【可记忆性】:凭人脑完全记下该关键信息的难度,满分五颗★。
★☆☆☆☆ 很难记忆
★★☆☆☆ 较难记忆
★★★★☆ 方便记忆
★★★★★ 非常容易记忆。
【私有性】:大饼是人类第一个完全私有财产,该关键信息越容易个人保密,则得分越高
★☆☆☆☆ 很容易被发现
★★☆☆☆ 容易被发现
★★★★☆ 不太会被发现
★★★★★ 几乎不可能被发现
【隐匿性】:私有财产的隐匿性越强,就越不会被暴力夺取。
★☆☆☆☆ 被发现后,资产同时暴露
★★☆☆☆ 被发现后,资产容易暴露
★★★★☆ 被发现后,资产不容易暴露
★★★★★ 被发现后,资产不会暴露
【可继承性】:万一所有者遭遇不幸,大饼作为遗产的可继承性。
★☆☆☆☆ 不可能被继承
★★☆☆☆ 很难被继承
★★★★☆ 有可能被继承
★★★★★ 容易被继承
下面是评估结果:
【BIP39助记词】:
可记忆性:★★☆☆☆ (12个助记词,记忆难度还是有的)
私有性:★★☆☆☆(由于不方便记忆,那么一定会记录在物理世界,甚至现在有很多硬件,比如金属板来记录助记词,这已经是放弃了大饼的私有性和隐匿性了)
隐匿性:★★☆☆☆(同上条所述)
可继承性:★★★★☆(放弃了私有性和隐匿性的优点是可继承性较高)
【纸钱包】:
可记忆性:★☆☆☆☆ (直接记忆私钥,非常困难)
私有性:★☆☆☆☆(一定记录在物理世界,很容易暴露资产)
隐匿性:★☆☆☆☆(被他人发现私钥则资产所有权同时丢失)
可继承性:★★★★☆(可继承性较高)
【脑钱包】:
可记忆性:★★★★★ (自定义的助记词句,很容易记忆)
私有性:★★★★★(自定义的助记词句不需要记录在物理世界,只要口令强度足够,则私有性无忧)
隐匿性:★★★★★(同上)
可继承性:★☆☆☆☆(如果只有个人知道助记词句,很难被家人继承性)
本人在使用开源JavaScript比特币钱包工具的基础上,通过多个自定义的口令、一个关键词句、和算法本身组成了一套集“可记忆性”、“私有性”、“隐匿性”和“可继承性”为一体的高级脑钱包算法,下面分享给大家。
高级脑钱包算法微博公开版 by 达哥
使用bitaddress.org-3.3.0作为生成工具(下文称为脑钱包工具)
关键参数:
1、口令 4个
分别为:
口令A
口令B
口令C
口令D
口令可以是一个好记的句子。四个口令尽量没有相关性。类似于助记词。
2、关键词句 1个
记在我们的脑子里,应告诉有继承权的家人。并告知对方,谨记此“关键词句”一定不可告知“任何”外人。不要保存在任何物理介质上。只记在脑中。简单好记即可。
3、序号数 (比如序号数分别为1、2、3、4、5 分别操作可生成5个地址)
私钥生成方式:
1、使用 口令A + 序号 + 关键词句 作为脑口令生成私钥A
2、使用 口令B + 序号 + 关键词句 作为脑口令生成私钥B
3、使用 口令C + 序号 + 关键词句 作为脑口令生成私钥C
4、使用 口令D + 序号 + 关键词句 作为脑口令生成私钥D
第二步:
使用 私钥A + 私钥B + 私钥C + 私钥D 作为脑口令生成 私钥E
第三步:
使用 序号+ 关键词句 + 私钥E 作为脑口令生成 地址F和 私钥F合并为字符串F
第四步:
使用 字符串F 作为脑口令 生成 私钥G 和 钱包地址G
记下钱包地址G。用来存储大饼资产。私钥G不用记录,有转出需求时才重新按步骤生成,导入热钱包进行转出操作(找零地址设置为另外一个安全的未转出过的脑钱包地址)。
★注意★
1、需要同时知道具体算法、四个口令、关键词句三个参数才能计算出私钥。
2、四个口令自己记在脑子里并存放在保险箱内(推荐银行保管箱),保险箱钥匙自己掌握,如果自己有不幸,方便合法的继承给家人。
3、 关键词句这个参数告知家人牢牢记住,不存放在任何物理地点,只记在自己和家人脑子里。
4、本算法可以打印存放在家里,也可以告诉家人,让家人记住生成方法。
5、生成的各钱包地址G用来存放大饼,私钥不要记录下来,需要时按照算法重新生成。
下面用一个例子来说明使用方法:
1、口令 4个
分别为:
口令A:白日依山尽黄河入海流欲穷千里目更上一层楼
口令B:锄禾日当午汗滴禾下土谁知盘中餐粒粒皆辛苦
口令C:鹅鹅鹅曲项向天歌白毛浮绿水红掌拨清波
口令D:煮豆燃豆箕豆在釜中泣本是同根生相煎何太急
2、关键词句 1个
关键词句:2008年,是一个夏天,有一个老人在网络中画了一个圈。
3、序号数 (比如序号数分别为1、2、3、4、5 分别操作可生成5个地址)
私钥生成方式:
1、使用 口令A + 序号 + 关键词句 作为脑口令生成私钥A
白日依山尽黄河入海流欲穷千里目更上一层楼12008年,是一个夏天,有一个老人在网络中画了一个圈。
—>
私钥A:
5JmpNWrdafJ5hFReXRgzzWyMvhqHvRRG3LeV7HEj1Sz4CjSL3rv
2、使用 口令B + 序号 + 关键词句 作为脑口令生成私钥B
锄禾日当午汗滴禾下土谁知盘中餐粒粒皆辛苦12008年,是一个夏天,有一个老人在网络中画了一个圈。
—>
私钥B:
5J4kiu1t99aQW4QtKkKsH7gvYWASzHYtxQzHjUhSZubHo7xNjxd
3、使用 口令C + 序号 + 关键词句 作为脑口令生成私钥C
鹅鹅鹅曲项向天歌白毛浮绿水红掌拨清波12008年,是一个夏天,有一个老人在网络中画了一个圈。
—>
私钥C:
5JMji9jSatZAVCnNJ8SSHQ4MYEdjMnTuKNgTATq8oB1JWP1xJ8g
4、使用 口令D + 序号 + 关键词句 作为脑口令生成私钥D
煮豆燃豆箕豆在釜中泣本是同根生相煎何太急12008年,是一个夏天,有一个老人在网络中画了一个圈。
—>
私钥D:
5J7jpuhmaYFXCsdD9JdY9x22xAASY4wY8NSTLestbr6mqHbjAhC
第二步:
使用 私钥A + 私钥B + 私钥C + 私钥D 作为脑口令生成 私钥E
5JmpNWrdafJ5hFReXRgzzWyMvhqHvRRG3LeV7HEj1Sz4CjSL3rv5J4kiu1t99aQW4QtKkKsH7gvYWASzHYtxQzHjUhSZubHo7xNjxd5JMji9jSatZAVCnNJ8SSHQ4MYEdjMnTuKNgTATq8oB1JWP1xJ8g5J7jpuhmaYFXCsdD9JdY9x22xAASY4wY8NSTLestbr6mqHbjAhC
—>
私钥E:
5JuwM6vfBQezuxmeugp5vLJSTmA23xedMwStWtaygo9SLoFyEgc
第三步:
使用 序号+ 关键词句 + 私钥E 作为脑口令生成 地址F和 私钥F合并为字符串F
12008年,是一个夏天,有一个老人在网络中画了一个圈。5JuwM6vfBQezuxmeugp5vLJSTmA23xedMwStWtaygo9SLoFyEgc
—>
地址F:1NFHohutMqVXw7JBRG4dXNif6b6SfpwmKT
私钥F:5JQ5KY8uPoB3siS6HTsaNX4kEfCyvUKTyBsjC24cjgFb17kLKsd
—>
1NFHohutMqVXw7JBRG4dXNif6b6SfpwmKT5JQ5KY8uPoB3siS6HTsaNX4kEfCyvUKTyBsjC24cjgFb17kLKsd
第四步:
使用 字符串F 作为脑口令 生成 私钥G 和 钱包地址G
1NFHohutMqVXw7JBRG4dXNif6b6SfpwmKT5JQ5KY8uPoB3siS6HTsaNX4kEfCyvUKTyBsjC24cjgFb17kLKsd
—>
地址G:1PReib7DpwoyJm3GBS5YMre2fBbUb9NY67
私钥G:5KZHnPKpFuSqy5Pw8Pw23CsR4Tdsbudv1rc5yRFC59cf1QGBjsc
这就生成了一个钱包地址G。
把序号换成 2、3、4…. 可以生成另外不同的地址。
该脑钱包算法可以个性化自由修改,去除了碰撞攻击的可能性。
本算法性能评估结果如下:
可记忆性:★★★★☆(需要稍微记忆即可)
私有性:★★★★☆(四个口令只自己掌握,家人只有在自己发生意外以后才获得,因此具有很高的私有性)
隐匿性:★★★★★(关键词句只在自己和家人的脑中记忆,只要不泄露,就不会暴露资产。)
可继承性:★★★★☆(算法、关键词句家人都已掌握的前提下,如果个人发生不幸,四个口令在银行保险箱可被继承,资产获得了良好的可继承性)
★小技巧,关键词句可以设置真假2个,用假关键词句按算法生成的地址中存放少量饼,可在肉身受控时交出(需要向家人交底,共同进退),狡兔三窟,隐匿真正的大饼资产。这一点是其他冷钱包存饼的方式无法比拟的。林庆星正是因为家中的冷钱包被搜出而不得不上交十几万个大饼。虽然他黑德国公司的资产令人不齿,但就大饼资产安全的角度来看,前车之鉴,后事之师。
很多朋友甚至会购买金属板来帮助保存助记词,其实是只增强了钱包的“可记忆性”和“可继承性”,完全忽视了大饼的“私有性”和“隐匿性”。在目前的大环境下,是不够明智的。
值得一提的是, 由于DEFI需要经常的授权和签名,而私钥的离线非常重要,因此,经常使用DEFI的朋友是需要硬件钱包做安全保障的。至于囤饼党,根据上文评估,硬件钱包则是完全没有必要购买的。
当然,囤饼人用什么钱包,达哥其实没有什么利益关联。仅希望这篇文章能够抛砖引玉,给希望更新认知的囤饼人一个思维风暴,也许多少能有些帮助吧。
by达哥
https://weibo.com/7747014561/Ln9sptHlO
http://btc.mom/8643/
脑钱包制作方法,请布道兄@比特币布道者 有空指导一下:
1.参考@囤饼达 文章微博正文,构建属于自己的算法、口令、关键词句。(算法和口令可以根据实际情况用纸质版储存于家中或者银行保险柜,关键词句只能记在自己及值得信任的人的脑海中)
2.进入www.bitaddress.org网站,断网,选择脑钱包模式。
3.根据第一项,将自己创建的算法、口令、关键词句按次序依次生成对应的私钥,得到最终囤币地址和私钥后,把地址复制下来即可(私钥不能复制、也无需记录,等真正需要的时候再按此前的逻辑依次算出即可)。
4.完成后清楚浏览器的缓存数据。
5.以上四步已经形成了独属于自己的高级脑钱包是吗?
如果是的话,还有四个疑问想请教一下:
1.私钥是通过随机种子或自定义口令,通过sha256算法得出的,固定为52个数字+字母的组合是吗?但我发现达哥的文章中显示的是51位,所以有疑惑。
2.依照第一项的算法中,最后生成囤币地址和私钥的种子(即达哥文中的字符串F)中,必须含有前面算法生成的私钥吗?还是说只要有256bit(32个字节)以上的随机字母+数字组合作为种子就可以呢?
3.随机种子通过sha256算法计算得出私钥,私钥再通过椭圆曲线加密算法得出公钥,公钥再通过多重加密算法进行套娃最终得出大饼地址。
利用www.bitaddress.org开源钱包工具计算出私钥和地址后,只要不转出就不会在大饼网络暴露公钥,就是真正的冷钱包是吗?