作者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/m.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