Re: [Coin] 私鑰可以自己生成嗎?冷錢包生成原理是?

看板DigiCurrency作者 (鮎川彥)時間1年前 (2022/11/23 15:22), 1年前編輯推噓9(9015)
留言24則, 7人參與, 1年前最新討論串1/1
※ 引述《Priapus5566 (希臘生殖大神)》之銘言: : 想問一個可能有點基本的問題 : 基本上幣圈常用的鏈,如果自己理解沒有錯誤 : 應該都是用橢圓曲線函數來加密 : 其中關於公私鑰的產生公式: : K = k * G : 大K是公鑰,小k是自己選擇的私鑰,G是生成點 : G照理說應該是一個已知,大家公認的常數 : 小k是2^256以內隨機選一個自然數 : 那是不是代表,我可以自己任意選一個數字,再把他推導成公鑰? 差不多是這樣,既然講到這個程度了,再講一些細節 BTC和ETH用的是Secp256k1:https://en.bitcoin.it/wiki/Secp256k1 它的循環群大小n是略小於2^256的 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 每間隔n個會循環回同一個點,所以如果選了一個接近2^256,剛好比n大一點的整數, 一減下來搞不好是k=10那個公鑰也有可能。 : 這樣k選太小的話,公鑰是不是很容易算出來,對應到的私鑰都很不安全?比如k小於一萬 : 以內的公私鑰對基本上都算得出來,大家都知道,人人都可以存錢提款,是這樣嗎? 不會建議去用很小的數,理論上機率沒有差別,但確實有可能有人會從1往上掃, 也有可能有人從最大值往下掃,或正中間往兩邊掃。 反正人想得到的數字都有可能有人去掃。 已知一把私鑰去算對應公鑰,不管私鑰值的大小都很快。(我想確實有個體差異但都很快) 所以如果你想問的是會不會大的私鑰比較難算就比較沒人會去算,那多半是沒啥差別。 私鑰的安全性在於可能的數量非常多,在有限時間內被掃的機率很低。 但非隨機的私鑰值被特別拿去掃的機會可能會比較高,這跟密碼會被試的狀況有點類似。 : 那冷熱錢包商選擇私鑰有什麼特別的原理嗎? : 要怎麼知道冷錢包商不會藏後門,自己偷留一份私鑰,或者私鑰可能和別人的一樣?如果 : 都是隨機亂數,有沒有可能亂數的私鑰和另一家錢包商提供的私鑰一模一樣?(雖然機率 : 可能只有1/(2^256)) : 印象中SHA-256是有可能找到collision的,只是目前暫時還沒有人找到而已 : 如果我自己選一個夠大的數當私鑰,再導入熱錢包推出公鑰地址,是不是就也不需要冷錢 : 包了? 冷熱錢包不是這樣分的 至於隨機選一個範圍內的整數當私鑰,是運作得起來的。 有些錢包,尤其早期來講,匯入私鑰就一串16進位碼輸進去,那其實就是一個大整數, 也沒有什麼檢查碼,只要輸入長度正確的16進位碼(除非用到零點)都可以匯進去。 私鑰會遇到的問題是256bit的真隨機私鑰通常都不好記憶, 如果不隨機那被破的可能性就提高了。 如果你另外用一些規則去產生私鑰,安全性就看你的熵而定。 像現在常見的助記詞是個改良版的方案。 : 如果自己對加密原理有理解錯誤的話還請大家多多指正,謝謝大家 -- ethereum:0x09B25bd7d9B8dE2914C8314a2E0059A6a8ADEadE polygon :0x09B25bd7d9B8dE2914C8314a2E0059A6a8ADEadE smartbch:0x5a8B6db897003C8aFA62066d3bE876Fd8BBe9082 bitcoincash:qqjzmy6mjp8sp97c7thhflv9s2j96xk0q5pr26dftl simpleledger:qqjzmy6mjp8sp97c7thhflv9s2j96xk0q5dcppcf4p -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.227.143.60 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/DigiCurrency/M.1669188159.A.362.html ※ 編輯: Ayukawayen (36.227.143.60 臺灣), 11/23/2022 15:46:32

11/23 15:48, 1年前 , 1F
好奇問一下 看助記詞很多是常見的單字 這24個單字隨機組
11/23 15:48, 1F

11/23 15:48, 1年前 , 2F
合有到2^256個變化?
11/23 15:48, 2F

11/23 15:49, 1年前 , 3F
不知道單字的字庫有幾個
11/23 15:49, 3F

11/23 15:51, 1年前 , 4F
好像可以耶 如果字庫1024個,就有2^10^24 就快夠了
11/23 15:51, 4F

11/23 15:54, 1年前 , 5F
2^10.67^24就夠,所以1629左右字數就夠,這樣想對嗎?
11/23 15:54, 5F

11/23 16:06, 1年前 , 6F
11/23 16:06, 6F

11/23 16:35, 1年前 , 7F
謝謝版主
11/23 16:35, 7F

11/23 16:53, 1年前 , 8F
是先產生entropy,再用查表導出24個單字。最後一個字是c
11/23 16:53, 8F

11/23 16:53, 1年前 , 9F
heck sum。自己隨便亂輸入24個字,通常為無效
11/23 16:53, 9F

11/23 18:25, 1年前 , 10F
聽起來冷錢包也不安全了
11/23 18:25, 10F

11/23 18:43, 1年前 , 11F
只有相對安全,沒有絕對安全
11/23 18:43, 11F

11/23 18:44, 1年前 , 12F
不要用BIP39,改自己找方法隨機產生私鑰,理論上會更安全
11/23 18:44, 12F

11/23 18:44, 1年前 , 13F
問題是麻煩程度也是成正比
11/23 18:44, 13F

11/24 19:48, 1年前 , 14F
密碼學的安全跟隨機都是很嚴謹的 樓上自己搞八成會爛
11/24 19:48, 14F

11/24 19:49, 1年前 , 15F
entroy不夠 或是公私鑰生成有誤
11/24 19:49, 15F

11/25 04:32, 1年前 , 16F
私鑰有誤會直接被程式打回票
11/25 04:32, 16F

11/25 04:33, 1年前 , 17F
至於隨機度夠不夠 你去買骰子來自己擲 肯定夠
11/25 04:33, 17F

11/25 04:33, 1年前 , 18F
記得不要只買一個 買各種品牌大小的各一
11/25 04:33, 18F

11/25 04:34, 1年前 , 19F
數量越多越好 然後放進布袋 一次抓一把出來骰
11/25 04:34, 19F

11/25 04:34, 1年前 , 20F
骰完排序成一個數列 拿這個數列去跑SHA256
11/25 04:34, 20F

11/25 04:34, 1年前 , 21F
這樣隨機數不夠 我就不知道什麼叫夠了
11/25 04:34, 21F

11/25 04:35, 1年前 , 22F
隨機度
11/25 04:35, 22F

11/25 04:45, 1年前 , 23F
你還可以進一步 好比第一次SHA256取N位 第N次取N位
11/25 04:45, 23F

11/25 04:45, 1年前 , 24F
最後全部加起來再取N位
11/25 04:45, 24F
文章代碼(AID): #1ZVSe_DY (DigiCurrency)