作者Priapus5566 (希腊生殖大神)
看板DigiCurrency
标题[闲聊] 私钥可以自己生成吗?冷钱包生成原理是?
时间Tue Nov 22 12:56:30 2022
想问一个可能有点基本的问题
基本上币圈常用的链,如果自己理解没有错误
应该都是用椭圆曲线函数来加密
其中关於公私钥的产生公式:
K = k * G
大K是公钥,小k是自己选择的私钥,G是生成点
G照理说应该是一个已知,大家公认的常数
小k是2^256以内随机选一个自然数
那是不是代表,我可以自己任意选一个数字,再把他推导成公钥?
这样k选太小的话,公钥是不是很容易算出来,对应到的私钥都很不安全?比如k小於一万
以内的公私钥对基本上都算得出来,大家都知道,人人都可以存钱提款,是这样吗?
那冷热钱包商选择私钥有什麽特别的原理吗?
要怎麽知道冷钱包商不会藏後门,自己偷留一份私钥,或者私钥可能和别人的一样?如果
都是随机乱数,有没有可能乱数的私钥和另一家钱包商提供的私钥一模一样?(虽然机率
可能只有1/(2^256))
印象中SHA-256是有可能找到collision的,只是目前暂时还没有人找到而已
如果我自己选一个够大的数当私钥,再导入热钱包推出公钥地址,是不是就也不需要冷钱
包了?
如果自己对加密原理有理解错误的话还请大家多多指正,谢谢大家
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.142.166.117 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/DigiCurrency/M.1669092992.A.502.html
1F:→ Lipraxde: 冷、热钱包的差异不在於公钥是怎麽生的,而是在是否有11/22 13:25
2F:→ Lipraxde: 离线11/22 13:25
3F:推 hellophoenix: 搜寻一下HD wallet11/22 13:38
4F:→ brucetu: 理论上你可以手算出地址把币转进去 离线冷钱包比较方便 11/22 13:42
5F:→ brucetu: 私钥导入热钱包的话 你的私钥就没有从头到尾保持离线 11/22 13:42
6F:推 hallow: 1. 你可以任选私钥没问题11/22 13:57
7F:→ hallow: 2. 所有私钥都是256bits,没有谁比较容易产出公钥11/22 13:57
8F:→ hallow: 3. 冷钱包的私钥是随机产生的11/22 13:57
9F:→ hallow: 4. 冷钱包商的确可能藏後门,所以越知名的品牌越安全 11/22 13:57
10F:→ hallow: 5. 如果担心私钥碰撞,可以把钱分散到不同地址 11/22 13:57
所以我可以自己选一个私钥小k,用离线软体导出公钥大K,再导入冷钱包,完全不使用冷
钱包商附的私钥,理论上是可以的对吧?
还以为k=1,2,3….到10000以内的公钥都已经被导出来的说,写个程式理论上可以跑出一
大堆公私钥对,更可以只买冷钱包的硬体,不用他们提供的私钥了对不对?
11F:推 wemee: 试过了 写一支程式日夜一直跑产生一堆公私钥 从没碰撞过11/22 14:27
12F:→ zhong0228: 唉 发生FTX SBF的事之後 还可以认为品牌越大越安全吗…11/22 14:46
13F:→ zhong0228: *越大改成越知名11/22 14:46
15F:→ brucetu: 机率非常之低 但你如果超级无敌衰 也不是不可能 11/22 14:59
16F:→ brucetu: 要用 你就要相信他不会发生 然後这可信度超级高11/22 14:59
※ 编辑: Priapus5566 (220.142.166.117 台湾), 11/22/2022 15:43:49
18F:推 doom3: 币圈大神推荐的是多签钱包 冷钱包是被高估了 11/22 16:36
19F:推 rand: 多签钱包就只是钥匙比较多把好吗 不然 AXS 是怎麽被盗的 11/22 17:01
20F:推 Raymond0710: 你也可以从2048选出24组不重复的注记词 顺序再打乱 11/23 15:00
21F:嘘 deangood01: 不建议自己搞密码学的算法,基本上很容易出错 11/24 08:48
22F:推 deangood01: 对於随机乱数的生成,建议还是要用到系的的entropy 11/24 20:04
23F:→ deangood01: linux 可cat /dev/random or /dev/urandom 11/24 20:05
24F:→ deangood01: python3 可以利用secrets函式库 基本上底层也是使用 11/24 20:07
25F:→ deangood01: 系统的entropy secrets.token_bytes(256) 之类的 11/24 20:08
26F:→ deangood01: 不过还是不建议自己尻密码学的算法 太容易出错了 11/24 20:08
27F:→ deangood01: 找个开源的LIB 然後藉着review code 学习还比较妥当 11/24 20:09